MultiLocale API reference

Every endpoint of the MultiLocale REST API, generated from the API itself.

All endpoints are relative to https://api.multilocale.com. Create an API key in your MultiLocale dashboard, then authenticate every request with it.

apiKey HTTP Basic auth carrying only the API key secret: Authorization: Basic base64(<key secret>).

accessToken Operator session token issued by the MultiLocale dashboard: Authorization: Token <access token>.

The guides, the CLI and the React SDK are documented on the developer documentation site.

Phrases

GET/api/phrases

List phrases

Lists the phrases of your organization. A phrase is one {key, value, language} triple belonging to one or more projects. Filter with project, key and language. Requires the phrases:read scope. A key scoped to a project only ever sees that project's phrases.

phrases:readapiKeyaccessToken
Parameters
NameInTypeDescription
projectquerystringProject name
keyquerystringPhrase key (URL-encoded)
languagequerystring
fieldsquerystringComma-separated projection of fields to return
Responses
StatusMeaning
200Array of phrases
401Missing or invalid credentials
403API key is missing the phrases:read scope
429API key rate limit exceeded
POST/api/phrases

Create or update phrases

Upserts one phrase or an array of phrases. Emits phrase.created for rows that did not exist and phrase.updated for rows that did — one event per row, not per request. Requires the phrases:write scope.

phrases:writeapiKeyaccessToken
Responses
StatusMeaning
200The upserted phrase, or the array of upserted phrases
401Missing or invalid credentials
403API key is missing the phrases:write scope
429API key rate limit exceeded
DELETE/api/phrases

Delete phrases

Deletes every translation of one key in one project — all languages at once — and emits one phrase.deleted per deleted row. Requires the phrases:write scope.

phrases:writeapiKeyaccessToken
Parameters
NameInTypeDescription
keyrequiredquerystringPhrase key (URL-encoded)
projectrequiredquerystringProject name
Responses
StatusMeaning
200The deleted phrases
401Missing or invalid credentials
403API key is missing the phrases:write scope
404Nothing matched
429API key rate limit exceeded
PUT/api/phrases/{phraseId}

Update a phrase

Replaces a phrase you own and emits phrase.updated. Answers 404 — not 403 — for a phrase belonging to another organization, so ids cannot be probed. Requires the phrases:write scope.

phrases:writeapiKeyaccessToken
Parameters
NameInTypeDescription
phraseIdrequiredpathstring
Responses
StatusMeaning
200The updated phrase
401Missing or invalid credentials
403API key is missing the phrases:write scope
404No such phrase in your organization
429API key rate limit exceeded

Projects

GET/api/projects

List projects

Lists the projects of your organization. Requires the projects:read scope. A key scoped to a project sees only that project.

projects:readapiKeyaccessToken
Responses
StatusMeaning
200Array of projects
401Missing or invalid credentials
403API key is missing the projects:read scope
429API key rate limit exceeded
POST/api/projects

Create a project

Creates a project in your organization and emits project.created. Requires the projects:write scope.

projects:writeapiKeyaccessToken
Responses
StatusMeaning
200The created project
401Missing or invalid credentials
403API key is missing the projects:write scope
429API key rate limit exceeded
GET/api/projects/{projectId}

Get a project by id

Answers 404 — not 403 — for a project belonging to another organization, so ids cannot be probed. Requires the projects:read scope.

projects:readapiKeyaccessToken
Parameters
NameInTypeDescription
projectIdrequiredpathstring
Responses
StatusMeaning
200The project
401Missing or invalid credentials
403API key is missing the projects:read scope
404No such project in your organization
429API key rate limit exceeded
PUT/api/projects/{projectId}

Update a project

Updates a project you own and emits project.updated. Answers 404 — not 403 — for a project belonging to another organization. Requires the projects:write scope.

projects:writeapiKeyaccessToken
Parameters
NameInTypeDescription
projectIdrequiredpathstring
Responses
StatusMeaning
200The updated project
401Missing or invalid credentials
403API key is missing the projects:write scope
404No such project in your organization
429API key rate limit exceeded
GET/api/projects/{projectName}

Get a project by name

Project names are unique per organization, not globally, so the lookup is always scoped to your organization. Requires the projects:read scope.

projects:readapiKeyaccessToken
Parameters
NameInTypeDescription
projectNamerequiredpathstring
Responses
StatusMeaning
200The project
401Missing or invalid credentials
403API key is missing the projects:read scope
404No such project in your organization
429API key rate limit exceeded