meta object showing how many calls you have used, how many remain, and when your quota resets.
Monthly call quotas
| Plan | Monthly calls |
|---|---|
| Free | 10,000 |
| Starter | 100,000 |
| Growth | 500,000 |
| Business | 2,000,000 |
| Enterprise | Unlimited |
All API keys on your account share one quota pool. Every call made by any of your keys counts toward the same monthly total.
Tracking usage
Every API response includes ameta object. You do not need a separate request to check your usage.
| Field | Type | Description |
|---|---|---|
plan | string | Your current plan: free, starter, growth, business, or enterprise |
calls_used | integer | Total calls made this month across all your keys |
calls_remaining | integer | Calls left before your quota is exhausted |
reset_at | string | ISO 8601 UTC timestamp of your next quota reset |
When you exceed your quota
Whencalls_used reaches your monthly limit, all further requests return HTTP 429 with the QUOTA_EXCEEDED error code:
What to do when you hit your limit
-
Wait for the reset. Check
meta.reset_atto see the exact UTC time your quota resets on the 1st of next month. - Upgrade your plan. Log in to your developer dashboard and select a higher plan. Upgrades take effect immediately. See Plans for pricing and call limits.
Reducing unnecessary usage
Cache responses where possible
Cache responses where possible
Some endpoints return data that changes infrequently, like the company list (
/v1/companies) or available dates (/v1/market/available-dates). Cache these in your application and refresh on a schedule rather than fetching on every request.Avoid polling in tight loops
Avoid polling in tight loops
NGX market data is published once per trading day. Polling every few seconds burns through your quota with no benefit. Use a reasonable interval based on how often the data actually changes.
Use one key per integration
Use one key per integration
Multiple keys do not give you more calls since all keys share one quota pool. Keep your key count to what you actually need.