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

# tier_insufficient

> Error: feature requires a higher tier

# tier\_insufficient

<Info>HTTP Status: **403 Forbidden**</Info>

## Example response

```json theme={null}
{
  "error": {
    "code": "tier_insufficient",
    "message": "Batch validation requires a Pro or Business plan",
    "docs_url": "https://docs.avatcado.com/errors/tier_insufficient"
  },
  "meta": {
    "request_id": "550e8400-e29b-41d4-a716-446655440000"
  }
}
```

## What happened?

You tried to use a feature that is not available on your current tier. This happens when:

* Calling the [batch validation](/batch-validation) endpoint on the **Free** tier (requires Pro or Business)

## How to fix

1. **Upgrade your plan**: Visit the [Avatcado dashboard](https://avatcado.com) to upgrade to Pro or Business. The upgrade takes effect immediately.
2. **Use single validation instead**: If you only need to validate a few VAT numbers and don't want to upgrade, use the single `GET /v1/validate` endpoint which is available on all tiers.

| Tier     | Batch Validation     |
| -------- | -------------------- |
| Free     | Not available        |
| Pro      | Up to 50 per request |
| Business | Up to 50 per request |

## Common mistakes

* **Assuming all endpoints are available on Free**: Some features like batch validation are reserved for paid tiers
* **Using a test key and expecting different behavior**: Tier restrictions apply to both live and test keys. A test key on a Free account still returns `tier_insufficient` for batch requests

## Catching this error with the SDKs

<CodeGroup>
  ```typescript @avatcado/node theme={null}
  import Avatcado, { AuthenticationError } from '@avatcado/node';

  const avatcado = new Avatcado('avat_live_your_api_key');
  const { data, error } = await avatcado.vat.validate({ vatNumber: '...' });

  if (error instanceof AuthenticationError) {
    console.log(error.message);
  }
  ```

  ```python Python theme={null}
  from avatcado import Avatcado, AuthenticationError

  avatcado = Avatcado("avat_live_your_api_key")

  try:
      result = avatcado.vat.validate("...")
  except AuthenticationError as e:
      print(e.message)
  ```
</CodeGroup>

## Related errors

* [`unauthorized`](/errors/unauthorized) - API key is invalid or missing (different from tier restrictions)
* [`rate_limit_exceeded`](/errors/rate_limit_exceeded) - Monthly quota exhausted (different from tier gating)
