Skip to main content
GET
/
v1
/
conversations
List Conversations
curl --request GET \
  --url https://api.trellistech.com/v1/conversations \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "id": "<string>",
      "contact": {
        "id": "<string>",
        "name": "<string>",
        "email": "<string>",
        "phone": "<string>"
      },
      "channel": "<string>",
      "status": "<string>",
      "property_id": "<string>",
      "property_name": "<string>",
      "assigned_to": {
        "id": "<string>",
        "name": "<string>"
      },
      "last_message": {
        "content": "<string>",
        "direction": "<string>",
        "sent_at": "<string>"
      },
      "unread_count": 123,
      "created_at": "<string>",
      "updated_at": "<string>"
    }
  ],
  "total": 123,
  "limit": 123,
  "offset": 123
}
Returns a paginated list of conversations from your unified inbox. Use query parameters to filter by status or communication channel.
List responses return a summary of each conversation with the most recent message. To retrieve the full message history and reservation context, use the Get Conversation endpoint.

Query Parameters

status
string
Filter by conversation status. One of: TODO, FOLLOW_UP, DONE, CLOSED.
channel
string
Filter by communication channel. One of: AIRBNB, BOOKING, WHATSAPP, EMAIL, SMS.
assigned_to
string
Filter conversations assigned to a specific team member by their user ID.
property_id
string
Filter conversations related to a specific property.
limit
integer
default:"50"
Maximum number of conversations to return (1—100).
offset
integer
default:"0"
Number of conversations to skip for pagination.

Example Request

curl -H "Authorization: Bearer trls_live_abc123..." \
  "https://api.trellistech.com/v1/conversations?status=TODO&channel=AIRBNB&limit=20"

Response

data
array
Array of conversation objects.
total
integer
Total number of conversations matching the filter criteria.
limit
integer
The limit used for this request.
offset
integer
The offset used for this request.

Example Response

200
{
  "data": [
    {
      "id": "c1a2b3c4-5678-9abc-def0-555555555555",
      "contact": {
        "id": "ct-001",
        "name": "Maria Garcia",
        "email": "maria.garcia@example.com",
        "phone": "+1-555-0123"
      },
      "channel": "AIRBNB",
      "status": "TODO",
      "property_id": "a1b2c3d4-5678-9abc-def0-123456789abc",
      "property_name": "Sunset Villa",
      "assigned_to": {
        "id": "u1a2b3c4-1111-2222-3333-444444444444",
        "name": "Ana Lopez"
      },
      "last_message": {
        "content": "Hi! Is early check-in available on April 10th? We're arriving around noon.",
        "direction": "inbound",
        "sent_at": "2026-04-04T18:30:00Z"
      },
      "unread_count": 1,
      "created_at": "2026-03-01T08:00:00Z",
      "updated_at": "2026-04-04T18:30:00Z"
    },
    {
      "id": "c2b3c4d5-6789-abcd-ef01-666666666666",
      "contact": {
        "id": "ct-002",
        "name": "James Chen",
        "email": "james.chen@example.com",
        "phone": null
      },
      "channel": "AIRBNB",
      "status": "TODO",
      "property_id": "b2c3d4e5-6789-abcd-ef01-23456789abcd",
      "property_name": "Mountain Retreat",
      "assigned_to": null,
      "last_message": {
        "content": "Thank you for the booking confirmation! Quick question about parking...",
        "direction": "inbound",
        "sent_at": "2026-04-04T14:15:00Z"
      },
      "unread_count": 2,
      "created_at": "2026-03-10T15:00:00Z",
      "updated_at": "2026-04-04T14:15:00Z"
    }
  ],
  "total": 12,
  "limit": 20,
  "offset": 0
}

Error Responses

400
{
  "error": {
    "code": "invalid_parameter",
    "message": "The 'channel' parameter must be one of: AIRBNB, BOOKING, WHATSAPP, EMAIL, SMS."
  }
}
401
{
  "error": {
    "code": "unauthorized",
    "message": "Invalid or missing API key."
  }
}