Skip to content
🌐Network: Mainnet

Rate Limits

These are application-level rate limits for the o2 API. Infrastructure providers may enforce additional network-level limits.

Limiter Types

TypeHow it is appliedUsed by
IP-basedBased on public IP addressPublic or unauthenticated endpoints
Owner ID-basedBased on the O2-Owner-Id headerSession and owner-authenticated endpoints

Session Endpoints

EndpointRate LimitType
PUT /v1/session5/sOwner ID-based
POST /v1/session/actions5/sOwner ID-based

Account Endpoints

EndpointRate LimitType
POST /v1/accounts1/sIP-based
POST /v1/accounts/actions10/mOwner ID-based
POST /v1/accounts/upgrade10/mOwner ID-based
POST /v1/accounts/withdraw10/mOwner ID-based

Market Endpoints

EndpointRate LimitType
GET /v1/markets/fees5/sIP-based

Aggregated Endpoints

EndpointRate LimitType
GET /v1/aggregated/assets5/sIP-based
GET /v1/aggregated/orderbook5/sIP-based
GET /v1/aggregated/summary5/sIP-based
GET /v1/aggregated/ticker5/sIP-based
GET /v1/aggregated/trades5/sIP-based
GET /v1/aggregated/coingecko/tickers5/sIP-based
GET /v1/aggregated/coingecko/orderbook5/sIP-based

All aggregated endpoints are also available under the /v1/agg/ alias with the same rate limits.

Page Size Limits

Some endpoints also cap result size per request:

DataLimit
Trades50 items
Orders200 items
Bars (OHLCV)5000 bars
Aggregated order book depth500 levels per side

For cursor behavior, see Pagination.

Client Guidance

  • Use WebSocket streams for real-time market and account updates instead of polling aggressively.
  • Back off when a request is throttled.
  • Include the correct O2-Owner-Id header on owner/session endpoints so owner-based limits apply correctly.
  • Batch session actions where appropriate; POST /v1/session/actions supports up to 5 actions total across up to 5 markets.