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.
Rate limiting
Section titled “Rate limiting”Each credential (API key or OAuth connection) has a request budget over a sliding one-minute window:
| Plan | Requests per minute |
|---|---|
| Free | 30 |
| Standard | 60 |
| Pro | 120 |
Every response tells you where you stand:
X-RateLimit-Limit: 60X-RateLimit-Remaining: 57X-RateLimit-Reset: 1760436180X-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.
Parallel processing quota
Section titled “Parallel processing quota”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:
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.
Sending many files
Section titled “Sending many files”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.
Other limits
Section titled “Other limits”| Limit | Value |
|---|---|
| Uploaded file size | 2 GB (413 file_too_large) |
Page size (limit) | 100 items max on lists |
metadata | JSON object, 4 KB max |
| Tags per meeting | 20 |
| Participants per meeting | 50 |
| Documents requested at meeting creation | 5 |
| Custom prompt for a document | 20,000 characters |
| Feedback message | 10,000 characters |
| Idempotency keys | 255 characters, remembered 24 hours |
API usage is also bounded by your monthly wallet and the spend cap you choose: see billing.
Handling 429 correctly
Section titled “Handling 429 correctly”- Read
Retry-Afterand wait at least that long. - Retry with exponential backoff if it happens again (for example 30 s, 60 s, 120 s).
- Keep the same
Idempotency-KeyforPOSTretries. - Do not retry in a tight loop: it consumes your rate limit and delays you further.