GET Subscriber WhatsApp Messages​
Paginated WhatsApp conversation history for one contact, read from the contact's WhatsApp thread (fc_message_threads / fc_messages). A contact with no WhatsApp thread returns an empty page, not an error, and the contact ID is not checked for existence. Default order is oldest first (the chat panel loads the last page for the newest messages and pages backwards); pass order=desc for newest first. Ordering uses COALESCE(sent_at, created_at) with the ID as tie-break.
The same response also carries stats and session, so one poll refreshes the counters, the 24-hour window banner and the composer state.
PRO (FluentCampaign Pro). The route exists only while the Messaging module (the messaging_module experimental setting) is switched on, and the policy answers 403 unless at least one channel (SMS or WhatsApp) is active.
Required capability: fcrm_read_emails or fcrm_manage_emails — which one applies depends on the action being performed.
Enforced by MessagePolicy::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​
WordPress Application Passwords — use Basic auth with your WordPress username and an application password in the format: username:application_password
Parameters​
Path Parameters
Contact (subscriber) ID.
Query Parameters
Page number.
1Rows per page, 1-200; any other value falls back to 20.
20Sort direction by message time.
"asc""desc""asc"Narrow the history; unknown values return everything.
"sent""received""campaign""custom""read"Responses​
Messages, stats and session state.