Booking.com data, ready when you are.

Properties, search, prices for a stay and reviews from Booking.com.

Try in playground From $0.0018 a record · $0.10 free

What you can get.

  • $0.0018per record

    Properties

    Full cards for up to ten properties by URL. Price from, guest score and category scores, rooms with availability and price, facilities, policies, location.

    Try it →
  • $0.0018per record

    Search

    Properties for a destination and a stay, with Booking's own filters.

    Try it →
  • $0.0018per record

    Reviews

    Guest reviews for up to ten properties. Liked/disliked text, score, date, traveler type, room, property response.

    Try it →

What the data looks like.

propertyNamepropertyTypecitycountrystarRatingguestScorescoreLabelreviewCountpriceFromcurrencycheckInTimecheckOutTimepropertySlugpropertyIdpropertyUrlimagesmapUrldetails
Hotel Aurel RiversideHotelPragueCzechia48.9Excellent2,140132EUR15:0011:00hotel-aurel-riverside2374999302https://www.booking.com/hotel-aurel-riverside-1000
  • https://img.booking.com/hotel-aurel-riverside.jpg
https://www.booking.com/hotel-aurel-riverside-1000
  • {}
Casa LumenGuest houseSevilleSpain39.3Wonderful61288EUR14:0011:00casa-lumen3605674781https://www.booking.com/casa-lumen-1001
  • https://img.booking.com/casa-lumen.jpg
https://www.booking.com/casa-lumen-1001
  • {}
Northfold SuitesAparthotelEdinburghUnited Kingdom48.6Excellent1,305154GBP16:0010:00northfold-suites828209759https://www.booking.com/northfold-suites-1002
  • https://img.booking.com/northfold-suites.jpg
https://www.booking.com/northfold-suites-1002
  • {}
18 fields, scroll sideways for all. Example rows: made-up names, real field names. Live calls return real data.

For developers

API reference.

One endpoint, POST /v1/booking. Open an operation to see its fields.

Read the docs
Propertiesproperties

Full cards for up to ten properties by URL. Price from, guest score and category scores, rooms with availability and price, facilities, policies, location.

FieldTypeMeaning
subjects *list of string · 1-10 itemsbooking.com/hotel/<country>/<name> URLs.
stayobject
stay.checkInstring · YYYY-MM-DDFirst night, YYYY-MM-DD. Only read together with checkOut; without dates a property has no price to show.
stay.checkOutstring · YYYY-MM-DDDeparture day, YYYY-MM-DD, after checkIn.
stay.currencystring · ISO 4217ISO 4217 code the prices come back in ("USD", "INR", "EUR").
stay.languagestring · BCP-47BCP-47 tag for names and descriptions ("en-GB", "de-DE").

Response fields, each row of data

FieldType
propertySlugstring
propertyIdstring
propertyUrlstring
propertyNamestring
propertyTypestring
starRatingnumber
citystring
countrystring
fullAddressstring
latitudenumber
longitudenumber
guestScorenumber
scoreLabelstring
reviewCountinteger
categoryScoresany
staystring
priceFromnumber
currencystring
roomsany
roomTypesany
mainImagestring
imageslist of string
facilitiesany
descriptionstring
highlightsany
checkInTimestring
checkOutTimestring
policiesany
finePrintstring
surroundingsany
traderInfoany
licenseNumberslist of string
hostany
mapUrlstring
detailsobject

Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.

example request · properties
curl -X POST https://apiforagents.dev/v1/booking \
  -H "Authorization: Bearer $AFA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"op":"properties","subjects":["https://www.booking.com/hotel/gb/<hotel-name>.html"],"stay":{"checkIn":"2027-03-12","checkOut":"2027-03-15","currency":"GBP"}}'

Example response rows

data · made-up names, real field names
[
  {
    "propertyName": "Hotel Aurel Riverside",
    "propertyType": "Hotel",
    "city": "Prague",
    "country": "Czechia",
    "starRating": 4,
    "guestScore": 8.9,
    "scoreLabel": "Excellent",
    "reviewCount": 2140,
    "priceFrom": 132,
    "currency": "EUR",
    "checkInTime": "15:00",
    "checkOutTime": "11:00",
    "propertySlug": "hotel-aurel-riverside",
    "propertyId": "2374999302",
    "propertyUrl": "https://www.booking.com/hotel-aurel-riverside-1000",
    "images": [
      "https://img.booking.com/hotel-aurel-riverside.jpg"
    ],
    "mapUrl": "https://www.booking.com/hotel-aurel-riverside-1000",
    "details": {}
  },
  {
    "propertyName": "Casa Lumen",
    "propertyType": "Guest house",
    "city": "Seville",
    "country": "Spain",
    "starRating": 3,
    "guestScore": 9.3,
    "scoreLabel": "Wonderful",
    "reviewCount": 612,
    "priceFrom": 88,
    "currency": "EUR",
    "checkInTime": "14:00",
    "checkOutTime": "11:00",
    "propertySlug": "casa-lumen",
    "propertyId": "3605674781",
    "propertyUrl": "https://www.booking.com/casa-lumen-1001",
    "images": [
      "https://img.booking.com/casa-lumen.jpg"
    ],
    "mapUrl": "https://www.booking.com/casa-lumen-1001",
    "details": {}
  }
]

An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.

Try properties in the playground Examples and pricing for properties
Reviewsreviews

Guest reviews for up to ten properties. Liked/disliked text, score, date, traveler type, room, property response.

FieldTypeMeaning
subjects *list of string · 1-10 itemsbooking.com/hotel/<country>/<name> URLs.
sortenumrelevance · newest · oldest · rating_high · rating_low
sincestring · YYYY-MM-DDStop at this date; applies with newest or oldest.
scoreBandslist of enumBooking's own 10-point score bands: superb 9+, good 7-9, average 5-7, poor <5. Not ratings. That name is a star filter elsewhere.superb · good · average · poor
limitinteger · 1-100

Response fields, each row of data

FieldType
reviewIdstring
reviewTitlestring
likedstring
dislikedstring
ratingnumber
postedDatestring
languagestring
travelerTypestring
roomstring
checkInstring
checkOutstring
helpfulVotesinteger
photoslist of string
propertyResponsestring
reviewerNamestring
reviewerLocationstring
reviewerAvatarstring
detailsobject

Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.

example request · reviews
curl -X POST https://apiforagents.dev/v1/booking \
  -H "Authorization: Bearer $AFA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"op":"reviews","subjects":["https://www.booking.com/hotel/gb/<hotel-name>.html"],"sort":"newest","scoreBands":["average","poor"],"limit":25}'

Example response rows

data · made-up names, real field names
[
  {
    "reviewerName": "Emma",
    "reviewerLocation": "Netherlands",
    "rating": 9,
    "reviewTitle": "Great location, friendly staff",
    "liked": "Five minutes from the old town.",
    "disliked": "Coffee at breakfast.",
    "travelerType": "Couple",
    "room": "Double Room with River View",
    "postedDate": "2026-10-10",
    "reviewId": "2742165313",
    "photos": [
      "https://img.booking.com/great-location-friendly-staff.jpg"
    ],
    "details": {}
  },
  {
    "reviewerName": "Daniel",
    "reviewerLocation": "United States",
    "rating": 7.5,
    "reviewTitle": "Good value, small rooms",
    "liked": "Clean and quiet.",
    "disliked": "Tiny bathroom.",
    "travelerType": "Solo traveller",
    "room": "Standard Single Room",
    "postedDate": "2026-10-06",
    "reviewId": "3690182538",
    "photos": [
      "https://img.booking.com/good-value-small-rooms.jpg"
    ],
    "details": {}
  }
]

An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.

Try reviews in the playground Examples and pricing for reviews
Historyhistoryfree

Stored price/score series of properties already held. Free.

FieldTypeMeaning
subjects *list of string · 1-10 items
metricenumprice_from · guest_score · review_count
daysinteger · 1-730
Try history in the playground

Guides and ideas.

Use it from your tools.

More in places & travel.

All platforms