Scopes and endpoints: calls, webhooks, events, exports
Last updated: 11 November 2026 · 8 min read
Scopes for the call log, the webhook subscription, the event feed and bulk exports. Webhook topics open with other scopes: conversation.* needs conversations:read, message.* needs messages:read, contact.* needs contacts:read. More: App webhooks and events: setup, topics, signature verification.
Steps
-
1
How to read this article
- Paths follow
https://api.clomni.ai/v1:GET /v1/agentsmeanshttps://api.clomni.ai/v1/agents. Paths have no workspace ID, because a token belongs to one workspace. - Every request carries the
Authorization: Bearer clomni_pat_xxxheader. How to get a token: Tokens and authentication in the Developer API. - Risk: low (no personal data), medium (reads customer data or changes internal data), high (sends to customers, deletes, bulk exports, changes live settings).
- Every scope goes through review, in public apps too. More: Review: checking scopes and rejection reasons.
- "Also grants":
writeandmanagegrant thereadof the same resource.send,delete,publish,assignandrungrant nothing. - When an endpoint lists several scopes, any one of them is enough. Without the scope the API answers 403
insufficient_scopewithrequired_scopesin the body. - Every POST takes an
Idempotency-Keyheader, so a repeated request is not run twice.
- Paths follow
-
2
Read calls (calls:read)
Reads the call log: phone calls and WhatsApp calls (direction, status, length, conversation, the agent who answered). According to the catalogue recordings and transcripts belong to this scope too, which is why it is high risk.
- Risk: high.
- Review: goes through review and gets a closer look. A detailed explanation and a short video of the feature are needed; the target is 2 working days.
- Also grants: nothing else.
Endpoints:
GET /v1/voice_calls: List phone callsGET /v1/whatsapp_calls: List WhatsApp callsGET /v1/whatsapp_calls/{call_id}: Get a WhatsApp call
Example:
curl "https://api.clomni.ai/v1/whatsapp_calls" \ -H "Authorization: Bearer clomni_pat_xxx"
curl "https://api.clomni.ai/v1/voice_calls" \ -H "Authorization: Bearer clomni_pat_xxx"
-
3
Read webhooks (webhooks:read)
Meant for seeing the app's webhook subscription and delivery log. The webhook is set up on the developer portal, in the app's "Webhooks" section, and the log is shown there.
- Risk: low.
- Review: goes through review; low risk scopes are looked at quickly.
- Also grants: nothing else.
This scope has no endpoint of its own in the
/v1API. -
4
Manage webhooks (webhooks:write)
Meant for managing the webhook subscription. The URL and topics are chosen on the developer portal. Each topic needs its own read scope:
conversations:readforconversation.*,messages:readformessage.*,contacts:readforcontact.*.- Risk: medium.
- Review: goes through review. Say exactly which data you use with it, when and why.
- Also grants:
webhooks:read.
This scope has no endpoint of its own in the
/v1API. -
5
Read the event feed (events:read)
Reads the event feed of the last 30 days: to recover missed webhooks or to poll instead of receiving webhooks. Each topic's read scope is needed as well;
events:readalone returns an empty list. Events are written only while the workspace has an active developer token or installation.- Risk: medium.
- Review: goes through review. Say exactly which data you use with it, when and why.
- Also grants: nothing else.
Endpoints:
GET /v1/events: List events
Example:
curl "https://api.clomni.ai/v1/events?types=message.created,contact.updated&limit=100" \ -H "Authorization: Bearer clomni_pat_xxx"
-
6
Run bulk exports (exports:run)
Bulk exports conversations, messages and contacts into one file (gzip JSONL). One job at a time and 6 per 24 hours per workspace. The file link works for 1 hour. In the review describe the purpose, the target system, how often you export and how long you keep the file.
- Risk: high.
- Review: goes through review and gets a closer look. A detailed explanation and a short video of the feature are needed; the target is 2 working days.
- Also grants: nothing else.
Endpoints:
POST /v1/exports: Start an exportGET /v1/exports/{export_id}: Get an export
Example:
curl -X POST "https://api.clomni.ai/v1/exports" \ -H "Authorization: Bearer clomni_pat_xxx" \ -H "Content-Type: application/json" \ -d '{"resources": ["conversations", "messages", "contacts"], "since": "2026-01-01T00:00:00Z", "until": "2026-11-01T00:00:00Z"}'curl "https://api.clomni.ai/v1/exports/15" \ -H "Authorization: Bearer clomni_pat_xxx"
-
7
Call events in real time
To get call data the moment a call starts, ends or its recording is ready, the workspace has call webhooks: an administrator sets them up in the dashboard, no developer app is needed. See Call webhooks: send your calls to your own system.
- 8