Retrieve outbound events for bots configured with polling delivery mode.
Long polling behavior:
offset, they are returned immediatelytimeout > 0, the request waits up to timeout secondsnextOffset409 if delivery mode is not polling, or if offset is no longer availableMessage attachment payloads are included inline in polling events, the same as webhooks:
data.message.attachments[] with signed download URLs (including audio transcription metadata when available).
Use nextOffset from each response as offset in the next request.
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
Opaque offset returned by a previous nextOffset. Omit on the first request.
Maximum updates to return (default: 50, max: 100)
1 <= x <= 100Long polling timeout in seconds (default: 0, max: 30)
0 <= x <= 30