Documentation/Exchange Rate API Quickstart

Exchange Rate API Quickstart

Make your first FX API call. Open a terminal and paste one command. You don't need an API key to try the data endpoint.

1. Request two rates

This asks for the euro and British pound against the US dollar. Change the base in the path or the comma-separated symbols list to get different currencies.

Use it with your stack

The same request works with curl, Python, and JavaScript. No API key is needed for evaluation.

Open the quickstart
curl -fsS --max-time 10 "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP"
Example response
{
  "result": "success",
  "base": "USD",
  "source": "live",
  "sources": {
    "EUR": "live",
    "GBP": "live"
  },
  "market_session": "open",
  "timestamp": "2026-06-15T12:00:00Z",
  "data_updated_at": "2026-06-15T12:00:00Z",
  "effective_at": {
    "EUR": "2026-06-15T12:00:00Z",
    "GBP": "2026-06-15T12:00:00Z"
  },
  "rates": {
    "EUR": 0.86207,
    "GBP": 0.74627
  },
  "derived_symbols": [],
  "notice": "Indicative rates, not for settlement."
}

rates.EUR is the EUR amount for 1 USD. effective_at.EUR is the observation time; sources.EUR identifies its source class. Values and timestamps are illustrative.

2. Read the response

The response uses this JSON shape. The rates below are an example, so your numbers and timestamps will be different.

json · exact example
{
  "result": "success",
  "base": "USD",
  "source": "live",
  "sources": {
    "EUR": "live",
    "GBP": "live"
  },
  "market_session": "open",
  "timestamp": "2026-06-15T12:00:00Z",
  "data_updated_at": "2026-06-15T12:00:00Z",
  "effective_at": {
    "EUR": "2026-06-15T12:00:00Z",
    "GBP": "2026-06-15T12:00:00Z"
  },
  "rates": {
    "EUR": 0.86207,
    "GBP": 0.74627
  },
  "derived_symbols": [],
  "notice": "Indicative rates, not for settlement."
}

Use rates.EUR and rates.GBP in your code. If you show freshness to users, keep source, market_session, and effective_at for each displayed currency.

3. Add a key when you need account quota

Anonymous requests are for evaluation and are limited by IP. A free account gives you an account-attributed monthly quota. Keep the key on your server, not in public browser JavaScript.

bash · authenticated
curl "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP"   -H "Authorization: Bearer YOUR_KEY"

Create a free key, then replace YOUR_KEY. The X-API-Key header also works when a connector cannot set an Authorization header.

Where to go next

Rates are indicative
Use the API for apps, dashboards, models, and analysis. It is not a dealing quote and should not be used to settle a trade or regulated transaction.