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
| Parameter | Required | Description |
|---|---|---|
q | Yes | Destination city, neighborhood, or hotel-area query. |
checkIn | Yes | Check-in date as YYYY-MM-DD. |
checkOut | Yes | Check-out date as YYYY-MM-DD. Must be after check-in. |
adults | No | 1–9 adult guests. Default: 2. |
currency | No | Three-letter ISO currency used for prices. Default: USD. |
limit | No | 1–20 ordered listings. Default: 10. |
language | No | Canonical BCP 47 language tag. Default: en-US. |
country | No | Two-letter ISO country code. Default: US. |
format | No | json (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.