{"openapi":"3.1.0","info":{"title":"AXITAM Public API","description":"Reference data (ISO, CLDR), Belgian enterprises, annual accounts and addresses, Peppol participants - built on community-maintained and official sources. See the data-sources API for each source's version and license. Beta.","version":"0.10.0"},"servers":[{"url":"/","description":"This server"}],"tags":[{"name":"Country languages","description":"Languages spoken in each country, with their official status and share of the population (source: Unicode CLDR)."},{"name":"Languages","description":"ISO 639-3 languages (source: iso-codes), with their ISO 639-1 (alpha2) and ISO 639-2/B (bibliographic) codes when they have them."},{"name":"Language families","description":"ISO 639-5 language families and groups (source: iso-codes). iso-codes does not link individual languages to their family."}],"paths":{"/api/v1/languages":{"get":{"tags":["Languages"],"summary":"List languages","description":"Ordered by alpha-3 code. The full list holds ~8,000 languages (~600 KB): use hasAlpha2=true for the ~180 widely used languages that have an ISO 639-1 code. Filters combine.","operationId":"findAll","parameters":[{"name":"hasAlpha2","in":"query","description":"true: only languages with an ISO 639-1 code; false: only those without","required":false,"schema":{"type":"boolean"}},{"name":"scope","in":"query","description":"Keep only this scope","required":false,"schema":{"type":"string","enum":["individual","macrolanguage","special"],"pattern":"^(individual|macrolanguage|special)$"}},{"name":"type","in":"query","description":"Keep only this type","required":false,"schema":{"type":"string","enum":["living","extinct","ancient","historical","constructed","special"],"pattern":"^(living|extinct|ancient|historical|constructed|special)$"}},{"name":"lang","in":"query","description":"Language of the returned names: a language code optionally followed by a region, script or gettext modifier (fr, fr-BE, pt-BR, zh-Hant, sr@latin). Falls back to the bare language (fr-BE -> fr), then to English, field by field. Omitted: English.","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2,3}([-_][A-Za-z0-9]{2,8})?(@[A-Za-z]{1,20})?$"},"example":"fr"}],"responses":{"200":{"description":"The matching languages","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LanguageResponse"}}}}},"400":{"description":"Invalid filter or lang (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}},"/api/v1/languages/{code}":{"get":{"tags":["Languages"],"summary":"Read one language","description":"By ISO 639-1 (fr), ISO 639-3 (fra) or ISO 639-2/B (fre) code, case-insensitive.","operationId":"findByCode","parameters":[{"name":"code","in":"path","description":"ISO 639-1, 639-3 or 639-2/B code","required":true,"schema":{"type":"string","pattern":"^[A-Za-z]{2,3}$"},"example":"fr"},{"name":"lang","in":"query","description":"Language of the returned names: a language code optionally followed by a region, script or gettext modifier (fr, fr-BE, pt-BR, zh-Hant, sr@latin). Falls back to the bare language (fr-BE -> fr), then to English, field by field. Omitted: English.","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2,3}([-_][A-Za-z0-9]{2,8})?(@[A-Za-z]{1,20})?$"},"example":"fr"}],"responses":{"200":{"description":"Language found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LanguageResponse"}}}},"400":{"description":"Invalid code or lang (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No language has this code (code LANGUAGE_NOT_FOUND)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}},"/api/v1/languages/{code}/countries":{"get":{"tags":["Country languages"],"summary":"List the countries where a language is spoken","description":"Ordered by alpha-2 code. official=true keeps only countries where the language has an official status.","operationId":"findCountriesOfLanguage","parameters":[{"name":"code","in":"path","description":"ISO 639-1, 639-3 or 639-2/B code","required":true,"schema":{"type":"string","pattern":"^[A-Za-z]{2,3}$"},"example":"fr"},{"name":"official","in":"query","description":"true: only countries where the language has an official status","required":false,"schema":{"type":"boolean","default":false}},{"name":"lang","in":"query","description":"Language of the returned names: a language code optionally followed by a region, script or gettext modifier (fr, fr-BE, pt-BR, zh-Hant, sr@latin). Falls back to the bare language (fr-BE -> fr), then to English, field by field. Omitted: English.","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2,3}([-_][A-Za-z0-9]{2,8})?(@[A-Za-z]{1,20})?$"},"example":"fr"}],"responses":{"200":{"description":"The countries, possibly none","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CountryOfLanguageResponse"}}}}},"400":{"description":"Invalid code, official or lang (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No language has this code (code LANGUAGE_NOT_FOUND)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}},"/api/v1/language-families":{"get":{"tags":["Language families"],"summary":"List every language family","description":"Ordered by code.","operationId":"findAll_1","parameters":[{"name":"lang","in":"query","description":"Language of the returned names: a language code optionally followed by a region, script or gettext modifier (fr, fr-BE, pt-BR, zh-Hant, sr@latin). Falls back to the bare language (fr-BE -> fr), then to English, field by field. Omitted: English.","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2,3}([-_][A-Za-z0-9]{2,8})?(@[A-Za-z]{1,20})?$"},"example":"fr"}],"responses":{"200":{"description":"Every language family","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LanguageFamilyResponse"}}}}},"400":{"description":"Invalid lang (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}},"/api/v1/language-families/{code}":{"get":{"tags":["Language families"],"summary":"Read one language family","description":"By ISO 639-5 code, case-insensitive.","operationId":"findByCode_1","parameters":[{"name":"code","in":"path","description":"ISO 639-5 code","required":true,"schema":{"type":"string","pattern":"^[A-Za-z]{3}$"},"example":"afa"},{"name":"lang","in":"query","description":"Language of the returned names: a language code optionally followed by a region, script or gettext modifier (fr, fr-BE, pt-BR, zh-Hant, sr@latin). Falls back to the bare language (fr-BE -> fr), then to English, field by field. Omitted: English.","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2,3}([-_][A-Za-z0-9]{2,8})?(@[A-Za-z]{1,20})?$"},"example":"fr"}],"responses":{"200":{"description":"Language family found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LanguageFamilyResponse"}}}},"400":{"description":"Invalid code or lang (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No language family has this code (code LANGUAGE_FAMILY_NOT_FOUND)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}}},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"correlationId":{"type":"string"}}},"LanguageResponse":{"type":"object","description":"An ISO 639-3 language, with its ISO 639-1 and ISO 639-2/B codes when it has them","properties":{"alpha3":{"type":"string","description":"ISO 639-3 code","example":"fra"},"alpha2":{"type":["string","null"],"description":"ISO 639-1 code; absent for most languages","example":"fr"},"bibliographic":{"type":["string","null"],"description":"ISO 639-2/B (bibliographic) code, only when it differs from alpha3","example":"fre"},"name":{"type":"string","description":"Name, localized when a translation exists","example":"français"},"invertedName":{"type":["string","null"],"description":"Name in inverted form (e.g. \"Albanian, Arbëreshë\"); absent when none"},"commonName":{"type":["string","null"],"description":"Commonly used name; absent when none"},"scope":{"type":"string","description":"Language scope","enum":["individual","macrolanguage","special"],"example":"individual"},"type":{"type":"string","description":"Language type","enum":["living","extinct","ancient","historical","constructed","special"],"example":"living"}}},"CountryOfLanguageResponse":{"type":"object","description":"A country where the requested language is spoken (source: Unicode CLDR)","properties":{"alpha2":{"type":"string","description":"ISO 3166-1 alpha-2 code","example":"BE"},"alpha3":{"type":"string","description":"ISO 3166-1 alpha-3 code","example":"BEL"},"name":{"type":"string","description":"Name, localized when a translation exists","example":"Belgium"},"script":{"type":["string","null"],"description":"ISO 15924 script the figures refer to, when CLDR qualifies the language with one","example":"Latn"},"officialStatus":{"type":["string","null"],"description":"Official status of the language in the country; absent when it has none","enum":["official","official_regional","de_facto_official"],"example":"official"},"populationPercent":{"type":"number","description":"Share of the country's population speaking the language, in percent","example":38}}},"LanguageFamilyResponse":{"type":"object","description":"An ISO 639-5 language family or group","properties":{"alpha3":{"type":"string","description":"ISO 639-5 code","example":"afa"},"name":{"type":"string","description":"Name, localized when a translation exists","example":"Afro-Asiatic languages"}}}},"securitySchemes":{"apiKey":{"type":"apiKey","description":"Optional. A key of a registered developer (portal: /account/) raises the request rate of the client from the anonymous per-IP limit to the plan's. Without it the request is anonymous; an unknown or revoked key is refused (401 INVALID_API_KEY).","name":"X-API-Key","in":"header"}}}}