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}/messages
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": "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

idstringRequired

Conversation ID. Get this from the conversations list endpoint or a reservation object.

Body parameters

messagestringRequired

The 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

idstring

Unique message identifier.

conversationIdstring

ID of the conversation this message belongs to.

senderTypestring

Always HOST for messages sent through the API.

messagestring

The message text as delivered.

createdAtstring

ISO 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