---
title: "Issue an API key"
method: POST
path: "/api/keys"
tags: ["auth"]
---

# Issue an API key

`POST /api/keys`

## Request

- Base URL: `https://calc.engineer`
- URL: `https://calc.engineer/api/keys`
- Auth: none declared

Get a free API key (5,000 calls/day, 24h TTL). Send Authorization: Bearer <jwt> to get a paid-tier key (unlimited, 30d TTL).

## Request body

- object
  - `label` string: Optional label for the key (max 64 chars)

## Response `201`

API key issued

- object
  - `key` string: API key (ce_<hex>)
  - `tier` 'free' | 'developer' | 'network' | 'agent'
  - `rate_limit` string
  - `expires_in` string
  - `usage` string
  - `label` string, nullable

## Other responses

- `429`: Key issuance rate limit (5/hour/IP for free tier)

---

[API](https://skmtc.dev/calc/apis/calc-engineer-api.md) · [All operations](https://skmtc.dev/calc/apis/calc-engineer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/calc/apis/calc-engineer-api/revisions/8830480ec488?raw)
