ShareYourGroupShareYourGroupFree Public APIs

Frankfurter exchange rates

Reference exchange rates from central banks and official sources: the latest rate, and history back to 1999 on the version 1 endpoints.

Address that will be called:

What it gives you

Reference exchange rates from central banks and official sources: the latest rate, and history back to 1999 on the version 1 endpoints. They are reference rates published once or a few times a day, not live market quotes.

Terms and limits

The public API needs no key, and the project is open source so you can run your own copy (Frankfurter's home page). The site now also shows a version 2; the version 1 address used here answered on the day we tested. Rates are for reference: do not use them to settle payments.

_Read on 14 November 2026 from frankfurter.dev._

Good habits

  1. Cache answers that do not change often.
  2. Handle errors: the service may be busy or down.
  3. Give credit where the terms ask for it.
  4. Do not put secret keys into a web page: this API needs none, but many others do.

The same request in code

curl

curl -L "https://api.frankfurter.dev/v1/latest?base=USD&symbols=INR"

Python

import json, urllib.request

with urllib.request.urlopen("https://api.frankfurter.dev/v1/latest?base=USD&symbols=INR") as r:
    data = json.load(r)
print(data['rates'])

JavaScript (browser or Node.js)

const res = await fetch("https://api.frankfurter.dev/v1/latest?base=USD&symbols=INR");
const data = await res.json();
console.log(data.rates);

A real answer

This is what the example request above returned when we called it on 14 November 2026 with the default values (it took about 0.1 s from our computer). Values such as times and temperatures change.

{
  "amount": 1.0,
  "base": "USD",
  "date": "2026-11-13",
  "rates": {
    "INR": 94.25
  }
}

This is an independent directory. It is not connected with any of the services listed. Each address was called on 14 November 2026 with curl, Python, Node.js and Chrome (from a page on another site), and the answer shown is a real one. APIs change: check the service's own page before you depend on it.