# FX Rates ECB – Range Analysis (Average, High, Low, Percentile & Verdict)

> FX Rates ECB – Range Analysis (Average, High, Low, Percentile & Verdict) is a paid API for AI agents from fx-ecb.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-21).

Returns the average, high, low, and percentile rank of today's FX rate for a currency pair over a configurable 30–1095 day window, with a rich/cheap verdict.

## Facts

- Endpoint: GET https://fx-ecb.x402tookit.com/fx-range?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/fx-rates-ecb-range-analysis-average-high-low-percentile-verdict-68661414
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Ej3jEW5hUdbFE1tK0p_lH

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 fx-rates-ecb-range-analysis-average-high-low-percentile-verdict-68661414
```

Example prompt: Is EUR/USD cheap or expensive right now? Give me the average, high, low, and a rich/cheap verdict based on ECB rates over the last 365 days.

## When to prefer this

Choose this endpoint when you need historical context for a current FX rate — specifically percentile ranking, rich/cheap valuation, or range statistics (high/low/mean) over a configurable multi-day window using official ECB reference rates. Prefer it over the latest-rate or historical-date endpoints when the goal is analysis or timing judgment rather than a single point-in-time rate. It is ideal for treasury decisions, travel FX timing, investment research, and automated alerts on currency valuation.

## Known failure modes

- Unsupported currency pair (neither base nor quote is in ECB's 30 published currencies) returns an error or null fields
- Window days outside 30–1095 range may be rejected or clamped
- Degraded flag set true if fewer fixings than expected are available (e.g. near start of ECB data history in 1999)
- Weekend or holiday gaps in ECB data may reduce fixing count without error
- Network or payment (x402) failure returns no data

## How this service works

Average, high, low and percentile rank of today's rate for a currency pair over 30-1095 days, with a rich/cheap verdict.

## Output

Returns the latest rate, mean, high (with date), low (with date), number of ECB fixings in the window, percentile rank of today's rate, a plain-language summary, a rich/cheap verdict with supporting reasons, the window duration, data source attribution, and optional degraded/disclaimer flags.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "base",
      "quote"
     ],
     "properties": {
      "base": {
       "type": "string",
       "description": "Base currency"
      },
      "days": {
       "type": "integer",
       "description": "Window in days, 30 to 1095, default 365"
      },
      "quote": {
       "type": "string",
       "description": "Quote currency"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "low": {
       "type": [
        "null",
        "object"
       ],
       "properties": {
        "date": {
         "type": [
          "null",
          "string"
         ]
        },
        "rate": {
         "type": [
          "null",
          "number"
         ]
        }
       }
      },
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "base": {
       "type": [
        "null",
        "string"
       ]
      },
      "high": {
       "type": [
        "null",
        "object"
       ],
       "properties": {
        "date": {
         "type": [
          "null",
          "string"
         ]
        },
        "rate": {
         "type": [
          "null",
          "number"
         ]
        }
       }
      },
      "mean": {
       "type": [
        "null",
        "number"
       ]
      },
      "quote": {
       "type": [
        "null",
        "string"
       ]
      },
      "latest": {
       "type": [
        "null",
        "number"
       ]
      },
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "fixings": {
       "type": [
        "null",
        "number"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "verdict": {
       "ty
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/fx-rates-ecb-range-analysis-average-high-low-percentile-verdict-68661414/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from fx-ecb.x402tookit.com](https://www.zero.xyz/host/fx-ecb.x402tookit.com/llms.txt)
