Global Reference Data API

A fast, reliable REST API for global reference data — countries, currencies, languages, timezones, holidays, regions, and units of measure. Built for AI agents and developers.

🌍 Base URL: https://reference-data-api.refdata.workers.dev — Served from 300+ locations globally via Cloudflare.

Overview

All endpoints are prefixed with /v1/ and require an API key. Responses are JSON.

DomainRecordsEndpoints
countries197/v1/countries
currencies142/v1/currencies
languages183/v1/languages
timezones315/v1/timezones
holidays100+ countries/v1/holidays
regions28/v1/regions
units61/v1/units

Authentication

Pass your API key in the X-API-Key header on every request.

curl https://reference-data-api.refdata.workers.dev/v1/countries/GB   -H "X-API-Key: rdak_your_api_key_here"

Pricing

Free

$0
  • 1,000 calls/month
  • 10 req/min
  • All endpoints

Starter

$9/mo
  • 50,000 calls/month
  • 60 req/min
  • All endpoints

Pro

$49/mo
  • 500,000 calls/month
  • 300 req/min
  • All endpoints

Pay-as-you-go

$0.001/call
  • Unlimited calls
  • 100 req/min
  • All endpoints

Errors

All errors return a JSON object with error and message fields.

HTTP CodeErrorMeaning
400INVALID_REQUESTMissing or invalid parameters
401MISSING_API_KEYNo API key provided
401INVALID_API_KEYAPI key not found or invalid
404NOT_FOUNDResource not found
429RATE_LIMITEDToo many requests per minute
429USAGE_EXCEEDEDMonthly limit reached
500INTERNAL_ERRORServer error

Rate Limits

Rate limit info is returned in response headers on every request.

HeaderDescription
X-RateLimit-LimitMax requests per minute for your plan
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when window resets
X-Usage-This-MonthTotal calls used this month
X-Monthly-LimitYour monthly call limit
X-Usage-RemainingCalls remaining this month

Countries

ISO 3166-1 country data including codes, names, capitals, regions, currencies, languages, timezones, and more.

GET/v1/countries/{code}
Get a single country by ISO 3166-1 alpha-2 or alpha-3 code.
curl /v1/countries/GB -H "X-API-Key: rdak_..."
GET/v1/countries
List all countries with optional filters.
ParameterTypeDescription
regionstringAfrica, Americas, Asia, Europe, Oceania
continentstringFilter by continent
landlockedbooleantrue = landlocked only
un_memberbooleantrue = UN members only
GET/v1/countries/search?q={query}
Search by name, capital, currency, language, timezone, or dial code.
curl "/v1/countries/search?q=london" -H "X-API-Key: rdak_..."
POST/v1/countries/batch
Retrieve up to 50 countries in a single request.
curl -X POST /v1/countries/batch   -H "X-API-Key: rdak_..."   -H "Content-Type: application/json"   -d '{"codes": ["GB", "US", "DE", "FR", "JP"]}'

Currencies

ISO 4217 currency data including symbols, decimal places, separators, and countries using each currency.

GET/v1/currencies/{code}
Get a single currency by ISO 4217 code.
curl /v1/currencies/GBP -H "X-API-Key: rdak_..."
GET/v1/currencies
List all currencies with optional filters.
ParameterTypeDescription
regionstringFilter by region
typestringfiat, crypto, precious_metal
GET/v1/currencies/search?q={query}
Search by name, code, symbol, or country.
POST/v1/currencies/batch
Retrieve up to 50 currencies in a single request.
curl -X POST /v1/currencies/batch   -H "X-API-Key: rdak_..."   -d '{"codes": ["GBP", "USD", "EUR"]}'

Languages

ISO 639-1 language data including English names and native names.

GET/v1/languages/{code}
Get a single language by ISO 639-1 code.
curl /v1/languages/ar -H "X-API-Key: rdak_..."
GET/v1/languages
List all 183 ISO 639-1 languages.
GET/v1/languages/search?q={query}
Search by English name or native name.
curl "/v1/languages/search?q=arabic" -H "X-API-Key: rdak_..."

Timezones

IANA timezone data including UTC offsets, abbreviations, countries, and main cities.

GET/v1/timezones/{name}
Get a single timezone by IANA name.
curl /v1/timezones/Europe/London -H "X-API-Key: rdak_..."
GET/v1/timezones
List all 315 timezones with optional filters.
ParameterTypeDescription
country_codestringFilter by ISO country code e.g. GB
continentstringFilter by continent name
GET/v1/timezones/search?q={query}
Search by city, country, abbreviation, or UTC offset.
curl "/v1/timezones/search?q=riyadh" -H "X-API-Key: rdak_..."

Public Holidays

Public holiday data for 100+ countries, queried by country and year.

GET/v1/holidays/{country_code}
Get all holidays for a country and year.
ParameterTypeDescription
yearintegerYear to retrieve holidays for (default: current year)
typestringFilter by type: public, bank, observance, school
curl "/v1/holidays/GB?year=2025&type=public" -H "X-API-Key: rdak_..."
GET/v1/holidays/{country_code}/check
Check if a specific date is a public holiday.
ParameterTypeDescription
datestringDate in YYYY-MM-DD format
curl "/v1/holidays/GB/check?date=2025-12-25" -H "X-API-Key: rdak_..."

Geographic Regions

Geographic regions and continents with country mappings.

GET/v1/regions/{code}
Get a region by code.
curl /v1/regions/EU -H "X-API-Key: rdak_..."
curl /v1/regions/EU-W -H "X-API-Key: rdak_..."
GET/v1/regions
List all regions with optional filters.
ParameterTypeDescription
typestringcontinent or region
parent_codestringFilter by parent e.g. EU returns all European sub-regions

Units of Measure

Units of measure across 10 categories with conversion factors to base units.

GET/v1/units/{code}
Get a unit by code.
curl /v1/units/km -H "X-API-Key: rdak_..."
GET/v1/units
List all units with optional filters.
ParameterTypeDescription
categorystringlength, mass, temperature, volume, area, speed, digital_storage, energy, pressure, time
systemstringSI, imperial, US, other
base_unitbooleantrue = base units only
GET/v1/units/search?q={query}
Search by name, symbol, or category.
curl "/v1/units/search?q=metre" -H "X-API-Key: rdak_..."
Global Reference Data API — Built on Cloudflare Workers — 300+ global locations