Agoda API endpoint
Returns bookable one-way flight itineraries between two IATA airport codes for a departure date, including per-segment flight number, airline, times, layovers, aircraft type, and price. Resolve free-text city/airport names to codes first via the flight destination search endpoint.
/agoda/flights/searchQuery parameters:
origin (required) — origin IATA airport code, e.g. BKK.destination (required) — destination IATA airport code, e.g. HKT.departure_date (required) — departure date, YYYY-MM-DD.adults (optional) — adult passengers (age 12+), defaults to 1.children (optional) — child passengers (age 2-11), defaults to 0.infants (optional) — infant passengers (under age 2), defaults to 0.cabin_class (optional) — one of Economy, PremiumEconomy, Business,
First. Defaults to Economy.page (optional) — 1-indexed result page, defaults to 1.Notable response behavior:
origin/destination/departure_date, a malformed
departure_date, or an unrecognized cabin_class return 400 before any
upstream request is made.200
with an empty itineraries list, not an error.stops_count and duration on each itinerary reflect the whole
journey; each entry in segments is one flown leg, with a layover
object on any segment followed by a connection.source_url on each itinerary is Agoda's own real booking deep link for
that exact itinerary.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| bundle_ref_id | 20 | |
| price | 20 | |
| duration | 20 | “16h 45m” and 19 other values |
| stops_count | 20 | 0 to 2, median 1 |
| airline | 20 | |
| segments | 20 | median 2 entries |
| source_url | 20 | agoda.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| origin | string | Yes | Origin IATA airport code | BKK | |
| destination | string | Yes | Destination IATA airport code | HKT | |
| departure_date | string | Yes | Departure date, YYYY-MM-DD | 2026-09-15 | |
| adults | integer | No | 1 | Adult passengers (age 12+), defaults to 1 | 1 |
| children | integer | No | 0 | Child passengers (age 2-11), defaults to 0 | 0 |
| infants | integer | No | 0 | Infant passengers (under age 2), defaults to 0 | 0 |
| cabin_class | string | No | Economy | Cabin class, defaults to Economy Allowed values: Economy, PremiumEconomy, Business, First. | |
| page | integer | No | 1 | 1-indexed result page, defaults to 1 | 1 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/agoda/flights/search?origin=BKK&destination=HKT&departure_date=2026-09-15&cabin_class=Economy&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"origin": "SYD",
"destination": "BKK",
"departure_date": "2026-10-20",
"cabin_class": "Economy",
"adults": 1,
"page": 1,
"last_page": false,
"count": 1,
"itineraries": [
{
"bundle_ref_id": "783056524",
"price": {
"amount": "710",
"currency": "USD"
},
"duration": "34h 50m",
"stops_count": 2,
"airline": {
"code": "VN",
"name": "Vietnam Airlines"
},
"segments": [
{
"departure": {
"date_time": "2026-10-20T11:15",
"airport": {
"code": "SYD",
"name": "Sydney Airport",
"city": "Sydney"
}
},
"arrival": {
"date_time": "2026-10-20T16:15",
"airport": {
"code": "SGN",
"name": "Tan Son Nhat International Airport",
"city": "Ho Chi Minh City"
}
},
"duration": "9h 0m",
"cabin_class": "Economy",
"cabin_code": "ECO",
"flight_number": "772",
"airline": {
"code": "VN",
"name": "Vietnam Airlines"
},
"layover": {
"airport": "Ho Chi Minh City (SGN)",
"duration": "12h 45m layover"
},
"aircraft": "Airbus A359",
"fare_basis_code": "TLOXAU"
}
],
"source_url": "https://www.agoda.com/en-us/packages/book?cid=-1&pk=..."
}
]
}
}Request schema
No body schema
Response schema
#/definitions/agoda.flightSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | agoda.FlightSearchResponse | No | ||||
| data.adults | integer | No | 1 | |||
| data.cabin_class | string | No | Economy | |||
| data.children | integer | No | 0 | |||
| data.count | integer | No | 20 | |||
| data.departure_date | string | No | 2026-10-20 | |||
| data.destination | string | No | BKK | |||
| data.infants | integer | No | 0 | |||
| data.itineraries | array | No | ||||
| data.itineraries[].airline | agoda.FlightAirlineRef | No | ||||
| data.itineraries[].airline.code | string | No | VN | |||
| data.itineraries[].airline.name | string | No | Vietnam Airlines | |||
| data.itineraries[].bundle_ref_id | string | No | 783056524 | |||
| data.itineraries[].duration | string | No | 34h 50m | |||
| data.itineraries[].price | agoda.FlightPrice | No | ||||
| data.itineraries[].price.amount | string | No | 710 | |||
| data.itineraries[].price.currency | string | No | USD | |||
| data.itineraries[].segments | array | No | ||||
| data.itineraries[].segments[].aircraft | string | No | Airbus A359 | |||
| data.itineraries[].segments[].airline | agoda.FlightAirlineRef | No | ||||
| data.itineraries[].segments[].airline.code | string | No | VN | |||
| data.itineraries[].segments[].airline.name | string | No | Vietnam Airlines | |||
| data.itineraries[].segments[].arrival | agoda.FlightPoint | No | ||||
| data.itineraries[].segments[].arrival.airport | agoda.FlightAirportRef | No | ||||
| data.itineraries[].segments[].arrival.airport.city | string | No | Sydney | |||
| data.itineraries[].segments[].arrival.airport.code | string | No | SYD | |||
| data.itineraries[].segments[].arrival.airport.name | string | No | Sydney Airport | |||
| data.itineraries[].segments[].arrival.date_time | string | No | 2026-10-20T11:15 | |||
| data.itineraries[].segments[].cabin_class | string | No | Economy | |||
| data.itineraries[].segments[].cabin_code | string | No | ECO | |||
| data.itineraries[].segments[].departure | agoda.FlightPoint | No | ||||
| data.itineraries[].segments[].departure.airport | agoda.FlightAirportRef | No | ||||
| data.itineraries[].segments[].departure.airport.city | string | No | Sydney | |||
| data.itineraries[].segments[].departure.airport.code | string | No | SYD | |||
| data.itineraries[].segments[].departure.airport.name | string | No | Sydney Airport | |||
| data.itineraries[].segments[].departure.date_time | string | No | 2026-10-20T11:15 | |||
| data.itineraries[].segments[].duration | string | No | 9h 0m | |||
| data.itineraries[].segments[].fare_basis_code | string | No | TLOXAU | |||
| data.itineraries[].segments[].flight_number | string | No | 772 | |||
| data.itineraries[].segments[].layover | agoda.FlightLayover | No | ||||
| data.itineraries[].segments[].layover.airport | string | No | Ho Chi Minh City (SGN) | |||
| data.itineraries[].segments[].layover.duration | string | No | 12h 45m layover | |||
| data.itineraries[].source_url | string | No | https://www.agoda.com/en-us/packages/book?cid=-1&pk=... | SourceURL is Agoda's own real booking deep link for this exact itinerary, confirmed live 2026-08-05. | ||
| data.itineraries[].stops_count | integer | No | 2 | |||
| data.last_page | boolean | No | false | |||
| data.origin | string | No | SYD | |||
| data.page | integer | No | 1 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/agoda/flights/search?origin=BKK&destination=HKT&departure_date=2026-09-15&cabin_class=Economy&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"