---
title: "Exchange an emailed claim token for the API key"
method: POST
path: "/v1/keys/claim"
---

# Exchange an emailed claim token for the API key

`POST /v1/keys/claim`

## Request

- Base URL: `https://agentmandate-api.com`
- URL: `https://agentmandate-api.com/v1/keys/claim`
- Auth: none required

Spends the token emailed by POST /v1/keys and returns the key. The key is shown ONCE — only a peppered hash is stored, so it can never be read back; if you lose it, rotate. The key works only on this API, and the allowance it is issued with reflects your account: your paid plan when you have one, the free sandbox allowance when you do not.

## Request body

- object
  - `token` string, required: The claim token from the verification email.

## Response `201`

Success

- object
  - `apiKey` string: Shown once and never again. Store it now.
  - `keyId` string: Use this with /v1/keys/{id}/revoke and /v1/keys/{id}/rotate.
  - `product` string: The key works only on this API.
  - `quotaPerPeriod` integer, nullable
  - `plan` string: The tier this allowance came from, or "sandbox" on the free tier.
  - `warning` string
  - `usage` string
  - `requestId` string

## Other responses

- `400`: Deterministic error. Branch on `code`; quote `requestId` when reporting a problem.
- `409`: Deterministic error. Branch on `code`; quote `requestId` when reporting a problem.
- `500`: Deterministic error. Branch on `code`; quote `requestId` when reporting a problem.

---

[API](https://skmtc.dev/agentmandate-api/apis/agent-mandate.md) · [All operations](https://skmtc.dev/agentmandate-api/apis/agent-mandate/llms.txt) · [OpenAPI document](https://skmtc.dev/agentmandate-api/apis/agent-mandate/revisions/463fe122c4d8?raw)
