---
title: "409 Key quota exceeded"
description: "This environment already holds as many API keys as it may. QuotaStack made no key."
---

# 409 Key quota exceeded

`https://api.quotastack.io/errors/key_quota_exceeded`

This environment already holds as many API keys as it may. QuotaStack made no key.

## Why it happened

- You hit the key limit for this environment.

## How to fix it

1. Delete a key you no longer use, in the [dashboard](https://platform.quotastack.io).
2. Swap a key in place, instead of making a new one.

### Example response 409

```json
{
  "type": "https://api.quotastack.io/errors/key_quota_exceeded",
  "title": "Key quota exceeded",
  "status": 409,
  "detail": "The API key limit for this environment has been reached."
}
```

## Which calls return this

- [`POST /v1/admin/auth/signup`](/docs/api/account#adminSignup)
- [`POST /v1/admin/auth/resend-verification`](/docs/api/account#adminResendVerification)
- [`POST /v1/admin/api-keys`](/docs/api/account#adminCreateAPIKey)
- [`POST /v1/admin/api-keys/{id}/revoke`](/docs/api/account#adminRevokeAPIKey)
- [`PATCH /v1/admin/tenants/{tenant_id}/config`](/docs/api/account#adminUpdateTenantConfig)
- [`POST /v1/admin/tenants/{tenant_id}/webhook-secret/rotate`](/docs/api/account#adminRotateWebhookSecret)
- [`POST /v1/tenants/{id}/live-access/approve`](/docs/api/account#approveTenantLiveAccess)
- [`POST /v1/tenants/{id}/live-access/reject`](/docs/api/account#rejectTenantLiveAccess)
- [`POST /v1/tenants/{id}/live-access/suspend`](/docs/api/account#suspendTenantLiveAccess)
- [`POST /v1/tenants/{id}/sandbox-access/suspend`](/docs/api/account#suspendTenantSandboxAccess)
- [`POST /v1/tenants/{id}/sandbox-access/enable`](/docs/api/account#enableTenantSandboxAccess)

## See also

- [API conventions](/docs/concepts/conventions)
