openapi: 3.2.0 info: title: Monocrawl Trip Advisor 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: TripAdvisor paths: /v1/tripadvisor/attraction: get: operationId: tripadvisor_attraction tags: - TripAdvisor summary: TripAdvisor attraction description: 'An attraction page in full: rating and review count, ranking in its destination, opening hours, description, address and coordinates, website and phone, photos, nearby places, the rating histogram and the latest reviews. Costs 3 credits per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '1451754' description: Attraction id (the -d number in its URL) or the page URL - 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/tripadvisor/attraction.json title: tripadvisor/attraction data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string - 'null' awards: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} description: description: Source description; null or absent means not supplied. type: - string - 'null' details: description: Optional details 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: text: description: Source text when supplied. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true email: description: Optional email supplied by this operation. Null means unknown. type: - string - 'null' geo_id: description: Optional geo id supplied by this operation. Null means unknown. type: - string - 'null' hours: description: Optional hours supplied by this operation. Null means unknown. type: - object - 'null' properties: status: description: Optional status supplied by this operation. Null means unknown. type: - string - 'null' today: description: Optional today 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 id: description: Source identifier. Preserve the supplied type and exact value. 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' nearby: description: Optional nearby 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: items: description: Returned records. Source coverage and completeness vary. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true title: description: Source title when supplied. type: - string - 'null' additionalProperties: true phone: description: Optional phone supplied by this operation. Null means unknown. type: - string - 'null' photo_count: description: Optional photo count supplied by this operation. Null means unknown. type: - number - '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: - object - 'null' properties: attribution: description: Optional attribution supplied by this operation. Null means unknown. type: - string - 'null' caption: description: Optional caption supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' published_at: description: Source publication time when available. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' ranking: description: Optional ranking supplied by this operation. Null means unknown. type: - object - 'null' properties: of: description: Optional of supplied by this operation. Null means unknown. type: - number - 'null' rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - 'null' scope: description: Optional scope supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' rating_histogram: description: Optional rating histogram supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true 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: - object - 'null' properties: avatar: description: Optional avatar supplied by this operation. Null means unknown. type: - string - 'null' contributions: description: Optional contributions supplied by this operation. Null means unknown. type: - number - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' owner_response: description: Optional owner response supplied by this operation. Null means unknown. type: - object - 'null' properties: published: description: Optional published supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true photos: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} published: description: Optional published 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' title: description: Source title when supplied. type: - string - 'null' translated: description: Optional translated supplied by this operation. Null means unknown. type: - boolean - 'null' trip_type: description: Optional trip type supplied by this operation. Null means unknown. type: - string - 'null' visited: description: Optional visited 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: description: Optional avatar supplied by this operation. Null means unknown. type: - string - 'null' contributions: description: Optional contributions supplied by this operation. Null means unknown. type: - number - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - owner_response properties: owner_response: description: Optional owner response supplied by this operation. Null means unknown. type: - object properties: published: description: Optional published supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true - required: - photos properties: photos: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - published properties: published: description: Optional published 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: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - translated properties: translated: description: Optional translated supplied by this operation. Null means unknown. type: - boolean - required: - trip_type properties: trip_type: description: Optional trip type supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - visited properties: visited: description: Optional visited supplied by this operation. Null means unknown. type: - string minLength: 1 reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' tags: 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' url: description: Original source URL when supplied. type: - string - 'null' website: description: Optional website supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - address properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - awards properties: awards: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - description properties: description: description: Source description; null or absent means not supplied. type: - string minLength: 1 - required: - details properties: details: description: Optional details supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: text: description: Source text when supplied. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true - required: - email properties: email: description: Optional email supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - geo_id properties: geo_id: description: Optional geo id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - hours properties: hours: description: Optional hours supplied by this operation. Null means unknown. type: - object properties: status: description: Optional status supplied by this operation. Null means unknown. type: - string - 'null' today: description: Optional today 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 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. 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: - nearby properties: nearby: description: Optional nearby supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: items: description: Returned records. Source coverage and completeness vary. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true title: description: Source title when supplied. type: - string - 'null' additionalProperties: true - required: - phone properties: phone: description: Optional phone supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - photo_count properties: photo_count: description: Optional photo count supplied by this operation. Null means unknown. type: - number - 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: - object - 'null' properties: attribution: description: Optional attribution supplied by this operation. Null means unknown. type: - string - 'null' caption: description: Optional caption supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' published_at: description: Source publication time when available. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true - required: - ranking properties: ranking: description: Optional ranking supplied by this operation. Null means unknown. type: - object properties: of: description: Optional of supplied by this operation. Null means unknown. type: - number - 'null' rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - 'null' scope: description: Optional scope supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - rating_histogram properties: rating_histogram: description: Optional rating histogram supplied by this operation. Null means unknown. type: - object properties: {} additionalProperties: true - 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: - object - 'null' properties: avatar: description: Optional avatar supplied by this operation. Null means unknown. type: - string - 'null' contributions: description: Optional contributions supplied by this operation. Null means unknown. type: - number - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' owner_response: description: Optional owner response supplied by this operation. Null means unknown. type: - object - 'null' properties: published: description: Optional published supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true photos: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} published: description: Optional published 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' title: description: Source title when supplied. type: - string - 'null' translated: description: Optional translated supplied by this operation. Null means unknown. type: - boolean - 'null' trip_type: description: Optional trip type supplied by this operation. Null means unknown. type: - string - 'null' visited: description: Optional visited 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: description: Optional avatar supplied by this operation. Null means unknown. type: - string - 'null' contributions: description: Optional contributions supplied by this operation. Null means unknown. type: - number - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - owner_response properties: owner_response: description: Optional owner response supplied by this operation. Null means unknown. type: - object properties: published: description: Optional published supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true - required: - photos properties: photos: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - published properties: published: description: Optional published 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: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - translated properties: translated: description: Optional translated supplied by this operation. Null means unknown. type: - boolean - required: - trip_type properties: trip_type: description: Optional trip type supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - visited properties: visited: description: Optional visited supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - tags properties: tags: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 - required: - website properties: website: description: Optional website 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: - address: example awards: [] description: example details: - text: example title: example email: example geo_id: example hours: status: example today: - example id: example latitude: 0 longitude: 0 name: example nearby: - items: - {} title: example phone: example photo_count: 0 photos: - attribution: example caption: example id: example published_at: '2026-09-01T12:00:00Z' url: https://example.com/example platform: example ranking: of: 0 rank: 0 scope: example text: example rating: 0 rating_histogram: {} reviews: - author: avatar: https://example.com/example contributions: 0 name: example id: example owner_response: published: example text: example photos: [] published: example rating: 0 text: example title: example translated: false trip_type: example visited: example reviews_count: 0 tags: [] type: example url: https://example.com/example website: 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/tripadvisor/attraction/reviews: get: operationId: tripadvisor_attraction_reviews tags: - TripAdvisor summary: Attraction reviews description: Reviews of a attraction. Queued extraction; retrying the same inputs resumes the saved task. Up to twenty reviews, no cursor pagination. Costs 2 credits per successful live response. parameters: - name: url in: query required: true schema: type: string example: https://www.tripadvisor.com/Attraction_Review-g60763-d105127-Reviews-Central_Park-New_York_City_New_York.html description: The full attraction review-page URL - name: limit in: query required: false schema: type: string example: '10' description: 1 to 20 reviews; default 10. First page only. - name: sort in: query required: false schema: type: string enum: - most_recent - detailed_reviews example: most_recent description: 'most_recent or detailed_reviews Accepted values: most_recent, detailed_reviews. 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: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - 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/tripadvisor/attraction/reviews.json title: tripadvisor/attraction/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' 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: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' images: 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' posted_at: description: Optional posted at supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviewer: description: Optional reviewer supplied by this operation. Null means unknown. type: - object - 'null' properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true text: description: Source text when supplied. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - images properties: images: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - posted_at properties: posted_at: description: Optional posted at 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: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - reviewer properties: reviewer: description: Optional reviewer supplied by this operation. Null means unknown. type: - object properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true - required: - text properties: text: description: Source text when supplied. type: - string minLength: 1 - required: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. 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: - id: example images: [] platform: example posted_at: '2026-09-01T12:00:00Z' rating: max: 0 value: 0 votes: 0 reviewer: location: example name: example url: https://example.com/example text: example title: example url: https://example.com/example name: example rating: max: 0 value: 0 votes: 0 reviews_count: 0 url: https://example.com/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/tripadvisor/attractions: get: operationId: tripadvisor_attractions tags: - TripAdvisor summary: TripAdvisor attractions description: Attractions in a place, thirty per page, with rating, review count, category, ticket price, badges and photo. Costs 1 credit per successful live response. parameters: - name: geo_id in: query required: false schema: type: string example: '1954828' description: Place geo id from tripadvisor/autocomplete - name: query in: query required: false schema: type: string example: Walt Disney World description: Place name, resolved to a geo id when geo_id is absent - name: start_date in: query required: false schema: type: string example: '2026-10-01' description: Visit start (YYYY-MM-DD); defaults to a week ahead - name: end_date in: query required: false schema: type: string example: '2026-10-03' description: Visit end - name: sort in: query required: false schema: type: string x-values-from: data.sorts example: TRAVELER_FAVORITE_V2 description: Sort name from a previous response - name: page in: query required: false schema: type: string example: '1' description: Page of 30 - name: adults in: query required: false schema: type: string example: '1' description: Adults - name: currency in: query required: false schema: type: string example: USD description: Currency code - name: language in: query required: false schema: type: string example: en_US description: Language 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/tripadvisor/attractions.json title: tripadvisor/attractions data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. name: type: - string - 'null' description: name url: type: - string - 'null' description: url type: type: - string - 'null' description: type description: type: - string - 'null' description: description image: type: - string - 'null' description: image address: type: - string - 'null' description: address rating: anyOf: - type: - number - 'null' description: Source rating. - type: - object - 'null' properties: value: type: - number - 'null' description: value; null is unknown. votes: type: - number - 'null' description: votes; null is unknown. max: type: - number - 'null' description: max; null is unknown. additionalProperties: true reviews_count: type: - number - 'null' description: Source review count. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Exact source identifier; preserve it as a string. minLength: 1 - required: - name properties: name: type: - string description: name minLength: 1 - required: - url properties: url: type: - string description: url minLength: 1 - required: - description properties: description: type: - string description: description minLength: 1 - required: - image properties: image: type: - string description: image minLength: 1 - required: - address properties: address: type: - string description: address minLength: 1 - required: - rating properties: rating: anyOf: - type: - number - 'null' description: Source rating. - type: - object - 'null' properties: value: type: - number - 'null' description: value; null is unknown. votes: type: - number - 'null' description: votes; null is unknown. max: type: - number - 'null' description: max; null is unknown. additionalProperties: true - required: - reviews_count properties: reviews_count: type: - number description: Source review count. count: type: - number - 'null' description: Returned rows, not the total population. cursor: type: - string - 'null' description: Opaque continuation; pass unchanged. has_more: type: - boolean - 'null' description: Source continuation indicator. total: type: - number - 'null' description: Source-reported total; null means unknown. 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: - items: [] cursor: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 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/tripadvisor/autocomplete: get: operationId: tripadvisor_autocomplete tags: - TripAdvisor summary: TripAdvisor place typeahead description: Places and properties matching a name, with the geo id the hotel, restaurant and attraction searches take. Costs 1 credit per successful live response. parameters: - name: query in: query required: true schema: type: string example: London description: A place or property name - name: language in: query required: false schema: type: string example: en_US description: Language 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/tripadvisor/autocomplete.json title: tripadvisor/autocomplete 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: data_type: description: Optional data type supplied by this operation. Null means unknown. type: - string - 'null' detail: description: Optional detail supplied by this operation. Null means unknown. type: - string - 'null' document_id: description: Optional document id supplied by this operation. Null means unknown. type: - string - 'null' geo_id: description: Optional geo id 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 allOf: - anyOf: - required: - data_type properties: data_type: description: Optional data type supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - detail properties: detail: description: Optional detail supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - document_id properties: document_id: description: Optional document id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - geo_id properties: geo_id: description: Optional geo id 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 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: - data_type: example detail: example document_id: example geo_id: example name: 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: 1 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/tripadvisor/cruise: get: operationId: tripadvisor_cruise tags: - TripAdvisor summary: Cruise ship description: 'A cruise ship page: name, image, average rating and review count with the rating histogram, passengers, crew, passenger-to-crew and passenger-to-space ratios, launch year, cabin types and sizes, photo categories, whether itineraries are listed, and the newest reviews on the page. Re-wired 6 Sep 2026 on the platform''s own reader (migration 191). Costs 2 credits per successful live response.' parameters: - name: url in: query required: false schema: type: string example: https://www.tripadvisor.com/Cruise_Review-d15691709-Reviews-Pearl_Mist description: The ship page URL (Cruise_Review-d-Reviews-). Send this, or ship_id with ship_name. - name: ship_id in: query required: false schema: type: string example: '15691709' description: Ship id (the number after d in the page URL, as tripadvisor/cruises gives it) - name: ship_name in: query required: false schema: type: string example: Pearl Mist description: The ship name as it appears in the page URL - 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/tripadvisor/cruise.json title: tripadvisor/cruise data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. ship_id: type: - string - 'null' description: Exact source identifier; preserve it as a string. name: type: - string - 'null' description: name url: type: - string - 'null' description: url description: type: - string - 'null' description: description rating: type: - object - 'null' properties: value: type: - number - 'null' description: value; null is unknown. votes: type: - number - 'null' description: votes; null is unknown. max: type: - number - 'null' description: max; null is unknown. additionalProperties: true additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Exact source identifier; preserve it as a string. minLength: 1 - required: - ship_id properties: ship_id: type: - string description: Exact source identifier; preserve it as a string. minLength: 1 - required: - name properties: name: type: - string description: name minLength: 1 - required: - url properties: url: type: - string description: url minLength: 1 - required: - description properties: description: type: - string description: description minLength: 1 - required: - rating properties: rating: type: - object properties: value: type: - number - 'null' description: value; null is unknown. votes: type: - number - 'null' description: votes; null is unknown. max: type: - number - 'null' description: max; null is unknown. additionalProperties: true x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - ship_id: '123' name: Example ship 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/tripadvisor/cruise-reviews: get: operationId: tripadvisor_cruise_reviews tags: - TripAdvisor summary: Cruise ship reviews description: Reviews of a cruise ship, five a page, newest first (id, link, title, text, bubble rating, month written, author with location, contributions and helpful votes, photo count), with the ship's total review count, page count, rating histogram and a cursor to the next page. Re-wired 6 Sep 2026 on the platform's own reader (migrations 191 and 194). Costs 2 credits per successful live response. parameters: - name: url in: query required: false schema: type: string example: https://www.tripadvisor.com/Cruise_Review-d15691709-Reviews-Pearl_Mist description: The ship page URL. Send this, or ship_id with ship_name. - name: ship_id in: query required: false schema: type: string example: '15691709' description: Ship id (the number after d in the page URL) - name: ship_name in: query required: false schema: type: string example: Pearl Mist description: The ship name as it appears in the page URL - name: page in: query required: false schema: type: string example: '2' description: Page number, 1–400, five reviews a page (default 1). Use page or the returned cursor, not both. - name: cursor in: query required: false schema: type: string example: '' description: Return the previous response cursor unchanged to continue with the same source. Keep the same ship URL or ship_id and ship_name; omit page. Each fetched page costs the normal two credits. - 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: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - 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/tripadvisor/cruise-reviews.json title: tripadvisor/cruise-reviews data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. title: type: - string - 'null' description: title text: type: - string - 'null' description: text created_at: type: - string - 'null' description: created at posted_at: type: - string - 'null' description: posted at date: type: - string - 'null' description: date author: anyOf: - type: - object - 'null' properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. handle: type: - string - 'null' description: handle name: type: - string - 'null' description: name url: type: - string - 'null' description: url headline: type: - string - 'null' description: headline location: type: - string - 'null' description: location avatar_url: type: - string - 'null' description: avatar url followers: type: - number - 'null' description: Public follower count. verified: type: - boolean - 'null' description: Explicit verification flag when supplied. additionalProperties: true - type: - string - 'null' description: Public reviewer name. rating: anyOf: - type: - number - 'null' description: Source rating. - type: - object - 'null' properties: value: type: - number - 'null' description: Source rating value. max: type: - number - 'null' description: Rating scale maximum. votes: type: - number - 'null' description: Source vote count. additionalProperties: true verified_purchase: type: - boolean - 'null' description: Explicit verification only; null is unknown. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Exact source identifier; preserve it as a string. minLength: 1 - required: - title properties: title: type: - string description: title minLength: 1 - required: - text properties: text: type: - string description: text minLength: 1 - required: - created_at properties: created_at: type: - string description: created at minLength: 1 - required: - posted_at properties: posted_at: type: - string description: posted at minLength: 1 - required: - date properties: date: type: - string description: date minLength: 1 - required: - author properties: author: anyOf: - type: - object - 'null' properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. handle: type: - string - 'null' description: handle name: type: - string - 'null' description: name url: type: - string - 'null' description: url headline: type: - string - 'null' description: headline location: type: - string - 'null' description: location avatar_url: type: - string - 'null' description: avatar url followers: type: - number - 'null' description: Public follower count. verified: type: - boolean - 'null' description: Explicit verification flag when supplied. additionalProperties: true - type: - string - 'null' description: Public reviewer name. - required: - rating properties: rating: anyOf: - type: - number - 'null' description: Source rating. - type: - object - 'null' properties: value: type: - number - 'null' description: Source rating value. max: type: - number - 'null' description: Rating scale maximum. votes: type: - number - 'null' description: Source vote count. additionalProperties: true - required: - verified_purchase properties: verified_purchase: type: - boolean description: Explicit verification only; null is unknown. count: type: - number - 'null' description: Returned rows, not the total population. cursor: type: - string - 'null' description: Opaque continuation; pass unchanged. has_more: type: - boolean - 'null' description: Source continuation indicator. total: type: - number - 'null' description: Source-reported total; null means unknown. 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: - items: [] cursor: null 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/tripadvisor/cruises: get: operationId: tripadvisor_cruises tags: - TripAdvisor summary: TripAdvisor cruises description: 'Cruises sailing a region, twenty per page, with ship, line, ports, itinerary, sailings and the ship''s rating; without a destination, the list of regions. Costs 1 credit per successful live response. Limited capacity: this operation currently relies on small shared monthly allowances. Availability can end before your account credits are used. Contact support before scheduling or bulk use. Allowances are shared across customers and related operations; this is not a per-account entitlement.' parameters: - name: destination_id in: query required: false schema: type: string example: '147237' description: Cruise region id (147237 is the Caribbean); the region directory upstream is unreliable, so prefer the id - name: destination in: query required: false schema: type: string example: '' description: Region name, matched against the directory when it answers - name: sort in: query required: false schema: type: string enum: - popularity - departure_date - price - length - ship example: popularity description: 'popularity, departure_date, price, length or ship Accepted values: popularity, departure_date, price, length, ship. Case, spaces, hyphens and underscores are interchangeable.' - name: month in: query required: false schema: type: string example: '' description: Departure month, YYYY-MM - name: page in: query required: false schema: type: string example: '1' description: Page number (20 per page) - name: currency in: query required: false schema: type: string example: USD description: 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/tripadvisor/cruises.json title: tripadvisor/cruises data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: _warnings: description: Optional warnings supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record 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' additionalProperties: true filters: description: Optional filters supplied by this operation. Null means unknown. type: - object - 'null' properties: cruiseLength: description: Optional cruiseLength 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' 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' additionalProperties: true cruiseLines: description: Optional cruiseLines 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' 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' additionalProperties: true cruiseStyle: description: Optional cruiseStyle 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' 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' additionalProperties: true dealsType: description: Optional dealsType 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' 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' additionalProperties: true departingFrom: description: Optional departingFrom 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' 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' additionalProperties: true port: description: Optional port 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' 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' additionalProperties: true ship: description: Optional ship 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' 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' additionalProperties: true 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: arrival_port: description: Optional arrival port supplied by this operation. Null means unknown. type: - string - 'null' cruise_line: description: Optional cruise line 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' logo: description: Optional logo supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true departure_port: description: Optional departure port supplied by this operation. Null means unknown. type: - string - 'null' departure_ports: description: Optional departure ports supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. 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' image: description: Optional image supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' itinerary: description: Optional itinerary 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 nights: description: Optional nights supplied by this operation. Null means unknown. type: - number - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true review_snippets: description: Optional review snippets supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' sailings: description: Optional sailings 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 sailings_count: description: Optional sailings count supplied by this operation. Null means unknown. type: - number - 'null' ship: description: Optional ship supplied by this operation. Null means unknown. type: - object - 'null' properties: amenities: description: Optional amenities supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' crew: description: Optional crew supplied by this operation. Null means unknown. type: - number - 'null' highlights: description: Optional highlights supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true image: description: Optional image supplied by this operation. Null means unknown. type: - string - 'null' launched: description: Optional launched supplied by this operation. Null means unknown. type: - number - 'null' passengers: description: Optional passengers supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true ship_id: description: Optional ship id supplied by this operation. Null means unknown. type: - string - 'null' ship_name: description: Optional ship name supplied by this operation. Null means unknown. type: - string - 'null' ship_url_name: description: Optional ship url name supplied by this operation. Null means unknown. type: - string - 'null' title: description: Source title when supplied. 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: - arrival_port properties: arrival_port: description: Optional arrival port supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - cruise_line properties: cruise_line: description: Optional cruise line supplied by this operation. Null means unknown. type: - object properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' logo: description: Optional logo supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - departure_port properties: departure_port: description: Optional departure port supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - departure_ports properties: departure_ports: description: Optional departure ports supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - destination properties: destination: description: Optional destination supplied by this operation. Null means unknown. type: - object properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image: description: Optional image supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - itinerary properties: itinerary: description: Optional itinerary 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: - nights properties: nights: description: Optional nights supplied by this operation. Null means unknown. type: - number - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - review_snippets properties: review_snippets: description: Optional review snippets supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - sailings properties: sailings: description: Optional sailings 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: - sailings_count properties: sailings_count: description: Optional sailings count supplied by this operation. Null means unknown. type: - number - required: - ship properties: ship: description: Optional ship supplied by this operation. Null means unknown. type: - object properties: amenities: description: Optional amenities supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' crew: description: Optional crew supplied by this operation. Null means unknown. type: - number - 'null' highlights: description: Optional highlights supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true image: description: Optional image supplied by this operation. Null means unknown. type: - string - 'null' launched: description: Optional launched supplied by this operation. Null means unknown. type: - number - 'null' passengers: description: Optional passengers supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - ship_id properties: ship_id: description: Optional ship id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - ship_name properties: ship_name: description: Optional ship name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - ship_url_name properties: ship_url_name: description: Optional ship url name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - title properties: title: description: Source title when supplied. 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' total_pages: description: Optional total pages supplied by this operation. Null means 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: - _warnings: - example count: 0 cursor: null destination: id: example filters: cruiseLength: - count: 0 id: example name: example cruiseLines: - count: 0 id: example name: example cruiseStyle: - count: 0 id: example name: example dealsType: - count: 0 id: example name: example departingFrom: - count: 0 id: example name: example port: - count: 0 id: example name: example ship: - count: 0 id: example name: example has_more: false items: - arrival_port: example cruise_line: id: example logo: example name: example departure_port: example departure_ports: - example destination: id: example image: https://example.com/example name: example id: example itinerary: - {} nights: 0 platform: example rating: max: 0 value: 0 votes: 0 review_snippets: - example reviews_count: 0 sailings: - {} sailings_count: 0 ship: amenities: - example crew: 0 highlights: {} image: https://example.com/example launched: 0 passengers: 0 ship_id: example ship_name: example ship_url_name: https://example.com/example title: example type: example url: https://example.com/example page: 0 total: 0 total_pages: 0 default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 x-production-available: true x-capacity: status: limited message: 'Limited capacity: this operation currently relies on small shared monthly allowances. Availability can end before your account credits are used. Contact support before scheduling or bulk use. Allowances are shared across customers and related operations; this is not a per-account entitlement.' 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/tripadvisor/experience-types: get: operationId: tripadvisor_experience_types tags: - TripAdvisor summary: TripAdvisor experience types description: The experience types a destination offers (Spas & Wellness, Boat Tours & Water Sports, …) with how many attractions fall under each, plus the good-for, duration, traveler-rating and award facets. Costs 3 credits per successful live response. parameters: - name: query in: query required: true schema: type: string example: Nha Trang description: Destination name - name: geo_id in: query required: false schema: type: string example: '293928' description: Destination geo id; skips the name lookup - 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/tripadvisor/experience-types.json title: tripadvisor/experience-types data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: awards: description: Optional awards 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: attractions_count: description: Optional attractions count supplied by this operation. Null means unknown. type: - number - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' additionalProperties: true count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' destination: description: Optional destination supplied by this operation. Null means unknown. type: - object - 'null' properties: geo_id: description: Optional geo id supplied by this operation. Null means unknown. type: - string - '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' additionalProperties: true durations: description: Optional durations 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: attractions_count: description: Optional attractions count supplied by this operation. Null means unknown. type: - number - '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' additionalProperties: true good_for: description: Optional good for 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: attractions_count: description: Optional attractions count supplied by this operation. Null means unknown. type: - number - '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: attractions_count: description: Optional attractions count supplied by this operation. Null means unknown. type: - number - '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' additionalProperties: true allOf: - anyOf: - required: - attractions_count properties: attractions_count: description: Optional attractions count 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: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' traveler_ratings: description: Optional traveler ratings 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: attractions_count: description: Optional attractions count supplied by this operation. Null means unknown. type: - number - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' additionalProperties: true 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: - awards: - attractions_count: 0 id: example count: 0 destination: geo_id: example name: example region: example durations: - attractions_count: 0 id: example name: example good_for: - attractions_count: 0 id: example has_more: false items: - attractions_count: 0 id: example name: example platform: example traveler_ratings: - attractions_count: 0 id: 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/tripadvisor/hotel: get: operationId: tripadvisor_hotel tags: - TripAdvisor summary: TripAdvisor hotel description: 'One hotel''s page: rating, review count, city ranking, description, languages, amenities, address, coordinates, neighbourhood, transport and photos. Costs 1 credit per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '23448880' description: Hotel id from tripadvisor/hotels, or its page URL - name: check_in in: query required: false schema: type: string example: '2026-10-01' description: Check-in date; defaults to a week ahead - name: check_out in: query required: false schema: type: string example: '2026-10-03' description: Check-out date - name: adults in: query required: false schema: type: string example: '2' description: Adults per room - name: rooms in: query required: false schema: type: string example: '1' description: Rooms - name: currency in: query required: false schema: type: string example: USD description: Currency code - name: language in: query required: false schema: type: string example: en_US description: Language 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/tripadvisor/hotel.json title: tripadvisor/hotel data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string - 'null' amenities: description: Optional amenities supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' booking_url: description: Optional booking url supplied by this operation. Null means unknown. type: - string - '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' description: description: Source description; null or absent means not supplied. type: - string - 'null' details: description: Optional details 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: items: description: Returned records. Source coverage and completeness vary. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true geo_id: description: Optional geo id supplied by this operation. Null means unknown. type: - string - 'null' getting_there: description: Optional getting there 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' languages: description: Optional languages 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' neighborhood: description: Optional neighborhood supplied by this operation. Null means unknown. type: - string - 'null' phone: description: Optional phone supplied by this operation. Null means unknown. type: - string - 'null' photo_count: description: Optional photo count supplied by this operation. Null means unknown. type: - number - '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' ranking: description: Optional ranking supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - '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: - address properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - amenities properties: amenities: description: Optional amenities supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - booking_url properties: booking_url: description: Optional booking url supplied by this operation. Null means unknown. type: - string minLength: 1 - 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: - description properties: description: description: Source description; null or absent means not supplied. type: - string minLength: 1 - required: - details properties: details: description: Optional details supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: items: description: Returned records. Source coverage and completeness vary. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true - required: - geo_id properties: geo_id: description: Optional geo id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - getting_there properties: getting_there: description: Optional getting there 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: - languages properties: languages: description: Optional languages 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: - neighborhood properties: neighborhood: description: Optional neighborhood supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - phone properties: phone: description: Optional phone supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - photo_count properties: photo_count: description: Optional photo count supplied by this operation. Null means unknown. type: - number - 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: - ranking properties: ranking: description: Optional ranking 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: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - url properties: url: description: Original source URL when supplied. 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: - address: example amenities: - example booking_url: https://example.com/example checkIn: example checkOut: example description: example details: - items: - example title: example geo_id: example getting_there: - example id: example languages: example latitude: 0 longitude: 0 name: example neighborhood: example phone: example photo_count: 0 photos: - example platform: example ranking: example rating: max: 0 value: 0 votes: 0 reviews_count: 0 type: example url: https://example.com/example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 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/tripadvisor/hotels: get: operationId: tripadvisor_hotels tags: - TripAdvisor summary: TripAdvisor hotels description: 'Discover up to thirty hotels in a city, with ratings and review counts. Hotel directory only: no stay availability, nightly prices, images, price filters or pagination. Queued searches reuse the saved task when retried. Costs 2 credits per successful live response.' parameters: - name: query in: query required: false schema: type: string example: Paris description: City name, optionally followed by region and country. Required unless location or location_code is supplied. q is an alias. Paris, London and New York default to France, UK and US respectively; country overrides this. - name: country in: query required: false schema: type: string example: FR description: Two-letter country code to disambiguate a city. - name: location in: query required: false schema: type: string example: Paris,France description: Explicit city and country; must agree with query if both are supplied. - name: location_code in: query required: false schema: type: string example: '1006094' description: Search location code, not a Tripadvisor geo_id. Prefer a city name. - name: limit in: query required: false schema: type: string example: '30' description: 1 to 30 hotels; default 30. First page only. - 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/tripadvisor/hotels.json title: tripadvisor/hotels data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: checked_at: description: Optional checked at 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' geo_id: description: Optional geo id 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: geo_id: description: Optional geo 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' images: 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' offer_labels: 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' primary_info: description: Optional primary info supplied by this operation. Null means unknown. type: - string - 'null' rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' sponsored: description: Optional sponsored supplied by this operation. Null means unknown. type: - boolean - '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: - geo_id properties: geo_id: description: Optional geo 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: - images properties: images: 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: - offer_labels properties: offer_labels: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - primary_info properties: primary_info: description: Optional primary info supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - rank properties: rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - sponsored properties: sponsored: description: Optional sponsored supplied by this operation. Null means unknown. type: - boolean - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 location_code: description: Optional location code supplied by this operation. Null means unknown. type: - number - 'null' page: description: Optional page supplied by this operation. Null means unknown. type: - number - 'null' pricing_available: description: Optional pricing available supplied by this operation. Null means unknown. type: - boolean - 'null' query: description: Optional query supplied by this operation. Null means unknown. type: - string - 'null' result_type: description: Optional result type 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: - checked_at: '2026-09-01T12:00:00Z' count: 0 geo_id: example has_more: false items: - geo_id: example id: example images: [] name: example offer_labels: [] platform: example primary_info: example rank: 0 rating: max: 0 value: 0 votes: 0 reviews_count: 0 sponsored: false type: example url: https://example.com/example location_code: 0 page: 0 pricing_available: false query: example result_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/tripadvisor/location: get: operationId: tripadvisor_location tags: - TripAdvisor summary: TripAdvisor place description: The best TripAdvisor match for a place name, with its page path for the reviews route. Queued task. Costs 5 credits per successful live response. parameters: - name: query in: query required: true schema: type: string example: The Balmoral Edinburgh description: Place name - name: location in: query required: false schema: type: string example: Edinburgh,Scotland,United Kingdom description: Location 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/tripadvisor/location.json title: tripadvisor/location data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: category: description: Optional category 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' path: description: Optional path supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - category properties: category: description: Optional category 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: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - path properties: path: description: Optional path supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - rank properties: rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - object properties: value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - url properties: url: description: Original source URL when supplied. 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: - category: example id: example name: example path: example platform: example rank: 0 rating: value: 0 url: https://example.com/example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 5 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/tripadvisor/place: get: operationId: tripadvisor_place tags: - TripAdvisor summary: TripAdvisor place by URL description: 'Any TripAdvisor hotel, restaurant or attraction page resolved to its record: the same fields as tripadvisor/hotel, tripadvisor/restaurant or tripadvisor/attraction, with kind saying which. Costs 1 credit per successful live response.' parameters: - name: url in: query required: true schema: type: string example: https://www.tripadvisor.com/Restaurant_Review-g1954828-d27717696 description: A TripAdvisor hotel, restaurant or attraction page URL - name: language in: query required: false schema: type: string example: en_US description: Interface language - name: currency in: query required: false schema: type: string example: USD description: 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/tripadvisor/place.json title: tripadvisor/place data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string - 'null' cuisines: description: Optional cuisines supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' description: description: Source description; null or absent means not supplied. type: - string - 'null' details: description: Optional details 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: items: description: Returned records. Source coverage and completeness vary. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true features: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} getting_there: description: Optional getting there supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' hours: description: Optional hours supplied by this operation. Null means unknown. type: - object - 'null' properties: status: description: Optional status supplied by this operation. Null means unknown. type: - string - 'null' today: description: Optional today 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 id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' kind: description: Optional kind 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' meals: 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' notes: description: Optional notes supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' owner_verified: description: Optional owner verified supplied by this operation. Null means unknown. type: - boolean - 'null' phone: description: Optional phone supplied by this operation. Null means unknown. type: - string - 'null' photo_count: description: Optional photo count supplied by this operation. Null means unknown. type: - number - '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' ranking: description: Optional ranking supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' tags: description: Optional tags 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' website: description: Optional website supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - address properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - cuisines properties: cuisines: description: Optional cuisines supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - description properties: description: description: Source description; null or absent means not supplied. type: - string minLength: 1 - required: - details properties: details: description: Optional details supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: items: description: Returned records. Source coverage and completeness vary. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true - required: - features properties: features: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - getting_there properties: getting_there: description: Optional getting there supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - hours properties: hours: description: Optional hours supplied by this operation. Null means unknown. type: - object properties: status: description: Optional status supplied by this operation. Null means unknown. type: - string - 'null' today: description: Optional today 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 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. 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: - meals properties: meals: 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: - notes properties: notes: description: Optional notes supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - owner_verified properties: owner_verified: description: Optional owner verified supplied by this operation. Null means unknown. type: - boolean - required: - phone properties: phone: description: Optional phone supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - photo_count properties: photo_count: description: Optional photo count supplied by this operation. Null means unknown. type: - number - 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: - ranking properties: ranking: description: Optional ranking 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: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - tags properties: tags: description: Optional tags 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: - website properties: website: description: Optional website 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: - address: example cuisines: - example description: example details: - items: - example title: example features: [] getting_there: - example hours: status: example today: - example id: example kind: example latitude: 0 longitude: 0 meals: [] name: example notes: - example owner_verified: false phone: example photo_count: 0 photos: - example platform: example ranking: example rating: max: 0 value: 0 votes: 0 reviews_count: 0 tags: - example type: example url: https://example.com/example website: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 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/tripadvisor/restaurant: get: operationId: tripadvisor_restaurant tags: - TripAdvisor summary: TripAdvisor restaurant description: 'One restaurant''s page: rating, review count, city ranking, cuisines, price range, opening hours, description, address, coordinates, neighbourhood, transport, contact links and photos. Costs 1 credit per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '28627898' description: Restaurant id from tripadvisor/restaurants, or its page URL - name: language in: query required: false schema: type: string example: en_US description: Interface language - name: currency in: query required: false schema: type: string example: USD description: 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/tripadvisor/restaurant.json title: tripadvisor/restaurant data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string - 'null' cuisines: description: Optional cuisines supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' description: description: Source description; null or absent means not supplied. type: - string - 'null' details: description: Optional details 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: items: description: Returned records. Source coverage and completeness vary. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true features: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} getting_there: description: Optional getting there supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' hours: description: Optional hours supplied by this operation. Null means unknown. type: - object - 'null' properties: status: description: Optional status supplied by this operation. Null means unknown. type: - string - 'null' today: description: Optional today 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 id: description: Source identifier. Preserve the supplied type and exact value. 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' meals: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} menu_url: description: Optional menu 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' notes: description: Optional notes supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' owner_verified: description: Optional owner verified supplied by this operation. Null means unknown. type: - boolean - 'null' phone: description: Optional phone supplied by this operation. Null means unknown. type: - string - 'null' photo_count: description: Optional photo count supplied by this operation. Null means unknown. type: - number - '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' ranking: description: Optional ranking supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' tags: description: Optional tags 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' website: description: Optional website supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - address properties: address: description: Optional address supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - cuisines properties: cuisines: description: Optional cuisines supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - description properties: description: description: Source description; null or absent means not supplied. type: - string minLength: 1 - required: - details properties: details: description: Optional details supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: items: description: Returned records. Source coverage and completeness vary. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true - required: - features properties: features: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - getting_there properties: getting_there: description: Optional getting there supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - hours properties: hours: description: Optional hours supplied by this operation. Null means unknown. type: - object properties: status: description: Optional status supplied by this operation. Null means unknown. type: - string - 'null' today: description: Optional today 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 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. 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: - meals properties: meals: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - menu_url properties: menu_url: description: Optional menu 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: - notes properties: notes: description: Optional notes supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - owner_verified properties: owner_verified: description: Optional owner verified supplied by this operation. Null means unknown. type: - boolean - required: - phone properties: phone: description: Optional phone supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - photo_count properties: photo_count: description: Optional photo count supplied by this operation. Null means unknown. type: - number - 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: - ranking properties: ranking: description: Optional ranking 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: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - tags properties: tags: description: Optional tags 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: - website properties: website: description: Optional website 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: - address: example cuisines: - example description: example details: - items: - example title: example features: [] getting_there: - example hours: status: example today: - example id: example latitude: 0 longitude: 0 meals: [] menu_url: https://example.com/example name: example notes: - example owner_verified: false phone: example photo_count: 0 photos: - example platform: example ranking: example rating: max: 0 value: 0 votes: 0 reviews_count: 0 tags: - example type: example url: https://example.com/example website: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 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/tripadvisor/restaurant/reviews: get: operationId: tripadvisor_restaurant_reviews tags: - TripAdvisor summary: Restaurant reviews description: Reviews of a restaurant. Queued extraction; retrying the same inputs resumes the saved task. Up to twenty reviews, no cursor pagination. Costs 2 credits per successful live response. parameters: - name: url in: query required: true schema: type: string example: https://www.tripadvisor.com/Restaurant_Review-g187147-d14039269-Reviews-Can_Alegria_Paris-Paris_Ile_de_France.html description: The full restaurant review-page URL - name: limit in: query required: false schema: type: string example: '10' description: 1 to 20 reviews; default 10. First page only. - name: sort in: query required: false schema: type: string enum: - most_recent - detailed_reviews example: most_recent description: 'most_recent or detailed_reviews Accepted values: most_recent, detailed_reviews. 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: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - 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/tripadvisor/restaurant/reviews.json title: tripadvisor/restaurant/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' 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: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' images: 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' posted_at: description: Optional posted at supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reply: description: Optional reply supplied by this operation. Null means unknown. type: - object - 'null' properties: at: description: Optional at supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true reviewer: description: Optional reviewer supplied by this operation. Null means unknown. type: - object - 'null' properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true text: description: Source text when supplied. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - images properties: images: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - posted_at properties: posted_at: description: Optional posted at 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: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - reply properties: reply: description: Optional reply supplied by this operation. Null means unknown. type: - object properties: at: description: Optional at supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' additionalProperties: true - required: - reviewer properties: reviewer: description: Optional reviewer supplied by this operation. Null means unknown. type: - object properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true - required: - text properties: text: description: Source text when supplied. type: - string minLength: 1 - required: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. 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: - id: example images: [] platform: example posted_at: '2026-09-01T12:00:00Z' rating: max: 0 value: 0 votes: 0 reply: at: example text: example reviewer: location: example name: example url: https://example.com/example text: example title: example url: https://example.com/example name: example rating: max: 0 value: 0 votes: 0 reviews_count: 0 url: https://example.com/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/tripadvisor/restaurants: get: operationId: tripadvisor_restaurants tags: - TripAdvisor summary: TripAdvisor restaurants description: Restaurants in a place, thirty per page, with rating, review count, price range, cuisines, opening status, photo and ordering link. Costs 1 credit per successful live response. parameters: - name: geo_id in: query required: false schema: type: string example: '1954828' description: Place geo id from tripadvisor/autocomplete - name: query in: query required: false schema: type: string example: Walt Disney World description: Place name, resolved to a geo id when geo_id is absent - name: sort in: query required: false schema: type: string enum: - POPULARITY - RELEVANCE - FEATURED example: POPULARITY description: 'POPULARITY, RELEVANCE or FEATURED Accepted values: POPULARITY, RELEVANCE, FEATURED. Case, spaces, hyphens and underscores are interchangeable.' - name: filters in: query required: false schema: type: string example: '' description: Filter expression from a previous response - name: page in: query required: false schema: type: string example: '1' description: Page of 30 - name: cursor in: query required: false schema: type: string example: '' description: Cursor from the previous page - name: currency in: query required: false schema: type: string example: USD description: Currency code - name: language in: query required: false schema: type: string example: en_US description: Language 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/tripadvisor/restaurants.json title: tripadvisor/restaurants data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. name: type: - string - 'null' description: name url: type: - string - 'null' description: url type: type: - string - 'null' description: type description: type: - string - 'null' description: description image: type: - string - 'null' description: image address: type: - string - 'null' description: address rating: anyOf: - type: - number - 'null' description: Source rating. - type: - object - 'null' properties: value: type: - number - 'null' description: value; null is unknown. votes: type: - number - 'null' description: votes; null is unknown. max: type: - number - 'null' description: max; null is unknown. additionalProperties: true reviews_count: type: - number - 'null' description: Source review count. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Exact source identifier; preserve it as a string. minLength: 1 - required: - name properties: name: type: - string description: name minLength: 1 - required: - url properties: url: type: - string description: url minLength: 1 - required: - description properties: description: type: - string description: description minLength: 1 - required: - image properties: image: type: - string description: image minLength: 1 - required: - address properties: address: type: - string description: address minLength: 1 - required: - rating properties: rating: anyOf: - type: - number - 'null' description: Source rating. - type: - object - 'null' properties: value: type: - number - 'null' description: value; null is unknown. votes: type: - number - 'null' description: votes; null is unknown. max: type: - number - 'null' description: max; null is unknown. additionalProperties: true - required: - reviews_count properties: reviews_count: type: - number description: Source review count. count: type: - number - 'null' description: Returned rows, not the total population. cursor: type: - string - 'null' description: Opaque continuation; pass unchanged. has_more: type: - boolean - 'null' description: Source continuation indicator. total: type: - number - 'null' description: Source-reported total; null means unknown. 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: - items: [] cursor: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 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/tripadvisor/reviews: get: operationId: tripadvisor_reviews tags: - TripAdvisor summary: TripAdvisor reviews description: Reviews of a TripAdvisor place with rating, title, text, date and any reply. Queued task. Costs 5 credits per successful live response. parameters: - name: url in: query required: true schema: type: string example: https://www.tripadvisor.com/Hotel_Review-g186525-d190819-Reviews-The_Balmoral_Hotel-Edinburgh_Scotland.html description: The TripAdvisor page URL or path - name: sort in: query required: false schema: type: string enum: - newest - relevance example: newest description: 'newest or relevance Accepted values: newest, relevance. Case, spaces, hyphens and underscores are interchangeable.' - name: limit in: query required: false schema: type: string example: '20' description: Reviews, up to 100 - 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: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - 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/tripadvisor/reviews.json title: tripadvisor/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' 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: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' images: 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' posted_at: description: Optional posted at supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviewer: description: Optional reviewer supplied by this operation. Null means unknown. type: - object - 'null' properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true text: description: Source text when supplied. type: - string - 'null' title: description: Source title when supplied. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - images properties: images: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - posted_at properties: posted_at: description: Optional posted at 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: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - reviewer properties: reviewer: description: Optional reviewer supplied by this operation. Null means unknown. type: - object properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true - required: - text properties: text: description: Source text when supplied. type: - string minLength: 1 - required: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true url: description: Original source URL when supplied. 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: - id: example images: [] platform: example posted_at: '2026-09-01T12:00:00Z' rating: max: 0 value: 0 votes: 0 reviewer: location: example name: example url: https://example.com/example text: example title: example url: https://example.com/example name: example rating: value: 0 url: https://example.com/example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 5 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/tripadvisor/search: get: operationId: tripadvisor_search tags: - TripAdvisor summary: TripAdvisor search description: Hotels, restaurants and attractions on TripAdvisor matching a query, with rating and review count. Queued task. Costs 5 credits per successful live response. parameters: - name: query in: query required: true schema: type: string example: hotel Edinburgh description: Search terms - name: location in: query required: false schema: type: string example: Edinburgh,Scotland,United Kingdom description: Location name - name: limit in: query required: false schema: type: string example: '5' description: Requested rows per response, 1–1000. The source may return fewer. Remaining rows from an already purchased page use a saved cursor and cost zero to retrieve for up to one hour; further native source pages use this endpoint’s normal price. - name: cursor in: query required: false schema: type: string example: '' description: Use the returned cursor unchanged, retaining the original query, filters and limit. Saved mlo1. cursors retrieve already purchased rows at zero credits for up to one hour. A native source cursor, when supplied, starts a normally priced source page. Quote with dry_run before continuing. - 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/tripadvisor/search.json title: tripadvisor/search 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: category: description: Optional category 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' path: description: Optional path supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - object - 'null' properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - category properties: category: description: Optional category 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: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - path properties: path: description: Optional path supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - rank properties: rank: description: Optional rank supplied by this operation. Null means unknown. type: - number - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - object properties: max: description: Optional max supplied by this operation. Null means unknown. type: - number - 'null' value: description: Optional value supplied by this operation. Null means unknown. type: - number - 'null' votes: description: Optional votes supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - reviews_count properties: reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - required: - url properties: url: description: Original source URL when supplied. 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: - category: example id: example name: example path: example platform: example rank: 0 rating: max: 0 value: 0 votes: 0 reviews_count: 0 url: https://example.com/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: 5 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)