webstractor
Developer docs

Hotel search

Search public hotel listings.

Look up public hotel options for a destination and stay window. Results are normalized as readable Markdown or schema-v1 JSON, with available prices in currency minor units, guest ratings, star class, and coordinates. Prices and availability can change. This is not a booking API.

curl --get 'https://api.webstractor.com/v1/hotels' \
  --data-urlencode 'q=New York' \
  --data-urlencode 'checkIn=2026-10-01' \
  --data-urlencode 'checkOut=2026-10-03' \
  --data-urlencode 'adults=2' \
  --data-urlencode 'currency=USD' \
  --data-urlencode 'limit=10' \
  --data-urlencode 'format=json'

Parameters

ParameterRequiredDescription
qYesDestination city, neighborhood, or hotel-area query.
checkInYesCheck-in date as YYYY-MM-DD.
checkOutYesCheck-out date as YYYY-MM-DD. Must be after check-in.
adultsNo1–9 adult guests. Default: 2.
currencyNoThree-letter ISO currency used for prices. Default: USD.
limitNo1–20 ordered listings. Default: 10.
languageNoCanonical BCP 47 language tag. Default: en-US.
countryNoTwo-letter ISO country code. Default: US.
formatNojson (default) or markdown.

JSON response

JSON uses schema version 1 with type: "feed" and source: "hotel-search". Listings are document items. A hotelPrice is an integer in the returned currency’s minor unit; use hotelPriceDisplay for display. Ratings and star class appear only when available. Booking links and session tokens are omitted.

{
  "schemaVersion": 1,
  "type": "feed",
  "source": "hotel-search",
  "attributes": {
    "feedType": "hotel-search",
    "query": "New York",
    "hotelCheckIn": "2026-10-01",
    "hotelCheckOut": "2026-10-03",
    "hotelAdults": 2,
    "hotelCurrency": "USD",
    "resultCount": 1
  },
  "items": [
    {
      "type": "document",
      "source": "hotel-search",
      "title": "Example Hotel",
      "attributes": {
        "hotelPrice": 47000,
        "hotelCurrency": "USD",
        "hotelPriceDisplay": "$470",
        "hotelRating": 4.1,
        "hotelReviewCount": 220,
        "hotelStars": 4
      }
    }
  ]
}

Behavior

  • Successful requests are cached for up to one hour. Identical cache hits are not billed and bypass upstream work.
  • Hotel search uses the standard 60 requests per client per minute limit.
  • Prices and availability can change. Results are public listings, not reservations.
  • Traveller identity, payment data, and booking actions are not accepted.