Skip to content
View as Markdown
Enter your site to enable Send. Requests are sent from your browser, so the site must allow cross-origin calls (CORS).

GET List Message Threads​

GET
/messaging/threads

List conversations for the Inbox rail, newest activity first (ordered by updated_at DESC, then id DESC). A thread is one phone number on one channel. Consent-only threads (created by recording an opt-out for a number that was never messaged, initiated_by = system with no messages) are hidden until a real message lands on them. Each row includes a last_message preview and a derived WhatsApp session (24-hour window; computed for the whole page in a single query).

Pagination is standard page + per_page (default 25, clamped to 1-100). For infinite scroll pass before=<thread id> to get only rows strictly after that thread in rail order, which stays stable when active threads jump to the top between requests. Note the envelope is conversations/has_more, not the usual paginator. PRO (FluentCampaign Pro Messaging module).

Required capability: fcrm_read_emails or fcrm_manage_emails — which one applies depends on the action being performed.

Enforced by InboxPolicy::verifyRequest(), the policy default for this route group.

Requires: FluentCampaign Pro with the Messaging module enabled. While no messaging channel (SMS or WhatsApp) is switched on the route is not registered at all and returns a 404.

Authorizations​

ApplicationPasswords

WordPress Application Passwords — use Basic auth with your WordPress username and an application password in the format: username:application_password

Type
API Key (header: Authorization)

Parameters​

Query Parameters

channel

Only threads on this channel. Omit for all channels.

Type
string
Valid values
"sms""whatsapp"
search

Search by phone number (and linked contact fields).

Type
string
unread_only

Truthy value returns only threads with unread_count > 0.

Type
boolean
before

Keyset cursor: a thread ID. Returns threads that sort after it in rail order.

Type
integer
page

Page number.

Type
integer
Default
1
per_page

Rows per page. Clamped to 1-100.

Type
integer
Default
25

Responses​

Conversations for the rail.

application/json
JSON
{
"conversations": [
{
"id": 0,
"channel": "string",
"phone_number": "string",
"profile_name": "string",
"wa_id": "string",
"status": "string",
"unread_count": 0,
"updated_at": "string",
"session": {
"has_active_session": true,
"expires_at": "string"
},
"subscriber": {
"id": 0,
"full_name": "string",
"email": "string",
"phone": "string",
"photo": "string",
"status": "string",
"lists": [
"string"
],
"tags": [
"string"
]
},
"last_message": {
"text": "string",
"direction": "string",
"status": "string",
"message_type": "string",
"created_at": "string"
}
}
],
"total": 0,
"per_page": 0,
"current_page": 0,
"has_more": true
}

Playground​

Authorization
Variables
Key
Value

Samples​

Powered by VitePress OpenAPI