# PayWeave Exchange Rates – Historical Rates

> PayWeave Exchange Rates – Historical Rates is a paid API for AI agents from abstract-exchange-rates.payweave.services, paid per call via x402, $0.006/call, status unknown (last checked 2026-09-14).

Returns historical foreign-exchange rates for a given base currency and past date, optionally filtered to specific target currencies.

## Facts

- Endpoint: POST https://abstract-exchange-rates.payweave.services/historical
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/payweave-exchange-rates-historical-rates-96ed28aa
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ghttYdk-m67g9_CtemenK

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 payweave-exchange-rates-historical-rates-96ed28aa -d '<json body>'
```

Example prompt: What were the exchange rates for USD against EUR, GBP, and JPY on March 14, 2021?

## When to prefer this

Use this endpoint when you need exchange rates for a specific past date rather than current live rates. Ideal for financial reconciliation, historical reporting, backtesting, or any workflow requiring point-in-time FX data going back to 1999. Choose the /live sibling endpoint for real-time rates.

## Known failure modes

- Invalid or unsupported base currency code returns an error
- Date before 1999-01-01 is out of supported historical range
- Malformed date format (not YYYY-MM-DD) causes validation error
- Invalid target currency code in the comma-separated list returns an error or is omitted
- Payment failure (x402) results in 402 response and no data returned

## How this service works

Real-time foreign-exchange rates and currency conversion.

## Output

A JSON object containing the base currency, a Unix timestamp of when the rates were quoted, and a map of target currency codes to their exchange rates relative to the base on that historical date.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "base",
  "date"
 ],
 "properties": {
  "base": {
   "type": "string",
   "description": "3-letter base currency code, e.g. USD"
  },
  "date": {
   "type": "string",
   "description": "Historical date (YYYY-MM-DD), from 1999-01-01 onward"
  },
  "target": {
   "type": "string",
   "description": "Optional comma-separated target codes (e.g. \"EUR,GBP\")."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "base": {
   "type": "string",
   "description": "The base currency the rates are expressed against."
  },
  "last_updated": {
   "type": "number",
   "description": "Unix timestamp of the quoted rates."
  },
  "exchange_rates": {
   "type": "object",
   "description": "Map of target currency code → rate against `base` (for /live and /historical).",
   "additionalProperties": {
    "type": "number"
   }
  }
 },
 "description": "Exchange-rate JSON forwarded verbatim from Abstract.",
 "additionalProperties": true
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/payweave-exchange-rates-historical-rates-96ed28aa/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from abstract-exchange-rates.payweave.services](https://www.zero.xyz/host/abstract-exchange-rates.payweave.services/llms.txt)
