Booking.com URL Parser — Resolve a Hotel or Search Link
Documentation menu
FetchLayer FetchLayer API

Read a Booking.com link

Read any Booking.com link and say what it names — a property or a search — along with the compact id it encodes and its canonical URL, ready to hand to the other routes. The right first step for a pile of pasted links: it sorts them before a single page fetch is spent, and a link it does not recognise comes back as `kind: "unknown"` with a note rather than as an error you have to catch. **Free.** It makes no request to Booking.com at all, answered in 0.065-0.13s across the calls measured on 17 September 2026, and reports `pagesFetched: 0`.

POST /resolve-url Utilities
https://api.fetchlayer.dev/booking/resolve-url
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

url string required

Any Booking.com link — a property page or a search.

format string optional

Envelope format: json or markdown. (default: json)

Response Fields

resolve-url

Read a Booking.com link

transport string

The source. "booking".

notes string[]

Caveats and completeness statements you can act on, in plain words. On /hotel-reviews this is where the "10 of the 3854" line lives; on /search-hotels it is where a default stay window is declared when you passed no dates; on /hotel-detail it is where the "this route does not price a stay" answer lives.

pagesFetched number

Pages read, and what the request is billed at: 1 credit per page. A page costs the same whether it comes back full or half empty. /resolve-url reports 0 and is free.

kind string

"hotel" when the link names a property, "search" for a results link, or "unknown" when it names neither — the last with a note saying the link does not name a property this service recognizes, rather than an error.

canonicalUrl string

The property's canonical booking.com address, with tracking and date parameters stripped. Null on a search or an unknown link.

hotelId string

The compact `"countryCode/pageName"` id the link encodes, ready to pass to /hotel-detail or /hotel-reviews as `hotel`. Null on a search or an unknown link.

Request

curl -X POST "https://api.fetchlayer.dev/booking/resolve-url" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.booking.com/hotel/fr/du-printemps-paris.html"}'

Response

{
  "transport": "booking",
  "notes": [],
  "pagesFetched": 0,
  "kind": "hotel",
  "canonicalUrl": "https://www.booking.com/hotel/fr/du-printemps-paris.html",
  "hotelId": "fr/du-printemps-paris"
}