Docs/Channels/Booking.com

Connect Booking.com

Let your users link their Booking.com account through a hosted, white-label connect page — the same model as connecting Airbnb. Your server mints a session, you send the user to a single URL, and they finish the link inside their own Booking.com Extranet.

The host already has a channel manager?

This connection makes Repull the property's connectivity provider — use it when your app is the channel manager. To add reservations, guest messages and reviews while the host keeps their current PMS or channel manager connected, use the Extranet login instead.

Booking.com takes the calendar from Repull

Once connected, Booking.com takes availability, prices and restrictions only from Repull. A room whose listing has no calendar in Repull shows as closed on Booking.com. Map each room to a listing that already has one (for example the same home connected from Airbnb), or set prices and availability through the API. Rooms imported as new listings start without a calendar — see Listings created from a room. To only read bookings and messages, use the Extranet login.

How it works

From your server, you create a connect session. We give you a one-time URL on connect.repull.dev. Send your user there. The hosted page walks them through linking the connectivity provider in their Booking.com Extranet, then redirects them back to your app when they're done.

  1. Your server calls POST /v1/connect/booking with a redirectUrl.
  2. We return a url — a hosted page on connect.repull.dev.
  3. Redirect your user to url.
  4. On the hosted page, they open the Booking.com Extranet, enable the connectivity provider, and paste their Hotel ID (steps below).
  5. On success, the user lands back on your redirectUrl.

Same model as connecting Airbnb

Your server only mints a session and reads the result. The hosted connect page is rendered with your branding, and the user completes the link inside their own Booking.com account — you never handle their Booking.com credentials. See Connect Airbnb for the equivalent OAuth flow.

Start a connect session

Server-to-server. Authenticate with your live API key. Unlike Airbnb, there is no accessType for Booking.com — the connection is full property management.

curl -X POST 'https://api.repull.dev/v1/connect/booking' \
  -H 'Authorization: Bearer sk_live_...' \
  -H 'Content-Type: application/json' \
  -d '{
    "redirectUrl": "https://yourapp.com/connected"
  }'

Body parameters

redirectUrlstringRequired

Where we send the user after they finish (or abandon) the connect flow. We preserve your existing query params and append our own.

Response

{
  "url": "https://connect.repull.dev/cs_8gQrT2v9k3M4nLp7wJxYzAbCdEfGhIj",
  "sessionId": "cs_8gQrT2v9k3M4nLp7wJxYzAbCdEfGhIj",
  "expiresAt": "2026-06-25T18:25:14.000Z"
}
  • url — the one-time hosted connect page. Redirect your user here.
  • sessionId — the session identifier, in case you want to reference it later.
  • expiresAt — when the link stops working if the user hasn't finished. Mint a new session after this.

What the user does on the hosted page

The hosted page guides the user through enabling the connectivity provider in their Booking.com Extranet. The steps they follow:

  1. Sign in to the Booking.com Extranet.
  2. Open Connectivity Providers.
  3. Pick our connectivity provider from Booking.com's provider list — the hosted page shows the exact name to select.
  4. Click Connect next to it.
  5. Paste their Hotel ID when prompted on the hosted page.

Which provider to pick

The hosted Connect page shows your users the exact provider name to select in their Booking.com Extranet, so you don't need to explain it in your own app. Just send them to the hosted page and they will see the name next to the step.

They need their Booking.com Hotel ID

The user must paste the Hotel ID from their Booking.com account to finish the link. It's the numeric property ID shown in their Extranet. If they don't have it handy, point them to their Extranet's property settings before they start.

Handle the redirect back

When the user finishes the connect flow, we redirect them to your redirectUrl. From there, confirm the connection from your server with GET /v1/connect/booking and start managing the property.

curl 'https://api.repull.dev/v1/connect/booking' \
  -H 'Authorization: Bearer sk_live_...'

# {
#   "connected": true,
#   "provider": "booking",
#   "status": "active"
# }

Once connected, you can manage properties, content, pricing, availability, messaging, and reservations on Booking.com. See the Booking.com channel guides for everything you can do next.

Disconnect a property

Call DELETE /v1/connect/booking?accountId=<hotel id> to disconnect one Booking.com property. accountId is required when more than one is connected. Its listings are deactivated (not deleted) unless they are still connected through another channel, and their ids come back in listingsDeactivated. See Connect → Disconnect an account.

AI