Requirements
- API key delivery mode must be
polling - A bot can use either polling or webhooks, not both at the same time
- Requests use the same auth/signature flow as the rest of the API:
Authorization: Bearer <API_KEY>X-Timestamp: <Unix milliseconds>X-Signature: HMAC-SHA256("{timestamp}.{uri}")for this GET endpoint
Endpoint
UseGET /v2/updates.
Query parameters:
Behavior:
- If updates exist after
offset, response returns immediately - If no updates and
timeout > 0, request waits up totimeoutseconds - If still no updates, returns
updates: []and anextOffset
Response Shape
nextOffset from each response as the offset in your next request.
Event Payloads
Pollingdata payloads match webhook data payloads for the same event type.
See Webhook Events for field-level payload details.
Mentions
Mentions are included in message events (message.created, message.updated).
data.message.mentions: mention objects (id,name)data.message.mentionedProfiles: optional list of mentioned profile IDs
data.message.text keeps the mention token format (<@profileId>), while mentions[] provides resolved display names.
Attachments
Attachments are included directly in polling message events (message.created, message.updated)
under data.message.attachments.
Attachment fields:
Example:
- Attachment
urlis signed and expires (currently 60 minutes) - Voice transcription is asynchronous:
message.createdusually arrives withtranscription.status: "Pending"message.updatedcan arrive later withstatus: "Done"andtext
message.createdmessage.updatedmessage.deletedreaction.addedreaction.removedmember.addedmember.removedtopic.updated
Errors
400bad request (invalidoffset,limit, ortimeout)401unauthorized409delivery mode is not polling, or providedoffsetis no longer available500internal server error