Open Caven

Reference

Action items, speakers and tags

Lists across all recordings

1 min read

These endpoints work across all recordings the key can see. With an organization key, add ?userId= to limit them to one member. All of them support limit and offset.

Action items

GET /action-items

Scope: action-items:list

ParameterDescription
statusBACKLOG, TODO, IN_PROGRESS or DONE
priorityLOW, MEDIUM, HIGH or URGENT
ownerCase-insensitive match on the owner's name
speakerIdOwned by this speaker profile
from, toISO 8601 dates, on when the item was created
userIdOrganization keys only

Results are sorted by status, then priority (highest first).

curl "https://developers.caven.io/public/v1/action-items?status=todo&priority=high" \
  -H "X-API-Key: sk_your_key_here"
{
  "data": [
    {
      "id": "cmuvejgaq00izrv927dp1xlvn",
      "recordingId": "cmat10lv8f4yn83oy3iofv0n3",
      "userId": "cmjal5xyj0000vaz4po9spv16",
      "title": "Send the revised plan to the client",
      "description": null,
      "owner": "Speaker B",
      "ownerSpeakerProfileId": null,
      "sourceSummaryId": "cmuvejep600gjrv92wzifu9ke",
      "sourceType": "SUMMARY",
      "status": "TODO",
      "priority": "HIGH",
      "position": 1000,
      "meetingTitle": null,
      "meetingLink": null,
      "calendarEventId": null,
      "syncedToCalendar": false,
      "syncedCalendarEventId": null,
      "dueDate": null,
      "completedAt": null,
      "createdAt": "2026-10-05T15:25:53.859Z",
      "updatedAt": "2026-10-05T15:25:53.859Z"
    }
  ],
  "meta": { "total": 1, "limit": 20, "offset": 0 }
}

sourceType is SUMMARY for items Caven extracted from a summary. sourceSummaryId then points to that summary.

Speakers

GET /speakers

Scope: speakers:list

ParameterDescription
statusPENDING or READY
searchCase-insensitive match on name or email
userIdOrganization keys only
{
  "data": [
    {
      "id": "cmsp...",
      "userId": "cmjal5xyj0000vaz4po9spv16",
      "organizationId": "cmosioqps0002ugawapstnrwy",
      "name": "Jane Doe",
      "email": "[email protected]",
      "status": "READY",
      "sampleCount": 4,
      "createdAt": "2026-06-01T09:00:00.000Z",
      "updatedAt": "2026-09-12T14:21:08.000Z"
    }
  ],
  "meta": { "total": 1, "limit": 20, "offset": 0 }
}

With an organization key, this list is always empty if the organization has turned off the speaker catalog. That setting doesn't apply to personal keys.

Tags

GET /tags

Scope: tags:list

ParameterDescription
searchCase-insensitive match on the name
userIdOrganization keys only
{
  "data": [
    {
      "id": "cmtg...",
      "name": "Sales",
      "color": "#3b82f6",
      "userId": "cmjal5xyj0000vaz4po9spv16",
      "organizationId": null,
      "createdAt": "2026-05-10T08:00:00.000Z",
      "updatedAt": "2026-05-10T08:00:00.000Z"
    }
  ],
  "meta": { "total": 1, "limit": 20, "offset": 0 }
}

Use a tag's id with /recordings?tagId= to find its recordings.

© 2026 Caven BV. All rights reserved. Built in Belgium.EU · GDPR · AI Act · Privacy-first · ISO 27001

On this page