Skip to main content
The v2 API enforces per-IP and per-account rate limits to keep the platform healthy. When you exceed a limit you’ll get a 429 Too Many Requests response — back off and respect the Retry-After header.

429 response shape

When rate-limited, the API returns the standard error envelope with code: "RATE_LIMITED" and includes IETF-standard rate limit headers (draft-7):
Read RateLimit-Remaining on every response — not just on 429s. Slow down preemptively when it’s low rather than waiting for a hard rejection.

General limits

These are baseline limits. Per-account quotas are tier-based and may differ from the per-IP defaults shown above. If you hit RATE_LIMITED consistently during normal operation, contact support@scope3.com for a higher-tier quota.
Several v2 endpoints expose long-running async work (discovery, ADCP comply checks, media-buy execution). Don’t tight-loop these — pick a cadence that matches the typical latency of the underlying operation.
If you’re polling more aggressively than the cadence above and seeing RATE_LIMITED, the answer is almost always to slow down — not to ask for a higher quota.

Polling pattern

The media-buy-status endpoint returns one entry per media buy under data.media_buys[] (each with internal_status and adcp_status). Poll until every media buy reaches a terminal state.

Backoff strategy

When you receive a 429 (or a transient INTERNAL_ERROR / SERVICE_UNAVAILABLE):
  1. Honor Retry-After. It’s the source of truth for when to retry.
  2. Add jitter. If many clients retry at the same moment you’ll thunder onto a recovering server. Add ±25% random jitter to the wait.
  3. Cap retries. After 3–5 attempts, surface the error to the user rather than retrying silently.
  4. Be careful retrying mutations. Retrying POST /campaigns after a 5xx may create duplicates — for creates, prefer to surface the error to the user rather than auto-retry.

Webhooks vs polling

For long-running operations where state changes are sparse, prefer webhooks where they’re offered (campaigns, media buys, notifications). Webhook delivery removes the polling tax entirely. See Notifications for the supported event topics.