# Currency & Crypto API – Historical Fiat Exchange Rates

> Currency & Crypto API – Historical Fiat Exchange Rates is a paid API for AI agents from currency.payapi.market, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-30).

Returns historical fiat currency exchange rates for a given base currency and date, sourced from the European Central Bank via Frankfurter.

## Facts

- Endpoint: POST https://currency.payapi.market/rates/historical?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/currency-crypto-api-historical-fiat-exchange-rates-db185f8b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_x5SOEeUHXfU2Prq-7WkTT

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability currency-crypto-api-historical-fiat-exchange-rates-db185f8b -d '<json body>'
```

Example prompt: What were the exchange rates for USD against EUR and GBP on January 15, 2024? Use the ECB historical rates data going back to that date.

## When to prefer this

Choose this endpoint when you need authoritative historical fiat exchange rates sourced from the European Central Bank for a specific past date, particularly for financial reconciliation, accounting, auditing, or reporting use cases where ECB data is the accepted standard. It is ideal for date-specific lookups going back to 1999. Prefer it over live-rate endpoints when the date in question is in the past, and over crypto endpoints when you need fiat-only rates.

## Known failure modes

- Date before 1999-01-04: ECB data is not available before this date, likely returns an error or empty rates
- Invalid date format: non-YYYY-MM-DD strings will likely cause a validation error
- Unknown currency code: unrecognized ISO 4217 codes in base or symbols may return an error or be silently omitted
- Weekend or holiday date: ECB does not publish rates on non-trading days, may return rates from the nearest prior trading day or an error
- Payment failure: x402 micropayment not satisfied returns 402 response before data is delivered

## How this service works

Fiat exchange rates (ECB via Frankfurter) and crypto prices (CoinGecko) with x402 payments.

## Output

A JSON object containing the base currency code, the requested date, a map of target currency codes to their exchange rates (as decimals), a boolean indicating whether the result was served from cache, and a source attribution string ('ECB via Frankfurter'). Rates are available back to January 4, 1999.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "base": {
   "type": "string",
   "description": "Base currency ISO 4217 code, e.g. 'USD'. Defaults to USD if omitted."
  },
  "date": {
   "type": "string",
   "description": "Date in YYYY-MM-DD format, back to 1999-01-04, e.g. '2024-01-15'."
  },
  "symbols": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Optional list of target currency codes to restrict the response, e.g. ['EUR', 'GBP']. Omit for all rates."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "base": "USD",
  "date": "2024-01-15",
  "rates": {
   "EUR": 0.9187,
   "GBP": 0.7861
  },
  "cached": false,
  "source": "ECB via Frankfurter"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/currency-crypto-api-historical-fiat-exchange-rates-db185f8b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from currency.payapi.market](https://www.zero.xyz/host/currency.payapi.market/llms.txt)
