Fetch Conversation Messages
Inbox management is not available on the Basic plan. Upgrade to Intermediate, Growth or Business plan to access this endpoint.
Overview
The Fetch Conversation Messages endpoint returns the Social Inbox message thread for a specific conversation, sorted from newest to oldest. When the platform creates duplicate conversation IDs for the same participant, their messages are combined and duplicate provider message_id values are removed.
Base URL:
https://message.oneupapp.io
Endpoint
GET /api/conversations/{id}/messages
Request Parameters
| Parameter | Required | Description |
|---|---|---|
apiKey | Yes | Your personal API key generated from the API Access page. Passed as a query parameter. |
id | Yes | The conversation ID returned by Fetch Conversations. Passed in the URL path. Use id, not conversation_id. |
per_page | No | Number of results per page. Default: 20. Maximum: 100. |
cursor | No | The meta.next_cursor value from the previous response. Omit for the first page. |
Reading messages does not mark them as read. Use Mark Conversation Read to update their read status.
Sample Request
curl --location --request GET \
"https://message.oneupapp.io/api/conversations/123/messages?apiKey=YOUR_API_KEY"
With pagination:
curl --location --request GET \
"https://message.oneupapp.io/api/conversations/123/messages?apiKey=YOUR_API_KEY&per_page=20&cursor=NEXT_CURSOR"
Sample Response
{
"message": "OK",
"error": false,
"data": [
{
"id": 456,
"conversation_id": "t_987654321",
"message_id": "m_123456",
"sender_id": "104040148726689",
"receiver_id": "987654321",
"sender_name": "My Page",
"receiver_name": "Jane Doe",
"message": "Thanks for contacting us!",
"attachments": null,
"template": null,
"profile_image": null,
"is_read": 1,
"created_time": "2026-09-28 10:00:00"
}
],
"meta": {
"next_cursor": null,
"has_more": false
}
}
If the connected Facebook or Instagram account needs to be synced, the API returns 202 Accepted with Retry-After: 5. Wait at least five seconds, then repeat the request. See the account sync response.
Pagination
Use the meta.next_cursor value from the response as the next request’s cursor parameter. It returns null when there are no more results. This retrieves stored messages; it does not fetch older history from the platform.
Response Fields
| Field | Description |
|---|---|
id | The internal message ID. |
conversation_id | The platform-specific conversation identity. |
message_id | The platform-specific message ID. |
sender_id | The sender’s platform ID. |
receiver_id | The recipient’s platform ID. |
sender_name | The sender’s display name, when available. |
receiver_name | The recipient’s display name, when available. |
message | The message text. |
attachments | Attachment details, when available. |
template | WhatsApp template details, when available. |
profile_image | Profile image, when available. |
is_read | Local read status: 0 for unread or 1 for read. |
created_time | The message creation time, formatted as YYYY-MM-DD HH:MM:SS. |
| Field | Description |
|---|---|
meta.next_cursor | The cursor for the next page, or null. |
meta.has_more | Whether more messages are available. |
Error Responses
| Status | When |
|---|---|
401 | Missing or invalid apiKey. |
403 | Inbox management is unavailable on the Basic plan. |
404 | The requested resource was not found or does not belong to the authorized user. |
422 | Invalid or missing parameters. |
429 | The limit of 60 requests per minute per API key was exceeded. Wait for the Retry-After interval. |
503 | API key verification or account sync is temporarily unavailable. |
✅ Result: You have successfully retrieved the messages for the conversation!