Booking message operations
Messaging API (2.0.0)
API for retrieving the operator↔partner conversation stored against a booking.
Bookable relays the conversation between the venue operator and the integration partner over email (both parties email a per-booking conversation alias and Bookable forwards each message on).
Participants can take part in two ways:
- By email — reply to the relay email from their normal mail client (attachments supported this way only).
- Programmatically —
POST /bookings/{bookingId}/messagesto send a plain-text message. Bookable stores it and relays it on to the other participant over the same conversation channel.GETreturns the stored conversation stack.
The send direction is derived from the caller's role: an Integration Partner sends to the venue operator (partner_to_operator); a venue group operator sends to the integration partner (operator_to_partner). Each stored message carries this absolute direction.
Pagination: Uses page-based pagination via pageNumber and pageSize. Results are ordered by sentAt ascending (oldest first).
Availability: Real email relay is not available in the Sandbox environment. In Sandbox only the webhook-only test flow is reachable — see the direction override on SendMessageRequest, which stores the message and fires the message.received webhook to your registered sandbox callback without sending any email.
Request
Sends a plain-text message on the booking's operator↔partner conversation. Bookable stores the message and relays it over email to the other participant, who can reply from their normal mail client.
The delivery target is derived from the caller's role — there is no recipient field:
- Integration Partner — delivered to the venue operator (
direction: partner_to_operator). - Venue group operator — delivered to the integration partner (
direction: operator_to_partner).
Attachments cannot be sent via this endpoint; add them by replying to the relay email instead.
An optional ID which you can use to track transactions across multiple systems. It can have any value, but we recommend avoiding . characters. Mirrored back in a response header.
Plain-text message body. Delivered to the other conversation participant.
Sandbox-only test override. Forces the absolute message direction so a partner can trigger their own message.received webhook (send operator_to_partner) against their registered sandbox callback — without a real operator or an inbound email round-trip. Ignored outside the Sandbox environment, where the direction is derived from the caller's role. When set in Sandbox the email relay is skipped (webhook-only): the message is stored and the webhook fires, but no email is sent.
- Livehttps://api.bookabletech.com/bookings/{bookingId}/messages
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.bookabletech.com/bookings/29|CO|6a3e866a4989b3b73d78f011|B/messages' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
-H 'X-Partner-Reference: string' \
-d '{
"body": "Could you please accommodate a high chair for us?",
"direction": "operator_to_partner"
}'Message stored and relayed to the other participant
Absolute message direction: operator_to_partner = the venue operator sent it; partner_to_operator = the integration partner sent it.
Attachment metadata (bytes are exchanged over email, not via this API).
{ "id": "msg_ghi789", "subject": "ABR-1042 Message regarding your booking", "body": "Could you please accommodate a high chair for us?", "senderEmail": "partner@example.com", "senderName": "Jane Smith", "direction": "partner_to_operator", "sentAt": "2026-06-01T10:00:00Z" }
Request
Returns all stored messages for the given booking's operator↔partner conversation, ordered by sentAt ascending (oldest first). Each message's direction states who sent it and who received it.
Access is scoped to the caller's venue group: Integration Partners see only messages for bookings belonging to their associated venues.
- Livehttps://api.bookabletech.com/bookings/{bookingId}/messages
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.bookabletech.com/bookings/29|CO|6a3e866a4989b3b73d78f011|B/messages?pageNumber=1&pageSize=20' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'X-Correlation-ID: 11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA' \
-H 'X-Partner-Reference: string'Message list retrieved successfully
Messages for the current page, ordered by sentAt ascending.
Message body text
Absolute message direction: operator_to_partner = the venue operator sent it; partner_to_operator = the integration partner sent it.
Attachment metadata (bytes are exchanged over email, not via this API).
{ "meta": { "currentPage": 1, "pageSize": 20, "totalItems": 2, "totalPages": 1 }, "data": [ { … }, { … } ] }