Meetings
Meetings are the calls Sonora has seen with your customers: from your calendar, your call recorder or your notetaker. Each one carries when it happened, who was invited, and a summary with next steps. Reading them needs a key with the meetings:read scope. Every field is in the API reference; this page covers how to use them.
Only customer meetings are readable. A meeting with no customer — a 1:1, an internal sync, a personal recording — never shows up through the API, by list or by id. Nor does a meeting that was deleted or archived in Sonora. Transcripts, join links and recordings are not part of the API.
List meetings
Section titled “List meetings”curl "https://api.usesonora.com/v1/meetings?startAfter=2026-10-01T00:00:00Z&limit=50" \ -H "Authorization: Bearer sonora_sk_…"{ "data": [ { "id": "7f3a…", "customer": { "id": "c1d2…", "name": "Acme" }, "title": "Q4 business review", "startTime": "2026-10-14T15:00:00.000Z", "endTime": "2026-10-14T15:45:00.000Z", "durationSeconds": 2700, "summary": "Acme wants to roll Sonora out to the support team in January; …", "nextSteps": "Send the rollout plan by Friday. Book training for the support leads.", "owner": { "name": "Olive Ortiz", "email": "olive@yourco.com" }, "attendees": [ { "name": "Olive Ortiz", "email": "olive@yourco.com", "isOrganizer": true, "contactId": null }, { "name": "Jane Doe", "email": "jane@acme.com", "isOrganizer": false, "contactId": "a9b8…" } ], "createdAt": "2026-10-14T16:02:11.000Z", "updatedAt": "2026-10-14T16:10:40.512Z", "links": { "self": "https://api.usesonora.com/v1/meetings/7f3a…" } } ], "nextCursor": "MjAyNi0xMC0xNFQx…"}Meetings come most recent first. Narrow the list with:
| Parameter | |
|---|---|
customerId |
One customer’s meetings, by Sonora id. |
startAfter |
Meetings starting at or after this instant (ISO 8601 with an offset). |
startBefore |
Meetings starting before this instant. |
A meeting with no recorded start time is placed — and filtered — by when Sonora first saw it.
One customer’s meetings
Section titled “One customer’s meetings”To list a customer’s meetings by the id your own system uses for the account, go through the customer:
curl "https://api.usesonora.com/v1/customers/001Ab00000XyZ12/meetings?idType=salesforce" \ -H "Authorization: Bearer sonora_sk_…"idType works exactly as it does on GET /customers/{customerId}: sonora (the default), salesforce, hubspot, domain or custom_field:<key>. It takes startAfter, startBefore and the paging parameters too. A customer that doesn’t exist is 404 customer_not_found; one with no meetings is an empty page.
The fields
Section titled “The fields”attendeesare everyone invited, organizer first.contactIdis the Sonora contact the attendee is, when Sonora matched one; it isnullfor your own team and for anyone it couldn’t match.owneris who on your team ran the meeting, as your call recorder or calendar named them, ornullwhen nothing did. Itsemailcan benullwhen only a name came through.durationSecondsis the length the recorder or calendar reported, or the gap betweenstartTimeandendTimewhen it reported none.summaryandnextStepscome from your call recorder or notetaker where it writes them, and otherwise from Sonora’s own read of the transcript. Either can benull— for a meeting that only just happened, or one with nothing to read — and fill in later;updatedAtmoves when they do.
GET /meetings/{meetingId} returns one meeting in the same shape. A personal, deleted or archived meeting is 404 meeting_not_found, as an unknown id is.