curl "https://api.phrase.com/v2/projects/:project_id/locales?branch=my-feature-branch" \
-u USERNAME_OR_ACCESS_TOKENphrase locales list \
--project_id <project_id> \
--branch my-feature-branch \
--access_token <token>import requests
url = "https://api.phrase.com/v2/projects/{project_id}/locales"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.phrase.com/v2/projects/{project_id}/locales', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.phrase.com/v2/projects/{project_id}/locales",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.phrase.com/v2/projects/{project_id}/locales"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.phrase.com/v2/projects/{project_id}/locales")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phrase.com/v2/projects/{project_id}/locales")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "de",
"code": "de-DE",
"default": true,
"main": false,
"rtl": false,
"plural_forms": [
"zero",
"one",
"other"
],
"ordinal_plural_forms": [
"zero",
"other"
],
"source_locale": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "en",
"code": "en-GB"
},
"fallback_locale": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "en",
"code": "en-GB"
},
"language_ai_profile": "abcd1234abcd1234abcd1234abcd1234",
"unverify_new_translations": false,
"unverify_updated_translations": false,
"unverify_on_source_changes": false,
"created_at": "2015-01-28T09:52:53Z",
"updated_at": "2015-01-28T09:52:53Z"
}
]List locales
List all locales for the given project.
curl "https://api.phrase.com/v2/projects/:project_id/locales?branch=my-feature-branch" \
-u USERNAME_OR_ACCESS_TOKENphrase locales list \
--project_id <project_id> \
--branch my-feature-branch \
--access_token <token>import requests
url = "https://api.phrase.com/v2/projects/{project_id}/locales"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.phrase.com/v2/projects/{project_id}/locales', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.phrase.com/v2/projects/{project_id}/locales",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.phrase.com/v2/projects/{project_id}/locales"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.phrase.com/v2/projects/{project_id}/locales")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phrase.com/v2/projects/{project_id}/locales")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "de",
"code": "de-DE",
"default": true,
"main": false,
"rtl": false,
"plural_forms": [
"zero",
"one",
"other"
],
"ordinal_plural_forms": [
"zero",
"other"
],
"source_locale": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "en",
"code": "en-GB"
},
"fallback_locale": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "en",
"code": "en-GB"
},
"language_ai_profile": "abcd1234abcd1234abcd1234abcd1234",
"unverify_new_translations": false,
"unverify_updated_translations": false,
"unverify_on_source_changes": false,
"created_at": "2015-01-28T09:52:53Z",
"updated_at": "2015-01-28T09:52:53Z"
}
]Authorizations
Enter your token in the format token TOKEN
Headers
Two-Factor-Authentication token (optional)
Path Parameters
Project ID
Query Parameters
Page number
Limit on the number of objects to be returned, between 1 and 100. 25 by default
Sort locales. Valid options are "name_asc", "name_desc", "default_asc", "default_desc".
specify the branch to use
Specify a query to filter locales. Currently supports name argument, filtering only locales with names starting with the given string.
Response
OK
Show child attributes
Show child attributes
{
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "English",
"code": "en-GB"
}
Show child attributes
Show child attributes
{
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "English",
"code": "en-GB"
}
Indicates that new translations for this locale are marked as unverified. Only applies to locales using the basic verification workflow. Part of the Advanced Workflows feature.
Indicates that updated translations for this locale are marked as unverified. Only applies to locales using the basic verification workflow. Part of the Advanced Workflows feature.
Indicates that translations for this locale are marked as unverified when the source language has been changed.
Was this page helpful?