Skip to content
Cross-source

OTA sources

What each OTA can actually answer.

GET/v1/ota/sources
Free

Published because the three are not interchangeable — one returns a whole horizon, the others one date; only Agoda breaks out rooms — and a caller should pick on capability rather than by trial and error.

Request

GEThttps://api.scrapercompany.com/v1/ota/sources

Authenticate with your API key in the x-api-key header (see Authentication).

Example request

curl "https://api.scrapercompany.com/v1/ota/sources" \
  -H "x-api-key: $SCRAPERCOMPANY_API_KEY"

Response

200 — Per-source capability matrix — granularity, identifier type, and whether a browser token is needed.

200 response
{
  "sources": {
    "booking": {
      "engine": "booking_calendar",
      "primary_operation": "calendar",
      "identifier": "pagename (URL slug) + country",
      "granularity": "daily lowest rate",
      "multi_date": true,
      "max_dates_per_call": 61,
      "per_room": false,
      "currency_selectable": true,
      "needs_browser_token": true,
      "operations": {
        "search": {
          "supported": true,
          "needs_browser_token": true,
          "available": true
        },
        "rates": {
          "supported": true,
          "needs_browser_token": true,
          "available": true
        },
        "rooms": {
          "supported": true,
          "needs_browser_token": true,
          "available": true
        },
        "calendar": {
          "supported": true,
          "needs_browser_token": true,
          "available": true
        }
      },
      "notes": "Cheapest horizon sweep. A year costs 6 calls / ~33 KB.",
      "available": true
    },
    "hotels": {
      "engine": "hotels_property",
      "primary_operation": "rates",
      "identifier": "numeric property id",
      "granularity": "headline price for one stay window",
      "multi_date": false,
      "max_dates_per_call": 1,
      "per_room": false,
      "currency_selectable": true,
      "currency_mechanism": "point-of-sale",
      "markets": [
        "AU"
      ],
      "needs_browser_token": true,
      "operations": {
        "search": {
          "supported": true,
          "needs_browser_token": false,
          "available": true
        },
        "rates": {
          "supported": true,
          "needs_browser_token": true,
          "available": true
        },
        "rooms": {
          "supported": true,
          "needs_browser_token": true,
          "available": true
        },
        "calendar": {
          "supported": false,
          "needs_browser_token": false,
          "available": false,
          "unavailable_reason": "not supported"
        }
      },
      "notes": "No calendar exists; one call per date. Prices are NOT comparable across markets …",
      "available": true
    },
    "agoda": {
      "engine": "agoda_property",
      "primary_operation": "rates",
      "identifier": "numeric property id",
      "granularity": "every room type and rate plan",
      "multi_date": false,
      "max_dates_per_call": 1,
      "per_room": true,
      "currency_selectable": true,
      "currencies": [
        "AED"
      ],
      "needs_browser_token": false,
      "operations": {
        "search": {
          "supported": true,
          "needs_browser_token": false,
          "available": true
        },
        "rates": {
          "supported": true,
          "needs_browser_token": false,
          "available": true
        },
        "rooms": {
          "supported": true,
          "needs_browser_token": false,
          "available": true
        },
        "calendar": {
          "supported": false,
          "needs_browser_token": false,
          "available": false,
          "unavailable_reason": "not supported"
        }
      },
      "notes": "No anti-bot gate. Richest per-date answer, and its currencies are genuine FX con…",
      "available": true
    }
  }
}

Response fields

Fields marked required are always present; others appear when they apply.

  • sourcesobjectrequired
    Show 7 child fields
    • sources.bookingobjectrequired
      Show 16 child fields
      • sources.booking.enginestringrequired
      • sources.booking.primary_operationstringrequired
      • sources.booking.identifierstringrequired
      • sources.booking.granularitystringrequired
      • sources.booking.multi_datebooleanrequired
      • sources.booking.max_dates_per_callintegerrequired
      • sources.booking.per_roombooleanrequired
      • sources.booking.currency_selectablebooleanrequired
      • sources.booking.needs_browser_tokenbooleanrequired
      • sources.booking.operationsobjectrequired
      • sources.booking.notesstringrequired
      • sources.booking.availablebooleanrequired
      • sources.booking.unavailable_reasonstring

        Present only when available is false.

      • sources.booking.currency_mechanismstring

        point-of-sale: currency follows the market. Hotels.com, Expedia and Vrbo only.

      • sources.booking.marketsarray of string

        Supported point-of-sale codes. Hotels.com, Expedia and Vrbo only.

      • sources.booking.currenciesarray of string

        Selectable currencies. Agoda, Tripadvisor and Hostelworld only (empty for Hostelworld).

    • sources.hotelsobjectrequired
      Show 16 child fields
      • sources.hotels.enginestringrequired
      • sources.hotels.primary_operationstringrequired
      • sources.hotels.identifierstringrequired
      • sources.hotels.granularitystringrequired
      • sources.hotels.multi_datebooleanrequired
      • sources.hotels.max_dates_per_callintegerrequired
      • sources.hotels.per_roombooleanrequired
      • sources.hotels.currency_selectablebooleanrequired
      • sources.hotels.needs_browser_tokenbooleanrequired
      • sources.hotels.operationsobjectrequired
      • sources.hotels.notesstringrequired
      • sources.hotels.availablebooleanrequired
      • sources.hotels.unavailable_reasonstring

        Present only when available is false.

      • sources.hotels.currency_mechanismstring

        point-of-sale: currency follows the market. Hotels.com, Expedia and Vrbo only.

      • sources.hotels.marketsarray of string

        Supported point-of-sale codes. Hotels.com, Expedia and Vrbo only.

      • sources.hotels.currenciesarray of string

        Selectable currencies. Agoda, Tripadvisor and Hostelworld only (empty for Hostelworld).

    • sources.agodaobjectrequired
      Show 16 child fields
      • sources.agoda.enginestringrequired
      • sources.agoda.primary_operationstringrequired
      • sources.agoda.identifierstringrequired
      • sources.agoda.granularitystringrequired
      • sources.agoda.multi_datebooleanrequired
      • sources.agoda.max_dates_per_callintegerrequired
      • sources.agoda.per_roombooleanrequired
      • sources.agoda.currency_selectablebooleanrequired
      • sources.agoda.needs_browser_tokenbooleanrequired
      • sources.agoda.operationsobjectrequired
      • sources.agoda.notesstringrequired
      • sources.agoda.availablebooleanrequired
      • sources.agoda.unavailable_reasonstring

        Present only when available is false.

      • sources.agoda.currency_mechanismstring

        point-of-sale: currency follows the market. Hotels.com, Expedia and Vrbo only.

      • sources.agoda.marketsarray of string

        Supported point-of-sale codes. Hotels.com, Expedia and Vrbo only.

      • sources.agoda.currenciesarray of string

        Selectable currencies. Agoda, Tripadvisor and Hostelworld only (empty for Hostelworld).

    • sources.tripadvisorobjectrequired
      Show 16 child fields
      • sources.tripadvisor.enginestringrequired
      • sources.tripadvisor.primary_operationstringrequired
      • sources.tripadvisor.identifierstringrequired
      • sources.tripadvisor.granularitystringrequired
      • sources.tripadvisor.multi_datebooleanrequired
      • sources.tripadvisor.max_dates_per_callintegerrequired
      • sources.tripadvisor.per_roombooleanrequired
      • sources.tripadvisor.currency_selectablebooleanrequired
      • sources.tripadvisor.needs_browser_tokenbooleanrequired
      • sources.tripadvisor.operationsobjectrequired
      • sources.tripadvisor.notesstringrequired
      • sources.tripadvisor.availablebooleanrequired
      • sources.tripadvisor.unavailable_reasonstring

        Present only when available is false.

      • sources.tripadvisor.currency_mechanismstring

        point-of-sale: currency follows the market. Hotels.com, Expedia and Vrbo only.

      • sources.tripadvisor.marketsarray of string

        Supported point-of-sale codes. Hotels.com, Expedia and Vrbo only.

      • sources.tripadvisor.currenciesarray of string

        Selectable currencies. Agoda, Tripadvisor and Hostelworld only (empty for Hostelworld).

    • sources.hostelworldobjectrequired
      Show 16 child fields
      • sources.hostelworld.enginestringrequired
      • sources.hostelworld.primary_operationstringrequired
      • sources.hostelworld.identifierstringrequired
      • sources.hostelworld.granularitystringrequired
      • sources.hostelworld.multi_datebooleanrequired
      • sources.hostelworld.max_dates_per_callintegerrequired
      • sources.hostelworld.per_roombooleanrequired
      • sources.hostelworld.currency_selectablebooleanrequired
      • sources.hostelworld.needs_browser_tokenbooleanrequired
      • sources.hostelworld.operationsobjectrequired
      • sources.hostelworld.notesstringrequired
      • sources.hostelworld.availablebooleanrequired
      • sources.hostelworld.unavailable_reasonstring

        Present only when available is false.

      • sources.hostelworld.currency_mechanismstring

        point-of-sale: currency follows the market. Hotels.com, Expedia and Vrbo only.

      • sources.hostelworld.marketsarray of string

        Supported point-of-sale codes. Hotels.com, Expedia and Vrbo only.

      • sources.hostelworld.currenciesarray of string

        Selectable currencies. Agoda, Tripadvisor and Hostelworld only (empty for Hostelworld).

    • sources.expediaobjectrequired
      Show 16 child fields
      • sources.expedia.enginestringrequired
      • sources.expedia.primary_operationstringrequired
      • sources.expedia.identifierstringrequired
      • sources.expedia.granularitystringrequired
      • sources.expedia.multi_datebooleanrequired
      • sources.expedia.max_dates_per_callintegerrequired
      • sources.expedia.per_roombooleanrequired
      • sources.expedia.currency_selectablebooleanrequired
      • sources.expedia.needs_browser_tokenbooleanrequired
      • sources.expedia.operationsobjectrequired
      • sources.expedia.notesstringrequired
      • sources.expedia.availablebooleanrequired
      • sources.expedia.unavailable_reasonstring

        Present only when available is false.

      • sources.expedia.currency_mechanismstring

        point-of-sale: currency follows the market. Hotels.com, Expedia and Vrbo only.

      • sources.expedia.marketsarray of string

        Supported point-of-sale codes. Hotels.com, Expedia and Vrbo only.

      • sources.expedia.currenciesarray of string

        Selectable currencies. Agoda, Tripadvisor and Hostelworld only (empty for Hostelworld).

    • sources.vrboobjectrequired
      Show 16 child fields
      • sources.vrbo.enginestringrequired
      • sources.vrbo.primary_operationstringrequired
      • sources.vrbo.identifierstringrequired
      • sources.vrbo.granularitystringrequired
      • sources.vrbo.multi_datebooleanrequired
      • sources.vrbo.max_dates_per_callintegerrequired
      • sources.vrbo.per_roombooleanrequired
      • sources.vrbo.currency_selectablebooleanrequired
      • sources.vrbo.needs_browser_tokenbooleanrequired
      • sources.vrbo.operationsobjectrequired
      • sources.vrbo.notesstringrequired
      • sources.vrbo.availablebooleanrequired
      • sources.vrbo.unavailable_reasonstring

        Present only when available is false.

      • sources.vrbo.currency_mechanismstring

        point-of-sale: currency follows the market. Hotels.com, Expedia and Vrbo only.

      • sources.vrbo.marketsarray of string

        Supported point-of-sale codes. Hotels.com, Expedia and Vrbo only.

      • sources.vrbo.currenciesarray of string

        Selectable currencies. Agoda, Tripadvisor and Hostelworld only (empty for Hostelworld).

Errors

Errors return a JSON body with a detail field. Failed requests are not charged. See Errors for the full list and retry advice.

StatusMeaningRetry?
401Unauthorized

Missing or invalid API key.

{"detail":"missing or invalid API key"}
No, fix the request
429Too Many Requests

Too many requests: the key's requests-per-minute limit was exceeded, or (once credit enforcement is on) the plan's concurrent-request limit. No rate-limit or Retry-After headers are sent; back off and retry.

{"detail":"rate limit 60/min exceeded"}
Yes, with backoff

Try it

  1. Export your key: export SCRAPERCOMPANY_API_KEY=sk_... (no key yet? request access).
  2. Copy the cURL example above and run it in a terminal.
  3. Or open the interactive playground on api.scrapercompany.com, paste your key and pick this endpoint.