Problem type:
https://docs.nordicfinancialnews.com/problems/monthly-limit-exceeded429 when your account has spent its monthly request allowance. The hourly rate limit uses the same status code under a different type. It is a different problem with a different fix, so branch on type. The status alone will not tell you which one you hit.
Example response
instance member, so there is no request URN to quote to support. The X-Request-Id response header is still set, so log that instead.
The detail spells out your limit and the reset date in prose. The headers below carry the same two values in a form you can parse.
Response headers
Retry-After behaves differently here than it does on an hourly 429. The allowance resets at the end of the calendar month in UTC, so the value can be anything from a few seconds to most of a month. Treat it as a date to wait for, not a duration to sleep through.
Which plans can hit it
You only see this on a plan that caps your monthly requests. A plan that meters them has no hard block, so this response never appears. Your requests keep succeeding past the included allowance, and the extra usage goes on your bill. Your own allowance is in API key settings.How to fix it
Retrying does not help before the reset, and every attempt still passes through your hourly rate limit.- Wait for the reset.
X-Monthly-Resetgives the exact timestamp. - Upgrade the plan. A larger allowance applies immediately.
- Spend fewer requests. ETag caching is the cheapest saving available: the API refunds a
304 Not Modifiedresponse, so it never counts against the month. Widening page sizes and narrowing filters also cut the number of calls a walk needs.
Watching the counter
Every successful request carriesX-Monthly-Remaining (on a capped plan) or X-Monthly-Usage (on a metered one) alongside X-Monthly-Reset. Read them off responses you already make. Polling for your usage spends the requests you are trying to conserve.
The two headers describe different windows. A capped plan resets on the first of the calendar month. A metered plan reports against its billing period, which starts on whatever day the subscription did.
Related
- Rate limit exceeded for the hourly limit, which shares the
429status - Error handling for the full problem type list
- Caching for conditional requests that do not count against the month
- Authentication for what a request costs