---
title: "Create an API key"
method: POST
path: "/api/public/v1/api-keys"
tags: ["API Keys"]
---

# Create an API key

`POST /api/public/v1/api-keys`

Creates a new API key, its associated AutoBoy user and wallet. Call this first — it needs no credentials, and every other endpoint takes the key it returns.

**Key creation is turned off right now and returns a `503`. Existing keys keep working.**

- The plaintext `apiKey` is returned **exactly once** and is never recoverable afterwards.
- Provisioning takes **~1–2s** as it creates a Privy account and an on-chain smart wallet.
- `label` must be unique across all keys. If it is taken you get a `409` — retry with a different one.
- Rate limited per IP. Over the limit returns a `429`.

## Request body

- object
  - `label` string, required — Human-readable name to identify this key, e.g. "arca-bot". - Trimmed and lowercased before storage. - Must be unique across all keys, so pick something specific to you. A taken label returns a 409.

## Response `201`

The API key was created and its smart wallet provisioned.

- CreateApiKeyResponse
  - `apiKey` string, required — The plaintext API key. Returned exactly once — it is never stored in plaintext and cannot be retrieved again. Store it securely on receipt; if lost, create a new key with a different label.
  - `autoboyWalletAddress` string, required — On-chain smart wallet address provisioned for this key.

## Other responses

- `400` — Invalid or missing request body (e.g. missing label).
- `403` — The caller is deny-listed and blocked from this endpoint.
- `409` — This label is already taken, or is still being provisioned by a concurrent request — `code` distinguishes the two.
- `429` — Rate limit exceeded. Wait `Retry-After` seconds before retrying.
- `500` — Failed to create the API key.
- `503` — Key creation is turned off, or rate limiting is unavailable. When `Retry-After` is set, wait that many seconds and retry.

## Changes

- **2026-07-27** `056fc0063c16` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/thefirm/apis/autoboy-public-api/changes/api/public/v1/api-keys/post.md)

---

[API](https://skmtc.dev/thefirm/apis/autoboy-public-api.md) · [All operations](https://skmtc.dev/thefirm/apis/autoboy-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/thefirm/autoboy-public-api/revisions/56f5091b8f06/schema)
