OTA sources
What each OTA can actually answer.
/v1/ota/sourcesPublished 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
https://api.scrapercompany.com/v1/ota/sourcesAuthenticate 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.
{
"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 fieldsHide child fields
- sources.bookingobjectrequired
Show 16 child fieldsHide 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
availableis 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 fieldsHide 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
availableis 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 fieldsHide 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
availableis 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 fieldsHide 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
availableis 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 fieldsHide 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
availableis 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 fieldsHide 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
availableis 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 fieldsHide 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
availableis 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.
| Status | Meaning | Retry? |
|---|---|---|
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
- Export your key:
export SCRAPERCOMPANY_API_KEY=sk_...(no key yet? request access). - Copy the cURL example above and run it in a terminal.
- Or open the interactive playground on api.scrapercompany.com, paste your key and pick this endpoint.