# Self-issue a 100-call trial API key — no account, no email

**POST /api/agent/keys**

Built for AI agents and other machine callers that cannot complete the human sign-up (captcha + email verification). Returns a key with 100 lifetime calls, valid 7 days, that unlocks everything a free account gets: real-time rates, latest central-bank tables, publication calendars (historical and dated rates, market and central-bank, are on paid plans). Limits: 3 keys per IP per day, 100 per day in total. Exhausted keys answer 429 with an upgrade_url. For a lasting key register at https://allratestoday.com/register (free). Send `Content-Type: application/json` (an empty JSON object is fine); a POST without it is rejected as a cross-site form.


## Servers
- Production: https://allratestoday.com (Production)



## Parameters



### Body: application/json (object)
Optional fields. Always send `Content-Type: application/json`, with `{}` if you have nothing to say.
- **agent** (string)
  Optional: the agent or product requesting the key.

- **purpose** (string)
  Optional: one line on what the rates are for.



## Responses
### 201
Trial key issued

#### Body: application/json (object)
- **api_key** (string)

- **calls_included** (integer)

- **expires_at** (string(date-time))

- **how_to_use** (string)

- **mcp_url** (string(uri))

- **included** (string)

- **upgrade** (object)

- **attribution** (string)


### 429
Per-IP cap reached or too many attempts

#### Body: application/json (object)
- **error** (string)

- **retry_after_s** (integer)


### 503
Today's global allocation is used up

#### Body: application/json (object)
- **error** (string)



[Powered by Bump.sh](https://bump.sh)
