# Forex Movers & Performance API
> What is actually moving in the currency market right now, computed live from Yahoo Finance (no key, nothing stored). Just as stock and crypto traders watch the day's biggest gainers and losers, FX traders want the pairs on the move — the ones breaking out and breaking down across the majors and crosses. For every pair this measures the change on the day, over the week and over the month, with the day's high and low and where the current rate sits in that day's range. The movers endpoint returns the whole board ranked by daily change — the top gainers and losers — plus the weekly and monthly leaders, so you can see momentum across horizons at a glance. The pair endpoint returns one pair's full performance card. The pairs endpoint lists what is covered. The FX movers / performance-dashboard cut — distinct from the currency-strength meter (which aggregates each currency's move across all its pairs into one score), the FX price, range and volatility APIs. It answers which pairs are moving today, not how strong the euro is.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/fxmovers-api/..."
```

## Pricing
- **Free** (Free) — 1,100 calls/Mo, 2 req/s
- **Starter** ($9/Mo) — 26,000 calls/Mo, 6 req/s
- **Pro** ($29/Mo) — 125,000 calls/Mo, 18 req/s
- **Business** ($69/Mo) — 620,000 calls/Mo, 45 req/s

## Endpoints

### Movers

#### `GET /v1/movers` — All pairs ranked by daily change with weekly/monthly leaders

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fxmovers-api/v1/movers"
```

**Response:**
```json
{
    "data": {
        "note": "Every major and cross FX pair ranked by change on the day (gainers first), with weekly and monthly leaders. change_1d/1w/1m_pct are simple price changes over 1, ~5 and ~21 trading days. A positive move means the base currency strengthened against the quote.",
        "pairs": [
            {
                "base": "AUD",
                "pair": "AUDUSD",
                "rate": 0.70467,
                "quote": "USD",
                "day_low": 0.7024,
                "day_high": 0.7056,
                "change_1d_pct": 0.75,
                "change_1m_pct": -2.75,
                "change_1w_pct": -1.2
            },
            {
                "base": "USD",
                "pair": "USDNOK",
                "rate": 9.53565,
                "quote": "NOK",
                "day_low": 9.4498,
                "day_high": 9.5563,
                "change_1d_pct": 0.73,
                "change_1m_pct": 3.88,
                "change_1w_pct": 2.13
            },
            {
                "base": "NZD",
                "pair": "NZDUSD",
                "rate": 0.58343,
                "quote": "USD",
                "day_low": 0.5813,
                "day_high": 0.5845,
                "change_1d_pct": 0.69,
                "change_1m_pct": -2.2,
                "change_1w_pct": -0.61
            },
            {
                "base": "EUR",
                "pair": "EURCAD",
                "rate": 1.61868,
                "quote": "CAD",
    
…(truncated, see openapi.json for full schema)
```

### Pair

#### `GET /v1/pair` — One pair performance card

**Parameters:**
- `pair` (query, required, string) — FX pair (see /v1/pairs) Example: `EURUSD`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fxmovers-api/v1/pair?pair=EURUSD"
```

**Response:**
```json
{
    "data": {
        "base": "EUR",
        "note": "One pair's performance card: change on the day, week and month, the day's high/low and where the current rate sits in the day's range (0 = on the low, 100 = on the high).",
        "pair": "EURUSD",
        "rate": 1.15808,
        "quote": "USD",
        "source": "Yahoo Finance",
        "day_low": 1.1561,
        "day_high": 1.1593,
        "change_1d_pct": 0.39,
        "change_1m_pct": -1.69,
        "change_1w_pct": -0.27,
        "day_range_position": 61.9
    },
    "meta": {
        "timestamp": "2026-06-12T10:35:16.347Z",
        "request_id": "4954b403-df2f-44f3-972a-21e67101bcbd"
    },
    "status": "ok",
    "message": "Pair retrieved successfully",
    "success": true
}
```

### Pairs

#### `GET /v1/pairs` — Supported FX pairs

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fxmovers-api/v1/pairs"
```

**Response:**
```json
{
    "data": {
        "note": "Supported FX pairs (majors and crosses). Pass any as pair= to /v1/pair.",
        "count": 28,
        "pairs": [
            {
                "base": "EUR",
                "pair": "EURUSD",
                "quote": "USD"
            },
            {
                "base": "GBP",
                "pair": "GBPUSD",
                "quote": "USD"
            },
            {
                "base": "USD",
                "pair": "USDJPY",
                "quote": "JPY"
            },
            {
                "base": "USD",
                "pair": "USDCHF",
                "quote": "CHF"
            },
            {
                "base": "AUD",
                "pair": "AUDUSD",
                "quote": "USD"
            },
            {
                "base": "USD",
                "pair": "USDCAD",
                "quote": "CAD"
            },
            {
                "base": "NZD",
                "pair": "NZDUSD",
                "quote": "USD"
            },
            {
                "base": "EUR",
                "pair": "EURGBP",
                "quote": "GBP"
            },
            {
                "base": "EUR",
                "pair": "EURJPY",
                "quote": "JPY"
            },
            {
                "base": "GBP",
                "pair": "GBPJPY",
                "quote": "JPY"
            },
            {
                "base": "EUR",
                "pair": "EURCHF",
                "quote":
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fxmovers-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "Parameter-less movers; pair= takes a supported pair. Changes are over 1, ~5 and ~21 trading days. Read fresh per call, nothing cached.",
        "source": "Yahoo Finance daily FX rates (1-month range), live",
        "service": "fxmovers-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/pair": "One pair's performance card (pair=EURUSD).",
            "GET /v1/pairs": "The supported FX pairs.",
            "GET /v1/movers": "All pairs ranked by daily change with weekly/monthly leaders."
        },
        "description": "Forex movers & performance — what is moving in the currency market now, live from Yahoo Finance (no key, nothing stored). movers returns the whole board ranked by daily change (top gainers and losers) plus the weekly and monthly leaders. pair returns one pair's full performance card (day/week/month change, day high/low, range position). pairs lists what is covered. The FX movers / performance-dashboard cut — distinct from the currency-strength meter (which aggregates each currency into one score), the FX price, range and volatility APIs.",
        "pairs_scanned": 28,
        "pairs_supported": 28,
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-12T10:35:16.555Z",
        "request_id": "1ebe662a-e749-4eab-b526-906d647c64e9"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/fxmovers-api
OpenAPI spec: https://www.oanor.com/api/fxmovers-api/openapi.json
