---
title: "Self-issue a 100-call trial API key — no account, no email"
method: POST
path: "/api/agent/keys"
tags: ["Authentication", "Open Endpoints"]
---

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

`POST /api/agent/keys`

## Request

- Base URL: `https://allratestoday.com`
- URL: `https://allratestoday.com/api/agent/keys`
- Auth: none declared

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 (300 calls, free). Send `Content-Type: application/json` (an empty JSON object is fine); a POST without it is rejected as a cross-site form.

## Request body

- object
  - `agent` string: Optional: the agent or product requesting the key.
  - `purpose` string: Optional: one line on what the rates are for.

## Response `201`

Trial key issued

- object
  - `api_key` string, required
  - `calls_included` integer, required
  - `expires_at` string, date-time, required
  - `how_to_use` string
  - `mcp_url` string, uri
  - `included` string
  - `upgrade` object
    - `free_account` string
    - `paid_plans` string
  - `attribution` string

## Other responses

- `429`: Per-IP cap reached or too many attempts
- `503`: Today's global allocation is used up

---

[API](https://skmtc.dev/allratestoday/apis/allratestoday-exchange-rate-central-bank-rates-api.md) · [All operations](https://skmtc.dev/allratestoday/apis/allratestoday-exchange-rate-central-bank-rates-api/llms.txt) · [OpenAPI document](https://skmtc.dev/allratestoday/apis/allratestoday-exchange-rate-central-bank-rates-api/revisions/c2e58e9b4da4?raw)
