Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.alterscope.org/llms.txt

Use this file to discover all available pages before exploring further.

The API enforces a per-minute rate limit (with a short burst allowance) and a per-month request quota, both keyed to your plan tier. The values below are the live plan limits.

Per-tier limits

FreeAnalystTeamEnterpriseCustom
Requests / minute201005002,0005,000
Burst1020502001,000
Requests / month50,000500,0005,000,000UnlimitedUnlimited
WebSocket connections1525100500
Signed webhooks25UnlimitedUnlimited
Risk-events WebSocketNoYesYesYesYes
Webhook replay window1 day7 days30 days90 days
Data retention28 days180 days730 days2,555 daysUnlimited
Custom plans are arranged directly with sales. Enterprise and Custom monthly request quotas are uncapped.

Rate-limit headers

Every authenticated response carries the current rate-limit state, not just 429s. Read these headers on successful responses to throttle proactively, before you ever hit the limit:
HeaderMeaning
X-RateLimit-LimitThe token-bucket capacity the limit is measured against for your key.
X-RateLimit-RemainingTokens left in the current window after this request. When it reaches 0, the next request may be rejected.
X-RateLimit-ResetUnix timestamp (in seconds) when the window resets and tokens replenish.
The headers are set on success responses as well as on 429, so you can watch X-RateLimit-Remaining trend toward 0 and slow down before a request is rejected.
A simple proactive strategy: if X-RateLimit-Remaining is low, pause until the X-RateLimit-Reset timestamp before sending more requests rather than waiting for a 429.

When you exceed the per-minute limit

A request over the per-minute rate returns 429 Too Many Requests with the rate-limit headers above plus a Retry-After:
Retry-After: 60
X-RateLimit-Limit: <your bucket capacity>
X-RateLimit-Remaining: 0
X-RateLimit-Reset: <unix timestamp when the window resets>
Wait for the Retry-After interval (in seconds) before retrying, and prefer exponential backoff if you hit the limit repeatedly. The body follows the standard error envelope.
For write requests, retrying after a 429 is safe to do with an idempotency key (X-Idempotency-Key) — the same key replays the original result instead of performing the action twice.

Tips

  • Use the limit and pagination parameters to fetch only what you need.
  • Subscribe to WebSockets or webhooks for live data instead of polling.
  • If you consistently approach a limit, contact sales about a higher tier.
See Errors for the full status-code reference and Scopes for what your key can access.