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/contentParameters
property_idstringRequiredBooking.com property id, connected to your workspace.
typestringRequiredphotos | facilities | description | settings | policies | licences | checkin_methods | contacts. amenities and descriptions are accepted as older names.
room_idstringTarget one room: its facilities, its photo gallery, or its licence.
What each type takes
description—textand optionallanguage. 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; withroom_id,photo_idsadds processed photos to that room.settings—settings: { <block>: {…} }; each block is written separately and reported inresults.policies—policyCode(152 free cancellation, 1 non-refundable, …). A property holds at most 7 and none can be deleted.licences—variantIdandcontentDatafrom the region's rules (GET ?type=licences). Values are checked against the region's format first.checkin_methods—methods: [{ checkin_method }], from the namesGET ?type=checkin_methodslists.contacts— Booking.com contact objects; at most one carries thegeneralprofile.
Refusals
- A write Booking.com refuses answers
422 booking_rejectedwith 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