Skip to content

Meetings API reference

Generated from the OpenAPI specification (version 2026-10-01). Base URL: https://app.meetingize.com/api. All requests need Authorization: Bearer <API key or OAuth token>. Try them in the API explorer.

GET /v1/clients

Client folders of the account (the webapp “client” of a meeting), with optional contact email and phone. Use an id as client_id when creating or updating a meeting, or ?client= to filter meetings. Archived clients are hidden unless include_archived=true. Required scope: read:meetings.

ParameterInTypeRequiredDescription
include_archivedquerybooleanInclude archived clients.
qquerystringPart of the client name (case-insensitive).

Responses

  • 200:
  • 400: Validation error
  • 401: Missing or invalid credential
  • 403: Insufficient scope
  • 404: Not found (also for resources of other accounts)
  • 429: Rate limit (rate_limited) or parallel processing quota (parallel_processing_limit) exceeded; see Retry-After
Response fields (200)
FieldTypeRequiredDescription
dataarray of objectyes
Terminal window
curl -s "https://app.meetingize.com/api/v1/clients" \
-H "Authorization: Bearer $MEETINGIZE_API_KEY"
GET /v1/meetings

Lists the meetings of the account, most recent first, with cursor pagination (limit, cursor).

q is a case-insensitive full-text search on the title, the AI report and the transcript. Filters can be combined (AND). status is computed, so filtering on it only scans the 500 most recent meetings.

Only meetings owned by the account are returned (not those shared with it). Required scope: read:meetings.

ParameterInTypeRequiredDescription
clientquerystringClient: id (cli_12) or exact name.
created_afterquerystring (date-time)Meetings created (uploaded) at or after this date (ISO 8601).
created_beforequerystring (date-time)Meetings created (uploaded) before this date (ISO 8601).
cursorquerystringOpaque cursor: the next_cursor of the previous page.
limitqueryintegerPage size, 1 to 100 (default 20).
qquerystringText to search in title, AI report and transcript (case-insensitive). Example: budget T4.
recorded_afterquerystring (date-time)Meetings that took place at or after this date (ISO 8601).
recorded_beforequerystring (date-time)Meetings that took place before this date (ISO 8601).
statusquerycompleted, draft, failed, processing, queuedqueued, processing, completed, failed or draft.
tagqueryarray of stringTag name; repeat the parameter to require several tags (?tag=client-x&tag=urgent).

Responses

  • 200:
  • 400: Validation error
  • 401: Missing or invalid credential
  • 403: Insufficient scope
  • 404: Not found (also for resources of other accounts)
  • 429: Rate limit (rate_limited) or parallel processing quota (parallel_processing_limit) exceeded; see Retry-After
Response fields (200)
FieldTypeRequiredDescription
dataarray of objectyes
has_morebooleanyes
next_cursorstring | nullyes
Terminal window
curl -s "https://app.meetingize.com/api/v1/meetings" \
-H "Authorization: Bearer $MEETINGIZE_API_KEY"
GET /v1/meetings/{meeting_id}

Full view of a meeting: metadata, processing status, AI report (summary, null until ready), participants (with their par_ id and speaker labels), generated documents and the latest processing job (meetings created via the API). This is a good endpoint to poll after creating a meeting. Required scope: read:meetings.

ParameterInTypeRequiredDescription
meeting_idpathstringyes

Responses

  • 200:
  • 400: Validation error
  • 401: Missing or invalid credential
  • 403: Insufficient scope
  • 404: Not found (also for resources of other accounts)
  • 429: Rate limit (rate_limited) or parallel processing quota (parallel_processing_limit) exceeded; see Retry-After
Response fields (200)
FieldTypeRequiredDescription
idstring (uuid)yes
objectstringyes
titlestringyes
statusdraft, queued, processing, completed, failedyesdraft (no audio yet, webapp only), queued, processing (transcription then AI report), completed (transcript + report ready; transcript only when transcribe_only), failed
transcribe_onlybooleanyesCreated with transcribe_only=true: no AI report, no documents
recorded_atstring (date-time)yesDate of the meeting (recorded_at at creation, else upload date)
created_atstring (date-time)yes
updated_atstring (date-time)yes
duration_secondsinteger | null
languagestring | null
sourceupload, live_recording, text, url, api | null
recording_typemeeting, solo | null
tagsarray of stringyes
clientobject | nullClient folder the meeting belongs to
has_transcriptbooleanyes
has_summarybooleanyes
web_urlstring (uri)yes
summaryobject | null
participantsarray of objectyes
documentsarray of objectyes
jobobject | nullLatest processing job of the meeting when created via the API (null for webapp meetings): what to poll with GET /jobs/{job_id}
Terminal window
curl -s "https://app.meetingize.com/api/v1/meetings/<meeting_id>" \
-H "Authorization: Bearer $MEETINGIZE_API_KEY"
GET /v1/meetings/{meeting_id}/export

Ready-to-paste bundle: a priming prompt, metadata, participants, the AI report and the timestamped diarized transcript, split in parts of at most max_tokens tokens so that long meetings fit in a chat context. format=md returns all parts separated by --- Part i/n ---. Scopes required: read:meetings and read:transcripts.

ParameterInTypeRequiredDescription
formatqueryjson, mdjson (default) or md.
langqueryen, frLanguage of the priming prompt: fr (default) or en.
max_tokensqueryintegerMax tokens per part (2000 to 200000, default 24000).
meeting_idpathstringyes

Responses

  • 200:
  • 400: Validation error
  • 401: Missing or invalid credential
  • 403: Insufficient scope
  • 404: Not found (also for resources of other accounts)
  • 429: Rate limit (rate_limited) or parallel processing quota (parallel_processing_limit) exceeded; see Retry-After
Response fields (200)
FieldTypeRequiredDescription
objectstringyes
meeting_idstring (uuid)yes
priming_promptstringyes
total_tokensintegeryes
partsarray of objectyes
Terminal window
curl -s "https://app.meetingize.com/api/v1/meetings/<meeting_id>/export" \
-H "Authorization: Bearer $MEETINGIZE_API_KEY"
GET /v1/meetings/{meeting_id}/participants

Participants of the meeting with their par_ id and the speaker labels attributed to them, plus the transcript speakers not attributed to anyone (id: null). Modify them with PATCH /meetings/{id}. Required scope: read:meetings.

ParameterInTypeRequiredDescription
meeting_idpathstringyes

Responses

  • 200:
  • 400: Validation error
  • 401: Missing or invalid credential
  • 403: Insufficient scope
  • 404: Not found (also for resources of other accounts)
  • 429: Rate limit (rate_limited) or parallel processing quota (parallel_processing_limit) exceeded; see Retry-After
Response fields (200)
FieldTypeRequiredDescription
dataarray of objectyes
Terminal window
curl -s "https://app.meetingize.com/api/v1/meetings/<meeting_id>/participants" \
-H "Authorization: Bearer $MEETINGIZE_API_KEY"
GET /v1/meetings/{meeting_id}/summary

The AI report (summary, key takeaways, action items, minutes) as Markdown and, in structured, the raw structured result. Available from processing.completed; before that, or for a transcribe_only meeting: 409 summary_not_ready. Required scope: read:meetings.

ParameterInTypeRequiredDescription
formatqueryjson, mdjson (default) or md.
meeting_idpathstringyes

Responses

  • 200:
  • 400: Validation error
  • 401: Missing or invalid credential
  • 403: Insufficient scope
  • 404: Not found (also for resources of other accounts)
  • 429: Rate limit (rate_limited) or parallel processing quota (parallel_processing_limit) exceeded; see Retry-After
Response fields (200)
FieldTypeRequiredDescription
objectstringyes
meeting_idstring (uuid)yes
titlestringyes
languagestring | null
markdownstringyes
structuredobject | null
modelstring | null
created_atstring (date-time)yes
updated_atstring (date-time)yes
Terminal window
curl -s "https://app.meetingize.com/api/v1/meetings/<meeting_id>/summary" \
-H "Authorization: Bearer $MEETINGIZE_API_KEY"