Exchange rates (ForgeCast FX)
Daily exchange rates for 150+ currencies from any base, conversions rounded the right way, the currency list and rate history. Public, no key.
ForgeCast FX is the exchange-rate service ForgeCast itself uses: for prices on the pricing page and for showing earnings in the desktop app in your own currency. You can use it too.
It reads several independent daily feeds and blends them: where the feeds agree it averages them, and where one has a bad day it keeps the value nearest yesterday's, so a single wrong number can't move a price. Each day is kept, which is where the history comes from.
All of these endpoints:
- are public: no sign-in or API key;
- allow 120 requests a minute per address;
- send an
ETag: send it back asIf-None-Matchand you get304 Not Modifiedwhile the rates haven't changed; - are cacheable for an hour (ten minutes while the feeds are down and the answer is
stale).
Credit the rates
Every answer has a provider. When provider.attribution is set (for example Rates by Exchange Rate API), show those words, linked to provider.url, wherever the numbers appear.
Latest rates
/api/v1/fx/latestQuery parameters
Name
Type
GET /api/v1/fx/latest?base=INR&symbols=USD,EUR,GBP{
"base": "INR",
"rates": { "USD": 0.0104358, "EUR": 0.00932952, "GBP": 0.00789024 },
"date": "2026-10-12",
"fetchedAt": "2026-10-13T18:13:53.306Z",
"stale": false,
"provider": {
"name": "ForgeCast FX",
"sources": ["currency-api", "exchangerate-api"],
"attribution": "Rates by Exchange Rate API",
"url": "https://www.exchangerate-api.com"
}
}rates[X] is how many X one base buys. date is the day the rates are for; stale is true when the feeds couldn't be read and older rates (or a built-in table) are being served.
Convert an amount
/api/v1/fx/convertName
Type
GET /api/v1/fx/convert?from=USD&to=INR&amount=5{ "from": "USD", "to": "INR", "amount": 5, "result": 479.12, "rate": 95.8237, "formatted": "₹479.12", "date": "2026-10-12", "stale": false, "provider": { "name": "ForgeCast FX" } }result is rounded to the target currency's usual decimals: two for rupees and dollars, none for yen, three for Kuwaiti dinars.
Rate history
/api/v1/fx/historyName
Type
{ "base": "USD", "from": "2026-10-06", "to": "2026-10-12", "days": [{ "date": "2026-10-12", "rates": { "INR": 95.8237 } }] }Days are oldest first. Only days ForgeCast FX has kept are listed, so a new pair or a day the feeds were down may be missing.
Currencies
/api/v1/fx/currenciesEvery currency with a rate today, with its name, symbol and usual decimals:
{ "currencies": [{ "code": "INR", "name": "Indian Rupee", "symbol": "₹", "decimals": 2, "popular": true }], "date": "2026-10-12" }Errors
400 bad_request: a parameter isn't a currency code or a number, ordaysis out of range.404 not_found: there is no rate for that currency today.429 rate_limited: more than 120 requests a minute from one address.
The older GET /api/v1/rates (always US-dollar based) still works for apps that use it, and is served from the same blended rates.

