Skip to content
Open Exchange Rates alternative

Open Exchange Rates alternative: fxapi vs OXR

How fxapi and Open Exchange Rates differ on free plans, base currencies, time series and conversion – and how to move latest.json calls over.

Last updated: · fxapi team

This comparison is for teams running on Open Exchange Rates (OXR) who want to check an Open Exchange Rates alternative, and for anyone choosing between the two for a new project. Open Exchange Rates has a generous 1,000-request free plan, 200+ currencies including alternative and digital currency rates, an Unlimited plan without request caps and a VIP tier with bid-ask, OHLC and 1-second updates. fxapi fits better if you need a non-USD base currency without paying, time series and conversion at a lower plan level, period averages for accounting, or 60-second updates under $35 a month.

fxapi vs Open Exchange Rates at a glance

CriterionfxapiOpen Exchange Rates
Free plan300 requests/month (10/minute), daily updates1,000 requests/month, hourly updates, USD base
Entry paid planBasic: $9.99/month, 15,000 requestsDeveloper: $12/month, 10,000 requests
Update frequencyDaily (Free), hourly (Basic), 60 seconds (Professional, Enterprise)Hourly (Free, Developer), 30 minutes (Enterprise), 5 minutes (Unlimited), every second (VIP, price on request)
Currencies190+ (fiat, legacy, 4 metals, 16 crypto)200+, plus alternative, black market and digital rates via show_alternative
Historical dataDaily, back to 1999-01-01Daily, back to January 1, 1999, all accounts
Time series/v1/range, Professional ($34.99) and up; up to 366 days per calltime-series.json, Enterprise ($47) and Unlimited; one month per query, each day counts as one request
Conversion/v1/convert, Basic and upconvert/, Unlimited plan ($97)
Fluctuation/v1/fluctuation, all plans incl. FreeNot stated
Averages endpoint (IAS 21)/v1/average, all plans incl. FreeNot in endpoint list
Crypto & metals16 crypto, XAU/XAG/XPT/XPDDigital currencies via show_alternative; metals not stated
Base currency switching on free planYes, any codeNo (paid plans only)
MCP server for AI agentsHosted at https://api.fxapi.com/mcpNot stated
SDKsOfficial: JavaScript, Python, PHP, Go, Ruby, C#, RustNot stated

Competitor information checked on October 8, 2026 from openexchangerates.org/signup, the free plan page and the OXR docs for latest.json, historical, time-series.json and convert. Plans change – verify on their site.

Where Open Exchange Rates is strong

  • Bigger free quota. 1,000 requests per month on the free plan is more than fxapi’s 300. If you only need USD-based rates and hourly freshness, OXR’s free plan goes further.
  • Unlimited requests. The Unlimited plan ($97/month) lists no request cap, which simplifies capacity planning for high-traffic apps.
  • Alternative rates. The show_alternative flag adds alternative, black market and digital currency rates – useful for markets where official and street rates diverge.
  • VIP data. For teams that need more than mid-market rates, OXR’s VIP tier lists 1-second updates, bid-ask and midpoint prices, OHLC and intraday history. fxapi does not offer bid/ask or OHLC.
  • Annual discount. All OXR plans come with two months free on annual billing – the same structure fxapi uses.
  • Simple, stable URLs. latest.json, historical/YYYY-MM-DD.json and currencies.json are easy to cache and to call from any language.

Where fxapi is different

Any base currency on every plan

OXR’s free plan is USD-only. On fxapi, base_currency=EUR (or GBP, CHF, BTC, XAU) works on Free, so European or Asian teams don’t have to compute cross rates client-side. More on base currencies and cross rates.

Time series and conversion at lower plan levels

CapabilityfxapiOpen Exchange Rates
Conversion endpointBasic, $9.99Unlimited, $97
Time seriesProfessional, $34.99Enterprise, $47
Days per time-series callUp to 366 (daily accuracy), 1 requestUp to one month, 1 request per day

On fxapi a full year of daily rates for 20 currencies is one request. /v1/range also supports week and month accuracy for long spans and hour, quarter_hour and minute accuracy for recent intraday data, with format=csv output.

Fluctuation and averages included

/v1/fluctuation returns start_rate, end_rate, change and change_pct for any period. /v1/average returns monthly, quarterly, yearly or total averages with min and max – ready for IAS 21 and ASC 830 income-statement translation. Both are on every plan, including Free.

60-second updates for $34.99

fxapi’s Professional plan refreshes every 60 seconds and includes 600,000 requests a month. Compare plans on the pricing page.

MCP for AI agents

The fxapi MCP server lets Claude, Cursor and other MCP clients call the rate endpoints as tools – see AI agents and LLMs.

Migrating from Open Exchange Rates to fxapi

Endpoint mapping

Open Exchange RatesfxapiNotes
latest.json/v1/latestbase → base_currency, symbols → currencies
historical/YYYY-MM-DD.json/v1/historicaldate=YYYY-MM-DD as a query parameter
time-series.json/v1/rangestart/end → datetime_start/datetime_end, accuracy=day
convert/{value}/{from}/{to}/v1/convertvalue, base_currency, currencies as query parameters
currencies.json/v1/currenciesAdds symbols, decimal digits and countries
usage.json/v1/statusFree; does not count against quota
ohlc.json–Not offered by fxapi
–/v1/fluctuation, /v1/averageNo OXR equivalent listed

Response shape

OXR returns base, a UNIX timestamp and a flat rates object (rates.EUR). fxapi returns an ISO 8601 meta.last_updated_at and a data object keyed by currency code, where each entry has code and value (data.EUR.value). If you stored OXR’s timestamp alongside transactions, store last_updated_at instead – it’s already a UTC string.

Before and after

Open Exchange Rates, as documented:

curl "https://openexchangerates.org/api/latest.json?app_id=YOUR_APP_ID&symbols=EUR,GBP"

fxapi:

curl -G "https://api.fxapi.com/v1/latest" \
  -d base_currency=USD \
  -d currencies=EUR,GBP \
  -H "apikey: $FXAPI_KEY"
import os
import requests

resp = requests.get(
    "https://api.fxapi.com/v1/latest",
    params={"base_currency": "USD", "currencies": "EUR,GBP"},
    headers={"apikey": os.environ["FXAPI_KEY"]},
    timeout=10,
)
resp.raise_for_status()
body = resp.json()

# OXR-style {"EUR": ..., "GBP": ...} for existing code
rates = {code: item["value"] for code, item in body["data"].items()}
updated_at = body["meta"]["last_updated_at"]

fxapi signals errors with HTTP status codes – 401 (invalid key), 403 (endpoint not in plan), 422 (validation, with an errors object per parameter) and 429 (limit reached). More in the Python guide.

Verdict

Stay with Open Exchange Rates if a USD base and hourly updates are enough and you value the 1,000-request free plan, if you need unlimited requests on a flat fee, or if you need bid-ask and OHLC data from the VIP tier. Choose fxapi if you need a non-USD base without paying, conversion and time series at lower plan levels, fluctuation and IAS 21 averages included, or 60-second updates at $34.99 a month. The endpoint map above keeps a switch to a small, contained change – try it with a free fxapi key.

fxapi is a foreign exchange rates API by Everapi GmbH (Austria): live and historical rates for 190+ currencies, time series, conversion, fluctuation and period averages.

Frequently asked questions

Can I use a non-USD base currency for free?
With fxapi, yes: base_currency accepts any supported code on the Free plan. Open Exchange Rates’ docs state that changing base is available to paid plans only, so free accounts get USD.
Which API has the larger free plan?
Open Exchange Rates lists 1,000 requests per month on its free plan; fxapi’s free plan has 300. fxapi’s free plan adds any base currency plus the fluctuation and average endpoints.
Does fxapi have an equivalent to OXR's time-series.json?
Yes. /v1/range returns rates between two dates, with up to 366 days per call at daily accuracy and one request per call. It is available from the Professional plan.
Does fxapi offer OHLC or bid/ask prices?
No. fxapi returns mid-market reference rates. Open Exchange Rates lists bid-ask, OHLC and 1-second updates on its VIP tier, priced on request.
How do I authenticate after switching?
Replace the app_id query parameter with an apikey HTTP header. fxapi also accepts apikey as a query parameter, but the header keeps keys out of logs.
Free plan · no credit card

Get your free exchange rate API key

300 requests a month, latest and historical rates, fluctuation and averages – free forever. Upgrade when you need faster updates or more requests.