Descript's REST API enforces rate limits per API token (token is scoped to a Drive). When a client exceeds a limit, the API returns 429 with a Retry-After header along with X-RateLimit-Remaining and X-RateLimit-Consumed for client-side budgeting. Most documented limits are operational ceilings rather than per-second numbers — the only published numeric ceiling at this time is 1,000 requests/hour per user against the published-projects metadata endpoint. The API is in early access and exact per-token quotas may scale with the Descript plan tier (Hobbyist / Creator / Business / Enterprise) and the underlying media-minute and AI-credit budgets. reconciled false because per-second/per-minute thresholds are not publicly enumerated for the core endpoints.
5 LimitsThrottle: 429
Rate LimitingVideo EditingAudio EditingAI
Limits
Published project metadata reads user
requests_per_hour · hour
1000
Documented hard cap on GET /v1/published_projects/{slug}; other endpoints share an undocumented per-token rate budget.
Core REST API requests (per token) token
varies
see Retry-After / X-RateLimit-Remaining headers
Per-token allowances are not published as fixed RPS / RPM. Clients should respect Retry-After and back off when 429 is returned.
Asynchronous job execution drive
concurrent_jobs
governed by drive plan and AI credit budget
Import / agent / publish jobs are queued and executed asynchronously. Parallelism and throughput are bounded by the plan's media-minute and AI-credit budgets rather than a fixed concurrency number.
Direct upload signed URL TTL upload_url
minutes · minute
180
Upload URLs returned by /v1/jobs/import/project_media expire 3 hours after issuance.
Edit-in-Descript import URL TTL import_url
minutes · minute
180
Partner import URLs from /v1/edit_in_descript/schema expire 3 hours after issuance.
Policies
Bearer authentication
All requests require an Authorization Bearer token created via Settings > API tokens. Tokens are scoped to a single Drive and inherit that user's permissions on the Drive.
Retry-After honoring
When the API returns 429, clients must read Retry-After and wait at least that many seconds before retrying. Use exponential backoff if multiple 429s occur in a row.
Header-driven budgeting
Use X-RateLimit-Remaining and X-RateLimit-Consumed to pre-emptively throttle client behavior; do not assume fixed per-minute caps.
Asynchronous job model
Long-running operations (import / agent / publish) return a job_id immediately. Poll GET /v1/jobs/{job_id} or supply a callback_url for webhook delivery instead of holding HTTP connections open.
Credit-based usage
402 Insufficient Credits indicates the Drive's media-minute or AI-credit balance is exhausted; the limit is a plan budget, not a transient rate limit.
Early access scope
The API is in early access (v1.2). Endpoints, request shapes, and limits may evolve; review the docs and changelog before relying on undocumented quotas.