Booking Holdings Messages API
Provides endpoints for two-way post-booking communication between guests and properties. Use these endpoints to send and retrieve messages, exchange images, and check conversation details.
Provides endpoints for two-way post-booking communication between guests and properties. Use these endpoints to send and retrieve messages, exchange images, and check conversation details.
openapi: 3.1.0
info:
title: Booking.com Demand Accommodations Messages API
version: '3.1'
summary: "The Booking.com Demand API enables Affiliate Partners to access Booking.com's travel inventory, including accommodations, car rentals, and flights. \n\nUse Demand API to search, retrieve details, check availability, manage bookings and run reports using orders details.\n\n- RESTful API with JSON responses.\n- Make HTTPS POST requests to interact with endpoints.\n- Requires authentication using your Affiliate ID and token credentials.\n\n[Check the try out guide!](/demand/docs/getting-started/try-out-the-api)\n"
x-last-validated: '2026-06-02'
x-generated-from: documentation
description: This API collection is specific for the stay part of the connected trip. </br></br>Use these endpoints to search for stays such as hotels and apartments, check availability, retrieve reviews, and get detailed property information.
servers:
- url: https://demandapi.booking.com/3.1
description: Production environment
- url: https://demandapi-sandbox.booking.com/3.1
description: Sandbox environment
security:
- BearerAuth: []
tags:
- name: Messages
x-displayName: Messages
description: Provides endpoints for two-way post-booking communication between guests and properties. </br></br>Use these endpoints to send and retrieve messages, exchange images, and check conversation details.
paths:
/messages/send:
post:
summary: Booking.com Send a Message
description: 'Sends a message within a conversation. The message body supports plain text.
Optionally, attach a file by referencing a previously uploaded attachment ID.
'
operationId: messagesSend
tags:
- Messages
parameters:
- $ref: '#/components/parameters/AffiliateIdHeader'
requestBody:
required: true
content:
application/json:
schema:
title: SendMessageRequest
type: object
required:
- conversation
- content
- accommodation
properties:
conversation:
type: string
description: Unique identifier of the conversation.
accommodation:
type: string
description: Unique identifier of the property.
content:
type: string
description: The message text to send.
attachments:
type: array
items:
type: string
description: Optional list of attachment IDs, if sending one or more files.
example:
conversation: 8586a789-44f4-5521-9f27-f5efd097cba6
accommodation: '6819547'
content: Hello, I'm your guest!.
attachments:
- c325f460-1dc6-11f0-80f0-8d0908786f77
responses:
'200':
description: Message sent successfully.
content:
application/json:
schema:
type: object
properties:
request_id:
type: string
description: Unique identifier for this request. Provide this ID when contacting support.
data:
type: object
properties:
message:
type: string
description: Unique identifier for the sent message.
example:
request_id: cdb0b154-2eae-481b-8fee-fb2725296e1f
data:
message: 3164e570-19e0-11f0-baca-e5019c8df435
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/messages/latest:
post:
summary: Booking.com Fetch Latest Messages
description: 'Retrieves up to **100 of the most recent messages** including messages from both property and guest.<br/>
- Messages are returned in reverse chronological order (newest first).
- Use this endpoint to sync message threads or poll for updates.
**Important:** To retrieve the latest messages, send an empty POST request. Any content in the request body will be ignored.
'
operationId: messagesLatest
tags:
- Messages
parameters:
- $ref: '#/components/parameters/AffiliateIdHeader'
responses:
'200':
description: Latest messages fetched successfully.
content:
application/json:
schema:
type: object
properties:
request_id:
type: string
description: Unique identifier for this request. Provide this ID when contacting support.
data:
type: object
properties:
messages:
type: array
items:
type: object
properties:
message_id:
type: string
description: Unique identifier of the message.
reply_to:
type:
- string
- 'null'
description: ID of the message this is replying to (if applicable).
conversation:
type: object
properties:
id:
type: string
description: Unique identifier of the conversation.
accommodation:
type: string
description: Unique identifier of the property.
reservation:
type: string
description: Unique identifier of the reservation.
content:
type: string
description: Message text content.
sender:
type: object
properties:
participant_id:
type: string
description: Unique identifier of the conversation participant.
metadata:
type: object
description: Additional metadata about the sender.
attachments:
type: array
items:
type: string
description: Attachment IDs included with the message.
timestamp:
type: string
format: date-time
description: Timestamp in ISO 8601 format (UTC) when the message was sent.
example:
request_id: 0248d85a-17e0-44b3-a37c-7d4b5c03f58b
data:
messages:
- message_id: daca26da-4ce3-519d-b9eb-623eeb674800
reply_to: null
conversation:
id: b2364f9b-6466-599a-a947-0d35cff4f492
accommodation: '5589515'
reservation: '4439608993'
content: Hello Anne, welcome to CS Training Test Hotel...
sender:
participant_id: 930d9af8-2390-5e43-a4d7-235b52a30a14
metadata:
type: property
name: CS Training Test Hotel Sloterdijk 10
attachments: []
timestamp: '2025-05-08T08:49:15.000Z'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/messages/latest/confirm:
post:
summary: Booking.com Confirm Message Receipt
description: 'Confirms receipt of specified messages.
This confirmation is required before receiving new messages from the POST /messages/latest endpoint.
'
operationId: messagesLatestConfirm
tags:
- Messages
parameters:
- $ref: '#/components/parameters/AffiliateIdHeader'
requestBody:
required: true
content:
application/json:
schema:
title: ConfirmMessageReceiptRequest
type: object
properties:
messages:
type: array
items:
type: string
description: Unique identifier of a message to confirm receipt of.
example: &id001
messages:
- 8586a789-44f4-5521-9f27-f5efd097cba
examples:
MessagesLatestConfirmRequestExample:
summary: Default messagesLatestConfirm request
x-microcks-default: true
value: *id001
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
parameters:
AffiliateIdHeader:
in: header
name: X-Affiliate-Id
schema:
type: integer
required: true
description: Include here your Affiliate identifier number
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: string
x-tagGroups:
- name: Travel services
tags:
- Accommodations
- Cars
- name: Common
tags:
- Common/locations
- Common/payments
- Common/languages
- name: Orders
tags:
- Orders
- name: Messaging
tags:
- Messages
- Conversations
- Attachments