# INSUFFICIENT_SCOPES

- Surface: API
- HTTP status: 403
- Details: `{ requiredScopes: string[], heldScopes: string[] }`

## Cause

The credential is valid but does not carry the scopes this operation requires.

## Fix

Compare `details.requiredScopes` with `details.heldScopes` and use a credential that holds the difference. A Client Key holds only `evaluate` by construction, so control-plane operations need an API Key.

## Related

- [FORBIDDEN](https://splitch.dev/docs/error/FORBIDDEN)
- [UNAUTHORIZED](https://splitch.dev/docs/error/UNAUTHORIZED)
- [APP_MISMATCH](https://splitch.dev/docs/error/APP_MISMATCH)

Source: https://splitch.dev/docs/error/INSUFFICIENT_SCOPES