Rate limits

Cortex applies workspace-level limits to protect scoring capacity and keep async jobs predictable.

Request limits

Current public limits:

OperationLimit
Create upload60 requests per minute per workspace
Create scoring30 requests per minute per workspace
Build signature10 requests per minute per workspace
Create team invitation20 requests per hour per workspace

When a request is rate limited, Cortex returns 429 with a Retry-After header. Wait at least that long before retrying.

Upload limits

Supported upload MIME types:

  • video/mp4
  • video/quicktime
  • video/webm

Maximum upload size: 1 GiB.

The uploaded object's MIME type and size are verified after transfer. If the uploaded object does not match the reservation, the upload is rejected.

Scoring quota

Trial workspaces include a limited number of scorings. Paid plans include a monthly scoring allowance and may include overage capacity depending on the plan.

The scoring create request reserves quota before starting the async job. If no capacity is available, the API returns quota_exceeded.

Signature quality limits

A signature requires at least 3 eligible winners and 3 eligible losers.

Leave-one-out calibration requires at least 4 eligible winners and 4 eligible losers.

Confidence improves with:

  • More references per side.
  • Better winner/loser balance.
  • Clean labels.
  • Higher event coverage.
  • Fewer excluded or zero-weight references.

Retry guidance

Safe to retry with the same idempotency key:

  • Network timeout after /api/uploads/create.
  • Network timeout after /api/uploads/complete.
  • Network timeout after /api/scorings/create.
  • 409 idempotency_key_in_flight after waiting for Retry-After.

Do not blindly retry:

  • quota_exceeded
  • trial_expired
  • subscription_inactive
  • no_ready_signature
  • insufficient_references
  • references_not_ready

Those are product-state issues. Fix the workspace, brand, or reference bank before retrying.

Interpretation limits

Rate limits and quality limits are different. A request can be accepted and still produce a low-confidence result if the reference bank is small or uneven. Treat low-confidence scorings as directional and improve the bank before making high-stakes budget decisions.