CurrencyFreaks logo
GET /v2.0/rates/latest
{
  "date": "2026-09-13 23:59:00+00",
  "base": "USD",
  "rates": {
    "EUR": "0.862515",
    "GBP": "0.739372",
    "JPY": "153.445",
    "CAD": "1.3868",
    "BTC": "0.0000130234956886"
    // ... 1000+ currencies
  }
}

Trusted By

Equiti - Trading AppEpixil - Business automation softwareExigo - Global incentive managerHP - Laptops, PCs and moreOodles - Innovate with AISavart - Wealth management platformSim Code - World Economic data analyzerTimify - Appointment scheduling softwareUGA - University of GeorgiaGartnerEquiti - Trading AppEpixil - Business automation softwareExigo - Global incentive managerHP - Laptops, PCs and moreOodles - Innovate with AISavart - Wealth management platformSim Code - World Economic data analyzerTimify - Appointment scheduling softwareUGA - University of GeorgiaGartner

Trusted by teams building with real-time exchange rate data

Reliable currency data for trading workflows, internal tools, app integrations, and global pricing experiences.

ShaneCrypto pricing
CurrencyFreaks has been easy to integrate, reliable in production, and very well documented. We use it to convert cryptocurrency prices quoted in USD into local currencies for users around the world. The service is stable, the data is accurate, and the setup is straightforward for developers. Compared to other currency APIs we evaluated, CurrencyFreaks offers a strong balance of functionality, simplicity, and pricing.

Trusted by developers building with real-time exchange rate data.

Verified reviews on Trustpilot
Pierre ZappaFX trading workflow
CurrencyFreaks is very useful for our business app. We value its speed, reliability, accuracy, and the ease of working with the JSON response. The API runs efficiently in the background, and it is a service we rely on with confidence for regular FX trading activity.
Customer review
Hamza DerkaouiEasy to Set up
Great experience with currency freaks so far, works well and easy to set up.
HarleyDaily currency operations
We rely on them daily and have had no issues or negative experiences.
KarstenFileMaker integration
Great service. I built an add-on using the CurrencyFreaks API for the FileMaker platform, and people actively download and use it.
Customer review
Mike ChenFX reference rates
Our customers rely on our FX reference rate powered by the CurrencyFreaks API. Good performance and reasonable pricing.
Customer review

Your first exchange rate request, in one line

Authenticate with an API key as a URL parameter and you get clean JSON straight back - nothing to install first.

  • No SDK to install
  • No OAuth dance
  • No sandbox environment

One call returns every supported currency at once - or pass &symbols=EUR,GBP,JPY to keep the response small, and &base=EUR to change the base currency on any paid plan.

request
curl 'https://api.currencyfreaks.com/v2.0/rates/latest?apikey=YOUR_API_KEY'
response200 OK
{
  "date": "2026-09-13 23:59:00+00",
  "base": "USD",
  "rates": {
    "EUR": "0.862515",
    "GBP": "0.739372",
    "CAD": "1.3868",
    "JPY": "153.445",
    "BTC": "0.0000130234956886"
    // ... 1000+ currencies
  }
}

Real-time exchange rate API

The exchange rates API returns mid-market rates for all 1000+ supported currencies from a single endpoint. Rates are sourced from established forex exchanges, cryptocurrency exchanges and national banks, then normalised into one consistent response format so you do not have to reconcile feeds yourself.

GET/v2.0/rates/latest?apikey=YOUR_API_KEY

Need rates for a handful of pairs rather than all 1000+? Filter with the symbols parameter. Need a base currency other than US dollars? Set base to any supported currency on a paid plan.

Update frequency by plan

Developer (free)

Daily updates, USD base currency

Starter

Hourly updates, all base currencies

Growth

10-minute updates

Professional and Enterprise

60-second updates

Built for production

SSL on every plan127 ms latencyJSON & XML

Currency converter API

Use the currency conversion API when you need a converted amount rather than a rate table. Pass the source currency, target currency and amount, and the API does the arithmetic server-side.

  • No rate caching or rounding logic to maintain
  • Crypto and fiat use the identical request shape
  • Historical conversion via a date parameter

This is the endpoint behind checkout flows that quote prices in a shopper's local currency, invoicing systems that settle in one currency while billing in another, and dashboards that normalise multi-currency revenue into a single reporting currency - including BTC to Japanese yen with the same request shape as any fiat pair.

You send
1,000 USD
You get
862.52 EUR
Live mid-market rate1 USD = 0.862515 EUR
GEThttps://api.currencyfreaks.com/v2.0/convert/latest?apikey=YOUR_API_KEY&from=USD&to=EUR&amount=1000

Historical exchange rates API - data back to 1984

The historical exchange rates API serves end-of-day rates for any date from 28 November 1984 onward. Pass a date in YYYY-MM-DD format and get the same response shape as the live endpoint, so historical and current data flow through identical parsing code.

Time series and fluctuation

For ranges rather than single dates, the time series endpoint returns rates across a start and end date in one request - the efficient way to build charts, run backtests or generate month-over-month reports without looping through hundreds of daily calls.

The fluctuation endpoint goes further, returning the opening rate, closing rate, absolute change and percentage change for a period. That is a single call for “how much did the Turkish lira move against the euro last quarter” rather than fetching two dates and computing the delta yourself.

Historical, time series and fluctuation endpoints are available on paid plans. Four decades of data means you can model currency behaviour across multiple financial cycles, not just recent history.

One date range, three endpoints

Historical

/rates/historical

Any single date since 28 Nov 1984

Time series

/rates/timeseries

Rates across a start and end date

Fluctuation

/rates/fluctuation

Open, close, change and % change

example
GET /v2.0/rates/historical
curl 'https://api.currencyfreaks.com/v2.0/rates/historical?apikey=YOUR_API_KEY&date=2015-08-24'

Forex API for FX rates and trading workflows

Traders and fintech teams generally want a forex API rather than a generic rate lookup - tight refresh intervals, dependable uptime and a response format that parses fast in a hot path. CurrencyFreaks serves FX rates for 166 fiat currencies with 60-second updates on Professional and Enterprise plans.

166

Fiat currencies

4

Precious metals

60s

Update interval

The foreign exchange rates API covers every major and minor pair, plus 4 precious metals for teams tracking gold and silver alongside currencies. Rates come from established forex exchanges and national banks, so pricing reflects genuine market mid-points rather than a single venue’s book.

Typical uses of the FX API:

Live FX reference rates inside trading dashboards

Automated alerts when a pair crosses a threshold

Treasury and hedging models that need consistent mid-market marks

Backtesting strategies against four decades of historical FX data

Geolocation-based routing keeps latency at 127 ms globally, which matters when rates feed a decision rather than a display.

Currency data API for teams working at volume

If you are pulling rates into a warehouse, a pricing engine or an analytics pipeline, you need a currency data API judged on consistency and quota headroom rather than on having a nice widget.

The exchange rates data API returns all 1000+ currencies in one response, so a single scheduled call can populate an entire rates table. Plans scale from 15,000 calls a month on Starter to 550,000 on Professional, with custom volume available on Enterprise.

Stable response schema

the same structure across live, historical and time series endpoints

JSON and XML

no format shimming for older systems

Bulk historical loads

the time series endpoint backfills date ranges in one request

Usage notifications

alerts at 80%, 90% and 100% of quota, so a pipeline does not fail silently

No daily or hourly throttle

only the monthly plan quota applies, so batch jobs run at whatever pace suits you

IP-to-currency detection is also available, mapping a visitor’s address to their local currency for automatic localisation.

1000+ supported currencies

Coverage spans 166 fiat currencies, 861 cryptocurrencies and 4 precious metals - every ISO 4217 code in active use, the major and long-tail crypto assets, and gold, silver, platinum and palladium.

USD

US Dollar

EUR

Euro

GBP

Pound Sterling

JPY

Japanese Yen

BTCCrypto

Bitcoin

XAUMetal

Gold (Troy Oz)

INR

Indian Rupee

AUD

Australian Dollar

+1,023

more currencies

Query /v2.0/supported-currencies to fetch the full list programmatically, or /v2.0/currency-symbols for symbols and formatting metadata.

Browse all 1000+ supported currencies

Integrate in your language

Working examples for every endpoint in eight languages. Copy, paste your API key, run.

curl "https://api.currencyfreaks.com/v2.0/rates/latest?apikey=YOUR_API_KEY&symbols=EUR,GBP,JPY"
import requests

url = "https://api.currencyfreaks.com/v2.0/rates/latest"
params = {"apikey": "YOUR_API_KEY", "symbols": "EUR,GBP,JPY"}
response = requests.get(url, params=params)
data = response.json()
print(data["rates"])
# {"EUR": "0.862515", "GBP": "0.739372", "JPY": "153.445"}
const url = new URL("https://api.currencyfreaks.com/v2.0/rates/latest");
url.searchParams.set("apikey", "YOUR_API_KEY");
url.searchParams.set("symbols", "EUR,GBP,JPY");

fetch(url)
  .then(res => res.json())
  .then(data => console.log(data.rates));
// {EUR: "0.862515", GBP: "0.739372", JPY: "153.445"}
const https = require("https");

const url = "https://api.currencyfreaks.com/v2.0/rates/latest" +
  "?apikey=YOUR_API_KEY&symbols=EUR,GBP,JPY";

https.get(url, (res) => {
  let body = "";
  res.on("data", chunk => body += chunk);
  res.on("end", () => console.log(JSON.parse(body).rates));
});
<?php
$url = "https://api.currencyfreaks.com/v2.0/rates/latest"
  . "?apikey=YOUR_API_KEY&symbols=EUR,GBP,JPY";
$response = file_get_contents($url);
$data = json_decode($response, true);
print_r($data["rates"]);
// ["EUR" => "0.862515", "GBP" => "0.739372", "JPY" => "153.445"]
require "net/http"
require "json"

uri = URI("https://api.currencyfreaks.com/v2.0/rates/latest"   "?apikey=YOUR_API_KEY&symbols=EUR,GBP,JPY")
response = Net::HTTP.get(uri)
data = JSON.parse(response)
puts data["rates"]
# {"EUR"=>"0.862515", "GBP"=>"0.739372", "JPY"=>"153.445"}
import java.net.URI;
import java.net.http.*;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(
        "https://api.currencyfreaks.com/v2.0/rates/latest" +
        "?apikey=YOUR_API_KEY&symbols=EUR,GBP,JPY"))
    .build();
HttpResponse<String> response =
    client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main

import (
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    url := "https://api.currencyfreaks.com/v2.0/rates/latest" +
        "?apikey=YOUR_API_KEY&symbols=EUR,GBP,JPY"
    resp, _ := http.Get(url)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    var data map[string]interface{}
    json.Unmarshal(body, &data)
    fmt.Println(data["rates"])
}

Building on a specific stack? We have step-by-step guides for Python, JavaScript, Node.js, React, Vue, Django, Ruby on Rails, Go, WordPress, Shopify, Excel and Google Sheets.

Full API reference

Free exchange rate API, with room to grow

The free exchange rate API plan gives you 1,000 calls a month, rates for all 1000+ currencies, SSL on every request and both response formats - with no credit card and no trial expiry. It stays free.

Developer

Free

Calls/month1,000

UpdatesDaily

  • USD base
  • SSL on every request
  • JSON & XML
Get started

Starter

$9.99/mo

Calls/month15,000

UpdatesHourly

  • Historical rates
  • All base currencies
  • Conversion endpoint
Get started
Most popular

Growth

$49.99/mo

Calls/month150,000

Updates10 minutes

  • IP-to-currency
  • Premium support
Get started

Professional

$99.99/mo

Calls/month550,000

Updates60 seconds

  • Time series
  • Fluctuation endpoints
Get started

No daily or hourly rate throttle on any plan - only the monthly quota, with email alerts at 80%, 90% and 100% of usage.

Compare plans in detail

How CurrencyFreaks compares

Most teams evaluating a currency API are choosing between four or five providers with broadly similar core data. Here's where the gap actually shows up:

Typical API

CurrencyFreaks

VS

Fiat only

1000+ currencies, incl. 861 crypto

~10 years back

Back to 1984

Per-second throttling

No limits, monthly quota only

Varies by region

127ms, geolocation-routed

Higher cost per call

550,000 calls for $99.99

Frequently Asked Questions

Is there a free currency converter API?+

Yes. CurrencyFreaks offers a free plan with 1,000 monthly API calls, rates for 1000+ currencies, SSL encryption and JSON/XML output - no credit card required.

What is the best free exchange rate API?+

CurrencyFreaks provides rates for 1000+ currencies on a permanently free plan, with JSON and XML support and no credit card needed. Paid plans add historical data back to 1984, all base currencies and faster refresh intervals.

Does CurrencyFreaks have a free forex API?+

Yes. The free Developer plan includes forex rates for 166 fiat currencies with daily updates, SSL-secured requests and USD as the base currency - no credit card required.

How often are exchange rates updated?+

Refresh frequency depends on your plan: daily on Developer, hourly on Starter, every 10 minutes on Growth, and every 60 seconds on Professional and Enterprise.

What formats does the CurrencyFreaks API support?+

The REST API returns both JSON and XML, making it straightforward to integrate with any language or framework.

How far back does the historical exchange rates API go?+

To 28 November 1984. Pass any date in YYYY-MM-DD format to the historical endpoint, or use the time series endpoint to retrieve a full date range in a single request. Available on all paid plans.

Can I use CurrencyFreaks as a forex or FX API?+

Yes. It covers 166 fiat currencies plus 4 precious metals, with 60-second updates on Professional and Enterprise plans and 127 ms average global latency - suitable for trading dashboards, FX reference rates and automated alerts.

Is there a rate limit on API requests?+

There is no daily or hourly throttle - only your plan's monthly quota. You will get email notifications at 80%, 90% and 100% of usage, and on the free plan one notification when you reach your limit.

Can I change the base currency?+

Yes, on any paid plan - set the base parameter to any of the 1000+ supported currencies. The free Developer plan uses USD as the base.

Get Free API Key
Ready in 30 seconds·No credit card required