Reference
API overview
Read your meetings, transcripts, summaries and organization data over a REST API
The Caven public API gives you read access to your recordings and everything Caven produced from them: transcripts, AI summaries, notes, action items, speakers and tags. With an organization key you can also read the organization itself, plus its members, teams and folders.
The API is REST over HTTPS and always returns JSON.
Base URL
https://developers.caven.io/public/v1https://api.caven.io/public/v1 serves the same API. From a server it makes no difference which host you use. From a browser it does: api.caven.io only accepts cross-origin requests from Caven's own web apps and does not allow the X-API-Key header, so browser calls only work against developers.caven.io, which answers every origin (Access-Control-Allow-Origin: *). Keep the warning at the bottom of this page in mind before calling the API from a browser.
Quick start
1. Create a key. In the web app, open Settings → API Keys → New Key. See Authentication for the details.
2. Make your first request. Send the key in the X-API-Key header:
curl https://developers.caven.io/public/v1/recordings?limit=5 \
-H "X-API-Key: sk_your_key_here"{
"data": [
{
"id": "cmat10lv8f4yn83oy3iofv0n3",
"title": "Weekly sync",
"duration": "22:45",
"status": "SUMMARIZED",
"transcriptionStatus": "completed",
"summaryStatus": "completed",
"recordedAt": "2026-10-05T15:24:30.542Z",
"counts": { "actionItems": 2, "transcripts": 1, "summaries": 1 }
}
],
"meta": { "total": 410, "limit": 5, "offset": 0 }
}The example above is shortened. See Recordings for the full object.
3. Fetch what you need. Use a recording's id to get its transcript or summary:
curl https://developers.caven.io/public/v1/recordings/cmat10lv8f4yn83oy3iofv0n3/summary \
-H "X-API-Key: sk_your_key_here"Endpoints
| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /recordings | recordings:list | List and filter recordings |
| GET | /recordings/:id | recordings:get | One recording |
| GET | /recordings/:id/transcript | transcripts:list | Full transcript |
| GET | /recordings/:id/summary | summaries:list | AI summary |
| GET | /recordings/:id/notes | transcripts:list | Meeting notes |
| GET | /recordings/:id/action-items | action-items:list | Action items from one meeting |
| GET | /recordings/:id/speakers | speakers:list | Speakers identified in one meeting |
| GET | /recordings/:id/tags | tags:list | Tags on one meeting |
| GET | /action-items | action-items:list | All action items |
| GET | /speakers | speakers:list | All speaker profiles |
| GET | /tags | tags:list | All tags |
| GET | /organization | organization:read | Organization details |
| GET | /organization/policies | organization:read | Template policies |
| GET | /organization/users | organization:read | Members, plus /users/:userId |
| GET | /organization/teams | organization:read | Teams, plus /teams/:id and /teams/:id/members |
| GET | /organization/folders | organization:read | Folders, plus /folders/:id |
The media and connector endpoints are used by the Caven on-prem connector. They are documented separately under On-prem connector.
Using Caven from an AI assistant
If you want an assistant such as Claude, ChatGPT, or Copilot to read your meetings, you don't need this API or a key. Caven has an MCP server you connect from Settings → MCP Server. See AI assistants.
Good to know
- The API is read-only for meeting data. You can't create, edit or delete meetings through it. The only write endpoints are those the on-prem connector uses to report its own state. To push meeting data out automatically, use Workflows.
- Access follows the key. A personal key sees your own recordings. An organization key sees every recording made by members of your organization. See Personal and organization keys.
- Every response is JSON with the same envelope, and every error carries a machine-readable
code. See Requests and responses.
An API key gives access to meeting content. Keep it on a server, never in browser or mobile app code, and never commit it to a repository.