Agoda
Destinations, hotel search, property detail, and flight search from Agoda, served as plain REST.
Endpoints
| Endpoint | Query params | What it returns | Price | Data up to |
|---|---|---|---|---|
GET /agoda/destinations/search |
q, type, country, exclude_countries, locale |
Destination autosuggest search. | $0.003 | 15 min |
GET /agoda/destinations/explore |
city_id, limit, locale |
Explore recommendations for a destination. | $0.003 | 15 min |
GET /agoda/destinations/country-cities |
country_id, tourist_regions, page, limit, locale |
Cities in a country. | $0.003 | 1 hr |
GET /agoda/destinations/price-trend |
city_id, from, to, los, occ, currency, all_inclusive, locale |
Historical price trend for a city. | $0.003 | 5 min |
GET /agoda/destinations/reference |
— | Destination reference data. | $0.001 | 1 hr |
GET /agoda/hotels/search |
destination, stay, currency, locale, sort_field, sort_order, sort_landmark_id, page, page_size, filters (destination/stay/filters are nested objects; see Nested parameters) |
Hotel search results for a destination. | $0.003 | 1 min |
GET /agoda/hotels/count |
destination, stay, currency, locale, filters |
Total matching hotel count. | $0.003 | 1 min |
GET /agoda/hotels/filters |
destination, stay, currency, locale, filters, groups, size |
Available hotel search filters. | $0.003 | 1 min |
GET /agoda/hotels/prices |
property_ids, stay, currency, locale |
Price-only hotel listing. | $0.003 | 1 min |
GET /agoda/properties/details |
property_ids, checkin, los, adults, children, rooms, currency, locale, blocks, include_pii, images_limit |
Full detail for one or more properties. | $0.003 | 5 min |
GET /agoda/properties/rooms |
id, checkin, los, adults, rooms, currency, locale, children_ages |
Room grid and rates for one property. | $0.003 | 15 sec |
GET /agoda/properties/reviews |
id, page, page_size, sort, traveler, language_ids, room_type_ids, provider, locale, include_reviewer_name |
Reviews for one property. | $0.003 | 5 min |
GET /agoda/properties/review-scores |
id, locale, provider_ids, include_pii |
Review score breakdown for one property. | $0.003 | 5 min |
GET /agoda/flights/airports |
q, locale |
Airport autosuggest search. | $0.003 | 15 min |
GET /agoda/flights/search |
origin, destination, depart_date, return_date, adults, children, infants, cabin, currency, locale, page, sort |
Flight search results. | $0.003 | 15 sec |
GET /agoda/flights/price-calendar |
origin, destination, cabin, trip_type, trip_duration, currency |
Flight price calendar for a route. | $0.003 | 15 min |
GET /agoda/flights/flexible-dates |
origin, destination, depart_date, return_date, cabin, currency |
Nearby-date flight price comparison. | $0.003 | 15 min |
GET /agoda/flights/amenities |
origin, destination, depart_date_time, flight_number, carrier_code, cabin_class, locale |
Amenities for one flight segment. | $0.003 | 15 min |
Nested parameters
hotels/search, hotels/count, and hotels/filters take destination (search type + place id), stay (checkin/checkout/occupancy), and filters (~25 optional fields: price range, star rating, review score, amenities, etc.) as nested objects — the gateway exposes these as dotted query keys (e.g. destination.place_id=9395&stay.checkin=2026-12-01). See the proto (proto/agoda/v1/agoda.proto) for the full field list of HotelDestination, DateOccupancy, and HotelFilters.
Prices are per call, paid in USDC with x402. "Data up to" is the cache window: a repeated call inside it returns the same data.
Calling it
# x402: no account or API key. The server answers 402 with payment instructions; an x402 client pays and repeats the request.
curl -i "https://<base-url>/agoda/destinations/search?q=Bangkok"
Responses are JSON. Field names follow the upstream source, so a response can be larger than the table above suggests.
Notes
currencyis a closed enum of 48 ISO codes.search_type,sort_field, and other selectable parameters are closed enums too.properties/details'hostProfilefield is only populated for home/NHA-style listings, not regular hotels — anullthere is not a bug.properties/reviewsandproperties/detailshide reviewer names and other personal fields unlessinclude_reviewer_name/include_piiis set.flights/searchonly reorders already-fetched results client-side whensortis set — Agoda's own backend ignores a server-side sort request.