# Historical Rate Coverage

> Understand which pairs go back to 1949, which start in 1971 or later, and how per-currency availability affects a query.

Canonical: https://currency-core.com/docs/guides/history-coverage/
Updated: 2026-11-12
Published: 2026-11-11

---
## The job

Know how far back a pair can be queried before you build a chart, a backtest, or a data import. Use [`/v1/history`](/docs/history-endpoint/) and check the earliest date it returns for each currency.

## Coverage by era

| Start | What is available |
|---|---|
| 1949 | Annual parity for GBP/USD and USD/INR |
| 1971 | Daily market data for most majors |
| 1973 | Daily USD/INR |
| 1981 | Many Asian pairs |
| 1983 | TWD |
| 1993 | MXN |
| 1995 | BRL |
| 1999 | EUR pairs |

This is a guide to availability, not a guarantee that every pair has daily values from the earliest era. The API returns the earliest observation available for each currency. A pair outside its covered range does not have a synthetic value inserted.

## Check the first date for a pair

Query a wide range and inspect the first key in `rates`:

```bash
curl "https://api.currency-core.com/v1/history?currency=INR&base=USD&from=1949-01-01&to=1950-12-31" \
  -H "Authorization: Bearer cc_live_your_key" | jq '.rates | keys[0]'
```

A covered range returns a dense map. The first key is the first available date:

```json
{
  "currency": "INR",
  "base": "USD",
  "interval": "daily",
  "from": "1949-12-30",
  "to": "1950-01-03",
  "rates": {
    "1949-12-30": 4.76,
    "1949-12-31": 4.76,
    "1950-01-01": 4.76,
    "1950-01-02": 4.76,
    "1950-01-03": 4.76
  }
}
```

The values are illustrative. The shape is the important part: one key per
calendar day, including the New Year holiday, with the prior value carried
forward. If the result is empty or starts later than expected, the pair has no
observation in that window. Dates before a currency's first quote are absent, not
zero.

## Plan limits and dense dates

`/v1/history` is available on every plan. Free can request the last 30 days; an older `from` returns `403 forbidden`. Starter and above can request full history. Inside a covered range, the response is a dense calendar map: weekends and holidays carry the previous trading day forward.

Do not describe 1949 as the start of daily data for all pairs. It is the start of annual parity for two series. For a per-currency view, use [`/v1/currencies`](/docs/currencies/) and test the earliest date you actually need.

## Related docs

[History endpoint](/docs/history-endpoint/), [history analysis](/docs/history-analysis-endpoint/), [currencies](/docs/currencies/), [backtesting guide](/docs/guides/backtesting/), and the [guides hub](/docs/guides/).
