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
Customer Reviews

Trusted by teams building with real-time exchange rate data

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

Easy to Set up

Great experience with currency freaks…

Great experience with currency freaks so far, works well and easy to set up

View on Trustpilot
Hamza DerkaouiTrustpilot review
Daily currency operations

All our currency needs solved

We rely on them daily and have had no issues or negative experiences.

View on Trustpilot
HarleyTrustpilot review
FX 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.

Pierre ZappaCustomer review
FileMaker integration

Great service. I built an add-on using the CurrencyFreaks API for the FileMaker platform, and people actively download and use it.

KarstenCustomer review
FX reference rates

Our customers rely on our FX reference rate powered by the CurrencyFreaks API.

Good performance and reasonable pricing.

Mike ChenCustomer review

Your first exchange rate request, in one line

No SDK, no OAuth dance, no sandbox environment. Authenticate with an API key as a URL parameter and you get clean JSON back.

curl 'https://api.currencyfreaks.com/v2.0/rates/latest?apikey=YOUR_API_KEY'
{
  "date": "2026-07-31 00:00:00+00",
  "base": "USD",
  "rates": {
    "EUR": "0.867792",
    "GBP": "0.742859",
    "CAD": "1.4012",
    "JPY": "160.2",
    "BTC": "0.0000154502814578"
    // ... 1026 currencies
  }
}

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.

Real-time exchange rate API

The exchange rates API returns mid-market rates for all 1,026 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 https://api.currencyfreaks.com/v2.0/rates/latest?apikey=YOUR_API_KEY

Update frequency by plan

How often rates refresh depends on your plan, so you can match cost to how time-sensitive your application really is:

  • 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

Every request is SSL encrypted on all plans, including the free tier. Geolocation-based routing keeps average latency at 138 ms worldwide, and responses are available in both JSON and XML so the API drops into existing systems without a translation layer.

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

→ See the full exchange rates API reference

Currency converter API — convert any amount between any two currencies

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 in your own code.

curl 'https://api.currencyfreaks.com/v2.0/convert/latest?apikey=YOUR_API_KEY\
  &from=USD&to=EUR&amount=1000'

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.

Because the same API currency converter works across all 1,026 supported currencies, cryptocurrency conversion works exactly like fiat — convert BTC to Japanese yen with the identical request shape.

Need conversion at a past date rather than today's rate? The historical conversion endpoint accepts a date parameter — see the section below.

→ Try the currency converter·→ Conversion endpoint docs

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.

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

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.

→ Historical currency converter·→ Time series docs

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.

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 138 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 1,026 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.

Built for pipelines

  • 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.

1,026 supported currencies

Coverage spans 166 fiat currencies, 856 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.

USDUS Dollar
EUREuro
GBPPound Sterling
JPYJapanese Yen
AUDAustralian Dollar
CADCanadian Dollar
CHFSwiss Franc
CNYChinese Yuan
HKDHong Kong Dollar
INRIndian Rupee
SGDSingapore Dollar
MXNMexican Peso
KWDKuwaiti Dinar
PKRPakistani Rupee
BTCBitcoin
ETHEthereum
XAUGold (Troy Oz)
XAGSilver (Troy Oz)

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

→ Browse all 1,026 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.867792", "GBP": "0.742859", "JPY": "160.2"}
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.867792", GBP: "0.742859", JPY: "160.2"}
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.867792", "GBP" => "0.742859", "JPY" => "160.2"]
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.867792", "GBP"=>"0.742859", "JPY"=>"160.2"}
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 1,026 currencies, SSL on every request and both response formats — with no credit card and no trial expiry. It stays free.

PlanCalls/monthUpdatesAdds
Developer — free1,000DailyUSD base, SSL, JSON & XML
Starter — $9.9915,000HourlyHistorical rates, all base currencies, conversion
Growth — $49.99150,00010 minutesIP-to-currency, premium support
Professional — $99.99550,00060 secondsTime series, fluctuation endpoints
EnterpriseCustom60 secondsCustom solutions, volume pricing

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. The differences that actually matter in production:

  • Currency coverage1,026 currencies including 856 crypto assets, where many competitors cover fiat only
  • Historical depth — back to 1984, a longer window than most providers offer
  • No throttling — monthly quota only, no per-second or per-hour rate limit to engineer around
  • Latency138 ms globally via geolocation-based routing
  • Price per call — 550,000 calls for $99.99 on Professional

Detailed comparisons

FixerOpen Exchange RatesCurrencylayerXEExchangeRate-APIOANDA

Frequently Asked Questions

Is there a free currency converter API?

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

What is the best free exchange rate API?

CurrencyFreaks provides rates for 1,026 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 138 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 1,026 supported currencies. The free Developer plan uses USD as the base.

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