---
title: "Create Api Key Endpoint"
method: POST
path: "/api/settings/api-keys"
tags: ["settings"]
---

# Create Api Key Endpoint

`POST /api/settings/api-keys`

## Request

- Base URL: `https://api.thebetterhire.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.thebetterhire.ai/api/settings/api-keys`
- Auth: HTTP bearer

Mint a key. The plaintext is in this response and NOWHERE else — it is
stored only as a bcrypt hash, so it cannot be shown again.

## Request body

- ApiKeyCreateRequest
  - `name` string, required: Human label so a key can be identified later without revealing it, e.g. 'ATS integration' or 'Zapier'.
  - `description` string, nullable
  - `read_only` boolean: Read-only keys are rejected on every write route (schedule, submit, trigger, upload, match, webhook changes).
  - `sandbox` boolean: Sandbox keys are free and isolated: they authenticate to a separate sandbox organisation, are never billed, and never reach a vendor. Use them to build an integration without paying for every mistake. They cannot see live data.

## Response `201`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api.md) · [All operations](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/revisions/c8ad03e900ea?raw)
