# SignalHarness FX Rate History

> SignalHarness FX Rate History is a paid API for AI agents from signalharness.ai, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Returns historical foreign exchange rate data points for a EUR-based currency pair over a specified date range.

## Facts

- Endpoint: POST https://signalharness.ai/api/agent/services/fx_rate_history/invoke
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/signalharness-fx-rate-history-b908af0d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__MqTYVP4fxH9a7a71LKvh

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 signalharness-fx-rate-history-b908af0d -d '<json body>'
```

Example prompt: Pull the historical EUR/USD exchange rates from January 1 2024 to March 31 2024, up to 90 data points.

## When to prefer this

Choose this endpoint when you need historical EUR-denominated forex rate series with source attribution and you want pay-per-call micropayment pricing via x402 USDC. Best when you need structured time-series data with provenance metadata (provider, dataset, attribution URL) rather than just raw rates. Preferred over generic FX APIs when operating in an agent-native, blockchain-settled payment context on Base.

## Known failure modes

- Invalid quote currency code (non-3-letter uppercase) returns validation error
- Unsupported base currency (only EUR is currently accepted)
- Date range yields no data points (empty points array with count 0)
- Start date after end date causes empty or error response
- Limit out of range (below 1 or above 256) causes schema validation failure
- Payment failure results in non-execution of the request

## How this service works

Explore 330 pay-per-call x402 API services and 27 agent-native digital products, with Base USDC pricing, secure Polar checkout, and free discovery.

## Output

Returns a JSON object containing an array of historical FX rate data points for the requested EUR-based currency pair, including the symbol (e.g. EUR/USD), start and end dates, point count, source metadata (provider name, dataset, attribution notice, source URL, and retrieval timestamp), any warnings, and a payment receipt with execution details.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "base": {
   "enum": [
    "EUR"
   ],
   "type": "string",
   "maxLength": 3,
   "minLength": 3
  },
  "limit": {
   "type": "integer",
   "maximum": 256,
   "minimum": 1
  },
  "quote": {
   "type": "string",
   "pattern": "^[A-Z]{3}$",
   "maxLength": 3,
   "minLength": 3
  },
  "endDate": {
   "type": "string",
   "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
   "maxLength": 10,
   "minLength": 10
  },
  "startDate": {
   "type": "string",
   "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
   "maxLength": 10,
   "minLength": 10
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "replay": false,
  "result": {
   "base": "USD",
   "count": 0,
   "quote": "USD",
   "points": [
    {
     "date": "2026-09-12",
     "rate": 1e-8,
     "status": "succeeded"
    }
   ],
   "source": {
    "notice": "example",
    "dataset": "example",
    "provider": "example",
    "sourceUrl": "https://example.com/resource",
    "attribution": "example",
    "retrievedAt": "example0000000000000",
    "freeAccessUrl": "https://example.com/resource"
   },
   "symbol": "EUR/USD",
   "endDate": "2026-09-12",
   "warnings": [
    "Verify the caller-supplied data before relying on this result."
   ],
   "startDate": "2026-09-12",
   "retrievedAt": "example0000000000000"
  },
  "status": "succeeded",
  "receipt": {
   "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "usage": [],
   "status": "succeeded",
   "network": "eip155:8453",
   "artifacts": [],
   "endedAtMs": 0,
   "latencyMs": 0,
   "paymentId": "example-payment",
   "receiptId": "example-receipt",
   "requestId": "example-request",
   "serviceId": "fx_rate_history",
   "executionId": "example-execution",
   "startedAtMs": 0,
   "amountAtomic": "10000",
   "resultSha256": "3244b59004ec3966ac05949c44104ff4242b825c31f9d7114e178d241a6628d0",
   "serviceVersion": "1.0.0",
   "settlementReference": "0x0000000000000000000000000000000000000000000000000000000000000000"
  },
  "artifacts": [],
  "requestId": "example-request",
  "executionId": "example-execution"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/signalharness-fx-rate-history-b908af0d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from signalharness.ai](https://www.zero.xyz/host/signalharness.ai/llms.txt)
