Get messages from a topic with cursor-based pagination. Messages are returned in the specified order.
Authorization: Your API key bot must be a member of the topic to access its messages.
Pagination: Use the cursor parameter with the value from nextCursor in the response to get the next page.
The before and after parameters are mutually exclusive - use one or the other, not both.
Note: For security reasons, a 404 response is returned both when the topic does not exist and when your bot is not a member of the topic.
Use your API key as the Bearer token. You can view your API key and secret in your Zenzap organization API key settings.
HMAC-SHA256 signature for request verification.
HMAC signature of the request for authentication and replay protection.
Replay Protection: The signature includes a timestamp to prevent replay attacks. Requests with timestamps older than 5 minutes are rejected.
The signature payload differs by HTTP method:
{timestamp}.{body}{timestamp}.{uri}The signature is calculated as:
{timestamp}.{body} where body is the request body{timestamp}.{uri} where uri is the full request URI (e.g., /v2/members?limit=10)X-Timestamp headerExample for GET request to /v2/members?limit=10:
timestamp = 1699564800000
payload = "1699564800000./v2/members?limit=10"
signature = HMAC-SHA256(secret, payload)
X-Signature: hex(signature)
X-Timestamp: 1699564800000
Example for POST request with body {"topicId":"123","text":"Hello"}:
timestamp = 1699564800000
payload = '1699564800000.{"topicId":"123","text":"Hello"}'
signature = HMAC-SHA256(secret, payload)
X-Signature: hex(signature)
X-Timestamp: 1699564800000
For multipart/form-data requests, sign the exact raw request body bytes
(including boundaries and file bytes) as transmitted.
^[a-f0-9]{64}$"a3d5f8e7c2b1d4f6a8e9c7b5d3f1a2e4b6c8d0f2e4a6b8c0d2e4f6a8b0c2d4e6"
Unix timestamp in milliseconds when the request was created. Used for replay protection - requests older than 5 minutes are rejected.
1699564800000
The ID of the topic to get messages from
Maximum number of messages to return (default: 50, max: 100)
1 <= x <= 100Opaque cursor for pagination. Use the value from nextCursor in the response. Cursors are cryptographically signed and validated server-side to prevent tampering.
Return messages created before this timestamp (Unix milliseconds). Mutually exclusive with after.
Return messages created after this timestamp (Unix milliseconds). Mutually exclusive with before.
Filter messages by sender ID
Sort order for messages (default: desc - newest first)
asc, desc Include system messages (default: true)
Filter to messages within a specific thread (replies to a parent message)
Include user IDs in reaction data (default: false, heavier payload)
Messages retrieved successfully
Array of message objects
Cursor for the next page. Pass this value to the cursor parameter to get the next page.
"eyJ0IjoxNjk5NTY0NzAwMDAwLCJpZCI6IjY2MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMiIsIm8iOiJkZXNjIn0="
Whether there are more messages to fetch
true