Central Bank of Chile Exchange Rate API: Official Dólar Observado as JSON
The Central Bank of Chile publishes the official exchange rates that accounting, tax, and customs practice in Chile reference — published official rates, not moving market prices. This guide shows how to pull them as JSON: via a REST endpoint or the zero-dependency central-bank-of-chile-exchange-rate npm package.
/api/v1/central-bank/bcch/history?source=USD&target=CLP).Published a day ahead, on purpose
The dólar observado is computed from the previous day’s interbank trading and published one business day ahead of its value date — so tomorrow’s official rate exists today. Chilean law, tax rules and contracts reference it by value date, which is exactly how the API serves it. Alongside it comes the bank’s parities table: roughly 60 currencies quoted against the US dollar, from which CLP crosses resolve automatically.
Why official rates, not market rates
A live mid-market exchange rate API answers "what is USD/CLP trading at right now?" — the right tool for checkouts and dashboards. But accountants, auditors, and tax authorities ask a different question: "which rate were you required to use for this date?" That answer comes from the Central Bank of Chile’s published rates, and it never changes after publication.
Get the latest rates (REST)
curl "https://allratestoday.com/api/v1/central-bank/bcch/latest" \
-H "Authorization: Bearer YOUR_API_KEY" The response is the bank’s most recent published table — one row per pair in its own quoting direction, the publication date (rate_date) and a freshness flag. Live example captured 2026-10-08:
{
"bank": "bcch",
"name": "Central Bank of Chile",
"rate_date": "2026-10-08",
"age_days": 2,
"stale": false,
"cadence": "daily",
"rates": [
{"base": "USD", "quote": "AED", "type": "reference", "value": 3.672},
{"base": "USD", "quote": "ARS", "type": "reference", "value": 1520.3002},
{"base": "USD", "quote": "AUD", "type": "reference", "value": 1.4357},
{"base": "USD", "quote": "BMD", "type": "reference", "value": 1},
… 56 more rows
],
"disclaimer": "Official rates as published by the named central bank. On weekends/holidays the most recent published rate_date is returned."
} Most integrations need one pair. Add source and target and the API returns a single resolved rate — derived: false when Central Bank of Chile printed the pair itself:
curl "https://allratestoday.com/api/v1/central-bank/bcch/latest?source=USD&target=CLP" \
-H "Authorization: Bearer YOUR_API_KEY" {
"bank": "bcch",
"name": "Central Bank of Chile",
"rate_date": "2026-10-08",
"source": "USD",
"target": "CLP",
"rate": 979.85,
"rate_type": "reference",
"derived": false,
"method": "published",
"age_days": 2,
"stale": false,
"cadence": "daily",
"disclaimer": "Official rates as published by the named central bank. On weekends/holidays the most recent published rate_date is returned."
} The response is the bank's most recent published table — every rate and the publication date. The latest rates are available on every plan, including the free tier (no credit card).
The npm SDK
npm install central-bank-of-chile-exchange-rate import { getRate, getLatestRates } from 'central-bank-of-chile-exchange-rate';
// One pair at the official rate
const pair = await getRate('USD', 'CLP', { apiKey: 'art_live_...' });
console.log(pair.rate, pair.rate_date);
// The bank's full published table
const table = await getLatestRates({ apiKey: 'art_live_...' });
console.log(table.rate_date, table.rates.length); Zero dependencies, TypeScript types included, and it runs anywhere fetch exists — Node 18+, Bun, Deno, and edge runtimes.
Historical rates for an invoice date
import { getRatesForDate, getHistory } from 'central-bank-of-chile-exchange-rate';
const day = await getRatesForDate('2026-08-18', { apiKey: 'art_live_...' });
const series = await getHistory(
{ source: 'USD', target: 'CLP', from: '2026-01-01' },
{ apiKey: 'art_live_...' }
); Historical dates and time series need a paid plan; the latest rates stay free.
Published vs derived pairs
If the Central Bank of Chile does not print a pair directly, the API resolves it from the bank's published rates — an inverse, or a cross via CLP — and flags it derived: true with the method used. Official and computed values are never silently mixed, which is exactly the distinction an auditor will ask about.
The archive
The dólar observado is loaded from August 1982 — through the 1982 debt-crisis devaluation, the 2008 crisis peak, the 2019 social-unrest spike past 800, and beyond. The ~60-currency parities table is loaded from January 2000.
FAQ
Does the Central Bank of Chile have an official exchange rate API?
The bank publishes its official rates on its own site, and AllRatesToday serves the same published rates as clean JSON via REST or the central-bank-of-chile-exchange-rate npm package. The latest table is free.
How do I get the official Chile exchange rate for a past date?
The rates-for-date endpoint returns the official table for any archived date; non-publication days resolve to the most recent published date and are flagged, so audit trails stay honest. Historical dates require a paid plan; latest rates are free.
Why does the API return a rate for tomorrow?
Because the bank publishes it today: the dólar observado for value date D is computed from day D-1 trading and released the evening before. That forward-dated value is the official rate for that date.
Official Central Bank of Chile rates, as JSON
The latest rates are free — no credit card.
Get your free API keyRelated Articles
- Central Bank of Chile rates API — product page
- All covered central banks
- Central Bank of Chile reference rates for finance teams
- Central bank API documentation
- Best exchange rate APIs in 2026 — how the official-rate and market-rate providers compare
- Exchange rate API — live market rates for 160+ currencies