Meetily
Agent APIReference

Endpoint reference

Every Agent API endpoint, grouped by resource, with method, path, and required scope.

The Agent API has 43 operations across 38 paths. All are under the /v1 prefix except GET /health and GET /openapi.json. This page is the full index; each resource has a detail page with request and response fields and copy-paste examples.

Conventions

  • Base URL: http://127.0.0.1:8420
  • Version prefix: /v1 on every path except /health
  • Every error response is JSON of this shape:
{"error":{"code":"not_found","message":"..."}}
  • Pagination uses limit (max 200, default 50) and offset.
  • Request and response bodies use snake_case field names on the wire. camelCase appears only inside the desktop app's internal calls, not in this HTTP API.

Unauthenticated endpoints

Three endpoints need no bearer token:

  • GET /health
  • POST /v1/pair/request
  • GET /v1/pair/:id

All endpoints

Meetings endpoints are detailed on the meetings reference, recording endpoints on the recording reference, job endpoints on the jobs reference, system and config endpoints on the system reference, and error codes on the errors reference. Events and webhooks are covered separately in Events and SSE and Webhooks.

Method + pathScopeSummary
GET /healthnoneLiveness check; returns status, version, and webhook counters (events_dropped, deliveries_failed).
GET /openapi.jsonReadThe OpenAPI 3.1 manifest for the API.
GET /v1/whoamiReadIdentify the caller: token id, scopes, license tier.
GET /v1/meetingsReadList meetings, paginated.
GET /v1/meetings/:idReadGet one meeting.
GET /v1/meetings/:id/transcriptReadGet a meeting's transcript segments.
GET /v1/meetings/:id/summaryReadGet a meeting's summary.
GET /v1/meetings/:id/exportReadExport a meeting as JSON, Markdown, or plain text.
GET /v1/searchReadFull-text search across meetings.
GET /v1/config/:sectionReadGet one config section.
GET /v1/jobsReadList background jobs.
GET /v1/jobs/:idReadGet one job by id.
GET /v1/devicesReadList audio devices.
GET /v1/modelsReadList transcription models.
GET /v1/recordingReadGet current recording state.
PATCH /v1/meetings/:idWriteRename a meeting.
DELETE /v1/meetings/:idDeleteDelete a meeting (cascades, irreversible).
PUT /v1/meetings/:id/summaryWriteSet a meeting's summary text.
POST /v1/meetings/:id/summary/regenerateWriteRegenerate a summary; returns a process id.
PUT /v1/meetings/:id/speaker-labelsWriteSet speaker label names for diarized clusters.
PUT /v1/config/:sectionWriteUpdate one config section.
POST /v1/jobs/diarizationWriteSubmit a diarization job for a meeting.
POST /v1/jobs/importWriteImport an audio file as a new meeting (raw bytes).
POST /v1/jobs/:id/cancelWriteCancel a job.
POST /v1/jobs/:id/pauseWritePause a job.
POST /v1/jobs/:id/resumeWriteResume a paused job.
POST /v1/jobs/:id/retryWriteRetry a job.
POST /v1/recording/startRecordStart recording; remote callers need remote_recording_prearmed.
POST /v1/recording/stopRecordStop recording.
POST /v1/recording/pauseRecordPause recording.
POST /v1/recording/resumeRecordResume recording.
GET /v1/jobs/:id/waitReadSSE; blocks until the job reaches a terminal state.
GET /v1/recording/waitRecordSSE; blocks until recording starts or stops.
POST /v1/webhooksRead (per-event scope escalation)Register a webhook subscription; requires webhooks_enabled.
GET /v1/webhooksRead (Admin for ?all=true)List your webhooks, or all webhooks as Admin.
DELETE /v1/webhooks/:idWrite (owner) or AdminDelete a webhook subscription.
GET /v1/webhooks/:id/deliveriesOwner or AdminList delivery attempts for a webhook.
POST /v1/webhooks/:id/testWriteSend a synthetic test delivery to this webhook.
GET /v1/pairingsAdminList pairing requests.
DELETE /v1/pairings/:idAdminRevoke a pairing (atomic cascade: token revoke, owner webhooks delete, row delete).
POST /v1/mcp/client-tokenAdminMint a scoped per-client token for an MCP client. Loopback only.
POST /v1/pair/requestnoneRequest a pairing from a remote client.
GET /v1/pair/:idnonePoll pairing status; returns the raw token once on approval.

Which client can do what

CapabilityHTTPCLIPython SDKMCP tool
List / read / export meetingsyesyesyesyes
Rename / summary / speaker labelsyesyesyesyes
Delete a meetingyes (Delete scope)yesyesnot a tool (destructive)
Start / stop / pause / resume recordingyesyesyesyes
Recording stateyesnot availableyesyes
Submit diarizationyesyesyesyes
Import an audio fileyesnot availablenot availablenot available
Get one jobyesnot availablenot availableyes (get_job)
Wait for job / recordingyesnot availableyesyes
Config getyesyesyesyes
Config setyesyesyesnot a tool
Webhooks (create/list/test/delete)yesnot availableyesgated (start server with --allow-webhooks)
Pairings list / revokeyes (Admin)not availableyeslist only (list_pairings); revoke never a tool
whoami / health / devices / modelsyesyesyesyes (except health)

Cells marked not available have no client command; use curl for those. Never assume a CLI or SDK method exists just because the HTTP route does.

Last updated on

On this page