Observed reference data only. UTC dates; the current day is incomplete. Highs and lows refer to sampled observations, not every market trade. Historical metal futures prices are not used as spot quotes.
For developers
Free currency API
Live and historical exchange rates as clean JSON — no key, no sign-up, CORS enabled. Use it in a script, a site or an app. Attribution keeps it free.
✓ Free
✓ No API key
✓ CORS enabled
✓ Clean JSON
Endpoints
| Endpoint | Example | Description |
|---|---|---|
GET /api/v1/rates |
base |
All live mid-market rates for a base currency. |
GET /api/v1/convert |
from, to, amount |
Convert an amount at the live mid-market rate. |
GET /api/v1/timeseries |
from, to, days |
Available archived reference observations for a currency pair; UTC dates, with gaps retained. |
GET /api/v1/cross |
base, symbols |
Selected rates for a base currency. |
Try it now
Code examples
cURL
curl "https://currency-converter.live/api/v1/convert?from=USD&to=EUR&amount=100"
JavaScript (fetch)
const r = await fetch('https://currency-converter.live/api/v1/rates?base=USD');
const { data } = await r.json();
console.log(data.rates.EUR);
PHP
$j = json_decode(file_get_contents(
'https://currency-converter.live/api/v1/convert?from=GBP&to=PLN&amount=50'
), true);
echo $j['data']['result'];
Python
import requests
d = requests.get('https://currency-converter.live/api/v1/timeseries',
params={'from':'EUR','to':'USD','days':30}).json()
print(d['data']['rates'])
Response format
{
"success": true,
"data": { "from": "USD", "to": "EUR", "amount": 100,
"rate": 0.857, "result": 85.7, "quote": { "as_of": "...", "status": "delayed" }, "generated_at": "..." },
"error": null,
"source": "currency-converter.live"
}
Fair use & terms
Free for personal and commercial use. Please cache responses (rates update about once a second) and credit currency-converter.live with a link. Data is mid-market reference only — not investment advice, and no uptime guarantee. Abuse or excessive load may be rate-limited.