List conversations
Conversations · GET /v1/conversations
List conversations
/v1/conversationsRequest
curl https://api.repull.dev/v1/conversations?limit=20 \ -H "Authorization: Bearer $REPULL_API_KEY"
Response
{
"data": [
{
"id": "123",
"platform": "airbnb",
"guestId": "123",
"listingId": "123",
"reservationId": "123",
"subject": "Example text",
"lastMessageAt": "2026-06-01T12:00:00.000Z",
"lastMessagePreview": "Example text",
"unreadCount": 0,
"status": "open",
"createdAt": "2026-06-01T12:00:00.000Z",
"updatedAt": "2026-06-01T12:00:00.000Z",
"externalThreadId": "123"
}
],
"pagination": {
"nextCursor": "eyJpZCI6MTIzfQ==",
"hasMore": true,
"total": 0
}
}Captured from a real response. Regenerated on every release, and CI fails if this shape stops matching the API.
Query Parameters
accountstringOnly one connected account's records, as `provider:externalAccountId` (e.g. `airbnb:79730216`, `booking:10167991`, `vrbo:36`, `hostaway:…`) — the pair on every webhook `account` block, on `connect.session.completed`, and on each record's `account`. See /for-platforms.
cursorstringOpaque cursor returned in the previous response's `pagination.nextCursor`. Omit to fetch the first page.
offsetintegerFirst-class alias for cursor-based pagination. Mutually exclusive with `cursor` — passing both returns 422. Accepts integers in `[0, 10000]`; deeper walks must use `cursor` (constant per-page cost). The response always includes `pagination.nextCursor` so consumers can switch from offset → cursor mid-walk for deep pagination without re-keying.
limitintegerMax items per page. Hard cap is 100.
platformstringRestrict to threads on a single channel.
statusstringFilter by archive status. `archived` currently always returns an empty page — kept for forward-compat.