Languages
The Domain Chief API returns texts meant for people, such as error messages, domain notices, and TLD requirements, in English or Dutch. Send the language of the customer who will read them, and you can show those texts without translating them yourself.
Codes, enum values, and field names never change with the language. Keep using them for every decision your application makes.
Request a language
Add an Accept-Language header to any request:
Code
The texts in the response are now in Dutch, while every other value stays the same:
Code
Supported languages
| Language | Value |
|---|---|
| English | en |
| Dutch | nl |
The header follows the standard format, so you can pass the value your customer's browser sends. A regional variant such as nl-BE selects Dutch, and the API respects the order and q weights of a list such as fr-FR,nl;q=0.8,en;q=0.5. When none of the requested languages are available, or you omit the header, the API answers in English.
Check which language was used
Every response includes a Content-Language header with the language of its texts:
Code
Read this header when you store or cache a response, instead of assuming the request was matched.
What is translated
These texts follow Accept-Language:
- Error responses: the
messageof errors such as404 Not Foundand409 Conflict, and bothmessageanderrorsof a422 Unprocessable Contentresponse. - Domain notices: the
messageof each notice on a domain. The domain notices guide explains how to present them. - TLD texts:
requirements[].description,transfer_description, andwhois_privacy_descriptionon a TLD. - Activity failure causes:
properties.cause.messageon failed domain operations in the activity log. - DNS: the
messageof a DNS import blocker, and thedisplay_nameof a DNS snapshot that was saved automatically. - Automated actions: the causer
nameof activity and DNS snapshots, which readsSystemin English.
In the API reference, translated response fields say "Translated with Accept-Language." in their description.
What stays the same
Some values never change with the language:
- Codes, enum values, field names, and the keys of the
errorsobject. - Values that you or your customers supplied, such as contact details, metadata, and the names of manually saved DNS snapshots.
- Names that are part of a description, such as registry agreement titles.
- Text that comes directly from a registry, such as
registry_messageon an activity andregistry_restriction_detailon a notice. - The
descriptionof an activity, which is written when the activity happens. - Errors about authentication, missing scopes, and rate limits.
The Domain Chief MCP server always answers in English. AI clients translate its output for the user themselves.
Build with translated texts
Decide on codes, show the texts
A translated text can change wording at any time and differs per language. Decide what to do based on the codes and enum values next to it, such as a notice code, a requirement type, or the field name in errors. Show the text to explain the situation to your customer.
Validation messages name the field by its API field name, with spaces instead of underscores, for example Het veld address postal code is verplicht. Use the keys of errors to place each message next to the right input in your own form.
Cache per language
Translated texts differ per language, so include the language in every cache key that stores a response with texts. The TLD catalog is the most common example: keep one cached copy per language you serve, or cache the prices and codes once and fetch the descriptions in the customer's language when you show them.
Store codes, not texts
When you save a notice or error for later, save its code as well. A stored text keeps the language and wording of the moment you saved it, so fetch the resource again for current text or show your own copy for that code.
Serve other languages
For a language the API does not support, request English and show your own translations based on the codes. Notice codes, requirement types, and transfer authorization values are stable for this purpose. Show the English text for any code you do not have a translation for yet.