Integration & Account Linking Workflow
How prospective and existing agencies establish an API connection with the Dummy Ticket Factory engine.
Submit API Query
Provide Name, Email, Phone, and WhatsApp. Request Flight, Hotel, or Both services.
Admin Approval & Quotas
Admin reviews KYC, establishes search/book rate limits, and issues your client_id & client_secret.
Search & Direct Book
Generate 30-min Bearer token, search itineraries, and direct-book. $1.00 USD is auto-debited per ticket.
Admin Service Assignment
The Admin Panel allows granular permission management. Admin can authorize Flight Only, Hotel Only, or Both. If your application calls an unassigned service, the API responds with 403 SERVICE_NOT_ASSIGNED.
OAuth2 Authentication & Token Caching
/api/v1/auth/tokenAuthenticate your B2B account using client credentials to receive a Bearer token valid for 30 minutes (1,800 seconds).
Mandatory 30-Minute Token Caching Policy
Clients MUST store and reuse the access token across all API calls during its 30-minute validity window. Do not request a new token per search or booking. Doing so will trigger aggressive rate limits on the auth endpoint.
Request Payload (JSON)
| Field | Type | Requirement | Description |
|---|---|---|---|
| client_id | string | Required | Your agency client identifier provided by the admin team. (e.g. b2b_agent_live_9f8d3c1a) |
| client_secret | string | Required | Your private agency API key secret. Never expose this in client-side code. |
curl -X POST "https://api.flyjat.com/api/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{
"client_id": "b2b_agent_live_9f8d3c1a",
"client_secret": "sec_live_8849204820194820afedcb"
}'
{
"status": "success",
"token_type": "Bearer",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 1800,
"expires_at": "2026-10-04T23:02:21Z",
"allowed_services": ["flight", "hotel"],
"agency": {
"agency_id": "AG-7821",
"wallet_balance": 450.00,
"currency": "USD",
"ticket_cost_rate": 1.00
}
}
Search Flights
/api/v1/flights/searchSearch worldwide live flight schedules and routes for dummy flight itinerary creation.
| Parameter | Type | Requirement | Description |
|---|---|---|---|
| origin | string | Required | 3-letter IATA airport code of departure (e.g. DXB, JFK, LHR). |
| destination | string | Required | 3-letter IATA airport code of arrival. |
| departure_date | string (YYYY-MM-DD) | Required | Flight departure date. |
| return_date | string (YYYY-MM-DD) | Optional | Return flight date for round trips. |
| trip_type | string | Optional | ONE_WAY or ROUND_TRIP (default). |
| cabin_class | string | Optional | ECONOMY, BUSINESS, FIRST. |
curl -X POST "https://api.flyjat.com/api/v1/flights/search" \ -H "Authorization: Bearer" \ -H "Content-Type: application/json" \ -d '{ "origin": "DXB", "destination": "LHR", "departure_date": "2026-11-15", "return_date": "2026-11-25", "trip_type": "ROUND_TRIP", "cabin_class": "ECONOMY", "passengers": { "adults": 1 } }'
{
"status": "success",
"search_id": "srch_fl_891230491",
"total_results": 4,
"flights": [
{
"flight_token": "fl_token_77a91b2c4d5e",
"valid_until": "2026-10-04T23:32:00Z",
"airline": { "code": "EK", "name": "Emirates" },
"outbound": {
"flight_number": "EK029",
"aircraft": "Boeing 777-300ER",
"departure": { "airport": "DXB", "datetime": "2026-11-15T09:40:00" },
"arrival": { "airport": "LHR", "datetime": "2026-11-15T14:10:00" },
"duration": "7h 30m",
"stops": 0
}
}
]
}
Direct Book Flight Ticket ($1.00 USD / Passenger)
/api/v1/flights/bookDirectly issues a verifiable dummy flight reservation with active PNR code and immediately accessible PDF ticket. Auto-debited from your B2B wallet.
Pricing & PNR Guarantee
Each passenger is charged exactly $1.00 USD from your B2B pre-funded wallet. The issued PNR is verifiable on airline reservation systems and ready for visa submissions.
curl -X POST "https://api.flyjat.com/api/v1/flights/book" \ -H "Authorization: Bearer" \ -H "Content-Type: application/json" \ -d '{ "flight_token": "fl_token_77a91b2c4d5e", "validity_days": 14, "passengers": [ { "title": "MR", "first_name": "JOHN", "last_name": "DOE", "dob": "1990-05-14", "nationality": "GBR", "passport_number": "P89123891" } ] }'
{
"status": "success",
"booking_reference": "DT-FL-928174",
"pnr": "EKB84Q",
"airline": "Emirates",
"valid_until": "2026-10-18T22:45:00Z",
"commercial": {
"passenger_count": 1,
"rate_per_passenger_usd": 1.00,
"total_debited_usd": 1.00,
"remaining_wallet_balance_usd": 449.00
},
"documents": {
"ticket_pdf_url": "https://api.flyjat.com/flight-booking-pdf?booking_ref=DT-FL-928174",
"verification_url": "https://flyjat.com/verify/EKB84Q"
}
}
Search Hotels
/api/v1/hotels/searchSearch hotel accommodations across global destinations for dummy hotel reservation vouchers.
curl -X POST "https://api.flyjat.com/api/v1/hotels/search" \ -H "Authorization: Bearer" \ -H "Content-Type: application/json" \ -d '{ "destination": "Paris", "check_in": "2026-11-15", "check_out": "2026-11-20", "rooms": 1, "guests": { "adults": 2 } }'
{
"status": "success",
"search_id": "srch_ht_1120934",
"total_hotels": 3,
"hotels": [
{
"hotel_token": "ht_opt_44f128bc9a",
"hotel_name": "Novotel Central Paris",
"stars": 4,
"address": "45 Avenue Montaigne, Paris",
"room_type": "Executive Queen Suite",
"board_basis": "Room Only"
}
]
}
Direct Book Hotel Voucher ($1.00 USD / Guest)
/api/v1/hotels/bookDirectly issues verified dummy hotel reservation vouchers with booking confirmation code and official hotel voucher PDF.
curl -X POST "https://api.flyjat.com/api/v1/hotels/book" \ -H "Authorization: Bearer" \ -H "Content-Type: application/json" \ -d '{ "hotel_token": "ht_opt_44f128bc9a", "validity_days": 14, "guests": [ { "title": "MR", "first_name": "JOHN", "last_name": "DOE" }, { "title": "MRS", "first_name": "JANE", "last_name": "DOE" } ] }'
{
"status": "success",
"booking_reference": "DT-HT-448291",
"hotel_confirmation_code": "HT-839201",
"hotel_name": "Novotel Central Paris",
"commercial": {
"guest_count": 2,
"rate_per_guest_usd": 1.00,
"total_debited_usd": 2.00,
"remaining_wallet_balance_usd": 447.00
},
"documents": {
"voucher_pdf_url": "https://api.flyjat.com/hotel-booking-pdf?booking_ref=DT-HT-448291"
}
}
Agency Balance & Quotas Telemetry
/api/v1/agent/quota-balanceInspect your current wallet funds, service entitlements, and remaining daily, monthly, and yearly search/booking counters in real time.
curl -X GET "https://api.flyjat.com/api/v1/agent/quota-balance" \ -H "Authorization: Bearer"
{
"status": "success",
"agency": {
"agency_id": "AG-7821",
"wallet_balance_usd": 447.00,
"ticket_unit_rate_usd": 1.00
},
"service_entitlements": {
"flight_search": true,
"flight_booking": true,
"hotel_search": true,
"hotel_booking": true
},
"quotas": {
"searches": {
"hourly": { "limit": 60, "used": 4, "remaining": 56 },
"monthly": { "limit": 5000, "used": 380, "remaining": 4620 }
},
"bookings": {
"hourly": { "limit": 60, "used": 2, "remaining": 58 },
"monthly": { "limit": 1000, "used": 48, "remaining": 952 }
},
"in_panel_tester": {
"hourly": { "limit": 5, "note": "Max 5 test requests per hour inside the B2B agent panel" }
}
}
}
Public API Production Limits & In-Panel Testing
Standard production throughput quotas and developer testing limitations.
Every API response provides live telemetry in response headers so your software can adapt smoothly:
X-RateLimit-Search-Hourly-Limit: 60 X-RateLimit-Search-Hourly-Remaining: 56 X-RateLimit-Booking-Hourly-Limit: 60 X-RateLimit-Booking-Hourly-Remaining: 58 X-RateLimit-Search-Monthly-Limit: 5000 X-RateLimit-Booking-Monthly-Limit: 1000 X-RateLimit-Reset: 1728086400
Error Response Schema
| HTTP Code | Error Code | Cause & Resolution |
|---|---|---|
401 Unauthorized |
TOKEN_EXPIRED |
Bearer token exceeded 30 minutes. Re-authenticate via POST /api/v1/auth/token. |
402 Payment Required |
INSUFFICIENT_WALLET |
Agency wallet balance is under $1.00 USD. Recharge via B2B agency portal. |
403 Forbidden |
SERVICE_NOT_ASSIGNED |
Service not authorized for your agency (e.g. Flight Only assigned, but attempted Hotel booking). |
429 Too Many Requests |
RATE_LIMIT_EXCEEDED |
Daily, Monthly, or Yearly quota exceeded. Contact admin to upgrade capacity. |
Frequently Asked Questions (FAQ)
Technical answers, integration standards, rate policies, and billing details for engineering teams.
What is the Dummy Ticket API?
The Dummy Ticket API is a high-speed RESTful JSON API that enables OTAs, B2B travel agents, visa consultants, and corporate travel platforms to programmatically search flight routes, issue authentic airline reservations with live verifiable PNRs, and generate customized PDF e-tickets in seconds.
Are API-generated flight reservations verifiable on airline websites?
Yes. All bookings generated via the API are backed by authentic airline reservations with live verifiable 6-character PNR codes. Embassy visa officers, border officials, and travelers can verify them directly on airline websites (Emirates, Qatar Airways, Turkish Airlines, Lufthansa, British Airways, etc.) via the "Manage Booking" or "Check In" sections.
How does API authentication work?
The API uses an enterprise dual-token security architecture. You exchange your master API key for a temporary 30-minute Bearer token via POST /api/v1/auth/token. All subsequent search and booking requests send this Bearer token in the Authorization: Bearer <token> header.
What are the search and booking rate limits?
Standard production environments allow 60 searches per hour and 60 direct bookings per hour. Annual subscription plans range from Starter ($500/yr: 250 daily searches / 1,000 bookings) to Enterprise ($5,000/yr: 5,000 daily searches / 10,000 bookings). The in-panel developer sandbox allows up to 5 live test calls per hour.
What is the wholesale cost per ticket issued via API?
Tickets issued via API cost a flat wholesale rate of $1.00 USD per passenger/ticket, debited automatically in real time from your pre-funded agency wallet. There is zero commission or revenue share taken.
Can I test the API before going live in production?
Yes! Every verified B2B agent with API access has instant access to the In-Panel API Sandbox inside the agent dashboard. You can test authentication, flight searches, live flight bookings, hotel searches, and hotel vouchers with instant JSON telemetry and PDF generation up to 5 calls per hour.