# BIS Effective Exchange Rates (Currency Strength) API
> How strong each currency is on a trade-weighted basis, served live from the Bank for International Settlements' open statistics API — no key, nothing cached. An effective exchange rate (EER) measures a currency against a basket of its trading partners' currencies, not just one pair — it is the single best gauge of whether a currency is broadly strengthening or weakening. The BIS publishes nominal and real (inflation-adjusted) EER indices for 64 economies, against a broad (64-economy) or narrow (27-economy) basket, all on a base of 100. The rankings endpoint returns every economy's current EER index, ranked, so you can see the world's strongest and weakest currencies at a glance. The country endpoint returns one economy's EER index with its history and its 12-month change. The movers endpoint ranks the biggest currency gainers and losers over the past year — who has appreciated and who has depreciated most. Everything is the BIS's own compiled data, live, nothing stored; figures are monthly. This is the trade-weighted currency-strength layer for any forex, macro, trade or research app. Distinct from bilateral FX-rate and central-bank APIs — this is effective exchange rates: real and nominal trade-weighted currency strength, from the BIS. 3 endpoints, no key on our side.

## 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/eer-api/..."
```

## Pricing
- **Free** (Free) — 2,500 calls/Mo, 2 req/s
- **Starter** ($10/Mo) — 38,000 calls/Mo, 6 req/s
- **Pro** ($24/Mo) — 215,000 calls/Mo, 15 req/s
- **Mega** ($57/Mo) — 1,100,000 calls/Mo, 40 req/s

## Endpoints

### EER

#### `GET /v1/country` — One economy EER + history + 12m change

**Parameters:**
- `country` (query, required, string) — Country code (US, GB, JP, XM for euro area) Example: `US`
- `type` (query, optional, string) — real (default) or nominal Example: `real`
- `basket` (query, optional, string) — broad (default) or narrow Example: `broad`
- `history` (query, optional, string) — Number of past months (default 24) Example: `12`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/eer-api/v1/country?country=US&type=real&basket=broad&history=12"
```

**Response:**
```json
{
    "data": {
        "base": "index, 2020 = 100",
        "type": "real",
        "as_of": "2026-04",
        "basket": "broad (64 economies)",
        "source": "Bank for International Settlements",
        "country": "United States",
        "history": [
            {
                "date": "2025-05",
                "eer_index": 109.26
            },
            {
                "date": "2025-06",
                "eer_index": 108.05
            },
            {
                "date": "2025-07",
                "eer_index": 107.28
            },
            {
                "date": "2025-08",
                "eer_index": 107.95
            },
            {
                "date": "2025-09",
                "eer_index": 107.49
            },
            {
                "date": "2025-10",
                "eer_index": 107.69
            },
            {
                "date": "2025-11",
                "eer_index": 108.01
            },
            {
                "date": "2025-12",
                "eer_index": 106.71
            },
            {
                "date": "2026-01",
                "eer_index": 106.35
            },
            {
                "date": "2026-02",
                "eer_index": 104.94
            },
            {
                "date": "2026-03",
                "eer_index": 107.38
            },
            {
                "date": "2026-04",
                "eer_index": 107.06
            }
        ],
        "eer_index": 107.06,
 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/movers` — Biggest currency gainers and losers (12m)

**Parameters:**
- `type` (query, optional, string) — real (default) or nominal Example: `nominal`
- `basket` (query, optional, string) — broad (default) or narrow Example: `broad`
- `limit` (query, optional, string) — Top/bottom N (default 10) Example: `5`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/eer-api/v1/movers?type=nominal&basket=broad&limit=5"
```

**Response:**
```json
{
    "data": {
        "type": "nominal",
        "basket": "broad (64 economies)",
        "source": "Bank for International Settlements",
        "window": "12 months",
        "biggest_losers": [
            {
                "as_of": "2026-04",
                "country": "Argentina",
                "eer_index": 5.13,
                "country_code": "AR",
                "change_12m_pct": -23.43
            },
            {
                "as_of": "2026-04",
                "country": "Türkiye",
                "eer_index": 15.67,
                "country_code": "TR",
                "change_12m_pct": -17.92
            },
            {
                "as_of": "2026-04",
                "country": "Japan",
                "eer_index": 68.46,
                "country_code": "JP",
                "change_12m_pct": -13.15
            },
            {
                "as_of": "2026-04",
                "country": "India",
                "eer_index": 82.41,
                "country_code": "IN",
                "change_12m_pct": -11.41
            },
            {
                "as_of": "2026-04",
                "country": "Philippines",
                "eer_index": 89.26,
                "country_code": "PH",
                "change_12m_pct": -7.5
            }
        ],
        "strongest_gainers": [
            {
                "as_of": "2026-04",
                "country": "Israel",
                "eer_index": 130.11,
                "country_code": "IL",
       
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/rankings` — Every economy EER, ranked

**Parameters:**
- `type` (query, optional, string) — real (default) or nominal Example: `real`
- `basket` (query, optional, string) — broad (default) or narrow Example: `broad`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/eer-api/v1/rankings?type=real&basket=broad"
```

**Response:**
```json
{
    "data": {
        "base": "index, 2020 = 100",
        "note": "higher index = stronger currency vs trading partners",
        "type": "real",
        "count": 64,
        "basket": "broad (64 economies)",
        "source": "Bank for International Settlements",
        "rankings": [
            {
                "as_of": "2026-04",
                "country": "Argentina",
                "eer_index": 143.96,
                "country_code": "AR"
            },
            {
                "as_of": "2026-04",
                "country": "Mexico",
                "eer_index": 140.49,
                "country_code": "MX"
            },
            {
                "as_of": "2026-04",
                "country": "Poland",
                "eer_index": 129.49,
                "country_code": "PL"
            },
            {
                "as_of": "2026-04",
                "country": "Czechia",
                "eer_index": 126.7,
                "country_code": "CZ"
            },
            {
                "as_of": "2026-04",
                "country": "Colombia",
                "eer_index": 126.37,
                "country_code": "CO"
            },
            {
                "as_of": "2026-04",
                "country": "Russia",
                "eer_index": 126.16,
                "country_code": "RU"
            },
            {
                "as_of": "2026-04",
                "country": "Iceland",
                "eer_index": 125.66,
                "country
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

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

**Response:**
```json
{
    "data": {
        "source": "Bank for International Settlements stats API — WS_EER (live)",
        "service": "eer-api",
        "economies": 64,
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/movers": "Biggest currency gainers and losers over 12 months (type=, basket=, limit).",
            "GET /v1/country": "One economy's EER + history + 12-month change (country=US, type=, basket=).",
            "GET /v1/rankings": "Every economy's current EER, ranked (type=real|nominal, basket=broad|narrow)."
        },
        "description": "How strong each currency is on a trade-weighted basis, from the Bank for International Settlements (WS_EER): nominal and real (inflation-adjusted) effective exchange-rate indices for 64 economies, against a broad or narrow basket, base 100. The rankings endpoint ranks every economy's current EER (strongest to weakest currency); the country endpoint returns one economy's EER with history and 12-month change; and the movers endpoint ranks the biggest currency gainers and losers over the past year. Live, no key, nothing stored; figures monthly. Distinct from bilateral FX-rate and central-bank APIs — this is effective exchange rates: real and nominal trade-weighted currency strength.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-09T20:24:49.537Z",
        "request_id": "d3e3e04e-1580-47b4-907e-f6e13b6273f1"
    },
    "status": "ok",
    "message": "Meta",
    
…(truncated, see openapi.json for full schema)
```


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