Skip to content

Limits and quotas

Two independent mechanisms protect the platform and your account: a rate limit on the number of requests, and a parallel processing quota on the number of meetings and documents being processed at the same time.

Each credential (API key or OAuth connection) has a request budget over a sliding one-minute window:

PlanRequests per minute
Free30
Standard60
Pro120

Every response tells you where you stand:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 57
X-RateLimit-Reset: 1760436180

X-RateLimit-Reset is a Unix timestamp (seconds). Over the limit you get 429 rate_limited with a Retry-After header (seconds). All endpoints count, including polling GET /jobs/{id}: poll every 10 to 30 seconds, or use webhooks.

Transcribing a meeting and generating a document are heavy operations. Your plan allows a fixed number of them at the same time, counted together for the web app and the API (a recording processed in the web app takes a slot too). The number depends on your plan and is shown on the Manage Plans page of the web app (user menu).

When all slots are busy, POST /v1/meetings and POST /v1/meetings/{id}/documents answer:

{
"type": "https://meetingize.com/docs/api/errors#parallel_processing_limit",
"title": "Parallel processing limit reached",
"status": 429,
"detail": "Your plan allows 3 simultaneous processing(s) (meetings and document generations, webapp and API together); 3 are running. Retry when one finishes (see GET /jobs?status=processing).",
"code": "parallel_processing_limit"
}

with Retry-After: 30. Nothing is created and nothing is billed. To see what is running:

Terminal window
curl -s "https://app.meetingize.com/api/v1/jobs?status=processing" -H "Authorization: Bearer $MEETINGIZE_API_KEY"
curl -s "https://app.meetingize.com/api/v1/jobs?status=queued" -H "Authorization: Bearer $MEETINGIZE_API_KEY"

Documents requested at meeting creation (document_templates, persona) are generated after the report as part of the same request: they do not need a free slot when they start.

To import a batch of recordings, keep a local queue: send a new meeting each time one finishes (on processing.completed or when a job reaches completed / failed), and on 429 parallel_processing_limit wait for Retry-After before retrying with the same Idempotency-Key.

LimitValue
Uploaded file size2 GB (413 file_too_large)
Page size (limit)100 items max on lists
metadataJSON object, 4 KB max
Tags per meeting20
Participants per meeting50
Documents requested at meeting creation5
Custom prompt for a document20,000 characters
Feedback message10,000 characters
Idempotency keys255 characters, remembered 24 hours

API usage is also bounded by your monthly wallet and the spend cap you choose: see billing.

  1. Read Retry-After and wait at least that long.
  2. Retry with exponential backoff if it happens again (for example 30 s, 60 s, 120 s).
  3. Keep the same Idempotency-Key for POST retries.
  4. Do not retry in a tight loop: it consumes your rate limit and delays you further.