API reference
Endpoint reference
Resources, verbs, and the conventions every endpoint follows.
The reference is generated from the OpenAPI description, so it says exactly what the running service accepts. The machine-readable version is served by the API itself at /ext/v1/openapi.json, and needs no key.
Every page here is generated
The reference is built from the OpenAPI description the running service publishes, and the build refuses to produce one that disagrees with the routes — a route nobody documented, or a documented path nobody mounted, fails it by name. So these pages say what the service actually accepts.
Resources
The calendar, and what will be recorded.
Summaries, transcripts and action items.
Sending the notetaker into a live call.
Register and rotate callback URLs.
Conventions
| Verb | Used for | Body |
|---|---|---|
GET | Reading a record or a collection | None |
POST | Creating a record, or an action on one | JSON |
PATCH | Changing some fields of a record | JSON, partial |
DELETE | Removing a record | None |
Identifiers are UUIDs. Recordings additionally carry a reference — NB-3F2A-9C1D-7E5B — which exists for people to quote to support, not for you to parse or look anything up by.
Timestamps are ISO 8601 in UTC, with milliseconds. Durations are integers in seconds — except inside a transcript, where offsets and talk time are milliseconds and say so in the field name (start_ms, end_ms, talkMs).
A representative call
/recordings/{runId}Reads one recording with its summary and action items. Add ?include=transcript for the utterances.
curl "https://api-notetaker.nabrah.ai/ext/v1/recordings/$RUN_ID?include=transcript" \
-H "Authorization: Bearer $NABRAH_API_KEY"{
"data": {
"runId": "9f8c2e10-4b71-4d2a-8e93-1c7f5a604b18",
"reference": "NB-3F2A-9C1D-7E5B",
"scope": "full",
"owned": true,
"sharedBy": null,
"state": "ready",
"meetingId": "3f2a9c1d-7e5b-4a80-9c11-2d90b8e4c177",
"title": "Weekly product sync",
"startsAt": "2026-08-12T09:00:00.000Z",
"platform": "meet",
"recordingSeconds": 2740,
"shortSummary": "The team agreed to ship the billing rework behind a flag.",
"detailedSummary": "Billing was the whole call. …",
"attendees": [{ "name": "Sara Al-Otaibi", "email": "sara@acme.com" }],
"topics": [{ "label": "Billing rework", "share": 0.62 }],
"actionItems": [
{
"id": "6b1f0c34-9a52-4f77-b0d8-51ee2c9a7f03",
"title": "Draft the migration note",
"owner": "sara@acme.com",
"due": "2026-08-15",
"status": "active",
"context": "Needed before the flag goes on.",
"tags": ["billing"]
}
],
"transcript": [
{ "start_ms": 12400, "end_ms": 15200, "speaker": "Sara", "text": "Let's start with billing." }
],
"speakers": [{ "name": "Sara", "talkMs": 918000, "words": 2140, "share": 0.34 }]
}
}Consuming the description directly
curl https://api-notetaker.nabrah.ai/ext/v1/openapi.json