fshy

Home / Data APIs

UniRateAPI public

unirateapi.com · 2 records in Data APIs · JSON

Records 2

UniRateAPI

Data APIs

unirateapi.com/pricingCurrency exchange rate API (fiat and crypto rates, conversion, VAT rates, IBAN validation, holiday calendars, central bank rates)data-apis/unirateapiJSONcomparereport an error

Free allowance
Free tier USD 0 per month: 200 requests per day (6,000 per month) and 30 requests per minute, 170+ fiat currencies and 500+ cryptocurrencies, real-time exchange rates, currency conversion, EU VAT rates, IBAN validation, public holiday and business-day calendars, central bank policy rates and CPI...
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
emailno card, no phone
Binding limit
request-rate200 requests per day (6,000 per month) on the Free tier, reset at 00:00 UTC; 30 requests per minute on the Free tier
Evidence
documented42 sources; a first-party page was read and the sentence quoted
Freshness
stale on 2026-12-03checked 2026-11-02 (live); stale on 2026-12-03
Free tierFree tier USD 0 per month: 200 requests per day (6,000 per month) and 30 requests per minute, 170+ fiat currencies and 500+ cryptocurrencies, real-time exchange rates, currency conversion, EU VAT rates, IBAN validation, public holiday and business-day calendars, central bank policy rates and CPI inflation; no historical data access.
unit requests; metered on request-count; Limits reset at 00:00 UTC; at the limit the API answers HTTP 429 with a reset timestamp and there are no overage charges. Historical rates, time series, precious metals and commodities are on Pro at USD 9 a month with 25,000 requests per day and 1,000 historical requests per day. A keyless widget endpoint on the same host is recorded separately.
Pricenone stated
Limits
  • request-rate (binding) 200 requests per day (6,000 per month) on the Free tier, reset at 00:00 UTC source
  • request-rate (binding) 30 requests per minute on the Free tier source
Plan gating: Free has no historical data access; historical rates, time series, precious metals, commodities, VAT number validation and market calendars are Pro. Bulk path: one rates call for a base returns a map of rates.
Bindingrequest-rate 200 requests a day is met long before 30 per minute could be.
Identityemail The register page offers Sign up with Google or an email, a password and a password confirmation with a how-did-you-hear-about-us field; the pricing page says the Free tier needs no credit card.
Egressnot metered in bytes; the 200 requests a day bound what a free key can pull
Per-object capunverified: no per-response cap is stated on the pages read
Retentionnot applicable: a query API with no stored objects; the Free tier has no historical data access
Interfacerest GET https://api.unirateapi.com/api/{endpoint} (rates, convert, currencies, historical, vat, iban, calendar, macro) with the key in the api_key query parameter; JSON, XML or JSONP, with an OpenAPI document at https://api.unirateapi.com/apispec_1.json.
Toolingany HTTP client; code samples for Python, Node.js, Go, PHP and cURL
Composes with200 requests a day of fiat and crypto rates with VAT, IBAN, holiday and central bank data but no history, so a free stack caches one rates call per refresh; the keyless widget endpoint of the same vendor serves rates at 60 requests a minute per IP, and history needs Pro or another source.
ReliabilityAt the limit the API answers HTTP 429 with a reset timestamp; a call with no key answered HTTP 401 Missing API key.
NotesFree has no historical data; Pro at USD 9 a month adds historical rates since 1999, time series, precious metals and commodities.
Evidence notedocumented The tier, limits and features are read from the first-party pricing, home and forex pages, and a keyless call answered HTTP 401. A free key was not exercised, so the answer at the limit is unverified: behind a sign-up.
Parsed numbers
  • has-free-tier 1
  • request-rate 200 requests / day
  • request-rate 30 requests / minute
Evidence 42
datesourcewhat it proved
2026-11-02unirateapi.com/pricingthe Free tier is USD 0 a month
2026-11-02unirateapi.com/pricingthe Free tier allows 200 requests a day, 6,000 a month
2026-11-02unirateapi.com/pricingthe Free tier covers 170+ fiat currencies
2026-11-02unirateapi.com/pricingthe Free tier covers 500+ cryptocurrencies
2026-11-02unirateapi.com/pricingthe Free tier includes real-time exchange rates
2026-11-02unirateapi.com/pricingthe Free tier includes currency conversion
2026-11-02unirateapi.com/pricingthe Free tier includes EU VAT rates
2026-11-02unirateapi.com/pricingthe Free tier includes IBAN validation
2026-11-02unirateapi.com/pricingthe Free tier includes holiday and business-day calendars for 250 countries
2026-11-02unirateapi.com/pricingthe Free tier includes central bank policy rates and CPI inflation
2026-11-02unirateapi.com/pricingthe Free tier has no historical data access
2026-11-02unirateapi.com/pricingthe next plan up, Pro, is USD 9 a month
2026-11-02unirateapi.com/pricingPro adds historical data access from 1999
2026-11-02unirateapi.com/pricingPro adds time series data
2026-11-02unirateapi.com/pricingPro adds a precious metals API
2026-11-02unirateapi.com/pricingPro adds 19 commodities
2026-11-02unirateapi.com/pricingPro adds VAT number validation
2026-11-02unirateapi.com/pricingPro adds exchange market calendars and FX spot value dates
2026-11-02unirateapi.com/pricingPro allows 25,000 requests a day
2026-11-02unirateapi.com/pricingPro allows 1,000 historical requests a day
2026-11-02unirateapi.com/pricingpast the daily limit the API answers HTTP 429 with the reset time at midnight UTC
2026-11-02unirateapi.com/pricingthe Free tier is available forever with no credit card
2026-11-02unirateapi.com/the Free tier allows 30 requests per minute
2026-11-02unirateapi.com/forex-apiat a limit the API answers 429 with a reset timestamp and there are no overage charges
2026-11-02unirateapi.com/part of the text of Limits, above
2026-11-02unirateapi.com/forex-apiresponses come as JSON, XML or JSONP
2026-11-02unirateapi.com/forex-apicode samples exist for Python, Node.js, Go, PHP and cURL
2026-11-02unirateapi.com/registerthe register page offers Google sign-in
2026-11-02unirateapi.com/registerthe register page has an email form with a password and a confirmation
2026-11-02unirateapi.com/registerthe register form asks for a password confirmation
2026-11-02api.unirateapi.com/apispec_1.jsonthe API publishes an OpenAPI document for currency conversion and exchange rates
2026-11-02api.unirateapi.com/apispec_1.jsonthe document lists a rates endpoint with optional amount conversion
2026-11-02api.unirateapi.com/apispec_1.jsonthe document lists a historical rates endpoint
2026-11-02api.unirateapi.com/apispec_1.jsonthe document lists a convert endpoint
2026-11-02api.unirateapi.com/apispec_1.jsonthe document lists a currencies endpoint
2026-11-02api.unirateapi.com/apispec_1.jsonthe document lists a VAT rates endpoint
2026-11-02api.unirateapi.com/apispec_1.jsonthe document lists an IBAN validation endpoint
2026-11-02api.unirateapi.com/apispec_1.jsonthe document lists a holiday calendar endpoint
2026-11-02api.unirateapi.com/apispec_1.jsonthe document lists an inflation endpoint under macro
2026-11-02api.unirateapi.com/apispec_1.jsonthe endpoints take the key in an api_key parameter
2026-11-02probe: https://api.unirateapi.com/api/rates?from=USDa keyless call to the rates endpoint answers HTTP 401
2026-11-02probe: https://api.unirateapi.com/api/rates?from=USDthe keyless 401 body says the API key is missing

unirateapi.com/widgetsCurrency exchange rate API (keyless endpoint behind the embeddable widgets: rates, currencies, conversion, VAT rates)data-apis/unirateapi-widget-endpointJSONcomparereport an error

Free allowance
Keyless endpoint at api.unirateapi.com/api/widget/v1: 60 requests per minute per IP with no API key, signup or credit card; rates refresh hourly.
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
anonymousno card, no phone
Binding limit
request-rate60 requests per minute per IP, with no authentication; past it the endpoint answers HTTP 429 with Retry-After
Evidence
measured16 sources; a live request was made and its output kept
Freshness
stale on 2027-01-02checked 2026-11-02 (live); stale on 2027-01-02
Free tierKeyless endpoint at api.unirateapi.com/api/widget/v1: 60 requests per minute per IP with no API key, signup or credit card; rates refresh hourly.
unit requests; metered on request-count; The widgets page names this endpoint as the data source of its embeddable widgets. GET /widget/v1/rates?base=USD answered the full rate table for a base, fiat and crypto, as JSON; the widget script also calls /widget/v1/currencies, /widget/v1/convert and /widget/v1/vat/all. The keyed Free tier of the same vendor is recorded separately.
Pricenone stated
Limits
  • request-rate (binding) 60 requests per minute per IP, with no authentication; past it the endpoint answers HTTP 429 with Retry-After source
Current data only: the widget routes cover rates, currencies, conversion and VAT rates, with no history route.
Bindingrequest-rate The only limit stated is 60 requests a minute per IP.
Identityanonymous No key, signup or card: the widgets page says the widget pulls rates from the public endpoint with no key, and a keyless GET answered HTTP 200 with a rates table.
Egressnot metered in bytes; 60 requests a minute per IP bound what an address can pull
Per-object capno cap is stated; one rates answer for the base USD was 21969 bytes of JSON
Retentionnot applicable: a query API with no stored objects; the widget calls serve current rates, currencies, conversions and VAT rates
Interfacerest GET https://api.unirateapi.com/api/widget/v1/rates?base=USD, /widget/v1/currencies, /widget/v1/convert?amount=&from=&to= and /widget/v1/vat/all with no key; JSON answers carrying x-ratelimit-burst-limit, x-ratelimit-burst-remaining and x-ratelimit-burst-reset headers.
Toolingany HTTP client; the embeddable widget script at unirateapi.com/lander/static/js/unirate-widgets.js calls the same routes
Composes withKeyless current fiat and crypto rates for any base at 60 requests a minute per IP, so a free stack can refresh a rate table hourly without a key; history, time series and metals need the keyed Pro tier of the same vendor or another source.
ReliabilityPast the per-minute limit the endpoint answers HTTP 429 with Retry-After 20; it is documented as the data source of the embeddable widgets rather than as a general API, and refreshes hourly.
NotesA keyless public endpoint: current rates, currencies, conversion and VAT rates, 60 requests a minute per IP, hourly refresh.
Evidence notemeasured The keyless HTTP 200 answer, its size, the burst limit of 60 in its headers and the HTTP 429 answer past it are measured; the hourly refresh and the intended use are read from the widgets page.
Parsed numbers
  • has-free-tier 1
  • request-rate 60 requests / minute
Evidence 16
datesourcewhat it proved
2026-11-02unirateapi.com/widgetsthe widget needs no API key, signup or credit card and pulls rates from a public endpoint
2026-11-02unirateapi.com/widgetsthe public endpoint allows 60 requests per minute per IP with no auth
2026-11-02unirateapi.com/widgetsthe data refreshes hourly from central bank and exchange sources
2026-11-02unirateapi.com/lander/static/js/unirate-widgets.jsthe widget script targets the api.unirateapi.com/api host
2026-11-02unirateapi.com/lander/static/js/unirate-widgets.jsthe widget script calls the rates route with a base
2026-11-02unirateapi.com/lander/static/js/unirate-widgets.jsthe widget script calls the currencies route
2026-11-02unirateapi.com/lander/static/js/unirate-widgets.jsthe widget script calls the convert route with an amount and two currencies
2026-11-02unirateapi.com/lander/static/js/unirate-widgets.jsthe widget script calls the VAT route
2026-11-02probe: https://api.unirateapi.com/api/widget/v1/rates?base=USDa keyless GET of the rates route answered HTTP 200
2026-11-02probe: https://api.unirateapi.com/api/widget/v1/rates?base=USDthe answer carries a burst limit header of 60
2026-11-02probe: https://api.unirateapi.com/api/widget/v1/rates?base=USDthe answer was 21969 bytes of JSON
2026-11-02probe: https://api.unirateapi.com/api/widget/v1/rates?base=USDthe keyless answer is a success flag with a base and a rates table
2026-11-02probe: https://api.unirateapi.com/api/widget/v1/currenciespast the burst limit the endpoint answered HTTP 429
2026-11-02probe: https://api.unirateapi.com/api/widget/v1/currenciesthe 429 answer carried a Retry-After of 20 seconds
2026-11-02probe: https://api.unirateapi.com/api/widget/v1/currenciesthe 429 answer reported no burst budget remaining against a limit of 60
2026-11-02probe: https://api.unirateapi.com/api/widget/v1/currenciesthe 429 body says the rate limit was exceeded