Skip to content

Guide

Using the Booking.com hotel API in Zapier

Zapier does not have a native Booking.com app in its directory yet, but the HTTP Request action (available in the Webhooks by Zapier app) calls the API directly. This unlocks the same live hotel data for any Zapier workflow: rate watches that fire on schedule, price feeds into Airtable or Google Sheets, or alerts sent to Slack when a property drops below a threshold.

What you need

  • A

    Zapier account

    (free tier works for testing)
  • A RapidAPI key for the

    Booking Live API

    . The free tier verifies your key works; a scheduled rate watch fits comfortably in the cheapest paid plan.

Setting up the HTTP Request

Add the Webhooks by Zapier app to your Zap and choose the Custom Request action. Configure it as a POST request to:

https://booking-live-api.p.rapidapi.com/api/hotels/v1/search

Add three headers:

Content-Type: application/json
x-rapidapi-host: booking-live-api.p.rapidapi.com
x-rapidapi-key: YOUR_RAPIDAPI_KEY

And set the body to raw JSON:

{
  "destination": "London, UK",
  "checkin_date": "2026-10-15",
  "checkout_date": "2026-10-18",
  "adults": 2
}

Reading the response

The API returns an array of hotel objects. Each object includes:

  • hotel_name: the property name
  • price_string: the price as a formatted string
  • price_as_number: the same price as a number for filtering
  • review_score: the Booking.com review score
  • room_type: the room description
  • booking_link: a deep link that opens the property on Booking.com ready to book

Zapier surfaces these fields under the step's output. Reference them in downstream actions the way you would any other Zap data: {{step_name.price_as_number}}.

Example workflows

Scheduled rate watch. Schedule Trigger (daily at 8 AM) → HTTP Request (the search above) → Filter (only continue if price_as_number is below your threshold) → Gmail (send yourself the hotel name, price, and booking_link).

Destination comparison. Looping by Zapier (a list of cities) → HTTP Request (one search per destination) → Airtable (log each result with timestamp).

Check a specific hotel. Same host, path /api/hotels/v1/hotel_by_name, and use this body instead:

{
  "hotel_name": "The Savoy",
  "area": "London, UK",
  "checkin_date": "2026-10-15",
  "checkout_date": "2026-10-18",
  "adults": 2
}

The response is a single object with the same fields. This skips the property ID lookup and returns pricing for that exact hotel.

Multi-market pricing

Add "proxy_country": "US" to the request body to see the rate a US shopper sees. Run the same search with different proxy_country values (US, DE, IL) to compare pricing across markets. The full pattern is documented in How to monitor hotel rate parity.

Timeout and rate limits

Set the HTTP Request timeout to 60 seconds. This is a live scan of Booking.com, not a cache read, and response time tracks destination complexity.

If you are looping over multiple destinations, mind your plan's per-minute rate limit. Space the iterations with Zapier's Delay action rather than firing them all at once.

Test it on your own hotels

Run your three hardest destinations in a test Zap. If the data doesn't earn the fee, you've spent nothing.

Free tier: 10 requests/month. No card to try.