Hotel and vacation-rental price monitoring
Agodaエンドポイントを使えば、「Hotel and vacation-rental price monitoring」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Turn Agoda's Hotels, Homes & Apartments, Things To Do, and Flights results into structured JSON — city search, hotel and home listings with pricing, activity search and detail, and one-way flight search with segment amenities, sourced from Agoda's own internal APIs. Credential-free.
Search Agoda hotels, homes, activities, and flights and get detail and amenity data as structured JSON.
エンドポイントファミリー
4
ドキュメント化されたパラメータ
31
サンプル数
8
ライブカタログスナップショット
稼働エンドポイント
8
メソッド
GET, POST
必須パラメータ
15
スキーマ参照
8
{
"platform": "Agoda",
"endpoint": "agoda-hotels-search",
"method": "GET",
"path": "/agoda/hotels/search",
"auth": "apiKey"
}ユースケース
Search Agoda hotels, homes, activities, and flights and get detail and amenity data as structured JSON.
Agodaエンドポイントを使えば、「Hotel and vacation-rental price monitoring」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Agodaエンドポイントを使えば、「Travel activity discovery」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Agodaエンドポイントを使えば、「Flight fare research」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
マネージド実行
以下の数値はすべて、稼働中のAgodaエンドポイントカタログから取得しています(エンドポイント8件、ドキュメント化されたリクエストパラメータ31個、公開レスポンススキーマ8件)。DocsとPlaygroundが参照しているカタログと同じものです。
Agodaのエンドポイントは8件、4つのリクエストファミリーに分類されています(Flights、Activities、Hotelsほか1件)。
これらのAgodaエンドポイントには31個のリクエストパラメータがドキュメント化されており、うち15個が必須です。統合コードを書く前に入力仕様をすべて確認できます。
8件のAgodaエンドポイントのうち8件が実際のサンプルレスポンスを、8件がドキュメント化されたレスポンススキーマを備えています。最初のリクエストの前に実データの形に合わせて実装できます。
Agodaのエンドポイントは成功時のスキーマに加えてエラーレスポンス(400、404、500、503)もドキュメント化しています。ブロック、レート制限、レコード欠損は空データではなく型付きのエラーとして返ります。
Agodaのエンドポイントは8個のホスト型MCPツールとして提供されており、エージェントは同じパラメータと同じJSON契約のまま、追加の実装なしに同じルートを呼び出せます。
カバレッジマップ
これらのカードは稼働中のエンドポイントカタログから生成されるため、このページはDocsとPlaygroundが使うAPIサーフェスをそのまま反映します。
/agoda/flights/search-locations
/agoda/activities/search
/agoda/hotels/search
/agoda/homes/search
エンドポイントカタログ
/agoda/hotels/searchReturns hotel search results for an Agoda city: the matching property ids for that city plus a direct link to each property's listing page. Callers may supply a known Agoda city id or a free-text city name; when both are supplied city_id takes precedence. Credential-free public data from Agoda's own hotel search.
レスポンスに関する注記
- One of `city_id` or `city` is required; supplying neither returns `400` before any upstream request is made. An explicit non-positive `city_id` also returns `400`. An unknown/unresolvable city returns `404`. - Each result only carries `property_id` and a direct `source_url` — Agoda's own search does not reliably return richer inline content (name, rating, thumbnail) credential-free. Call the hotel-detail endpoint with each `property_id` for full hotel content. Example response: ```json { "code": 200, "msg": "OK", "data": { "city_id": 9395, "page": 1, "limit": 10, "count": 10, "properties": [ { "property_id": 10630, "source_url": "https://www.agoda.com/search?cid=-1&selectedproperty=10630&city=9395" } ] } } ```
MCPツール agoda_hotels_search
/agoda/hotels/{property_id}Returns full hotel detail from Agoda: identity (name, any former name), an accommodation type code, address (street address, postal code, city, country), guest rating, a main photo, room count, hotel chain id, a long and short description, and short-form policy statements (minimum age, adult/child definitions, extra-bed and additional-room booking policy). Credential-free public data from Agoda's own hotel content source.
レスポンスに関する注記
- `property_id` must be numeric; a non-numeric or non-positive value returns `400` before any upstream request is made. - An unknown/nonexistent property id returns `404`. - `min_age` is an empty list on properties with no minimum-age policy on file; the other policy fields (`adult`, `extra_bed`, `additional`) are Agoda's own short display strings, not a structured rule schema. - `accommodation_type` is Agoda's own numeric property-type code. Known values: `34` (Hotel), `33` (Hostel), `37` (Resort), `120` (Apartment). - `main_image_url` is omitted when Agoda has no main photo on file for the property. Guest-review scores are not yet included in this response — see the endpoint's ongoing coverage notes for what is planned. Example response: ```json { "code": 200, "msg": "OK", "data": { "property_id": 10637, "display_name": "Baiyoke Sky Hotel", "accommodation_type": 34, "rating": 4, "address": { "city": {"id": 9395, "name": "Bangkok"}, "country": {"id": 106, "name": "Thailand"}, "address1": "222 Ratchaprarop Road, Ratchathewi", "postal_code": "10400" }, "main_image_url": "https://pix8.agoda.net/hotelImages/10637/-1/878a9b58ccd19eee41b98d20e388c080.jpg?ca=9&ce=1", "number_of_rooms": "659", "chain_id": 3603, "description_long": "Experience Luxury and Convenience at Baiyoke Sky Hotel. Welcome to Baiyoke Sky Hotel, a luxurious 4-star hotel located in the heart of Bangkok, Thailand...", "description_short": "Experience Luxury and Convenience at Baiyoke Sky Hotel.", "policy": { "adult": ["Guests 12 years and older are considered adults."], "extra_bed": ["Extra beds are dependent on the room you choose. Please check the individual room capacity for more details."], "additional": ["When booking more than 5 rooms, different policies and additional supplements may apply."] }, "source_url": "https://www.agoda.com/search?cid=-1&selectedproperty=10637&city=9395" } } ```
MCPツール agoda_hotel_detail
/agoda/homes/searchReturns Homes & Apartments results for an Agoda city: full listing detail for every matching property whose accommodation type is Apartment, drawn from the same city search as hotel search and filtered to non-hotel accommodation types. Callers may supply a known Agoda city id or a free-text city name; when both are supplied city_id takes precedence. Credential-free public data from Agoda's own hotel/home search.
レスポンスに関する注記
- One of `city_id` or `city` is required; supplying neither returns `400` before any upstream request is made. An unknown/unresolvable city returns `404`. - `homes` entries carry the same shape as the hotel detail endpoint's response, plus `accommodation_type`. Known `accommodation_type` values observed on Agoda: `34` (Hotel), `33` (Hostel), `37` (Resort), `120` (Apartment). This endpoint currently returns only `120` (Apartment) entries; broader vacation-home/villa coverage is a planned follow-up. - Because results are filtered down from a page of hotel-search candidates, `count` can be smaller than `limit` even when more matching homes exist on later pages — page forward with `page` to see more. Example response: ```json { "code": 200, "msg": "OK", "data": { "city_id": 9395, "page": 1, "limit": 10, "count": 1, "homes": [ { "property_id": 149146, "display_name": "Diamond Bangkok Apartment", "accommodation_type": 120, "rating": 3.5, "address": { "city": {"id": 9395, "name": "Bangkok"}, "country": {"id": 106, "name": "Thailand"} }, "source_url": "https://www.agoda.com/search?cid=-1&selectedproperty=149146&city=9395" } ] } } ```
MCPツール agoda_homes_search
/agoda/activities/searchReturns Agoda activities (tours, attractions, experiences) matching a free-text keyword and/or a city. When keyword is omitted, the resolved city's name is used instead to return a general listing of activities in that city. Callers may supply a known Agoda city id or a free-text city name for the city filter; when both are supplied city_id takes precedence. Credential-free public data from Agoda's own destination search.
レスポンスに関する注記
- At least one of `keyword`, `city_id`, or `city` is required; supplying none returns `400` before any upstream request is made. - `keyword` in the response echoes the actual search text used: the caller's own `keyword` when supplied, otherwise the resolved city name. - `city_id` filtering is best-effort: when a city filter is active, only activity results whose own city matches are kept. - A search with no matching activities returns `200` with an empty `activities` list, not an error. Example response: ```json { "code": 200, "msg": "OK", "data": { "city_id": 9395, "keyword": "chim chum", "count": 1, "activities": [ { "activity_id": 1633875, "name": "Bangkok Chim Chum | Bangkok", "city_id": 9395, "city_name": "Bangkok", "categories": [{"id": 2, "code": "FOOD_AND_DRINKS", "is_primary": true}], "source_url": "https://www.agoda.com/search?cityId=9395&selectedActivity=1633875" } ] } } ```
MCPツール agoda_activities_search
/agoda/activities/{activity_id}Returns full activity detail from Agoda: title, description, stated duration, categories, and content images. Credential-free public data from Agoda's own activity content source.
レスポンスに関する注記
- `activity_id` must be numeric; a non-numeric or non-positive value returns `400` before any upstream request is made. - An unknown/nonexistent activity id returns `404`. - `duration` and `categories` are exactly as Agoda's own content API returns them (a display-oriented duration pair, not a structured min/max range; categories are Agoda's own category codes, e.g. `FoodAndDrinks`). - `images` is a best-effort list of content images (up to 10); an activity with no supplier-provided images returns an empty list. Example response: ```json { "code": 200, "msg": "OK", "data": { "activity_id": 1633875, "title": "Bangkok Chim Chum | Bangkok", "description": "<ul><li>Savor Bangkok Chim Chum's delicious Thai hot pot.</li></ul>", "duration": {"minutes": 60, "type": "FIXED"}, "categories": ["FoodAndDrinks"], "images": [ { "url": "https://pix6.agoda.net/generic/08092caf37fb2f99eb46f81fd210201e.png?ce=3", "image_type": "SUPPLIER" } ], "source_url": "https://www.agoda.com/search?selectedActivity=1633875" } } ```
MCPツール agoda_activity_detail
/agoda/flights/search-locationsResolves a free-text city or airport name into IATA airport codes for flight search, with each city's direct and nearby airports. Credential-free public data from Agoda's own flight destination search.
レスポンスに関する注記
- An empty or missing `keyword` returns `400` before any upstream request is made. - A query with no matches returns `200` with an empty `suggestions` list, not an error. - `city_code` is only present when the location has its own distinct city-wide booking code (e.g. Bangkok's is `BKK`, matching its single main airport). Locations with no distinct city-wide code (e.g. a city served by one airport with a different code from the city name) have an empty `city_code` — use one of `airports[].code` instead. - `airports` lists airports directly serving the location; `nearby_airports` lists nearby alternates (each with a `distance_km`), only populated for some entries. Example response: ```json { "code": 200, "msg": "OK", "data": { "keyword": "Bangkok", "count": 1, "suggestions": [ { "name": "Bangkok", "city_code": "BKK", "country_code": "TH", "country_name": "Thailand", "state_name": "Bangkok Province", "airports": [ {"code": "BKK", "name": "Suvarnabhumi Airport", "lat": 13.681108, "lng": 100.747283} ] } ] } } ```
MCPツール agoda_flights_search_locations
/agoda/flights/searchReturns 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. Credential-free public data from Agoda's own flight search.
レスポンスに関する注記
- Missing `origin`/`destination`/`departure_date`, a malformed `departure_date`, or an unrecognized `cabin_class` return `400` before any upstream request is made. - Only one-way search is supported. Round-trip search is not available on this endpoint. - Agoda's own flight search is asynchronous — this endpoint transparently polls upstream until results are complete or a bounded attempt budget is exhausted, so callers always get one settled result in a single call. A route/date/passenger combination with no available inventory returns `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. Example response: ```json { "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=..." } ] } } ```
MCPツール agoda_flights_search
/agoda/flights/itinerary-amenitiesReturns real-content amenities (aircraft type, seat layout, meals, entertainment, wifi) for one or more flight segments. Copy the segments straight from a flight search response's own segment fields. Credential-free public data from Agoda's own flight content service.
レスポンスに関する注記
- An empty `segments` array, or a segment missing a required field, returns `400` before any upstream request is made. - `segments` in the response are returned in the same order as requested. - An entry with no amenity content on file returns an empty `amenities` list, not an error. Example response: ```json { "code": 200, "msg": "OK", "data": { "count": 1, "segments": [ { "flight_number": "772", "amenities": [ "A350 Widebody jet", "Alcoholic beverages available (Free)", "On-demand video (Free)", "Meal available (Free)", "3-3-3 Layout", "Fast Wifi Available (Paid)" ] } ] } } ```
MCPツール agoda_flights_itinerary_amenities
関連API
Travel & Hospitality
Build travel and lodging research workflows from structured Airbnb stay, room, availability, and review data.
Travel & Hospitality
Research hotels, restaurants, attractions, and destination pages from TripAdvisor with normalized listing and review endpoints.
Travel & Hospitality
Turn Expedia's Stays, Flights, and Things To Do results into structured JSON — destination search, hotel listings with pricing and reviews, flight offers, and activity search, sourced from the same API the official mobile app uses. Credential-free.
対象企業
Booking Holdings Inc. · BKNG
Agodaを運営するのはBooking Holdings Inc.(BKNG)です。CrawloraのSECエンドポイントは同じ企業のCIKを受け取るため、提出書類・財務・インサイダー取引・13F保有を上記のAgodaエンドポイントと同じAPIキーで取得できます。
カタログ内の他のBooking Holdings Inc.プラットフォーム
Agodaのスクレイピング方法
Agoda's Hotels, Homes, Things To Do, and Flights surfaces run on internal GraphQL APIs. Crawlora's Agoda endpoints replay these directly and return hotel and home listings, activity search and detail, and flight offers as normalized JSON — no account or signed session required.
Pass a city name to /agoda/hotels/search, /agoda/homes/search, or /agoda/activities/search for normalized listing cards.
Pass a property id to /agoda/hotels/{property_id} or an activity id to /agoda/activities/{activity_id} for full detail.
Pass origin, destination, and date to /agoda/flights/search for one-way flight offers, or resolve airports first with /agoda/flights/search-locations.
Feed travel-price dashboards and research pipelines, or re-run searches on a schedule to track price and availability changes over time.
FAQ
Send a city name to Crawlora's /agoda/hotels/search endpoint and get normalized hotel listings with current pricing as structured JSON — no account required.
Yes — /agoda/homes/search returns Agoda Homes & Apartments listings for a city, in the same normalized shape as hotel search.
Collecting publicly accessible hotel, activity, and flight data is generally permissible if you respect Agoda's terms of use, robots directives, rate limits, and applicable law. This is for public data you are authorized to collect.