Further reading
Languages
Only the human-readable text of an error depends on language. Send Accept-Language to choose it, read Content-Language on an error to see what you got, and never take decisions from the text.
The API has one language-dependent part: the detail of an error and every errors[].. Everything else, such as field names, codes, enum values and the title of a problem, is stable and in English.
How the language is chosen
Link to this section: How the language is chosenYour Accept-Language header
es-ESanden-USare guaranteed. Any other supported language falls back to English.With a valid key: the preferred language of the key owner
Without the header, the errors of a request made with a key that exists use the preferred language of the person who owns the key. That includes a revoked or expired key, an owner who is inactive or not an administrator, and a 403
insufficient_scope. The exceptions are the errors of a request with no owner to ask, which come in Spanish.Before the owner is known: Spanish
A request with no credential, or with a key that Filmo does not recognise, has no owner: its 401 (
unauthorizedorapi_key_invalid) is in Spanish unless you sendAccept-Language.
The OAuth endpoints are different: their error_description is always in Spanish, whatever you send. Branch on error, never on the text.
An error response names the language it used in the Content-Language header. A successful response carries no such header, because it has no human-readable text to translate.
# A missing order answers 404 (or 403 without orders:read): either way it is an error response.
curl -sS -o /dev/null -D - "${FILMO_BASE_URL:-https://app.filmo.io}/api/v1/orders/does-not-exist" \
-H "Authorization: Bearer $FILMO_API_KEY" \
-H "Accept-Language: en-US" | grep -i "content-language"Do not rely on the language
Link to this section: Do not rely on the language- Always send
Accept-Language. Do not depend on the default, which is a personal setting of the key owner and can change. - Do not rely on the language of a 401 for a missing or unknown key: it is in Spanish unless you ask otherwise. Any client that shows or logs these messages should send
Accept-Languageon every request, authenticated or not. - Do not use
detailorerrors[].for control logic. Usemessage code(anderrors[].for field errors), which are stable.code - Do not translate or compare message text in your code; the wording can improve between releases.
The language of the app
Link to this section: The language of the appThe Filmo app itself is available in Spanish, English, French, German, Catalan and Polish. The language of the app is a personal preference, and it is the one the API uses for you by default. The names of menus differ between languages: where this documentation names one, it gives the Spanish name, such as Ajustes → API y MCP for the API and MCP settings.
The error codes themselves are listed in the errors guide.
Related pages
Link to this section: Related pagesGuides
Errors
Errors are RFC 9457 problem documents. Branch on the stable
code, never on the text, and use the retry table to decide whether to try again.Further reading
Dates and times
Responses give dates in UTC. When you write, send an ISO 8601 instant with an offset. A bare day such as
2026-10-17is read in the business time zone of the account when it is in a filter; a write takes one only in a field that is a plain date.
Was this page helpful?