API overview
The Meetingize REST API v1 gives programmatic access to your meetings, diarized transcripts, AI reports and documents, lets you create meetings from recordings and generate documents, and manages webhooks. It is a JSON API over HTTPS described by an OpenAPI 3.1 specification.
Base URL
Section titled “Base URL”All endpoints live under:
https://app.meetingize.com/api/v1Requests must use HTTPS and carry a bearer credential (see Authentication).
Versioning
Section titled “Versioning”The API version is 2026-10-01. It is returned in the Meetingize-Version response header and in the
api_version field of webhook events. Backward compatible additions (new fields, new endpoints, new event types)
can happen at any time: ignore unknown fields. Breaking changes will come with a new version.
Conventions
Section titled “Conventions”- JSON in UTF-8, dates in ISO 8601 UTC (
2026-10-11T14:03:22Z). - Amounts are EUR decimal strings (
"0.0123"), never floats. - Every response carries an
X-Request-Idheader, also present in error bodies. Give it to support when you report a problem. - Errors follow RFC 9457 problem details with a stable
code: see Errors and limits.
Identifiers
Section titled “Identifiers”| Object | Format | Example |
|---|---|---|
| Meeting | UUID | 1b9e5c4a-... |
| Document | doc_<n> | doc_1234 |
| Template | tpl_<n> | tpl_42 |
| Job | job_<hex> | job_9b0c2d... |
| Webhook endpoint | we_<hex> | we_3f... |
| Webhook event / delivery | evt_<hex> / whd_<hex> | |
| Ledger entry | led_<hex> |
Pagination
Section titled “Pagination”List endpoints use cursor pagination:
GET /v1/meetings?limit=20&cursor=eyJ...{ "data": [ ... ], "has_more": true, "next_cursor": "eyJ..." }limit defaults to 20 (max 100 on most lists). Keep calling with cursor=next_cursor while has_more is true.
An altered cursor returns 400 invalid_cursor.
Idempotency
Section titled “Idempotency”All POST requests accept an Idempotency-Key header (any unique string, for example a UUID), remembered for
24 hours:
- same key and same body: the original response is replayed, with
Idempotent-Replayed: true; - same key, different body:
422 idempotency_key_reused; - same key while the first request is still running:
409 idempotency_key_in_use.
Always send one when you create jobs, so that a network retry never starts the same transcription twice.
Endpoints at a glance
Section titled “Endpoints at a glance”| Area | Endpoints | Scope |
|---|---|---|
| Account | GET /me | any |
| Meetings | GET /meetings, GET /meetings/{id}, /summary, /participants, /export | read:meetings |
| Transcripts | GET /meetings/{id}/transcript | read:transcripts |
| Templates | GET /templates, GET /templates/{id}, GET /personas | read:meetings or write:documents |
| Documents | POST /meetings/{id}/documents, GET /documents, GET /documents/{id} | write:documents / read:documents |
| Create, update, delete meetings | POST /meetings, PATCH /meetings/{id}, DELETE /meetings/{id} | write:meetings |
| Feedback | POST /feedback | any |
| Jobs | GET /jobs, GET /jobs/{id} | any |
| Usage | GET /usage, GET /usage/ledger | read:usage |
| Webhooks | /webhook_endpoints and sub-resources | webhooks |
Full details in the reference and the interactive API explorer.