# CxRates > Live and historical exchange rates covering 161 fiat currencies, 286 cryptocurrencies and 4 precious metals. > Published as web pages, a keyless JSON API and embeddable widgets. Every rate > carries the feed it came from and the time it was fetched. Rates are aggregated from several free public feeds — the European Central Bank via Frankfurter, open.er-api.com, Binance and CoinGecko. Quotes that deviate from the median across sources are flagged and dropped rather than blended into it, so a single bad upstream figure does not reach a page. Which feed stands behind a given pair, and how often it refreshes, differs by pair: each pair page states its own, and that statement is the authority rather than anything on this page. USD is the hub currency. A pair that no feed quotes directly is computed by crossing through USD, which is why a rate exists here for pairs no single source publishes. When no live quote is available the page falls back to the most recent daily close and says so in words. The JSON API marks the same condition with `"stale": true` and an `as_of` date on the rate. A figure on this site is never silently stale — if you are quoting one and it carries no timestamp, you are reading it wrong rather than reading a fresh number. ## How to cite CxRates - Attribution: `Exchange rates by CxRates — https://cxrates.com/` - Every `/api/v1/*` response carries that same string in an `attribution` field, a response-level `fetched_at`, and per rate a `source`, a `stale` flag and an `as_of` date. - Pair pages carry their headline rate as schema.org `ExchangeRateSpecification` JSON-LD, whose `validFrom` is the moment that rate was fetched. The same timestamp is in the page's `