Send Message
Send messages to guests through their original booking platform — Airbnb, Booking.com, VRBO, or any other connected channel.
When to use this endpoint
- Reply to a guest inquiry or question
- Send check-in instructions before arrival
- Automate post-booking confirmation messages
- Build an AI-powered guest communication workflow
Platform routing
Messages are delivered through the original booking platform. A guest who booked on Airbnb receives the message in their Airbnb inbox. Direct booking guests receive it via the channel you configured (email, SMS, or both).
Send a message
POST
/v1/conversations/{id}/messagescurl -X POST "https://api.repull.dev/v1/conversations/100/messages" \
-H "Authorization: Bearer sk_test_YOUR_KEY" \
-H "X-Workspace-Id: YOUR_WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"message": "Hi Sarah! Your check-in is confirmed for July 10th at 3 PM. The door code is 4829. Let me know if you need anything!"
}'Path parameters
idstringRequiredConversation ID. Get this from the conversations list endpoint or a reservation object.
Body parameters
messagestringRequiredThe message text to send to the guest. Plain text only — HTML is stripped.
Response format
Returns the sent message with its ID and timestamp.
{
"data": {
"id": "3",
"conversationId": "100",
"senderType": "HOST",
"message": "Hi Sarah! Your check-in is confirmed for July 10th at 3 PM. The door code is 4829. Let me know if you need anything!",
"createdAt": "2026-07-09T10:15:00Z"
}
}Response fields
idstringUnique message identifier.
conversationIdstringID of the conversation this message belongs to.
senderTypestringAlways HOST for messages sent through the API.
messagestringThe message text as delivered.
createdAtstringISO 8601 timestamp when the message was sent.
Common examples
Automated check-in instructions
// Send check-in instructions 24 hours before arrival
const reservations = await repull.reservations.list({
check_in_after: tomorrow,
check_in_before: tomorrow,
status: 'CONFIRMED',
});
for (const res of reservations.data) {
const conversations = await repull.conversations.list({
reservation_id: res.id,
});
if (conversations.data.length > 0) {
await repull.conversations.sendMessage(conversations.data[0].id, {
message: `Hi ${res.primaryGuest.firstName}! Check-in is tomorrow at 3 PM. Your door code is ready.`,
});
}
}Reply to a guest message
curl -X POST "https://api.repull.dev/v1/conversations/100/messages" \
-H "Authorization: Bearer sk_test_YOUR_KEY" \
-H "X-Workspace-Id: YOUR_WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"message": "Great question! The parking spot is #12 in the underground garage. You can access it with the same door code."
}'API Reference
See the complete Conversations API Reference for all endpoints including list conversations and read messages.
AI