---
title: "Issue a free anonymous API key"
method: POST
path: "/keys"
---

# Issue a free anonymous API key

`POST /keys`

## Request

- Base URL: `https://api.b2a.bluepillow.com/v1`
- URL: `https://api.b2a.bluepillow.com/v1/keys`
- Auth: none required

The bootstrap call: every other endpoint needs a bearer key, and this one issues it in-band with no signup and no login. The key never expires and is not a sensitive secret — no account, payment or personal data is attached — so it can live in a client's connector settings and be reused across sessions. A generous per-IP daily issuance cap applies purely as an anti-abuse guardrail. Agents on MCP get the same thing via the `get_anonymous_key` tool.

## Request body

- object
  - `label` string: Free-form label recorded on the key for observability (e.g. a client name). Not a secret, not unique.
  - `agent` string: Agent identifier, for platforms that want issuance attributed to themselves (e.g. 'claude-code', 'cursor-ide').

## Response `201`

Key issued

- object
  - `key` string, required
  - `created_at` string, date-time, required
  - `rate_limit` object, required
    - `requests_per_minute` integer
    - `requests_per_day` integer

## Other responses

- `429`: Per-IP issuance cap reached

---

[API](https://skmtc.dev/bluepillow/apis/b2a-api.md) · [All operations](https://skmtc.dev/bluepillow/apis/b2a-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bluepillow/apis/b2a-api/revisions/1dfd82be92b6?raw)
