Rate Limits
This page lists the rate limits for each API endpoint in both Sandbox and Production environments.
Rate Limit Dimensions
| Dimension | Description |
|---|---|
Per app_key | Most endpoints are rate-limited at the application level. All requests sharing the same app_key count toward a single quota. |
| Per User | Connect API endpoints are rate-limited per authorized user (account_id). |
| Per Endpoint | Each endpoint has its own independent rate limit counter. Hitting the limit on one endpoint does not affect others. |
Rate Limit Exceeded Behavior
When a rate limit is exceeded:
- The API returns HTTP status 429 Too Many Requests.
- The request is rejected — no partial processing occurs.
caution
Repeatedly exceeding rate limits may result in temporary IP-level blocking. Ensure your application respects the limits and implements proper retry logic.
Rate Limit Format
Limits are expressed as N/Ts where N is the maximum number of requests and T is the time window in seconds. For example, 10/30s means 10 requests per 30-second window.
Authentication
Server-To-Server
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Create Token | POST | /auth/tokens/create | 10/10s | 10/10s |
| Check Token | POST | /auth/tokens/check | 10/10s | 10/10s |
Client-To-Server
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Create Client Token | POST | /auth/client-tokens/create | 600/60s | 600/60s |
| Refresh Client Token | POST | /auth/client-tokens/refresh | 600/60s | 600/60s |
Market Data API
Display Solution
Stock — Screener
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Top Active | GET | /market-data/screeners/top-actives/list | 30/60s | 60/60s |
| Stock Top Gainers/Losers Rank | GET | /market-data/screeners/gainers-losers/list | 30/60s | 60/60s |
Stock — Quotes
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Snapshot | POST | /market-data/stocks/snapshots/list | 30/60s | 60/60s |
| Historical Bars | POST | /market-data/stocks/bars/list | 30/60s | 60/60s |
| Historical Bars (single symbol) | GET | /market-data/stocks/bars/get | 30/60s | 60/60s |
| Tick | GET | /market-data/stocks/ticks/list | 30/60s | 60/60s |
| Quotes Depth | GET | /market-data/stocks/depths/list | 30/60s | 60/60s |
Stock — Corporate Actions
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Corporate Actions By Market | GET | /market-data/instruments/stocks/corporate-actions/list-by-market | 30/60s | 60/60s |
| Corporate Actions | GET | /market-data/instruments/stocks/corporate-actions/list | 30/60s | 60/60s |
Stock — Instrument
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Get Instruments | POST | /market-data/instruments/stocks/profiles/list | 30/60s | 60/60s |
| Batch Get Logos | POST | /market-data/fundamentals/logos/list | 30/60s | 60/60s |
| Company Profile | GET | /market-data/fundamentals/company-profiles/get | 30/60s | 60/60s |
| Analyst Target Price | GET | /market-data/fundamentals/analysis/target-prices/get | 30/60s | 60/60s |
| Analyst Rating | GET | /market-data/fundamentals/analysis/ratings/get | 30/60s | 60/60s |
Event Contract — Instrument
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Sports Filter | GET | /market-data/instruments/event-contracts/sports-filters/list | 30/60s | 60/60s |
| Series List | GET | /market-data/instruments/event-contracts/series/list | 30/60s | 60/60s |
| Milestones | GET | /market-data/instruments/event-contracts/milestones/list | 30/60s | 60/60s |
| Event List | GET | /market-data/instruments/event-contracts/events/list | 30/60s | 60/60s |
| All Tags | GET | /market-data/instruments/event-contracts/categories/tags/list | 30/60s | 60/60s |
Event Contract — Quotes
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Event Contract Market Snapshot | GET | /market-data/event-contracts/markets/snapshots/list | 30/60s | 60/60s |
| Event Contract Market Depth | GET | /market-data/event-contracts/markets/depths/list | 30/60s | 60/60s |
| Event Contract Bars by Symbols | GET | /market-data/event-contracts/markets/bars/list | 30/60s | 60/60s |
| Event Contract Bars by Event | GET | /market-data/event-contracts/markets/bars/list-by-event | 30/60s | 60/60s |
| Event Contract Live Data | GET | /market-data/event-contracts/live-data/get | 30/60s | 60/60s |
| Event Contract Game Stats | GET | /market-data/event-contracts/game-stats/get | 30/60s | 60/60s |
Streaming (Display)
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Subscribe | POST | /market-data/streaming/subscribe | 30/60s | 60/60s |
| Unsubscribe | POST | /market-data/streaming/unsubscribe | 30/60s | 60/60s |
Non-Display Solution
Stock
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Tick | GET | /market-data/stocks/ticks/list | 30/60s | 60/60s |
| Snapshot | GET | /market-data/stocks/snapshots/list | 30/60s | 60/60s |
| Quotes | GET | /market-data/stocks/depths/list | 30/60s | 60/60s |
| Footprint | GET | /market-data/stocks/footprints/list | 30/60s | 60/60s |
| Historical Bars | POST | /market-data/stocks/bars/list | 30/60s | 60/60s |
| NOII Bars | GET | /market-data/stocks/noii-bars/list | 30/60s | 60/60s |
| NOII Snapshot | GET | /market-data/stocks/noii-snapshots/list | 30/60s | 60/60s |
Options
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Tick | GET | /market-data/options/ticks/list | 30/60s | 60/60s |
| Snapshot | GET | /market-data/options/snapshots/list | 30/60s | 60/60s |
| Historical Bars | GET | /market-data/options/bars/list | 30/60s | 60/60s |
Futures
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Tick | GET | /market-data/futures/ticks/list | 30/60s | 60/60s |
| Snapshot | GET | /market-data/futures/snapshots/list | 30/60s | 60/60s |
| Footprint | GET | /market-data/futures/footprints/list | 30/60s | 60/60s |
| Quotes | GET | /market-data/futures/depths/list | 30/60s | 60/60s |
| Historical Bars | GET | /market-data/futures/bars/list | 30/60s | 60/60s |
Crypto
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Snapshot | GET | /market-data/crypto/snapshots/list | 30/60s | 60/60s |
| Historical Bars | GET | /market-data/crypto/bars/list | 30/60s | 60/60s |
Event
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Snapshot | GET | /market-data/event-contracts/snapshots/list | 30/60s | 60/60s |
| Depth | GET | /market-data/event-contracts/depths/list | 30/60s | 60/60s |
| Bars | GET | /market-data/event-contracts/bars/list | 30/60s | 60/60s |
| Tick | GET | /market-data/event-contracts/ticks/list | 30/60s | 60/60s |
Streaming (Non-Display)
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Subscribe | POST | /market-data/streaming/subscribe | 30/60s | 60/60s |
| Unsubscribe | POST | /market-data/streaming/unsubscribe | 30/60s | 60/60s |
News
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| News Summary | POST | /market-data/news/summaries/get | 30/60s | 60/60s |
Screeners
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Stock Top Gainers/Losers Rank | GET | /market-data/screeners/gainers-losers/list | 30/60s | 60/60s |
| Top Active | GET | /market-data/screeners/top-actives/list | 30/60s | 60/60s |
| Market Sectors | GET | /market-data/screeners/market-sectors/list | 30/60s | 60/60s |
| Market Sectors Detail | GET | /market-data/screeners/market-sectors/get | 30/60s | 60/60s |
| High Dividend Rank | GET | /market-data/screeners/high-dividend-ranks/list | 30/60s | 60/60s |
| 52 Week High/Low | GET | /market-data/screeners/week52-high-low/list | 30/60s | 60/60s |
Watchlist
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Get Watchlist | GET | /market-data/watchlists/list | 30/60s | 60/60s |
| Create Watchlist | POST | /market-data/watchlists/create | 30/60s | 60/60s |
| Update Watchlist | POST | /market-data/watchlists/update | 30/60s | 60/60s |
| Delete Watchlist | POST | /market-data/watchlists/delete | 30/60s | 60/60s |
| Get Watchlist Instruments | GET | /market-data/watchlists/instruments/list | 30/60s | 60/60s |
| Add Instruments to Watchlist | POST | /market-data/watchlists/instruments/add | 30/60s | 60/60s |
| Remove Instruments from Watchlist | POST | /market-data/watchlists/instruments/remove | 30/60s | 60/60s |
| Update Instruments Sort Order | POST | /market-data/watchlists/instruments/update | 30/60s | 60/60s |
Fundamentals
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Company Profile | GET | /market-data/fundamentals/company-profiles/get | 30/60s | 60/60s |
| Analyst Target Price | GET | /market-data/fundamentals/analysis/target-prices/get | 30/60s | 60/60s |
| Analyst Rating | GET | /market-data/fundamentals/analysis/ratings/get | 30/60s | 60/60s |
| Forecast EPS | GET | /market-data/fundamentals/forecast-eps/get | 30/60s | 60/60s |
| Filings | GET | /market-data/fundamentals/filings/list | 30/60s | 60/60s |
| Earnings Calendar | GET | /market-data/fundamentals/earnings-calendars/list | 30/60s | 60/60s |
| Dividend Calendar | GET | /market-data/fundamentals/dividend-calendars/list | 30/60s | 60/60s |
| Capital Flow | GET | /market-data/fundamentals/capital-flows/get | 30/60s | 60/60s |
| Industry Comparison | GET | /market-data/fundamentals/industry-comparisons/get | 30/60s | 60/60s |
| Indicators | GET | /market-data/fundamentals/indicators/get | 30/60s | 60/60s |
| Income | GET | /market-data/fundamentals/income-statements/get | 30/60s | 60/60s |
| Cashflow | GET | /market-data/fundamentals/cash-flows/get | 30/60s | 60/60s |
| Balancesheet | GET | /market-data/fundamentals/balance-sheets/get | 30/60s | 60/60s |
| Alert | GET | /market-data/fundamentals/financial-alerts/get | 30/60s | 60/60s |
| Fund Brief | GET | /market-data/fundamentals/fund-brief/get | 30/60s | 60/60s |
| Fund Performance | GET | /market-data/fundamentals/fund-performances/get | 30/60s | 60/60s |
| Fund Net Value | GET | /market-data/fundamentals/fund-net-values/get | 30/60s | 60/60s |
| Fund Holdings | GET | /market-data/fundamentals/fund-holdings/get | 30/60s | 60/60s |
| Fund Dividends | GET | /market-data/fundamentals/fund-dividends/get | 30/60s | 60/60s |
| Fund Rating | GET | /market-data/fundamentals/fund-ratings/get | 30/60s | 60/60s |
| Fund Splits | GET | /market-data/fundamentals/fund-splits/get | 30/60s | 60/60s |
| Fund Files | GET | /market-data/fundamentals/fund-files/get | 30/60s | 60/60s |
| Fund Allocation | GET | /market-data/fundamentals/fund-allocations/get | 30/60s | 60/60s |
Trading API
Instruments
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Get Stock Instrument | GET | /trading/instruments/stocks/profiles/list | 30/60s | 60/60s |
| Get Crypto Instrument | GET | /trading/instruments/crypto/profiles/list | 30/60s | 60/60s |
| Get Futures Instrument | GET | /trading/instruments/futures/contracts/list | 30/60s | 60/60s |
| Get Futures Product Codes | GET | /trading/instruments/futures/product-codes/list | 30/60s | 60/60s |
| Get Futures Products Class | GET | /trading/instruments/futures/product-classes/list | 30/60s | 60/60s |
| Get Event Contract Categories | GET | /trading/instruments/event-contracts/categories/list | 30/60s | 60/60s |
| Get Event Contract Series | GET | /trading/instruments/event-contracts/series/list | 30/60s | 60/60s |
| Get Event Contract Events | GET | /trading/instruments/event-contracts/events/list | 30/60s | 60/60s |
| Get Event Contract Instrument | GET | /trading/instruments/event-contracts/markets/list | 30/60s | 60/60s |
| Get Option Contracts | GET | /trading/instruments/options/contracts/list | 30/60s | 60/60s |
Accounts
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Account List | GET | /trading/accounts/list | 30/60s | 10/30s |
Assets
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Account Balance | GET | /trading/assets/balances/get | 30/60s | 2/2s |
| Account Positions | GET | /trading/assets/positions/list | 30/60s | 2/2s |
Activities
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Get Account Cash Activities By Type | GET | /trading/activities/cash-activities/list | 30/60s | 600/60s |
Orders — Trading
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Preview Order | POST | /trading/orders/preview | 30/60s | 150/10s |
| Place Order | POST | /trading/orders/place | 30/60s | 600/60s |
| Batch Place Orders | POST | /trading/orders/batch-place | 30/60s | 150/60s |
| Replace Order | POST | /trading/orders/replace | 30/60s | 600/60s |
| Cancel Order | POST | /trading/orders/cancel | 30/60s | 600/60s |
Orders — Query
| Endpoint | Method | Path | Sandbox | Production |
|---|---|---|---|---|
| Order History | GET | /trading/orders/historical-orders/list | 30/60s | 2/2s |
| Open Orders | GET | /trading/orders/open-orders/list | 30/60s | 2/2s |
| Order Detail | GET | /trading/orders/get | 30/60s | 2/2s |
Notes
- Sandbox limits are typically lower than Production to encourage efficient integration patterns during development.
- Contact your account manager if your use case requires higher limits.