openapi: 3.2.0 info: title: Monocrawl Booking.com API version: 0.1.0 description: One key, one envelope, one credit meter across social, search, commerce and web data. contact: name: Monocrawl support url: https://www.monocrawl.com/contact termsOfService: https://www.monocrawl.com/legal/terms-and-conditions servers: - url: https://www.monocrawl.com security: - ApiKeyHeader: [] tags: - name: Booking.com paths: /v1/booking/attraction: get: operationId: booking_attraction tags: - Booking.com summary: Booking.com attraction description: 'One attraction''s page: description, price, rating and reviews, cancellation, operator, what is included and not, languages, photos, meeting and departure addresses, offers and the latest reviews. Costs 3 credits per successful live response.' parameters: - name: slug in: query required: true schema: type: string example: pr4z1zrjq9hl-skip-the-queue-tickets-into-the-lisbon-oceanarium description: The attraction's slug from booking/search-attractions (or pass url, its page) - name: url in: query required: false schema: type: string example: '' description: The attraction's page URL instead of a slug - name: currency in: query required: false schema: type: string example: GBP description: Three-letter currency code - name: language in: query required: false schema: type: string example: '' description: Language code for the site's text - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/attraction.json title: booking/attraction data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: _warnings: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} accessibility: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} additional_info: description: Optional additional info supplied by this operation. Null means unknown. type: - string - 'null' addresses: description: Optional addresses supplied by this operation. Null means unknown. type: - object - 'null' properties: attraction: description: Optional attraction supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string - 'null' city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' country: description: Optional country supplied by this operation. Null means unknown. type: - string - 'null' latitude: description: Optional latitude supplied by this operation. Null means unknown. type: - number - 'null' longitude: description: Optional longitude supplied by this operation. Null means unknown. type: - number - 'null' postcode: description: Optional postcode supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true additionalProperties: true audio_languages: description: Optional audio languages supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' bookable: description: Optional bookable supplied by this operation. Null means unknown. type: - boolean - 'null' city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' description: description: Source description; null or absent means not supplied. type: - string - 'null' destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string - 'null' free_cancellation: description: Optional free cancellation supplied by this operation. Null means unknown. type: - boolean - 'null' guide_languages: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string - 'null' labels: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' not_included: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} offers: description: Optional offers supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: availability_type: description: Optional availability type supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' additionalProperties: true operated_by: description: Optional operated by supplied by this operation. Null means unknown. type: - string - 'null' photos: description: Optional photos supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' positive_share: description: Optional positive share supplied by this operation. Null means unknown. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' ratings_count: description: Optional ratings count supplied by this operation. Null means unknown. type: - number - 'null' restrictions: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} reviews: description: Optional reviews supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: object properties: author: description: Public author information supplied with this record. type: - string - 'null' date: description: Optional date supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' language: description: Optional language supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - author properties: author: description: Public author information supplied with this record. type: - string minLength: 1 - required: - date properties: date: description: Optional date supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - language properties: language: description: Optional language supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - text properties: text: description: Source text when supplied. type: - string minLength: 1 reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' reviews_total: description: Optional reviews total supplied by this operation. Null means unknown. type: - number - 'null' selling_points: description: Optional selling points supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' short_description: description: Optional short description supplied by this operation. Null means unknown. type: - string - 'null' slug: description: Optional slug supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' whats_included: description: Optional whats included supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - accessibility properties: accessibility: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - additional_info properties: additional_info: description: Optional additional info supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - addresses properties: addresses: description: Optional addresses supplied by this operation. Null means unknown. type: - object properties: attraction: description: Optional attraction supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string - 'null' city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' country: description: Optional country supplied by this operation. Null means unknown. type: - string - 'null' latitude: description: Optional latitude supplied by this operation. Null means unknown. type: - number - 'null' longitude: description: Optional longitude supplied by this operation. Null means unknown. type: - number - 'null' postcode: description: Optional postcode supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true additionalProperties: true - required: - audio_languages properties: audio_languages: description: Optional audio languages supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - bookable properties: bookable: description: Optional bookable supplied by this operation. Null means unknown. type: - boolean - required: - city properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country_code properties: country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - description properties: description: description: Source description; null or absent means not supplied. type: - string minLength: 1 - required: - destination_id properties: destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - free_cancellation properties: free_cancellation: description: Optional free cancellation supplied by this operation. Null means unknown. type: - boolean - required: - guide_languages properties: guide_languages: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - image_url properties: image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - labels properties: labels: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - not_included properties: not_included: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - offers properties: offers: description: Optional offers supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: availability_type: description: Optional availability type supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' additionalProperties: true - required: - operated_by properties: operated_by: description: Optional operated by supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - photos properties: photos: description: Optional photos supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - positive_share properties: positive_share: description: Optional positive share supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - price properties: price: description: Source price. Currency, taxes and availability depend on the listing. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - ratings_count properties: ratings_count: description: Optional ratings count supplied by this operation. Null means unknown. type: - number - required: - restrictions properties: restrictions: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - reviews properties: reviews: description: Optional reviews supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: author: description: Public author information supplied with this record. type: - string - 'null' date: description: Optional date supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' language: description: Optional language supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - author properties: author: description: Public author information supplied with this record. type: - string minLength: 1 - required: - date properties: date: description: Optional date supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - language properties: language: description: Optional language supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - text properties: text: description: Source text when supplied. type: - string minLength: 1 - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - reviews_total properties: reviews_total: description: Optional reviews total supplied by this operation. Null means unknown. type: - number - required: - selling_points properties: selling_points: description: Optional selling points supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - short_description properties: short_description: description: Optional short description supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - slug properties: slug: description: Optional slug supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 - required: - whats_included properties: whats_included: description: Optional whats included supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - _warnings: [] accessibility: [] additional_info: example addresses: attraction: - address: example city: example country: example latitude: 0 longitude: 0 postcode: example type: example audio_languages: - example bookable: false city: example country_code: example description: example destination_id: example free_cancellation: false guide_languages: [] id: example image_url: https://example.com/example labels: [] name: example not_included: [] offers: - availability_type: example id: example operated_by: example photos: - example platform: example positive_share: example price: amount: 0 currency: example rating: 0 ratings_count: 0 restrictions: [] reviews: - author: example date: '2026-09-01T12:00:00Z' id: example language: example rating: 0 text: example reviews_count: 0 reviews_total: 0 selling_points: - example short_description: example slug: example type: example url: https://example.com/example whats_included: - example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/attraction-locations: get: operationId: booking_attraction_locations tags: - Booking.com summary: Booking.com attractions lookup description: The attractions destinations the site knows for a name, each with the id booking/search-attractions takes and how many things to do it holds, plus the named attractions that match. Costs 2 credits per successful live response. parameters: - name: query in: query required: true schema: type: string example: Lisbon description: A city or an attraction name - name: language in: query required: false schema: type: string example: '' description: Language code for the site's text - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/attraction-locations.json title: booking/attraction-locations data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: attractions: description: Optional attractions supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: category: description: Optional category supplied by this operation. Null means unknown. type: - string - 'null' city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' search_id: description: Optional search id supplied by this operation. Null means unknown. type: - string - 'null' slug: description: Optional slug supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: attractions: description: Optional attractions supplied by this operation. Null means unknown. type: - number - 'null' city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' country: description: Optional country supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - attractions properties: attractions: description: Optional attractions supplied by this operation. Null means unknown. type: - number - required: - city properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country properties: country: description: Optional country supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country_code properties: country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - destination_id properties: destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 query: description: Optional query supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - attractions: - category: example city: example country_code: example destination_id: example id: example name: example search_id: example slug: example count: 0 has_more: false items: - attractions: 0 city: example country: example country_code: example destination_id: example id: example query: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/flight-locations: get: operationId: booking_flight_locations tags: - Booking.com summary: Booking.com airport lookup description: The airports and cities the flight search knows for a name, each with the code booking/search-flights takes (LHR.AIRPORT, LON.CITY). Costs 2 credits per successful live response. parameters: - name: query in: query required: true schema: type: string example: London description: A city or airport name - name: language in: query required: false schema: type: string example: '' description: Language code for the site's text - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/flight-locations.json title: booking/flight-locations data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' city_code: description: Optional city code supplied by this operation. Null means unknown. type: - string - 'null' code: description: Optional code supplied by this operation. Null means unknown. type: - string - 'null' country: description: Optional country supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' distance_to_city: description: Optional distance to city supplied by this operation. Null means unknown. type: - object - 'null' properties: unit: description: Optional unit supplied by this operation. Null means unknown. type: - string - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' parent: description: Optional parent supplied by this operation. Null means unknown. type: - string - 'null' region: description: Optional region supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - city properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - city_code properties: city_code: description: Optional city code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - code properties: code: description: Optional code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country properties: country: description: Optional country supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country_code properties: country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - distance_to_city properties: distance_to_city: description: Optional distance to city supplied by this operation. Null means unknown. type: - object properties: unit: description: Optional unit supplied by this operation. Null means unknown. type: - string - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - image_url properties: image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - parent properties: parent: description: Optional parent supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - region properties: region: description: Optional region supplied by this operation. Null means unknown. type: - string minLength: 1 query: description: Optional query supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 has_more: false items: - city: example city_code: example code: example country: example country_code: example distance_to_city: unit: example value: 0 id: example image_url: https://example.com/example name: example parent: example region: example type: example query: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/hotel: get: operationId: booking_hotel tags: - Booking.com summary: Booking.com hotel description: 'One hotel''s page for a stay: address and position, type, the price with its per-night and all-inclusive figures, facilities and highlights, breakfast and Wi-Fi scores, sustainability tier, the important information, each room with its beds, facilities and photos, and every bookable offer with its cancellation and prepayment terms. Costs 3 credits per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '4045490' description: The hotel's number, from booking/search-hotels - name: checkin in: query required: true schema: type: string example: '2026-10-10' description: Check-in date, YYYY-MM-DD - name: checkout in: query required: true schema: type: string example: '2026-10-12' description: Check-out date, YYYY-MM-DD - name: adults in: query required: false schema: type: string example: '2' description: Adults, 1 to 30 - name: children_ages in: query required: false schema: type: string example: '' description: Children's ages, separated by commas - name: rooms in: query required: false schema: type: string example: '1' description: Rooms, 1 to 30 - name: currency in: query required: false schema: type: string example: GBP description: Three-letter currency code - name: language in: query required: false schema: type: string example: en-gb description: Language code for the site's text - name: units in: query required: false schema: type: string enum: - metric - imperial example: '' description: 'metric or imperial Accepted values: metric, imperial. Case, spaces, hyphens and underscores are interchangeable.' - name: temperature_unit in: query required: false schema: type: string enum: - c - f example: '' description: 'c or f Accepted values: c, f. Case, spaces, hyphens and underscores are interchangeable.' - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/hotel.json title: booking/hotel data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: _warnings: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} accommodation_type: description: Optional accommodation type supplied by this operation. Null means unknown. type: - string - 'null' address: description: Optional address supplied by this operation. Null means unknown. type: - string - 'null' available_rooms: description: Optional available rooms supplied by this operation. Null means unknown. type: - number - 'null' breakfast_included: description: Optional breakfast included supplied by this operation. Null means unknown. type: - boolean - 'null' breakfast_score: description: Optional breakfast score supplied by this operation. Null means unknown. type: - object - 'null' properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' word: description: Optional word supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true checkin_date: description: Optional checkin date supplied by this operation. Null means unknown. type: - string - 'null' checkout_date: description: Optional checkout date supplied by this operation. Null means unknown. type: - string - 'null' city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' closed: description: Optional closed supplied by this operation. Null means unknown. type: - boolean - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string - 'null' distance_to_centre_km: description: Optional distance to centre km supplied by this operation. Null means unknown. type: - number - 'null' district: description: Optional district supplied by this operation. Null means unknown. type: - string - 'null' facilities: description: Optional facilities supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' family_facilities: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} family_friendly: description: Optional family friendly supplied by this operation. Null means unknown. type: - boolean - 'null' highlights: description: Optional highlights supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' important_information: description: Optional important information supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' languages_spoken: description: Optional languages spoken supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' latitude: description: Optional latitude supplied by this operation. Null means unknown. type: - number - 'null' longitude: description: Optional longitude supplied by this operation. Null means unknown. type: - number - 'null' max_rooms_per_booking: description: Optional max rooms per booking supplied by this operation. Null means unknown. type: - number - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' offers: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' postcode: description: Optional postcode supplied by this operation. Null means unknown. type: - string - 'null' review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - 'null' rooms: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} sold_out: description: Optional sold out supplied by this operation. Null means unknown. type: - boolean - 'null' timezone: description: Optional timezone supplied by this operation. Null means unknown. type: - string - 'null' top_benefits: description: Optional top benefits supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' wifi_score: description: Optional wifi score supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true allOf: - anyOf: - required: - accommodation_type properties: accommodation_type: description: Optional accommodation type supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - address properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - available_rooms properties: available_rooms: description: Optional available rooms supplied by this operation. Null means unknown. type: - number - required: - breakfast_included properties: breakfast_included: description: Optional breakfast included supplied by this operation. Null means unknown. type: - boolean - required: - breakfast_score properties: breakfast_score: description: Optional breakfast score supplied by this operation. Null means unknown. type: - object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' word: description: Optional word supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - checkin_date properties: checkin_date: description: Optional checkin date supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - checkout_date properties: checkout_date: description: Optional checkout date supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - city properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - closed properties: closed: description: Optional closed supplied by this operation. Null means unknown. type: - boolean - required: - country_code properties: country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - currency properties: currency: description: Optional currency supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - destination_id properties: destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - distance_to_centre_km properties: distance_to_centre_km: description: Optional distance to centre km supplied by this operation. Null means unknown. type: - number - required: - district properties: district: description: Optional district supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - facilities properties: facilities: description: Optional facilities supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - family_facilities properties: family_facilities: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - family_friendly properties: family_friendly: description: Optional family friendly supplied by this operation. Null means unknown. type: - boolean - required: - highlights properties: highlights: description: Optional highlights supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - important_information properties: important_information: description: Optional important information supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - languages_spoken properties: languages_spoken: description: Optional languages spoken supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - latitude properties: latitude: description: Optional latitude supplied by this operation. Null means unknown. type: - number - required: - longitude properties: longitude: description: Optional longitude supplied by this operation. Null means unknown. type: - number - required: - max_rooms_per_booking properties: max_rooms_per_booking: description: Optional max rooms per booking supplied by this operation. Null means unknown. type: - number - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - offers properties: offers: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - postcode properties: postcode: description: Optional postcode supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - review_count properties: review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - required: - rooms properties: rooms: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - sold_out properties: sold_out: description: Optional sold out supplied by this operation. Null means unknown. type: - boolean - required: - timezone properties: timezone: description: Optional timezone supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - top_benefits properties: top_benefits: description: Optional top benefits supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 - required: - wifi_score properties: wifi_score: description: Optional wifi score supplied by this operation. Null means unknown. type: - number x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - _warnings: [] accommodation_type: example address: example available_rooms: 0 breakfast_included: false breakfast_score: count: 0 rating: 0 word: example checkin_date: '2026-09-01T12:00:00Z' checkout_date: '2026-09-01T12:00:00Z' city: example closed: false country_code: example currency: example destination_id: example distance_to_centre_km: 0 district: example facilities: - example family_facilities: [] family_friendly: false highlights: - example id: example important_information: - example languages_spoken: - example latitude: 0 longitude: 0 max_rooms_per_booking: 0 name: example offers: [] platform: example postcode: example review_count: 0 rooms: [] sold_out: false timezone: example top_benefits: - example type: example url: https://example.com/example wifi_score: 0 default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/hotel-availability: get: operationId: booking_hotel_availability tags: - Booking.com summary: Booking.com nightly prices description: The nights a hotel has available between two dates, each with its price and minimum stay. Costs 3 credits per successful live response. parameters: - name: id in: query required: true schema: type: string example: '4045490' description: The hotel's number, from booking/search-hotels - name: from in: query required: true schema: type: string example: '2026-12-20' description: First date, YYYY-MM-DD - name: to in: query required: true schema: type: string example: '2026-12-31' description: Last date, YYYY-MM-DD - name: adults in: query required: false schema: type: string example: '2' description: Adults, 1 to 30 - name: rooms in: query required: false schema: type: string example: '1' description: Rooms, 1 to 30 - name: currency in: query required: false schema: type: string example: GBP description: Three-letter currency code - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/hotel-availability.json title: booking/hotel-availability data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: _warnings: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} adults: description: Optional adults supplied by this operation. Null means unknown. type: - number - 'null' count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' dates: description: Optional dates supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: date: description: Optional date supplied by this operation. Null means unknown. type: - string - 'null' min_stay: description: Optional min stay supplied by this operation. Null means unknown. type: - number - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - number - 'null' additionalProperties: true from: description: Optional from supplied by this operation. Null means unknown. type: - string - 'null' hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' rooms: description: Optional rooms supplied by this operation. Null means unknown. type: - number - 'null' to: description: Optional to supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - adults properties: adults: description: Optional adults supplied by this operation. Null means unknown. type: - number - required: - currency properties: currency: description: Optional currency supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - dates properties: dates: description: Optional dates supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: date: description: Optional date supplied by this operation. Null means unknown. type: - string - 'null' min_stay: description: Optional min stay supplied by this operation. Null means unknown. type: - number - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - number - 'null' additionalProperties: true - required: - from properties: from: description: Optional from supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - hotel_id properties: hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - rooms properties: rooms: description: Optional rooms supplied by this operation. Null means unknown. type: - number - required: - to properties: to: description: Optional to supplied by this operation. Null means unknown. type: - string minLength: 1 x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - _warnings: [] adults: 0 count: 0 currency: example dates: - date: '2026-09-01T12:00:00Z' min_stay: 0 price: 0 from: example hotel_id: example platform: example rooms: 0 to: example type: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/hotel-review-scores: get: operationId: booking_hotel_review_scores tags: - Booking.com summary: Booking.com review scores description: 'How one hotel''s score breaks down: by traveller type and question (cleanliness, staff, location…) against the area''s average, by score band, and the distribution of scores. Costs 2 credits per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '4045490' description: The hotel's number, from booking/search-hotels - name: language in: query required: false schema: type: string example: en-us description: Language code for the site's text - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/hotel-review-scores.json title: booking/hotel-review-scores data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: _warnings: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} bands: description: Optional bands supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' from: description: Optional from supplied by this operation. Null means unknown. type: - number - 'null' percent: description: Optional percent supplied by this operation. Null means unknown. type: - number - 'null' to: description: Optional to supplied by this operation. Null means unknown. type: - number - 'null' word: description: Optional word supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true by_traveller_type: description: Optional by traveller type supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' questions: description: Optional questions supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true score: description: Optional score supplied by this operation. Null means unknown. type: - number - 'null' since_year: description: Optional since year supplied by this operation. Null means unknown. type: - number - 'null' traveller_type: description: Optional traveller type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true distribution: description: Optional distribution supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' percent: description: Optional percent supplied by this operation. Null means unknown. type: - number - 'null' score: description: Optional score supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - bands properties: bands: description: Optional bands supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' from: description: Optional from supplied by this operation. Null means unknown. type: - number - 'null' percent: description: Optional percent supplied by this operation. Null means unknown. type: - number - 'null' to: description: Optional to supplied by this operation. Null means unknown. type: - number - 'null' word: description: Optional word supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - by_traveller_type properties: by_traveller_type: description: Optional by traveller type supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' questions: description: Optional questions supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true score: description: Optional score supplied by this operation. Null means unknown. type: - number - 'null' since_year: description: Optional since year supplied by this operation. Null means unknown. type: - number - 'null' traveller_type: description: Optional traveller type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - distribution properties: distribution: description: Optional distribution supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' percent: description: Optional percent supplied by this operation. Null means unknown. type: - number - 'null' score: description: Optional score supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - hotel_id properties: hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string minLength: 1 x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - _warnings: [] bands: - count: 0 from: 0 percent: 0 to: 0 word: example by_traveller_type: - count: 0 questions: - {} score: 0 since_year: 0 traveller_type: example distribution: - count: 0 percent: 0 score: 0 hotel_id: example platform: example type: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/hotel-reviews: get: operationId: booking_hotel_reviews tags: - Booking.com summary: Booking.com hotel reviews description: 'Guest reviews of one hotel: title, what they liked and disliked, score, date, purpose of travel, the reviewer''s country and traveller type, the room and nights they stayed, photos and the hotel''s reply. Costs 3 credits per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '4045490' description: The hotel's number, from booking/search-hotels - name: page in: query required: false schema: type: string example: '1' description: Page number (25 a page) - name: sort in: query required: false schema: type: string x-known-values: - relevant - newest - oldest - highest - lowest x-accepted-pattern: ^sort_.*$ example: relevant description: Use relevant, newest, oldest, highest or lowest. Legacy source-issued sort_ tokens are also accepted; omit sort if no token is available. - name: language in: query required: false schema: type: string example: en-us description: Language code for the site's text - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/hotel-reviews.json title: booking/hotel-reviews data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: author: description: Public author information supplied with this record. type: - object - 'null' properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' reviews: description: Optional reviews supplied by this operation. Null means unknown. type: - number - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true cons: description: Optional cons supplied by this operation. Null means unknown. type: - string - 'null' date: description: Optional date supplied by this operation. Null means unknown. type: - string - 'null' helpful_votes: description: Optional helpful votes supplied by this operation. Null means unknown. type: - number - 'null' hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string - 'null' hotelier_response: description: Optional hotelier response supplied by this operation. Null means unknown. type: - string - 'null' hotelier_response_date: description: Optional hotelier response date supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' incentivised: description: Optional incentivised supplied by this operation. Null means unknown. type: - boolean - 'null' language: description: Optional language supplied by this operation. Null means unknown. type: - string - 'null' moderated: description: Optional moderated supplied by this operation. Null means unknown. type: - boolean - 'null' photos: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' pros: description: Optional pros supplied by this operation. Null means unknown. type: - string - 'null' score: description: Optional score supplied by this operation. Null means unknown. type: - number - 'null' stay: description: Optional stay supplied by this operation. Null means unknown. type: - object - 'null' properties: checkin: description: Optional checkin supplied by this operation. Null means unknown. type: - string - 'null' checkout: description: Optional checkout supplied by this operation. Null means unknown. type: - string - 'null' nights: description: Optional nights supplied by this operation. Null means unknown. type: - number - 'null' room: description: Optional room supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true tags: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} title: description: Source title when supplied. type: - string - 'null' travel_purpose: description: Optional travel purpose supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - author properties: author: description: Public author information supplied with this record. type: - object properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' reviews: description: Optional reviews supplied by this operation. Null means unknown. type: - number - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - cons properties: cons: description: Optional cons supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - date properties: date: description: Optional date supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - helpful_votes properties: helpful_votes: description: Optional helpful votes supplied by this operation. Null means unknown. type: - number - required: - hotel_id properties: hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - hotelier_response properties: hotelier_response: description: Optional hotelier response supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - hotelier_response_date properties: hotelier_response_date: description: Optional hotelier response date supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - incentivised properties: incentivised: description: Optional incentivised supplied by this operation. Null means unknown. type: - boolean - required: - language properties: language: description: Optional language supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - moderated properties: moderated: description: Optional moderated supplied by this operation. Null means unknown. type: - boolean - required: - photos properties: photos: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - pros properties: pros: description: Optional pros supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - score properties: score: description: Optional score supplied by this operation. Null means unknown. type: - number - required: - stay properties: stay: description: Optional stay supplied by this operation. Null means unknown. type: - object properties: checkin: description: Optional checkin supplied by this operation. Null means unknown. type: - string - 'null' checkout: description: Optional checkout supplied by this operation. Null means unknown. type: - string - 'null' nights: description: Optional nights supplied by this operation. Null means unknown. type: - number - 'null' room: description: Optional room supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - tags properties: tags: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - travel_purpose properties: travel_purpose: description: Optional travel purpose supplied by this operation. Null means unknown. type: - string minLength: 1 page: description: Optional page supplied by this operation. Null means unknown. type: - number - 'null' total: description: Source-reported total; null is unknown. type: - number - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 has_more: false hotel_id: example items: - author: avatar_url: https://example.com/example country_code: example name: example reviews: 0 type: example cons: example date: '2026-09-01T12:00:00Z' helpful_votes: 0 hotel_id: example hotelier_response: example hotelier_response_date: '2026-09-01T12:00:00Z' id: example incentivised: false language: example moderated: false photos: [] platform: example pros: example score: 0 stay: checkin: example checkout: example nights: 0 room: example tags: [] title: example travel_purpose: example type: example page: 0 total: 0 default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/hotel-rooms: get: operationId: booking_hotel_rooms tags: - Booking.com summary: Booking.com rooms and offers description: 'One hotel''s rooms for a stay and every bookable offer on them: price with its per-night and all-inclusive figures, occupancy, size, meal plan, cancellation and prepayment terms, deposit, and how many are left. Costs 3 credits per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '4045490' description: The hotel's number, from booking/search-hotels - name: checkin in: query required: true schema: type: string example: '2026-10-10' description: Check-in date, YYYY-MM-DD - name: checkout in: query required: true schema: type: string example: '2026-10-12' description: Check-out date, YYYY-MM-DD - name: adults in: query required: false schema: type: string example: '2' description: Adults, 1 to 30 - name: children_ages in: query required: false schema: type: string example: '' description: Children's ages, separated by commas - name: rooms in: query required: false schema: type: string example: '1' description: Rooms, 1 to 30 - name: currency in: query required: false schema: type: string example: GBP description: Three-letter currency code - name: language in: query required: false schema: type: string example: en-gb description: Language code for the site's text - name: units in: query required: false schema: type: string enum: - metric - imperial example: '' description: 'metric or imperial Accepted values: metric, imperial. Case, spaces, hyphens and underscores are interchangeable.' - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/hotel-rooms.json title: booking/hotel-rooms data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: _warnings: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} checkin: description: Optional checkin supplied by this operation. Null means unknown. type: - string - 'null' checkout: description: Optional checkout supplied by this operation. Null means unknown. type: - string - 'null' count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string - 'null' max_rooms_per_booking: description: Optional max rooms per booking supplied by this operation. Null means unknown. type: - number - 'null' offers: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' rooms: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} sold_out_rooms: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - checkin properties: checkin: description: Optional checkin supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - checkout properties: checkout: description: Optional checkout supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - currency properties: currency: description: Optional currency supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - hotel_id properties: hotel_id: description: Optional hotel id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - max_rooms_per_booking properties: max_rooms_per_booking: description: Optional max rooms per booking supplied by this operation. Null means unknown. type: - number - required: - offers properties: offers: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - rooms properties: rooms: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - sold_out_rooms properties: sold_out_rooms: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - _warnings: [] checkin: example checkout: example count: 0 currency: example hotel_id: example max_rooms_per_booking: 0 offers: [] platform: example rooms: [] sold_out_rooms: [] type: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/locations: get: operationId: booking_locations tags: - Booking.com summary: Booking.com destination lookup description: 'The destinations the site knows for a name: cities, districts, landmarks and hotels, each with the id and type booking/search-hotels takes and how many hotels it holds. Costs 2 credits per successful live response.' parameters: - name: query in: query required: true schema: type: string example: Manhattan description: A city, district, landmark or hotel name - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/locations.json title: booking/locations data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' country: description: Optional country supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' hotels: description: Optional hotels supplied by this operation. Null means unknown. type: - number - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string - 'null' label: description: Optional label supplied by this operation. Null means unknown. type: - string - 'null' latitude: description: Optional latitude supplied by this operation. Null means unknown. type: - number - 'null' longitude: description: Optional longitude supplied by this operation. Null means unknown. type: - number - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' region: description: Optional region supplied by this operation. Null means unknown. type: - string - 'null' search_type: description: Optional search type supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - city properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country properties: country: description: Optional country supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country_code properties: country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - hotels properties: hotels: description: Optional hotels supplied by this operation. Null means unknown. type: - number - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - image_url properties: image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - label properties: label: description: Optional label supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - latitude properties: latitude: description: Optional latitude supplied by this operation. Null means unknown. type: - number - required: - longitude properties: longitude: description: Optional longitude supplied by this operation. Null means unknown. type: - number - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - region properties: region: description: Optional region supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - search_type properties: search_type: description: Optional search type supplied by this operation. Null means unknown. type: - string minLength: 1 query: description: Optional query supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 has_more: false items: - city: example country: example country_code: example hotels: 0 id: example image_url: https://example.com/example label: example latitude: 0 longitude: 0 name: example region: example search_type: example type: example query: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/search-attractions: get: operationId: booking_search_attractions tags: - Booking.com summary: Booking.com things to do description: 'Things to do in a destination: name, description, price, free cancellation, rating and review count, photo and the city. Costs 3 credits per successful live response.' parameters: - name: location in: query required: false schema: type: string example: Lisbon description: A city; resolved to a destination once and remembered (or pass destination_id) - name: destination_id in: query required: false schema: type: string example: eyJ1ZmkiOi0yMTY3OTczfQ== description: A destination id from booking/attraction-locations - name: page in: query required: false schema: type: string example: '1' description: Page number - name: sort in: query required: false schema: type: string enum: - trending - attr_book_score - lowest_price example: trending description: 'trending, attr_book_score or lowest_price Accepted values: trending, attr_book_score, lowest_price. Case, spaces, hyphens and underscores are interchangeable.' - name: start_date in: query required: false schema: type: string example: '' description: First date, YYYY-MM-DD - name: end_date in: query required: false schema: type: string example: '' description: Last date, YYYY-MM-DD - name: currency in: query required: false schema: type: string example: GBP description: Three-letter currency code - name: language in: query required: false schema: type: string example: '' description: Language code for the site's text - name: types in: query required: false schema: type: string example: '' description: The site's type filters, separated by commas - name: labels in: query required: false schema: type: string example: '' description: The site's label filters, separated by commas - name: prices in: query required: false schema: type: string example: '' description: The site's price filters, separated by commas - name: areas in: query required: false schema: type: string example: '' description: The site's area filters, separated by commas - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/search-attractions.json title: booking/search-attractions data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' destination: description: Optional destination supplied by this operation. Null means unknown. type: - object - 'null' properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' country: description: Optional country supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' additionalProperties: true has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' description: description: Source description; null or absent means not supplied. type: - string - 'null' destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string - 'null' free_cancellation: description: Optional free cancellation supplied by this operation. Null means unknown. type: - boolean - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' offers: description: Optional offers supplied by this operation. Null means unknown. type: - number - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' positive_share: description: Optional positive share supplied by this operation. Null means unknown. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' ratings_count: description: Optional ratings count supplied by this operation. Null means unknown. type: - number - 'null' reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' slug: description: Optional slug supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - city properties: city: description: Optional city supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country_code properties: country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - description properties: description: description: Source description; null or absent means not supplied. type: - string minLength: 1 - required: - destination_id properties: destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - free_cancellation properties: free_cancellation: description: Optional free cancellation supplied by this operation. Null means unknown. type: - boolean - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - image_url properties: image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - offers properties: offers: description: Optional offers supplied by this operation. Null means unknown. type: - number - required: - positive_share properties: positive_share: description: Optional positive share supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - price properties: price: description: Source price. Currency, taxes and availability depend on the listing. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - ratings_count properties: ratings_count: description: Optional ratings count supplied by this operation. Null means unknown. type: - number - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - slug properties: slug: description: Optional slug supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 page: description: Optional page supplied by this operation. Null means unknown. type: - number - 'null' total: description: Source-reported total; null is unknown. type: - number - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 cursor: null destination: city: example country: example id: example has_more: false items: - city: example country_code: example description: example destination_id: example free_cancellation: false id: example image_url: https://example.com/example name: example offers: 0 platform: example positive_share: example price: amount: 0 currency: example rating: 0 ratings_count: 0 reviews_count: 0 slug: example type: example url: https://example.com/example page: 0 total: 0 default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/search-flights: get: operationId: booking_search_flights tags: - Booking.com summary: Booking.com flight search description: 'Flights between two places: each offer''s price with its base fare and tax, seats left, and every segment and leg with airports, times, carrier, flight number, cabin and luggage allowance; plus the search''s summary (cheapest fare, airlines, stops). Costs 3 credits per successful live response.' parameters: - name: from in: query required: true schema: type: string example: LON.CITY description: Departure place code from booking/flight-locations - name: to in: query required: true schema: type: string example: LIS.AIRPORT description: Arrival place code from booking/flight-locations - name: depart_date in: query required: true schema: type: string example: '2026-11-25' description: Outbound date, YYYY-MM-DD - name: return_date in: query required: false schema: type: string example: '' description: Return date, YYYY-MM-DD, for a round trip - name: adults in: query required: false schema: type: string example: '1' description: Adults, 1 to 9 - name: children_ages in: query required: false schema: type: string example: '' description: Children's ages, separated by commas - name: cabin in: query required: false schema: type: string enum: - economy - premium_economy - business - first example: economy description: 'economy, premium_economy, business or first Accepted values: economy, premium_economy, business, first. Case, spaces, hyphens and underscores are interchangeable.' - name: sort in: query required: false schema: type: string enum: - best - cheapest - fastest example: best description: 'best, cheapest or fastest Accepted values: best, cheapest, fastest. Case, spaces, hyphens and underscores are interchangeable.' - name: stops in: query required: false schema: type: string enum: - none - '0' - '1' - '2' example: '' description: 'none, 0, 1 or 2 Accepted values: none, 0, 1, 2. Case, spaces, hyphens and underscores are interchangeable.' - name: page in: query required: false schema: type: string example: '1' description: Page number - name: currency in: query required: false schema: type: string example: GBP description: Three-letter currency code - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/search-flights.json title: booking/search-flights data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: adults: description: Optional adults supplied by this operation. Null means unknown. type: - number - 'null' atol_protected: description: Optional atol protected supplied by this operation. Null means unknown. type: - string - 'null' count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' depart_date: description: Optional depart date supplied by this operation. Null means unknown. type: - string - 'null' from: description: Optional from supplied by this operation. Null means unknown. type: - string - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: base_fare: description: Optional base fare supplied by this operation. Null means unknown. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true carriers: description: Optional carriers supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true discount: description: Optional discount supplied by this operation. Null means unknown. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true fee: description: Optional fee supplied by this operation. Null means unknown. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' point_of_sale: description: Optional point of sale supplied by this operation. Null means unknown. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true price_rounded: description: Optional price rounded supplied by this operation. Null means unknown. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true segments: description: Optional segments supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true tax: description: Optional tax supplied by this operation. Null means unknown. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true token: description: Optional token supplied by this operation. Null means unknown. type: - string - 'null' trip_type: description: Optional trip type supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - base_fare properties: base_fare: description: Optional base fare supplied by this operation. Null means unknown. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - carriers properties: carriers: description: Optional carriers supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true - required: - discount properties: discount: description: Optional discount supplied by this operation. Null means unknown. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - fee properties: fee: description: Optional fee supplied by this operation. Null means unknown. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - point_of_sale properties: point_of_sale: description: Optional point of sale supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - price properties: price: description: Source price. Currency, taxes and availability depend on the listing. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - price_rounded properties: price_rounded: description: Optional price rounded supplied by this operation. Null means unknown. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - segments properties: segments: description: Optional segments supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true - required: - tax properties: tax: description: Optional tax supplied by this operation. Null means unknown. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - token properties: token: description: Optional token supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - trip_type properties: trip_type: description: Optional trip type supplied by this operation. Null means unknown. type: - string minLength: 1 page: description: Optional page supplied by this operation. Null means unknown. type: - number - 'null' summary: description: Optional summary supplied by this operation. Null means unknown. type: - object - 'null' properties: airlines: description: Optional airlines supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: code: description: Optional code supplied by this operation. Null means unknown. type: - string - 'null' count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' logo_url: description: Optional logo url supplied by this operation. Null means unknown. type: - string - 'null' min_price: description: Optional min price supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true duration_hours: description: Optional duration hours supplied by this operation. Null means unknown. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' min: description: Optional min supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true min_price: description: Optional min price supplied by this operation. Null means unknown. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true stops: description: Optional stops supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' min_price: description: Optional min price supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true stops: description: Optional stops supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true additionalProperties: true to: description: Optional to supplied by this operation. Null means unknown. type: - string - 'null' total: description: Source-reported total; null is unknown. type: - number - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - adults: 0 atol_protected: example count: 0 cursor: null depart_date: '2026-09-01T12:00:00Z' from: example has_more: false items: - base_fare: amount: 0 currency: example carriers: - {} discount: amount: 0 currency: example fee: amount: 0 currency: example platform: example point_of_sale: example price: amount: 0 currency: example price_rounded: amount: 0 currency: example segments: - {} tax: amount: 0 currency: example token: example trip_type: example type: example page: 0 summary: airlines: - code: example count: 0 logo_url: https://example.com/example min_price: {} name: example duration_hours: max: 0 min: 0 min_price: amount: 0 currency: example stops: - count: 0 min_price: {} stops: 0 to: example total: 0 default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/booking/search-hotels: get: operationId: booking_search_hotels tags: - Booking.com summary: Booking.com hotel search description: 'Hotels in a destination for a stay: name, stars, review score and count, the price for the stay, check-in and check-out times, position, photos and whether the site prefers it. Costs 3 credits per successful live response.' parameters: - name: location in: query required: false schema: type: string example: Lisbon description: A city, district, landmark or hotel name; resolved to a destination once and remembered (or pass destination_id and destination_type) - name: destination_id in: query required: false schema: type: string example: '-2167973' description: A destination id from booking/locations - name: destination_type in: query required: false schema: type: string example: CITY description: The destination's type from booking/locations - name: checkin in: query required: true schema: type: string example: '2026-10-10' description: Check-in date, YYYY-MM-DD - name: checkout in: query required: true schema: type: string example: '2026-10-12' description: Check-out date, YYYY-MM-DD - name: adults in: query required: false schema: type: string example: '2' description: Adults, 1 to 30 - name: children_ages in: query required: false schema: type: string example: '' description: Children's ages, separated by commas - name: rooms in: query required: false schema: type: string example: '1' description: Rooms, 1 to 30 - name: page in: query required: false schema: type: string example: '1' description: Page number - name: sort in: query required: false schema: type: string enum: - popularity - price - class - review_score - distance - upsort_bh - class_asc - class_desc - bayesian_review_score example: '' description: 'popularity, price, class, review_score or distance Accepted values: popularity, price, class, review_score, distance, upsort_bh, class_asc, class_desc, bayesian_review_score. Case, spaces, hyphens and underscores are interchangeable.' - name: min_price in: query required: false schema: type: string example: '' description: Minimum price per night in the currency - name: max_price in: query required: false schema: type: string example: '' description: Maximum price per night in the currency - name: filters in: query required: false schema: type: string example: '' description: The site's category filters, separated by commas (class::4, free_cancellation::1…) - name: currency in: query required: false schema: type: string example: GBP description: Three-letter currency code - name: language in: query required: false schema: type: string example: en-gb description: Language code for the site's text - name: units in: query required: false schema: type: string enum: - metric - imperial example: '' description: 'metric or imperial Accepted values: metric, imperial. Case, spaces, hyphens and underscores are interchangeable.' - name: temperature_unit in: query required: false schema: type: string enum: - c - f example: '' description: 'c or f Accepted values: c, f. Case, spaces, hyphens and underscores are interchangeable.' - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/booking/search-hotels.json title: booking/search-hotels data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: adults: description: Optional adults supplied by this operation. Null means unknown. type: - number - 'null' checkin: description: Optional checkin supplied by this operation. Null means unknown. type: - string - 'null' checkout: description: Optional checkout supplied by this operation. Null means unknown. type: - string - 'null' count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' destination: description: Optional destination supplied by this operation. Null means unknown. type: - object - 'null' properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' label: description: Optional label supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: accurate_class: description: Optional accurate class supplied by this operation. Null means unknown. type: - number - 'null' badges: description: Optional badges supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' checkin: description: Optional checkin supplied by this operation. Null means unknown. type: - object - 'null' properties: from: description: Optional from supplied by this operation. Null means unknown. type: - string - 'null' until: description: Optional until supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true checkin_date: description: Optional checkin date supplied by this operation. Null means unknown. type: - string - 'null' checkout: description: Optional checkout supplied by this operation. Null means unknown. type: - object - 'null' properties: from: description: Optional from supplied by this operation. Null means unknown. type: - string - 'null' until: description: Optional until supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true checkout_date: description: Optional checkout date supplied by this operation. Null means unknown. type: - string - 'null' country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string - 'null' images: description: Optional images supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' label: description: Optional label supplied by this operation. Null means unknown. type: - string - 'null' latitude: description: Optional latitude supplied by this operation. Null means unknown. type: - number - 'null' longitude: description: Optional longitude supplied by this operation. Null means unknown. type: - number - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' position: description: Optional position supplied by this operation. Null means unknown. type: - number - 'null' preferred: description: Optional preferred supplied by this operation. Null means unknown. type: - boolean - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - 'null' review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - 'null' review_score: description: Optional review score supplied by this operation. Null means unknown. type: - number - 'null' review_score_word: description: Optional review score word supplied by this operation. Null means unknown. type: - string - 'null' stars: description: Optional stars supplied by this operation. Null means unknown. type: - number - 'null' strikethrough_price: description: Optional strikethrough price supplied by this operation. Null means unknown. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true type: description: Optional type supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - accurate_class properties: accurate_class: description: Optional accurate class supplied by this operation. Null means unknown. type: - number - required: - badges properties: badges: description: Optional badges supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - checkin properties: checkin: description: Optional checkin supplied by this operation. Null means unknown. type: - object properties: from: description: Optional from supplied by this operation. Null means unknown. type: - string - 'null' until: description: Optional until supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - checkin_date properties: checkin_date: description: Optional checkin date supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - checkout properties: checkout: description: Optional checkout supplied by this operation. Null means unknown. type: - object properties: from: description: Optional from supplied by this operation. Null means unknown. type: - string - 'null' until: description: Optional until supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - checkout_date properties: checkout_date: description: Optional checkout date supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - country_code properties: country_code: description: Optional country code supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - currency properties: currency: description: Optional currency supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - destination_id properties: destination_id: description: Optional destination id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - image_url properties: image_url: description: Optional image url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - images properties: images: description: Optional images supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - label properties: label: description: Optional label supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - latitude properties: latitude: description: Optional latitude supplied by this operation. Null means unknown. type: - number - required: - longitude properties: longitude: description: Optional longitude supplied by this operation. Null means unknown. type: - number - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - position properties: position: description: Optional position supplied by this operation. Null means unknown. type: - number - required: - preferred properties: preferred: description: Optional preferred supplied by this operation. Null means unknown. type: - boolean - required: - price properties: price: description: Source price. Currency, taxes and availability depend on the listing. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - rank properties: rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - required: - review_count properties: review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - required: - review_score properties: review_score: description: Optional review score supplied by this operation. Null means unknown. type: - number - required: - review_score_word properties: review_score_word: description: Optional review score word supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - stars properties: stars: description: Optional stars supplied by this operation. Null means unknown. type: - number - required: - strikethrough_price properties: strikethrough_price: description: Optional strikethrough price supplied by this operation. Null means unknown. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true page: description: Optional page supplied by this operation. Null means unknown. type: - number - 'null' rooms: description: Optional rooms supplied by this operation. Null means unknown. type: - number - 'null' total: description: Source-reported total; null is unknown. type: - number - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - adults: 0 checkin: example checkout: example count: 0 cursor: null destination: id: example label: example name: example type: example has_more: false items: - accurate_class: 0 badges: - example checkin: from: example until: example checkin_date: '2026-09-01T12:00:00Z' checkout: from: example until: example checkout_date: '2026-09-01T12:00:00Z' country_code: example currency: example destination_id: example id: example image_url: https://example.com/example images: - example label: example latitude: 0 longitude: 0 name: example platform: example position: 0 preferred: false price: amount: 0 currency: example rank: 0 review_count: 0 review_score: 0 review_score_word: example stars: 0 strikethrough_price: amount: 0 currency: example type: example page: 0 rooms: 0 total: 0 default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true components: schemas: Error: type: object required: - success - error - credits_used - request_id properties: success: const: false error: type: object required: - type - message - status properties: type: type: string enum: - UNAUTHORIZED - KEY_REVOKED - KEY_LIMIT_EXCEEDED - RATE_LIMITED - INSUFFICIENT_CREDITS - RESOURCE_NOT_FOUND - INVALID_PARAMETERS - TARGET_ACCESS_DENIED - UPSTREAM_ERROR - UPSTREAM_TIMEOUT - FREE_CAPACITY_UNAVAILABLE - CAPACITY_UNAVAILABLE - ENDPOINT_NOT_FOUND - ENDPOINT_NOT_AVAILABLE - FAIR_USE_EXCEEDED - INTERNAL_ERROR message: type: string status: type: integer doc_url: type: string description: Deep link to the exact section of the errors guide for this type. details: type: object credits_used: type: - integer - 'null' description: Confirmed net charge; null when billing is pending reconciliation. Inspect error.details.billing_status and retain request_id. credits_remaining: type: integer request_id: type: string Success: type: object required: - success - platform - endpoint - data - credits_used - credits_remaining - request_id properties: _completeness: type: object description: Reported response completeness, not a guarantee of complete platform history. Missing source assertions remain unknown. properties: state: type: string enum: - complete - partial - unknown scope: type: string inspection_limited: type: boolean success: const: true platform: type: string endpoint: type: string description: The resolved path, e.g. `/v1/github/profile`. data: description: Amazon responses include marketplace.country and marketplace.domain (resolved request marketplace, UK by default). X profiles preserve location, bio_link and cover_url when supplied. TikTok profiles preserve commerce_user, seller, region, location and business_category when supplied; region identifies the account region rather than personal residence. TikTok comments use platform_default selection, which can change between fetches; keep the same video and options when following cursors. Amazon review variant is readable text. Facebook profiles preserve cover_url, following and created_at when supplied; likes_count and followers are distinct and follower totals may be rounded. Endpoint-specific normalized payload, not one universal post/profile schema. Many lists use items/count/cursor; a null cursor means no usable next cursor was supplied, not proof that all history was retrieved. Check has_more and warnings where present. Social full-profile bundles use posts_cursor and posts_pagination.next_params; retain all returned next parameters. YouTube channel bundles instead use recent_videos, cursor and recent_videos_pagination. Inspect complete/partial/legs where supplied for bounded or failed components. Optional model-derived fields are labelled, not source facts. credits_used: type: integer credits_remaining: type: integer request_id: type: string cached: type: boolean stale: type: boolean description: True only for an explicitly labelled, zero-credit reference snapshot served after a temporary upstream failure. age_seconds: type: integer minimum: 0 description: Age of a stale snapshot since its original retrieval; not reset by outage recovery. fetched_at: type: string format: date-time description: Original retrieval time of a stale snapshot, in UTC. synthetic: type: boolean description: Present and true only on the explicitly requested /sandbox surface. Synthetic responses are representative and charged 0 credits; production /v1 never returns them. degraded: type: boolean description: Reserved for sandbox compatibility. Production /v1 reports upstream failure as an error and never serves a representative fallback. securitySchemes: ApiKeyHeader: type: apiKey in: header name: x-api-key description: Your API key (`mn_…`), from the console. The recommended style. BearerKey: type: http scheme: bearer description: The same key as a Bearer token, for clients that only expose an Authorization field. Keys are never accepted in the query string — URLs leak into logs and referrers. x-provenance: method: harvested publisher: Monocrawl source: https://www.monocrawl.com/openapi.json note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json); stamped by stamp-openapi-provenance.py (roadmap#793)