search string Case-insensitive substring match across English names, alternate names, alpha-2, terminology alpha-3 and bibliographic alpha-3 codes.
All 183 active ISO 639 two-letter language codes with matching terminology and bibliographic three-letter codes, searchable with exact lookups.
Authoritative reference data or standards computation
Returns all 183 active alpha-2-backed records by default. Search matches names and codes; the bibliographic-code filter can be combined with it.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
search | string | example: norwegian | Case-insensitive substring match across English names, alternate names, alpha-2, terminology alpha-3 and bibliographic alpha-3 codes. |
hasBibliographicCode | boolean | example: true | When supplied, keep only languages that do (true) or do not (false) have a distinct ISO 639-2/B code. |
search string Case-insensitive substring match across English names, alternate names, alpha-2, terminology alpha-3 and bibliographic alpha-3 codes.
hasBibliographicCode boolean When supplied, keep only languages that do (true) or do not (false) have a distinct ISO 639-2/B code.
| 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: name,alternateNames | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: bibliographicAlpha3 | 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 |
|---|---|---|---|
name | string | First official English reference name in the Library of Congress code list. | German |
alternateNames | string[] | Additional official English reference names from the same registry row; empty when none are listed. | ["Scottish Gaelic"] |
alpha2 | string | Active ISO 639 Set 1 two-letter identifier (formerly ISO 639-1). | de |
alpha3 | string | ISO 639 Set 2 terminology identifier (formerly ISO 639-2/T). | deu |
bibliographicAlpha3 nullable | string | Different legacy bibliographic identifier (ISO 639-2/B), or null when the B and T identifiers are the same. | ger |
name string First official English reference name in the Library of Congress code list.
example: German
alternateNames string[] Additional official English reference names from the same registry row; empty when none are listed.
example: ["Scottish Gaelic"]
alpha2 string Active ISO 639 Set 1 two-letter identifier (formerly ISO 639-1).
example: de
alpha3 string ISO 639 Set 2 terminology identifier (formerly ISO 639-2/T).
example: deu
bibliographicAlpha3 string nullable Different legacy bibliographic identifier (ISO 639-2/B), or null when the B and T identifiers are the same.
example: ger
/api/languages {
"data": [
{
"name": "Afar",
"alternateNames": [],
"alpha2": "aa",
"alpha3": "aar",
"bibliographicAlpha3": null
},
{
"name": "Abkhazian",
"alternateNames": [],
"alpha2": "ab",
"alpha3": "abk",
"bibliographicAlpha3": null
},
{
"name": "Avestan",
"alternateNames": [],
"alpha2": "ae",
"alpha3": "ave",
"bibliographicAlpha3": null
},
{
"name": "Afrikaans",
"alternateNames": [],
"alpha2": "af",
"alpha3": "afr",
"bibliographicAlpha3": null
},
{
"name": "Akan",
"alternateNames": [],
"alpha2": "ak",
"alpha3": "aka",
"bibliographicAlpha3": null
},
{
"name": "Amharic",
"alternateNames": [],
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/languages?search=norwegian {
"data": [
{
"name": "Norwegian Bokmål",
"alternateNames": [],
"alpha2": "nb",
"alpha3": "nob",
"bibliographicAlpha3": null
},
{
"name": "Norwegian Nynorsk",
"alternateNames": [],
"alpha2": "nn",
"alpha3": "nno",
"bibliographicAlpha3": null
},
{
"name": "Norwegian",
"alternateNames": [],
"alpha2": "no",
"alpha3": "nor",
"bibliographicAlpha3": null
}
],
"meta": {
"endpoint": "languages",
"count": 3,
"params": {
"search": "norwegian"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/languages?search=baq {
"data": [
{
"name": "Basque",
"alternateNames": [],
"alpha2": "eu",
"alpha3": "eus",
"bibliographicAlpha3": "baq"
}
],
"meta": {
"endpoint": "languages",
"count": 1,
"params": {
"search": "baq"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/languages?hasBibliographicCode=true {
"data": [
{
"name": "Tibetan",
"alternateNames": [],
"alpha2": "bo",
"alpha3": "bod",
"bibliographicAlpha3": "tib"
},
{
"name": "Czech",
"alternateNames": [],
"alpha2": "cs",
"alpha3": "ces",
"bibliographicAlpha3": "cze"
},
{
"name": "Welsh",
"alternateNames": [],
"alpha2": "cy",
"alpha3": "cym",
"bibliographicAlpha3": "wel"
},
{
"name": "German",
"alternateNames": [],
"alpha2": "de",
"alpha3": "deu",
"bibliographicAlpha3": "ger"
},
{
"name": "Modern Greek (1453-)",
"alternateNames": [],
"alpha2": "el",
"alpha3": "ell",
"bibliographicAlpha3": "gre"
},
{
"name": "Basque",
"alternateNames": [],
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} Accepts active alpha-2, terminology alpha-3 and bibliographic alpha-3 codes case-insensitively. Deprecated and out-of-scope codes are explicit 404s.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
code
required
| string | allowed: 2 – 3 example: deu | A 2- or 3-letter ISO 639 code: alpha-2, terminology alpha-3, or bibliographic alpha-3. |
code string required A 2- or 3-letter ISO 639 code: alpha-2, terminology alpha-3, or bibliographic alpha-3.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
fields | list | example: name,alternateNames | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: bibliographicAlpha3 | 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 |
|---|---|---|---|
name | string | First official English reference name in the Library of Congress code list. | German |
alternateNames | string[] | Additional official English reference names from the same registry row; empty when none are listed. | ["Scottish Gaelic"] |
alpha2 | string | Active ISO 639 Set 1 two-letter identifier (formerly ISO 639-1). | de |
alpha3 | string | ISO 639 Set 2 terminology identifier (formerly ISO 639-2/T). | deu |
bibliographicAlpha3 nullable | string | Different legacy bibliographic identifier (ISO 639-2/B), or null when the B and T identifiers are the same. | ger |
name string First official English reference name in the Library of Congress code list.
example: German
alternateNames string[] Additional official English reference names from the same registry row; empty when none are listed.
example: ["Scottish Gaelic"]
alpha2 string Active ISO 639 Set 1 two-letter identifier (formerly ISO 639-1).
example: de
alpha3 string ISO 639 Set 2 terminology identifier (formerly ISO 639-2/T).
example: deu
bibliographicAlpha3 string nullable Different legacy bibliographic identifier (ISO 639-2/B), or null when the B and T identifiers are the same.
example: ger
/api/languages/lookup?code=da {
"data": {
"name": "Danish",
"alternateNames": [],
"alpha2": "da",
"alpha3": "dan",
"bibliographicAlpha3": null
},
"meta": {
"endpoint": "languages",
"route": "/lookup",
"params": {
"code": "da"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/languages/lookup?code=deu {
"data": {
"name": "German",
"alternateNames": [],
"alpha2": "de",
"alpha3": "deu",
"bibliographicAlpha3": "ger"
},
"meta": {
"endpoint": "languages",
"route": "/lookup",
"params": {
"code": "deu"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/languages/lookup?code=ger {
"data": {
"name": "German",
"alternateNames": [],
"alpha2": "de",
"alpha3": "deu",
"bibliographicAlpha3": "ger"
},
"meta": {
"endpoint": "languages",
"route": "/lookup",
"params": {
"code": "ger"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} A compact reference for the 183 currently assigned ISO 639 Set 1 two-letter identifiers (traditionally called ISO 639-1), paired with their ISO 639 Set 2 terminology identifiers (ISO 639-2/T). For the 20 languages whose historic bibliographic code differs, bibliographicAlpha3 preserves the ISO 639-2/B synonym — for example German is de / deu with bibliographic ger.
The list route is alpha-2 sorted. search matches the English reference name, alternate English names and every code; hasBibliographicCode can isolate the 20 B/T split cases. Filters combine, and no match returns an empty list plus a warning. The lookup route accepts an alpha-2, terminology alpha-3 or bibliographic alpha-3 code case-insensitively and never substitutes a neighboring language.
Scope: this is deliberately the active two-letter-backed subset, not the complete ISO 639 Set 2 or Set 3 catalog. Languages that only have a three-letter identifier are outside scope. The former bh identifier is absent because it was deprecated in 2021; use bih in a full Set 2/3 registry when Bihari languages must be represented. Names are the registry's English reference names — endonyms, scripts, regions, speaker counts and locale tags are not invented or inferred.
The endpoint contains all 183 currently assigned two-letter Set 1 identifiers and their corresponding Set 2 terminology codes. Three-letter-only Set 2/3 languages are deliberately outside this endpoint's scope.
Yes. The lookup accepts de, terminology code deu, or bibliographic code ger; all three return the German record with the distinction preserved in separate fields.
The ISO 639-1 identifier bh was deprecated in 2021. This endpoint serves active two-letter identifiers only and explains the deprecation rather than silently returning another language.
No. Its authoritative source provides English reference names and ISO identifiers; endonyms, scripts, regions and BCP 47 locale combinations are intentionally not inferred.
Select real cardinal or ordinal plural categories for a BCP 47 locale with runtime ECMA-402/CLDR rules and explicit locale validation.
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.
The official ICAO/NATO phonetic alphabet — all 36 characters with code words and pronunciations, plus a /spell route that spells out any text.
Canonicalize BCP 47 language tags and run RFC 4647 lookup or basic filtering with bounded, deterministic matching.
Inspect UTF-16 and Unicode scalar values, apply the four standard normalization forms, and segment text into graphemes, words or sentences.