Docs/Channels/Booking.com

Booking.com Content & Photos

Read and write one kind of content on a Booking.com property — photos, facilities, description, settings, cancellation policies, licences, check-in methods and contacts — without touching the listing or Airbnb.

POST/v1/channels/booking/content

Parameters

property_idstringRequired

Booking.com property id, connected to your workspace.

typestringRequired

photos | facilities | description | settings | policies | licences | checkin_methods | contacts. amenities and descriptions are accepted as older names.

room_idstring

Target one room: its facilities, its photo gallery, or its licence.

What each type takes

  • description — text and optional language. Booking.com rewrites it into its own copy in every language; allow about three hours.
  • facilities — facilities: [{ facility_id | room_facility_id, state }]. Facilities you leave out are untouched.
  • photos — photos: [{ url }], processed in the background; with room_id, photo_ids adds processed photos to that room.
  • settings — settings: { <block>: {…} }; each block is written separately and reported in results.
  • policies — policyCode (152 free cancellation, 1 non-refundable, …). A property holds at most 7 and none can be deleted.
  • licences — variantId and contentData from the region's rules (GET ?type=licences). Values are checked against the region's format first.
  • checkin_methods — methods: [{ checkin_method }], from the names GET ?type=checkin_methods lists.
  • contacts — Booking.com contact objects; at most one carries the general profile.

Refusals

  • A write Booking.com refuses answers 422 booking_rejected with its reason, including refusals it returns inside an HTTP 200. Resending the same body is refused again.

Scope

  • Scoped to your workspace: a Booking.com property id that is not connected to your workspace returns 404 not_found, the same answer as an id that does not exist.

Example

# Read photos
curl "https://api.repull.dev/v1/channels/booking/content?property_id=1234567&type=photos" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"

# Upload photos
curl -X POST https://api.repull.dev/v1/channels/booking/content \
  -H "Authorization: Bearer sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"property_id": "1234567", "type": "photos", "photos": [{"url": "https://example.com/living-room.jpg", "caption": "Living room"}]}'

# Update the property description
curl -X POST https://api.repull.dev/v1/channels/booking/content \
  -H "Authorization: Bearer sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"property_id": "1234567", "type": "description", "language": "en", "text": "Beachfront villa with a private pool."}'

# Read the licence the region requires
curl "https://api.repull.dev/v1/channels/booking/content?property_id=1234567&type=licences" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"
AI