# insufficient_scope

> 403 Insufficient scope. The key doesn’t carry the scope the endpoint needs.

| Status                 | Code                 | Retry?          |
| ---------------------- | -------------------- | --------------- |
| 403 Insufficient scope | `insufficient_scope` | After fixing it |

## What it means

The key doesn’t carry the scope the endpoint needs. Each endpoint’s reference names its scope.

## Common causes

- A read-only key was used to send a text.
- A key made for sending was used to manage webhooks.

## What to do

Make a key with the scope named in the message.

## Can I retry it?

Only after you fix what the message names. Until then the same request gets the same answer.

## What the answer looks like

The answer, `403`:

```json
{
  "error": {
    "code": "insufficient_scope",
    "message": "This key doesn’t have the `messages:send` scope.",
    "hint": "Make a key with the scope named in the message.",
    "doc_url": "https://usebluebot.com/docs/errors/insufficient_scope",
    "request_id": "req_1Hq2LxW9cVbN3mKpRtYs0a"
  }
}
```

Branch on `code`, which never changes. `message` and `hint` are written for people and may be reworded. Quote `request_id` when you write to support.

## Related

- [Errors](https://usebluebot.com/docs/errors): the envelope and every code
- [Idempotency](https://usebluebot.com/docs/concepts/idempotency): retrying without sending twice
- [Limits](https://usebluebot.com/docs/limits): every cap and what happens when you reach it
