search string Case-insensitive substring match against the ISO code or the English name — `krone` keeps DKK and NOK, `franc` keeps every franc, `dkk` matches one code. No match ⇒ empty list + warning.
Every active ISO 4217 currency — code, name, symbol, minor-unit decimals and the countries using it. Search the list or look up one code, with honest 404s.
Authoritative reference data or standards computation
Returns the complete active ISO 4217 set by default (count defaults to all matches). search genuinely filters: a currency is returned only when its code or name contains the term. Zero matches ⇒ empty list plus a warning, never an error.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
search | string | example: krone | Case-insensitive substring match against the ISO code or the English name — `krone` keeps DKK and NOK, `franc` keeps every franc, `dkk` matches one code. No match ⇒ empty list + warning. |
search string Case-insensitive substring match against the ISO code or the English name — `krone` keeps DKK and NOK, `franc` keeps every franc, `dkk` matches one code. No match ⇒ empty list + warning.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: all matches allowed: 1 – 100 example: 3 | Limit the number of returned records (1–100). Defaults to all matches. |
fields | list | example: code,name | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: countries | Return all fields except these (comma-separated). |
format | enum | default: json allowed: json | ndjson | csv example: csv | Response format: json envelope, ndjson (one record per line) or csv. |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
count int Limit the number of returned records (1–100). Defaults to all matches.
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
format enum Response format: json envelope, ndjson (one record per line) or csv.
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
code | string | ISO 4217 alphabetic code — 3 letters, uppercase. | DKK |
name | string | Official ISO 4217 English currency name. | Danish Krone |
symbol nullable | string | Symbol in common written use ($, €, kr, ¥, د.ك …). Null when none is widely used (e.g. XDR). Symbols are not unique — many currencies share '$'. | kr |
decimalDigits | integer | ISO 4217 minor-unit digits: 2 for most currencies, 0 for JPY-style ones, 3 for the dinar family (BHD, IQD, JOD, KWD, LYD, OMR, TND). MGA/MRU are 2 per ISO despite their fifth subdivisions; XDR has no ISO minor unit and is reported as 2 (CLDR convention). | 2 |
countries | string[] | ISO 3166-1 alpha-2 codes of every country/territory where the currency is legal tender, per the ISO 4217 country table. Empty for the supranational XDR. | ["DK","FO","GL"] |
code string ISO 4217 alphabetic code — 3 letters, uppercase.
example: DKK
name string Official ISO 4217 English currency name.
example: Danish Krone
symbol string nullable Symbol in common written use ($, €, kr, ¥, د.ك …). Null when none is widely used (e.g. XDR). Symbols are not unique — many currencies share '$'.
example: kr
decimalDigits integer ISO 4217 minor-unit digits: 2 for most currencies, 0 for JPY-style ones, 3 for the dinar family (BHD, IQD, JOD, KWD, LYD, OMR, TND). MGA/MRU are 2 per ISO despite their fifth subdivisions; XDR has no ISO minor unit and is reported as 2 (CLDR convention).
example: 2
countries string[] ISO 3166-1 alpha-2 codes of every country/territory where the currency is legal tender, per the ISO 4217 country table. Empty for the supranational XDR.
example: ["DK","FO","GL"]
/api/currencies {
"data": [
{
"code": "AED",
"name": "UAE Dirham",
"symbol": "د.إ",
"decimalDigits": 2,
"countries": [
"AE"
]
},
{
"code": "AFN",
"name": "Afghani",
"symbol": "؋",
"decimalDigits": 2,
"countries": [
"AF"
]
},
{
"code": "ALL",
"name": "Lek",
"symbol": "L",
"decimalDigits": 2,
"countries": [
"AL"
]
},
{
"code": "AMD",
"name": "Armenian Dram",
"symbol": "֏",
"decimalDigits": 2,
"countries": [
"AM"
]
},
{
"code": "AOA",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/currencies?search=krone {
"data": [
{
"code": "DKK",
"name": "Danish Krone",
"symbol": "kr",
"decimalDigits": 2,
"countries": [
"DK",
"FO",
"GL"
]
},
{
"code": "NOK",
"name": "Norwegian Krone",
"symbol": "kr",
"decimalDigits": 2,
"countries": [
"NO",
"BV",
"SJ"
]
}
],
"meta": {
"endpoint": "currencies",
"count": 2,
"params": {
"search": "krone"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/currencies?search=franc&fields=code,name,symbol {
"data": [
{
"code": "BIF",
"name": "Burundi Franc",
"symbol": "FBu"
},
{
"code": "CDF",
"name": "Congolese Franc",
"symbol": "FC"
},
{
"code": "CHF",
"name": "Swiss Franc",
"symbol": "CHF"
},
{
"code": "DJF",
"name": "Djibouti Franc",
"symbol": "Fdj"
},
{
"code": "GNF",
"name": "Guinean Franc",
"symbol": "FG"
},
{
"code": "KMF",
"name": "Comorian Franc",
"symbol": "CF"
},
{
"code": "RWF",
"name": "Rwanda Franc",
"symbol": "FRw"
},
{
"code": "XAF",
"name": "CFA Franc BEAC",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/currencies?format=csv code,name,symbol,decimalDigits,countries
AED,UAE Dirham,د.إ,2,"[""AE""]"
AFN,Afghani,؋,2,"[""AF""]"
ALL,Lek,L,2,"[""AL""]"
AMD,Armenian Dram,֏,2,"[""AM""]"
AOA,Kwanza,Kz,2,"[""AO""]"
ARS,Argentine Peso,$,2,"[""AR""]"
AUD,Australian Dollar,$,2,"[""AU"",""CC"",""CX"",""HM"",""KI"",""NF"",""NR"",""TV""]"
AWG,Aruban Florin,ƒ,2,"[""AW""]"
AZN,Azerbaijan Manat,₼,2,"[""AZ""]"
BAM,Convertible Mark,KM,2,"[""BA""]"
BBD,Barbados Dollar,$,2,"[""BB""]"
BDT,Taka,৳,2,"[""BD""]"
BHD,Bahraini Dinar,.د.ب,3,"[""BH""]"
BIF,Burundi Franc,FBu,0,"[""BI""]"
BMD,Bermudian Dollar,$,2,"[""BM""]"
BND,Brunei Dollar,$,2,"[""BN""]"
BOB,Boliviano,Bs,2,"[""BO""]"
BRL,Brazilian Real,R$,2,"[""BR""]"
BSD,Bahamian Dollar,$,2,"[""BS""]"
BTN,Ngultrum,Nu.,2,"[""BT""]"
BWP,Pula,P,2,"[""BW""]"
BYN,Belarusian Ruble,Br,2,"[""BY""]"
BZD,Belize Dollar,$,2,"[""BZ""]"
CAD,Canadian Dollar,$,2,"[""CA""]"
CDF,Congolese Franc,FC,2,"[""CD""]"
CHF,Swiss Franc,CHF,2,"[""CH"",""LI""]"
CLP,Chilean Peso,$,0,"[""CL""]"
CNY,Yuan Renminbi,¥,2,"[""CN""]"
COP,Colombian Peso,$,2,"[""CO""]"
CRC,Costa Rican Colon,₡,2,"[""CR""]"
CUP,Cuban Peso,$,2,"[""CU""]"
CVE,Cabo Verde Escudo,$,2,"[""CV""]"
CZK,Czech Koruna,Kč,2,"[""CZ""]"
DJF,Djibouti Franc,Fdj,0,"[""DJ""]"
DKK,Danish Krone,kr,2,"[""DK"",""FO"",""GL""]"
DOP,Dominican Peso,RD$,2,"[""DO""]"
DZD,Algerian Dinar,د.ج,2,"[""DZ""]"
EGP,Egyptian Pound,E£,2,"[""EG""]"
ERN,Nakfa,Nfk,2,"[""ER""]"
…
ZMW,Zambian Kwacha,K,2,"[""ZM""]"
ZWG,Zimbabwe Gold,ZiG,2,"[""ZW""]"
Case-insensitive (dkk = DKK; the canonical code is echoed in meta.params). Unknown, retired and out-of-scope codes are explicit 404s with an explanation — never a substitute record.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
code
required
| string | allowed: 3 – 3 example: DKK | ISO 4217 alphabetic code — exactly 3 letters, case-insensitive (dkk = DKK). |
code string required ISO 4217 alphabetic code — exactly 3 letters, case-insensitive (dkk = DKK).
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
fields | list | example: code,name | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: countries | Return all fields except these (comma-separated). |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
code | string | ISO 4217 alphabetic code — 3 letters, uppercase. | DKK |
name | string | Official ISO 4217 English currency name. | Danish Krone |
symbol nullable | string | Symbol in common written use ($, €, kr, ¥, د.ك …). Null when none is widely used (e.g. XDR). Symbols are not unique — many currencies share '$'. | kr |
decimalDigits | integer | ISO 4217 minor-unit digits: 2 for most currencies, 0 for JPY-style ones, 3 for the dinar family (BHD, IQD, JOD, KWD, LYD, OMR, TND). MGA/MRU are 2 per ISO despite their fifth subdivisions; XDR has no ISO minor unit and is reported as 2 (CLDR convention). | 2 |
countries | string[] | ISO 3166-1 alpha-2 codes of every country/territory where the currency is legal tender, per the ISO 4217 country table. Empty for the supranational XDR. | ["DK","FO","GL"] |
code string ISO 4217 alphabetic code — 3 letters, uppercase.
example: DKK
name string Official ISO 4217 English currency name.
example: Danish Krone
symbol string nullable Symbol in common written use ($, €, kr, ¥, د.ك …). Null when none is widely used (e.g. XDR). Symbols are not unique — many currencies share '$'.
example: kr
decimalDigits integer ISO 4217 minor-unit digits: 2 for most currencies, 0 for JPY-style ones, 3 for the dinar family (BHD, IQD, JOD, KWD, LYD, OMR, TND). MGA/MRU are 2 per ISO despite their fifth subdivisions; XDR has no ISO minor unit and is reported as 2 (CLDR convention).
example: 2
countries string[] ISO 3166-1 alpha-2 codes of every country/territory where the currency is legal tender, per the ISO 4217 country table. Empty for the supranational XDR.
example: ["DK","FO","GL"]
/api/currencies/lookup?code=DKK {
"data": {
"code": "DKK",
"name": "Danish Krone",
"symbol": "kr",
"decimalDigits": 2,
"countries": [
"DK",
"FO",
"GL"
]
},
"meta": {
"endpoint": "currencies",
"route": "/lookup",
"params": {
"code": "DKK"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/currencies/lookup?code=jpy {
"data": {
"code": "JPY",
"name": "Yen",
"symbol": "¥",
"decimalDigits": 0,
"countries": [
"JP"
]
},
"meta": {
"endpoint": "currencies",
"route": "/lookup",
"params": {
"code": "JPY"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/currencies/lookup?code=BHD&fields=code,name,decimalDigits {
"data": {
"code": "BHD",
"name": "Bahraini Dinar",
"decimalDigits": 3
},
"meta": {
"endpoint": "currencies",
"route": "/lookup",
"params": {
"code": "BHD"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} All 156 active ISO 4217 currencies as curated reference data: the alphabetic code, the official English name, a practical symbol (null where none is in wide use), the ISO minor-unit decimalDigits, and the ISO 3166-1 alpha-2 countries where each currency is legal tender — including multi-country currencies (EUR spans 36 territories, DKK covers Denmark, the Faroe Islands and Greenland) and dual-currency countries (Panama lists both PAB and USD).
The decimals are the detail money code gets wrong: most currencies have 2, but yen-style currencies (JPY, KRW, CLP, ISK, VND, …) have 0 and the dinar family (BHD, IQD, JOD, KWD, LYD, OMR, TND) has 3 — feed decimalDigits straight into your formatter. MGA and MRU keep ISO exponent 2 despite their traditional fifth subdivisions.
Scope: circulating currencies plus the special supranational codes — XDR (the IMF's Special Drawing Right), the CFA francs XAF/XOF, the CFP franc XPF, the East Caribbean Dollar XCD and the Caribbean Guilder XCG. ISO 4217 funds codes (USN, BOV, CLF, …), the precious-metal codes (XAU, XAG, XPD, XPT) and accounting units are deliberately excluded — they are not money you can price things in. The list reflects ISO 4217 as of mid-2026: Bulgaria is under the euro, XCG has replaced ANG, ZWG has replaced ZWL, SLE has replaced SLL.
/api/currencies — the full list; ?search= matches code or name, case-insensitively./api/currencies/lookup?code=… — one currency by code, case-insensitive. Unknown codes return an explicit 404 with a "did you mean" suggestion, and retired or out-of-scope codes (BGN, ANG, XAU, USN, …) get a 404 that explains exactly what happened to them — never a substitute record.Yes — all active ISO 4217 currencies with code, English name, symbol, minor-unit decimals and the countries using each. Retired and fund codes are deliberately excluded.
/api/currencies/lookup?code=EUR returns exactly that currency — and an unknown code answers an honest 404 with a did-you-mean suggestion instead of a wrong record.
Where no symbol is in wide practical use, symbol is null instead of an invented glyph — honest data beats pretty data.
No — this is the reference registry (codes, names, decimals, countries), not a rates feed. decimalDigits tells you 2 for EUR and 0 for JPY when formatting amounts.
Exact ISO 4217 major/minor-unit conversion and weighted allocation using decimal strings and integer arithmetic — no floats, rounding or FX rates.
6,300+ world cities from a pinned GeoNames snapshot: coordinates, IANA timezone, population and capital flag — filter by country, size, name or distance.
Live IANA offsets, DST transitions, local-time ambiguity resolution and exact instant conversion — no guessed wall-clock mappings.
Fake account transactions with realistic merchants, weighted statuses and currency-correct amounts — filter by type, status, amount range and date window.
Deterministic unit conversion across 14 categories — length, mass, pressure, energy, power, force, angle, time and more — with exact standard factors.
How any BCP 47 locale formats numbers, currency, dates and lists — separators, digit grouping, currency position, hour cycle and first day of week.