{"openapi":"3.1.0","info":{"title":"Hotel Search, Rates \u0026 Reviews","version":"1.0.0","description":"![x402 Atlas](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIj48ZyBzdHJva2U9IiMxRTQwQUYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBhdGggZD0iTTI0IDdWMjhNMjQgMjhMOCA0Mk0yNCAyOEw0MCA0MiIgc3Ryb2tlLXdpZHRoPSIyLjEiLz48cGF0aCBkPSJNMjQgN0w4IDQyTTI0IDdMNDAgNDJNMTUgMjhIMzMiIHN0cm9rZS13aWR0aD0iMi43Ii8+PC9nPjxnIGZpbGw9IiMxRTQwQUYiPjxjaXJjbGUgY3g9IjgiIGN5PSI0MiIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iNDAiIGN5PSI0MiIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iMTUiIGN5PSIyOCIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iMzMiIGN5PSIyOCIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iMjQiIGN5PSIyOCIgcj0iMi45Ii8+PC9nPjxjaXJjbGUgY3g9IjI0IiBjeT0iNyIgcj0iNC4yIiBmaWxsPSIjMTRCOEE2Ii8+PC9zdmc+)\n\n**Hotel Search, Rates \u0026 Reviews** is an independently documented x402 Atlas bridge at https://hotels.use.x402atlas.com.\nThis document describes only this bridge; it does not aggregate routes, schemas,\nor content from any other bridge.\n\n## How payment works\n\nPaid operations use the [x402 payment protocol](https://x402.org) and settle in\nUSDC. Atlas supports deployments on Base, Polygon, and Arbitrum, plus configured\nSolana networks. This bridge currently advertises Arbitrum One (`eip155:42161`), Base (`eip155:8453`), Polygon (`eip155:137`), Solana mainnet (`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`).\n\n1. Send the HTTP request without a payment signature.\n2. Read the `402 Payment Required` response. Its `accepts` entries are the\n   authoritative network, asset, amount, and recipient options for that call.\n3. Select an option, sign it with an x402-compatible wallet or SDK, and repeat\n   the request with the `PAYMENT-SIGNATURE` header. The successful response is\n   returned after verification and settlement.\n\nTypeScript clients can automate the challenge, signing, and retry flow with\n[`x402-fetch`](https://www.npmjs.com/package/x402-fetch) or\n[`x402-axios`](https://www.npmjs.com/package/x402-axios). Fund a dedicated\nwallet only with the working USDC balance it needs and keep that key separate\nfrom treasury accounts.\n\n## Pricing\n\nAtlas route prices start at $0.005 per successful call. This bridge's fallback\nprice is $0.005; operations below state their exact configured price in\n`x-x402` and `x-payment-info`. The live `402` challenge remains authoritative.\n\n## Worked payment example\n\nRequest one documented operation without a signature to inspect its live terms:\n\n```bash\ncurl -i 'https://hotels.use.x402atlas.com/photos?property_token=ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE'\n# HTTP/1.1 402 Payment Required\n# Read accepts[].network, asset, amount, and payTo from this response.\n```\n\nSign one accepted option and repeat the identical request with the\n`PAYMENT-SIGNATURE` header. Do not invent or cache payment terms; read them from\nthe current challenge.\n\n## Use this API\n\n- Interactive reference: https://hotels.use.x402atlas.com/docs\n- OpenAPI 3.1 specification: https://hotels.use.x402atlas.com/openapi.json\n- Agent-readable route corpus: https://hotels.use.x402atlas.com/llms.txt\n- Endpoint index: https://hotels.use.x402atlas.com/index.json\n\nUse the operation schemas and examples below to construct requests. Copy the\nserver URL, path, method, parameters, and request body from the operation you\nwant to call. Path and query examples are concrete and can be used directly.\n\n## Atlas response metadata\n\nSuccessful JSON responses include an additive top-level `_atlas` block, kept\nseparate from the bridge's data fields. `_atlas.docs` links this bridge's\n`/llms.txt` corpus. `_atlas.related` suggests adjacent APIs, each with a callable\n`url`, its own `docs` link, and a short `summary`. Suppress this block by sending\n`X-Atlas-Meta: none` or by adding `?_atlas=0` to the request.\n\n## Errors and compatibility\n\nValidation failures use HTTP `400`. Paid operations may return `402` before\ndispatch. Upstream and internal failures use the documented `5xx` responses.\nClients should rely on documented fields and tolerate additive response fields,\nincluding `_atlas` unless they explicitly opt out.\n\n## Protocol reference\n\n- x402 protocol and SDKs: https://x402.org","x-guidance":"Use the operation schemas and examples to construct requests. Paid operations return an HTTP 402 challenge with the authoritative payment terms."},"servers":[{"url":"https://hotels.use.x402atlas.com"}],"tags":[{"name":"Hotel Search, Rates \u0026 Reviews"}],"paths":{"/photos":{"get":{"description":"Hotel photos: pass the `property_token` from a `/search` or `/property` result and get the hotel's photo library grouped into themed sections (\"At a glance\", \"Bedroom\", \"Bathroom\", \"Exterior\", …). Each section reports how many photos exist in total and carries its own `next_page_token`; each photo carries a full-size `photo_url`, a `thumbnail_url`, pixel `width`/`height`, the contributing `source`, when it was `posted_on` and a `source_url`. Pass a section's token back as `next_page_token` to page deeper. A hotel with no photos returns 200 with an empty `sections` list.\n\n**Price:** $0.02 per call.","operationId":"hotels_GET_photos","parameters":[{"name":"next_page_token","in":"query","description":"next_page_token from a section of a previous response, to page deeper","schema":{"description":"next_page_token from a section of a previous response, to page deeper","type":"string"}},{"name":"property_token","in":"query","required":true,"description":"Property token from a /hotels/search result","schema":{"description":"Property token from a /hotels/search result","minLength":1,"type":"string"},"example":"ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"property_token":{"type":"string"},"queried_at":{"description":"Time the lookup ran (UTC)","format":"date-time","type":"string"},"sections":{"items":{"properties":{"next_page_token":{"description":"Pass back as next_page_token to page this section","type":"string"},"photos":{"items":{"properties":{"height":{"type":"integer"},"photo_url":{"type":"string"},"posted_on":{"type":"string"},"source":{"type":"string"},"source_url":{"type":"string"},"thumbnail_url":{"type":"string"},"width":{"type":"integer"}},"type":"object"},"type":"array"},"title":{"description":"Theme of the section","type":"string"},"total":{"description":"Photos available in this section","type":"integer"}},"type":"object"},"type":"array"}},"required":["queried_at","property_token","sections"],"type":"object"},"example":{"property_token":"ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","queried_at":"2026-07-25T12:00:00Z","sections":[{"photos":[{"height":3808,"photo_url":"https://lh3.googleusercontent.com/gps-cs-s/AHRPTWlmfVGuxcjg0adrdBKKM7-nVLzU-WTpVO3W_5piuLWb5QnRaDzSEGz0epxpA6li2WTSuKL3qJteiEZRP8rXMOIJA5m30YWVcvETuiPzlz1yCw9GC4ygfY3c8G74_28mXNu3l6j0-w_fiiU=s5059","posted_on":"2025-08-19","source":"Owner Submitted","source_url":"https://maps.google.com/maps/contrib/117464852068129788026","thumbnail_url":"https://lh3.googleusercontent.com/gps-cs-s/AHRPTWlmfVGuxcjg0adrdBKKM7-nVLzU-WTpVO3W_5piuLWb5QnRaDzSEGz0epxpA6li2WTSuKL3qJteiEZRP8rXMOIJA5m30YWVcvETuiPzlz1yCw9GC4ygfY3c8G74_28mXNu3l6j0-w_fiiU=w253-h190-k-no","width":5059}],"title":"At a glance","total":201}]}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Hotel photos — a hotel's photo library by property token, grouped into themed sections with full-size URLs, thumbnails, dimensions \u0026 paging.","tags":["Hotel Search, Rates \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.02","service_name":"Hotel Search, Rates \u0026 Reviews"}}},"/property":{"get":{"description":"Hotel details: pass the `property_token` from a `/search` result and get the hotel's full profile — address, directions, phone, coordinates, check-in/out times, star class, guest rating and star histogram, themed review breakdowns, full and grouped amenity lists, health \u0026 safety and sustainability practices, third-party review scores, images, nearby places, the typical price range, and every booking source's nightly/total rate (featured offers include per-room rates and inclusions).\n\nDates are optional: `check_in_date` / `check_out_date` (YYYY-MM-DD) default to a rolling tomorrow + 2 nights, so rates are always priceable. `adults`, `children`, `currency`, `gl` and `hl` shape the quote and the locale. The response also carries ready-made `reviews_link` and `photos_link` pointing at this API's `/reviews` and `/photos` routes.\n\n**Price:** $0.02 per call.","operationId":"hotels_GET_property","parameters":[{"name":"adults","in":"query","description":"Number of adults","schema":{"default":2,"description":"Number of adults","maximum":20,"minimum":1,"type":"integer"},"example":2},{"name":"check_in_date","in":"query","description":"Check-in date YYYY-MM-DD; defaults to tomorrow","schema":{"description":"Check-in date YYYY-MM-DD; defaults to tomorrow","format":"date","type":"string"}},{"name":"check_out_date","in":"query","description":"Check-out date YYYY-MM-DD; defaults to check-in + 2 nights","schema":{"description":"Check-out date YYYY-MM-DD; defaults to check-in + 2 nights","format":"date","type":"string"}},{"name":"children","in":"query","description":"Number of children","schema":{"default":0,"description":"Number of children","maximum":20,"minimum":0,"type":"integer"}},{"name":"currency","in":"query","description":"Three-letter currency code for the rates","schema":{"default":"USD","description":"Three-letter currency code for the rates","maxLength":3,"minLength":3,"type":"string"},"example":"USD"},{"name":"gl","in":"query","description":"Two-letter country code for the search locale","schema":{"default":"us","description":"Two-letter country code for the search locale","maxLength":2,"minLength":2,"type":"string"},"example":"us"},{"name":"hl","in":"query","description":"Language code for the results","schema":{"default":"en","description":"Language code for the results","maxLength":5,"type":"string"},"example":"en"},{"name":"property_token","in":"query","required":true,"description":"Property token from a /hotels/search result","schema":{"description":"Property token from a /hotels/search result","minLength":1,"type":"string"},"example":"ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"check_in_date":{"format":"date","type":"string"},"check_out_date":{"format":"date","type":"string"},"property":{"properties":{"address":{"type":"string"},"amenities":{"items":{"type":"string"},"type":"array"},"amenities_detailed":{"type":"object"},"check_in_time":{"type":"string"},"check_out_time":{"type":"string"},"description":{"type":"string"},"directions":{"type":"string"},"excluded_amenities":{"items":{"type":"string"},"type":"array"},"extracted_hotel_class":{"type":"integer"},"featured_prices":{"items":{"properties":{"benefits":{"type":"string"},"discount_remarks":{"items":{"type":"string"},"type":"array"},"free_cancellation":{"type":"boolean"},"link":{"type":"string"},"logo":{"type":"string"},"num_guests":{"type":"integer"},"official":{"type":"boolean"},"rate_per_night":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"},"rooms":{"items":{"properties":{"images":{"items":{"type":"string"},"type":"array"},"link":{"type":"string"},"name":{"type":"string"},"num_guests":{"type":"integer"},"rate_per_night":{"type":"object"},"rates":{"items":{"properties":{"breakfast_included":{"type":"boolean"},"free_cancellation":{"type":"boolean"},"inclusions":{"items":{"type":"string"},"type":"array"},"link":{"type":"string"},"num_guests":{"type":"integer"},"rate_per_night":{"type":"object"},"total_rate":{"type":"object"}},"type":"object"},"type":"array"},"total_rate":{"type":"object"}},"type":"object"},"type":"array"},"source":{"description":"Booking site","type":"string"},"total_rate":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"gps_coordinates":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"type":"object"},"health_and_safety":{"type":"object"},"hotel_class":{"type":"string"},"images":{"items":{"type":"object"},"type":"array"},"link":{"type":"string"},"location_rating":{"type":"number"},"name":{"type":"string"},"nearby_places":{"items":{"type":"object"},"type":"array"},"other_reviews":{"items":{"type":"object"},"type":"array"},"overall_rating":{"type":"number"},"phone":{"type":"string"},"phone_link":{"type":"string"},"photos_link":{"type":"string"},"prices":{"items":{"properties":{"benefits":{"type":"string"},"discount_remarks":{"items":{"type":"string"},"type":"array"},"free_cancellation":{"type":"boolean"},"link":{"type":"string"},"logo":{"type":"string"},"num_guests":{"type":"integer"},"official":{"type":"boolean"},"rate_per_night":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"},"rooms":{"items":{"properties":{"images":{"items":{"type":"string"},"type":"array"},"link":{"type":"string"},"name":{"type":"string"},"num_guests":{"type":"integer"},"rate_per_night":{"type":"object"},"rates":{"items":{"properties":{"breakfast_included":{"type":"boolean"},"free_cancellation":{"type":"boolean"},"inclusions":{"items":{"type":"string"},"type":"array"},"link":{"type":"string"},"num_guests":{"type":"integer"},"rate_per_night":{"type":"object"},"total_rate":{"type":"object"}},"type":"object"},"type":"array"},"total_rate":{"type":"object"}},"type":"object"},"type":"array"},"source":{"description":"Booking site","type":"string"},"total_rate":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"property_token":{"type":"string"},"rate_per_night":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"},"ratings":{"items":{"type":"object"},"type":"array"},"reviews":{"type":"integer"},"reviews_breakdown":{"items":{"type":"object"},"type":"array"},"reviews_link":{"type":"string"},"sustainability":{"type":"object"},"total_rate":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"},"type":{"type":"string"},"typical_price_range":{"type":"object"}},"required":["name"],"type":"object"},"queried_at":{"format":"date-time","type":"string"}},"required":["queried_at","property"],"type":"object"},"example":{"property":{"address":"Jl. Kartika Plaza, Tuban, Kec. Kuta, Kabupaten Badung, Bali 80361, Indonesia","amenities":["Free breakfast","Free Wi-Fi","Free parking","Outdoor pool","Spa"],"check_in_time":"3:00 PM","check_out_time":"11:00 AM","extracted_hotel_class":5,"gps_coordinates":{"latitude":-8.7322397,"longitude":115.1659119},"hotel_class":"5-star hotel","link":"https://www.theanvayabali.com/","name":"The Anvaya Beach Resort Bali","overall_rating":4.7,"phone":"+62 361 2090477","photos_link":"https://hotels.use.x402atlas.com/photos?property_token=ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","prices":[{"num_guests":2,"official":true,"rate_per_night":{"extracted_lowest":149,"lowest":"$149"},"source":"The Anvaya Beach Resort Bali"}],"property_token":"ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","rate_per_night":{"before_taxes_fees":"$119","extracted_before_taxes_fees":119,"extracted_lowest":145,"lowest":"$145"},"reviews":14899,"reviews_link":"https://hotels.use.x402atlas.com/reviews?property_token=ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","total_rate":{"extracted_lowest":289,"lowest":"$289"},"type":"hotel"},"queried_at":"2026-07-25T12:00:00Z"}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Hotel details \u0026 rates — one hotel's full profile by property token: address, phone, per-booking-site nightly \u0026 total rates, rooms, amenities \u0026 review breakdown as clean JSON.","tags":["Hotel Search, Rates \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.02","service_name":"Hotel Search, Rates \u0026 Reviews"}}},"/reviews":{"get":{"description":"Hotel reviews: pass the `property_token` from a `/search` or `/property` result and get guest reviews — author (name, profile link, avatar), source, rating and its scale, date, the review text, per-aspect subratings (rooms, service, location), highlighted attributes with quoted snippets, hotel highlights, and the property's own response where one exists.\n\nOptional `category_token` (from a `reviews_breakdown` entry returned by `/search` or `/property`) narrows the reviews to one theme, e.g. only what guests said about the location; optional `source_number` (from an `other_reviews` entry of `/property`) narrows them to one third-party review site. `hl` sets the language. Page with `next_page_token` from the previous response. A hotel with no reviews returns 200 with an empty `reviews` list.\n\n**Price:** $0.02 per call.","operationId":"hotels_GET_reviews","parameters":[{"name":"category_token","in":"query","description":"category_token from a reviews_breakdown entry, to read one theme only","schema":{"description":"category_token from a reviews_breakdown entry, to read one theme only","type":"string"}},{"name":"hl","in":"query","description":"Language code for the reviews","schema":{"default":"en","description":"Language code for the reviews","maxLength":5,"type":"string"},"example":"en"},{"name":"next_page_token","in":"query","description":"next_page_token from a previous response, to fetch the next page","schema":{"description":"next_page_token from a previous response, to fetch the next page","type":"string"}},{"name":"property_token","in":"query","required":true,"description":"Property token from a /hotels/search result","schema":{"description":"Property token from a /hotels/search result","minLength":1,"type":"string"},"example":"ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE"},{"name":"source_number","in":"query","description":"source_number from an other_reviews entry, to read one third-party site's reviews","schema":{"description":"source_number from an other_reviews entry, to read one third-party site's reviews","type":"integer"}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"category_token":{"description":"Echoed when the reviews were narrowed to one theme","type":"string"},"next_page_token":{"description":"Pass back as next_page_token for the next page","type":"string"},"property_token":{"type":"string"},"queried_at":{"description":"Time the lookup ran (UTC)","format":"date-time","type":"string"},"reviews":{"items":{"properties":{"attributes":{"items":{"properties":{"name":{"type":"string"},"snippet":{"type":"string"}},"type":"object"},"type":"array"},"best_rating":{"description":"The rating scale's maximum","type":"integer"},"date":{"type":"string"},"hotel_highlights":{"items":{"type":"string"},"type":"array"},"rating":{"description":"Guest rating, including fractional scores","type":"number"},"response":{"description":"The property's reply","properties":{"date":{"type":"string"},"snippet":{"type":"string"}},"type":"object"},"snippet":{"description":"The review text","type":"string"},"source":{"type":"string"},"source_icon":{"type":"string"},"subratings":{"properties":{"location":{"type":"integer"},"rooms":{"type":"integer"},"service":{"type":"integer"}},"type":"object"},"user":{"properties":{"link":{"type":"string"},"name":{"type":"string"},"thumbnail":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"source_number":{"description":"Echoed when the reviews were narrowed to one third-party site","type":"integer"}},"required":["queried_at","property_token","reviews"],"type":"object"},"example":{"next_page_token":"CjEIARIpCgoAP7_LACda____EhCB3gky7h3XYNgvXm4AAAAAGgn92PoCYUlVH7AYACIA:10","property_token":"ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","queried_at":"2026-07-25T12:00:00Z","reviews":[{"best_rating":5,"date":"4 months ago","hotel_highlights":["Romantic"],"rating":4,"snippet":"What a beautiful place to stay! The location is perfect. The breakfast buffet was amazing — huge and full of variety. The pool area is absolutely beautiful and a perfect spot to unwind.","source":"Google","subratings":{"location":5,"rooms":4,"service":4},"user":{"link":"https://www.google.com/maps/contrib/100815052880274933640?hl=en","name":"Ramandeep kaur"}}]}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Hotel reviews — a hotel's guest reviews by property token: rating, date, text, per-aspect subratings, highlights \u0026 the owner's reply, with category filter \u0026 paging.","tags":["Hotel Search, Rates \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.02","service_name":"Hotel Search, Rates \u0026 Reviews"}}},"/search":{"get":{"description":"Hotel search: pass a destination `query` (\"hotels in Barcelona\", \"Bali resorts\", \"Marriott Times Square\") and get back matching hotels and vacation rentals with live nightly and total rates for the stay window, star class, guest rating, review counts and themed review breakdowns, amenities, images, coordinates and nearby places.\n\nDates are optional: `check_in_date` / `check_out_date` (YYYY-MM-DD) default to a rolling tomorrow + 2 nights, so a request without dates always returns priceable results. Occupancy (`adults`, `children`, `children_ages`), `currency`, locale (`gl`, `hl`) and filters (`sort_by`, `rating`, `min_price`, `max_price`, `hotel_class`, `amenities`, `property_types`, `brands`, `free_cancellation`, `special_offers`, `eco_certified`, `vacation_rentals`, `bedrooms`, `bathrooms`) narrow the result set.\n\nEach property carries a `property_token` plus ready-made `details_link`, `reviews_link` and `photos_link` pointing at this API's `/property`, `/reviews` and `/photos` routes. Page with `next_page_token`. A destination with no matches returns 200 with an empty `properties` list; an omitted `query` returns this route's sample response (the declared example plus a `note`).\n\n**Price:** $0.05 per call.","operationId":"hotels_GET_search","parameters":[{"name":"adults","in":"query","description":"Number of adults","schema":{"default":2,"description":"Number of adults","maximum":20,"minimum":1,"type":"integer"},"example":2},{"name":"amenities","in":"query","description":"Comma-separated amenity filter ids","schema":{"description":"Comma-separated amenity filter ids","type":"string"}},{"name":"bathrooms","in":"query","description":"Minimum bathrooms (vacation rentals only)","schema":{"description":"Minimum bathrooms (vacation rentals only)","maximum":10,"minimum":0,"type":"integer"}},{"name":"bedrooms","in":"query","description":"Minimum bedrooms (vacation rentals only)","schema":{"description":"Minimum bedrooms (vacation rentals only)","maximum":10,"minimum":0,"type":"integer"}},{"name":"brands","in":"query","description":"Comma-separated hotel brand ids (see the brands block in the response)","schema":{"description":"Comma-separated hotel brand ids (see the brands block in the response)","type":"string"}},{"name":"check_in_date","in":"query","description":"Check-in date YYYY-MM-DD; defaults to tomorrow","schema":{"description":"Check-in date YYYY-MM-DD; defaults to tomorrow","format":"date","type":"string"}},{"name":"check_out_date","in":"query","description":"Check-out date YYYY-MM-DD; defaults to check-in + 2 nights","schema":{"description":"Check-out date YYYY-MM-DD; defaults to check-in + 2 nights","format":"date","type":"string"}},{"name":"children","in":"query","description":"Number of children","schema":{"default":0,"description":"Number of children","maximum":20,"minimum":0,"type":"integer"}},{"name":"children_ages","in":"query","description":"Comma-separated children ages, 1-17 (e.g. \"5,9\")","schema":{"description":"Comma-separated children ages, 1-17 (e.g. \"5,9\")","type":"string"}},{"name":"currency","in":"query","description":"Three-letter currency code for the rates","schema":{"default":"USD","description":"Three-letter currency code for the rates","maxLength":3,"minLength":3,"type":"string"},"example":"USD"},{"name":"eco_certified","in":"query","description":"Keep only eco-certified properties","schema":{"description":"Keep only eco-certified properties","type":"boolean"}},{"name":"free_cancellation","in":"query","description":"Keep only properties with free cancellation","schema":{"description":"Keep only properties with free cancellation","type":"boolean"}},{"name":"gl","in":"query","description":"Two-letter country code for the search locale","schema":{"default":"us","description":"Two-letter country code for the search locale","maxLength":2,"minLength":2,"type":"string"},"example":"us"},{"name":"hl","in":"query","description":"Language code for the results","schema":{"default":"en","description":"Language code for the results","maxLength":5,"type":"string"},"example":"en"},{"name":"hotel_class","in":"query","description":"Comma-separated star classes to keep, from 2,3,4,5","schema":{"description":"Comma-separated star classes to keep, from 2,3,4,5","type":"string"}},{"name":"max_price","in":"query","description":"Maximum nightly price filter","schema":{"description":"Maximum nightly price filter","minimum":0,"type":"number"}},{"name":"min_price","in":"query","description":"Minimum nightly price filter","schema":{"description":"Minimum nightly price filter","minimum":0,"type":"number"}},{"name":"next_page_token","in":"query","description":"next_page_token from a previous response, to fetch the next page","schema":{"description":"next_page_token from a previous response, to fetch the next page","type":"string"}},{"name":"property_types","in":"query","description":"Comma-separated property-type filter ids","schema":{"description":"Comma-separated property-type filter ids","type":"string"}},{"name":"query","in":"query","required":true,"description":"Destination, area or hotel name to search (e.g. \"hotels in Barcelona\", \"Bali resorts\")","schema":{"description":"Destination, area or hotel name to search (e.g. \"hotels in Barcelona\", \"Bali resorts\")","maxLength":200,"type":"string"},"example":"Bali Resorts"},{"name":"rating","in":"query","description":"Minimum guest rating: 7 = 3.5+, 8 = 4.0+, 9 = 4.5+","schema":{"description":"Minimum guest rating: 7 = 3.5+, 8 = 4.0+, 9 = 4.5+","enum":[7,8,9],"type":"integer"}},{"name":"sort_by","in":"query","description":"3 lowest price, 8 highest rating, 13 most reviewed","schema":{"description":"3 lowest price, 8 highest rating, 13 most reviewed","enum":[3,8,13],"type":"integer"}},{"name":"special_offers","in":"query","description":"Keep only properties running a special offer","schema":{"description":"Keep only properties running a special offer","type":"boolean"}},{"name":"vacation_rentals","in":"query","description":"Search vacation rentals instead of hotels","schema":{"description":"Search vacation rentals instead of hotels","type":"boolean"}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"ads":{"description":"Sponsored placements shown above the organic results","items":{"properties":{"amenities":{"items":{"type":"string"},"type":"array"},"details_link":{"type":"string"},"extracted_price":{"type":"number"},"free_cancellation":{"type":"boolean"},"gps_coordinates":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"type":"object"},"hotel_class":{"type":"integer"},"link":{"type":"string"},"name":{"type":"string"},"overall_rating":{"type":"number"},"price":{"type":"string"},"property_token":{"type":"string"},"reviews":{"type":"integer"},"source":{"type":"string"},"source_icon":{"type":"string"},"thumbnail":{"type":"string"}},"type":"object"},"type":"array"},"brands":{"description":"Hotel brands usable as the brands filter","items":{"properties":{"children":{"items":{"type":"object"},"type":"array"},"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"type":"array"},"check_in_date":{"format":"date","type":"string"},"check_out_date":{"format":"date","type":"string"},"next_page_token":{"description":"Pass back as next_page_token for the next page","type":"string"},"note":{"description":"Present only on a sample response (empty/omitted query): a hint to pass real parameters. The paid request ran; no upstream call was made.","type":"string"},"properties":{"items":{"properties":{"amenities":{"items":{"type":"string"},"type":"array"},"check_in_time":{"type":"string"},"check_out_time":{"type":"string"},"deal":{"type":"string"},"deal_description":{"type":"string"},"description":{"type":"string"},"details_link":{"description":"This API's /property URL for the hotel","type":"string"},"eco_certified":{"type":"boolean"},"essential_info":{"items":{"type":"string"},"type":"array"},"excluded_amenities":{"items":{"type":"string"},"type":"array"},"extracted_hotel_class":{"type":"integer"},"gps_coordinates":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"type":"object"},"health_and_safety":{"type":"object"},"hotel_class":{"type":"string"},"images":{"items":{"properties":{"original_image":{"type":"string"},"thumbnail":{"type":"string"}},"type":"object"},"type":"array"},"link":{"description":"Booking page for the property","type":"string"},"location_rating":{"type":"number"},"name":{"type":"string"},"nearby_places":{"items":{"type":"object"},"type":"array"},"overall_rating":{"type":"number"},"photos_link":{"type":"string"},"prices":{"items":{"properties":{"benefits":{"type":"string"},"discount_remarks":{"items":{"type":"string"},"type":"array"},"free_cancellation":{"type":"boolean"},"link":{"type":"string"},"logo":{"type":"string"},"num_guests":{"type":"integer"},"official":{"type":"boolean"},"rate_per_night":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"},"rooms":{"items":{"properties":{"images":{"items":{"type":"string"},"type":"array"},"link":{"type":"string"},"name":{"type":"string"},"num_guests":{"type":"integer"},"rate_per_night":{"type":"object"},"rates":{"items":{"properties":{"breakfast_included":{"type":"boolean"},"free_cancellation":{"type":"boolean"},"inclusions":{"items":{"type":"string"},"type":"array"},"link":{"type":"string"},"num_guests":{"type":"integer"},"rate_per_night":{"type":"object"},"total_rate":{"type":"object"}},"type":"object"},"type":"array"},"total_rate":{"type":"object"}},"type":"object"},"type":"array"},"source":{"description":"Booking site","type":"string"},"total_rate":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"}},"type":"object"},"type":"array"},"property_token":{"description":"Pass to /property, /reviews and /photos","type":"string"},"rate_per_night":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"},"ratings":{"items":{"properties":{"count":{"type":"integer"},"stars":{"type":"integer"}},"type":"object"},"type":"array"},"reviews":{"type":"integer"},"reviews_breakdown":{"items":{"type":"object"},"type":"array"},"reviews_link":{"type":"string"},"total_rate":{"properties":{"before_taxes_fees":{"type":"string"},"extracted_before_taxes_fees":{"type":"number"},"extracted_lowest":{"type":"number"},"lowest":{"type":"string"}},"type":"object"},"type":{"description":"hotel or vacation rental","type":"string"}},"required":["name"],"type":"object"},"type":"array"},"queried_at":{"format":"date-time","type":"string"},"query":{"type":"string"},"total_results":{"description":"Total properties matching the query upstream","type":"integer"}},"required":["query","queried_at","properties"],"type":"object"},"example":{"properties":[{"amenities":["Free breakfast","Free Wi-Fi","Free parking","Outdoor pool","Spa"],"check_in_time":"3:00 PM","check_out_time":"11:00 AM","details_link":"https://hotels.use.x402atlas.com/property?property_token=ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","extracted_hotel_class":5,"gps_coordinates":{"latitude":-8.7322397,"longitude":115.1659119},"hotel_class":"5-star hotel","link":"https://www.theanvayabali.com/","location_rating":4.7,"name":"The Anvaya Beach Resort Bali","overall_rating":4.7,"photos_link":"https://hotels.use.x402atlas.com/photos?property_token=ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","property_token":"ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","rate_per_night":{"extracted_lowest":145,"lowest":"$145"},"reviews":14899,"reviews_link":"https://hotels.use.x402atlas.com/reviews?property_token=ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE","total_rate":{"extracted_lowest":289,"lowest":"$289"},"type":"hotel"}],"queried_at":"2026-07-25T12:00:00Z","query":"Bali Resorts","total_results":15000}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Hotel search — find hotels \u0026 vacation rentals anywhere by destination with live nightly rates, star class, guest ratings, amenities, photos \u0026 coordinates as clean JSON.","tags":["Hotel Search, Rates \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.05","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.05","service_name":"Hotel Search, Rates \u0026 Reviews"}}}},"components":{"schemas":{"Error":{"properties":{"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"}},"required":["error"],"type":"object"},"PaymentRequired":{"description":"x402 payment-required envelope. The exact shape comes from the x402 SDK and includes per-network accepted payment options. See https://x402.org for the canonical schema.","type":"object"}},"securitySchemes":{"x402Payment":{"description":"Pay the route via x402 (https://x402.org). The 402 response carries the payment challenge; resubmit with a PAYMENT-SIGNATURE header.","scheme":"x402","type":"http"}}}}
