This page is for developers using UniRate API (unirateapi.com) or comparing it with fxapi as a UniRateAPI alternative. UniRate API, operated by Xola Solutions SRL, combines a generous daily free quota, a $9 Pro plan with 25,000 requests a day, long history and extra datasets such as VAT rates, IBAN validation and market calendars. fxapi is the better fit when you need historical rates and analytics on the free plan, period averages for accounting, clearly documented update intervals with a timestamp on every response, or a hosted MCP server.
fxapi vs UniRate API at a glance
| Criterion | fxapi | UniRate API |
|---|---|---|
| Free plan | 300 requests/month (10/minute), daily updates; latest, historical, fluctuation, averages | 200 requests/day (6,000/month); rates, conversion, currencies; no historical data |
| Entry paid plan | Basic: $9.99/month, 15,000 requests, hourly | Pro: $9/month, 25,000 requests/day plus 1,000 historical requests/day |
| Update frequency | Daily (Free), hourly (Basic), 60 seconds (Professional, Enterprise) | Stated differently across its pages (every 15 minutes on the homepage) |
| Currencies | 190+ (fiat, legacy, 4 metals, 16 crypto) | 170+ fiat and 500+ crypto on its homepage; metals and commodities on Pro |
| Historical data | Daily, back to 1999-01-01, all plans | Forex from 1999, gold and silver from 1968; Pro only |
| Time series | /v1/range, Professional and up: daily, weekly, month-end, intraday for recent periods | /api/historical/timeseries, Pro, up to 5 years per call, 50 requests/hour |
| Fluctuation | /v1/fluctuation, all plans incl. Free | Not documented |
| Period averages (IAS 21) | /v1/average, all plans incl. Free | Not documented |
| Response timestamp | meta.last_updated_at on every response | Not shown in documented examples |
| Authentication | apikey header (or query parameter) | api_key query parameter |
| Formats | JSON; CSV for range, fluctuation and averages | JSON, XML, CSV, TSV, JSONP |
| Other datasets | – | VAT rates and validation, IBAN validation, holiday and market calendars, commodities, central-bank policy rates |
| MCP server | Hosted at https://api.fxapi.com/mcp | Self-hosted package (@unirate/mcp) |
| SDKs | Official: JavaScript, Python, PHP, Go, Ruby, C#, Rust | Official: Python, Node.js, PHP, Ruby, Java, Go, Rust, Swift, .NET |
Competitor information checked on October 9, 2026 from unirateapi.com, its pricing, API specification, forex API, libraries and terms pages and the UniRate MCP repository. Plans change – verify on their site.
Where UniRate API is strong
- Large quotas for little money. 200 requests a day for free, and 25,000 a day plus 1,000 historical requests a day for $9 a month.
- Long series per call. Time series cover up to five years in one request on Pro.
- Many output formats. JSON, XML, CSV, TSV and JSONP.
- More than exchange rates. VAT rates and number validation, IBAN validation, holiday and exchange calendars, commodities and central-bank policy rates under the same key.
- Broad SDK coverage. Official libraries for nine languages, plus embeddable widgets.
- Commercial use on the free tier, according to its terms, with a required attribution link.
Where fxapi is different
History and analytics on the free plan
fxapi’s Free plan includes daily historical rates back to 1999, fluctuation and period averages. UniRate API’s pricing page puts historical data on Pro only.
Averages and fluctuation as endpoints
/v1/average returns monthly, quarterly or yearly averages with min and max – the figures IAS 21 and ASC 830 translation needs – and /v1/fluctuation returns start rate, end rate and percentage change. UniRate API documents neither, so you’d compute both from a time series yourself.
Documented update intervals and a timestamp on every response
Each fxapi plan has a stated refresh interval – daily, hourly or every 60 seconds – and every response carries meta.last_updated_at, so you can store exactly which rate you used. UniRate API’s pages give different update intervals, and its documented examples have no timestamp field.
Time series with week-end and month-end accuracy
/v1/range returns daily, week-end and month-end series, and hourly, 15-minute or minute data for recent periods, as JSON or CSV.
A hosted MCP server and header authentication
The fxapi MCP server runs at https://api.fxapi.com/mcp – nothing to install or operate – and the API key travels in a header rather than the URL.
Migrating from UniRate API to fxapi
Endpoint mapping
| UniRate API | fxapi | Notes |
|---|---|---|
/api/rates?from=USD&to=EUR | /v1/latest | from → base_currency, to → currencies (several allowed) |
/api/historical/rates?date=YYYY-MM-DD&from=USD | /v1/historical | Same date format |
/api/historical/timeseries?start_date=…&end_date=…&base=USD¤cies=EUR | /v1/range | datetime_start, datetime_end, accuracy (Professional and up) |
/api/convert?from=USD&to=EUR&amount=100 | /v1/convert | base_currency, currencies, value (Basic and up) |
/api/currencies | /v1/currencies | Adds symbols, decimal digits and countries |
| VAT, IBAN, calendar, commodity endpoints | – | No fxapi equivalent |
| – | /v1/fluctuation, /v1/average, /v1/status | No UniRate API equivalent documented |
Response shape
UniRate API returns amount, base and rates (plus results when you pass an amount). fxapi returns meta.last_updated_at and a data object keyed by currency code, where each entry has code and value; conversions go through /v1/convert, where value is the converted amount. For errors, fxapi uses HTTP status codes – 401 invalid key, 403 endpoint outside your plan, 422 with an errors object per invalid parameter, 429 quota used up.
Before and after
UniRate API:
curl "https://api.unirateapi.com/api/rates?api_key=YOUR_KEY&from=USD&to=EUR"
fxapi:
curl -G "https://api.fxapi.com/v1/latest" \
-d base_currency=USD -d currencies=EUR \
-H "apikey: $FXAPI_KEY"
const res = await fetch("https://api.fxapi.com/v1/latest?base_currency=USD¤cies=EUR,GBP", {
headers: { apikey: process.env.FXAPI_KEY },
});
if (!res.ok) throw new Error(`fxapi ${res.status}`);
const { meta, data } = await res.json();
// UniRate-style { base, rates } plus the timestamp you now get for free
const rates = Object.fromEntries(Object.entries(data).map(([code, r]) => [code, r.value]));
console.log({ base: "USD", rates, updatedAt: meta.last_updated_at });
See the JavaScript guide for TypeScript types and caching.
Verdict
Choose UniRate API if you need large daily quotas at a very low price, many output formats or VAT, IBAN and calendar data under one key, and historical data is fine on the paid plan. Choose fxapi if you want historical rates, fluctuation and IAS 21 averages on the free plan, clearly documented update intervals with a timestamp on every response, or a hosted MCP server – start on the free plan and compare with your own pairs.
fxapi is a foreign exchange rate API by Everapi GmbH (Austria): live and historical rates for 190+ currencies, time series, conversion, fluctuation and period averages.
Frequently asked questions
Does UniRate API include historical data on the free plan?
Which free plan has more requests?
How often does UniRate API update its rates?
meta.last_updated_at with every response.Does fxapi offer VAT, IBAN or holiday calendar endpoints like UniRate API?
Is there an MCP server for each?
https://api.fxapi.com/mcp, so you only add the URL and your key.