> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nordicfinancialnews.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Plan limit exceeded

> The 403 problem type returned when your plan does not reach the requested content or feature.

<Info>
  Problem type: `https://docs.nordicfinancialnews.com/problems/plan-limit-exceeded`
</Info>

The API returns this problem type with HTTP `403` when your request is well formed and your key is valid, but your plan does not reach what you asked for. Three things produce it:

* **Your plan does not include API access at all.** Every request fails this way until the plan changes.
* **The content sits outside your plan's window.** Plans differ in how far back they reach and how much of the calendar they cover, and an individual record beyond your window is refused rather than silently omitted.
* **The endpoint or capability is not on your plan.** Per-company calendars and incremental calendar sync are the usual examples.

## Example response

```json theme={"dark"}
{
  "type": "https://docs.nordicfinancialnews.com/problems/plan-limit-exceeded",
  "title": "Company calendars not available on your plan",
  "status": 403,
  "detail": "Per-company calendar events require a plan with full calendar access. Upgrade your account, or use /api/v1/calendar_events for the upcoming-events preview.",
  "instance": "urn:request:7f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c"
}
```

<Warning>
  Unlike most problem types, `title` varies between occurrences of this one. It names the specific capability you were refused, so it is useful to show a person and unsafe to match on in code. Branch on `type` and read `detail`.
</Warning>

`detail` usually names a way forward, and it is worth surfacing verbatim rather than replacing with your own copy. Where a narrower endpoint can answer the same question on your plan, this is where you are told about it.

## How to fix it

Retrying changes nothing. Your plan is the same on the next request.

Either take the alternative `detail` names, if there is one, or upgrade the account. What each plan reaches is set out on the [pricing page](https://nordicfinancialnews.com/pricing), and your current plan is shown in [API key settings](https://nordicfinancialnews.com/settings/api_keys).

If you are building for other people's accounts, treat this as an expected response rather than an error. Handle it by degrading to what the plan does cover, and show `detail` so the account owner understands what they are missing.

## Not the same as the other 403

[Insufficient permissions](/problems/auth-insufficient) also returns `403`, but it is about the API key rather than the account. Editing scopes fixes that one and never fixes this one. Branch on `type`, not on the status code.

Note also that a resource your plan cannot reach is sometimes hidden rather than refused, returning [`404`](/problems/not-found) instead. A `404` is therefore not proof that something does not exist.

## Related

* [Error handling](/guides/errors) for the full problem type list
* [Authentication](/guides/authentication) for what counts toward your quota
* [Insufficient permissions](/problems/auth-insufficient) for the `403` returned when your key lacks a scope
