curl "https://api.phrase.com/v2/projects/:project_id/checks/issues" \
-u USERNAME_OR_ACCESS_TOKENphrase check_issues list \
--project_id <project_id> \
--access_token <token>import requests
url = "https://api.phrase.com/v2/projects/{project_id}/checks/issues"
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}/checks/issues', 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}/checks/issues",
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}/checks/issues"
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}/checks/issues")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phrase.com/v2/projects/{project_id}/checks/issues")
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",
"check_name": "translation_placeholder_usage",
"state": "active",
"description": "The translation contains invalid placeholders. (missing: %{count})",
"dismissed_at": null,
"solved_at": null,
"created_at": "2015-01-28T09:52:53Z",
"updated_at": "2015-01-28T09:52:53Z",
"translation": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"content": "My translation",
"unverified": false,
"excluded": false,
"plural_suffix": "",
"key": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "home.index.headline",
"plural": false,
"use_ordinal_rules": false
},
"locale": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "de",
"code": "de-DE"
},
"placeholders": [
"%{count}"
],
"state": "translated",
"created_at": "2015-01-28T09:52:53Z",
"updated_at": "2015-01-28T09:52:53Z"
}
}
]List check issues
Note: The Checks API is still in development and might change in subsequent releases.
List check issues for the given project. Results can be filtered by locale, check name, and state.
curl "https://api.phrase.com/v2/projects/:project_id/checks/issues" \
-u USERNAME_OR_ACCESS_TOKENphrase check_issues list \
--project_id <project_id> \
--access_token <token>import requests
url = "https://api.phrase.com/v2/projects/{project_id}/checks/issues"
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}/checks/issues', 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}/checks/issues",
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}/checks/issues"
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}/checks/issues")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phrase.com/v2/projects/{project_id}/checks/issues")
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",
"check_name": "translation_placeholder_usage",
"state": "active",
"description": "The translation contains invalid placeholders. (missing: %{count})",
"dismissed_at": null,
"solved_at": null,
"created_at": "2015-01-28T09:52:53Z",
"updated_at": "2015-01-28T09:52:53Z",
"translation": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"content": "My translation",
"unverified": false,
"excluded": false,
"plural_suffix": "",
"key": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "home.index.headline",
"plural": false,
"use_ordinal_rules": false
},
"locale": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "de",
"code": "de-DE"
},
"placeholders": [
"%{count}"
],
"state": "translated",
"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
Filter by state of the check issue. Can be one of: active, solved, dismissed, all. Defaults to active.
active, solved, dismissed, all Filter by one or more locale IDs.
["abcd1234cdef1234abcd1234cdef1234"]
Filter by one or more check names. Valid values are:
translation_content_length— the translation exceeds the maximum character limit configured for the key.translation_placeholder_usage— the translation is missing placeholders present in the source, or contains unexpected ones.translation_glossary_usage— the translation does not follow the glossary term translations.
translation_content_length, translation_placeholder_usage, translation_glossary_usage ["translation_placeholder_usage"]
Response
OK
Identifier of the check that reported this issue. One of: translation_content_length, translation_placeholder_usage, translation_glossary_usage.
translation_content_length, translation_placeholder_usage, translation_glossary_usage Current state of the check issue. One of: active, solved, dismissed.
active, solved, dismissed Human-readable description of the reported issue, always in English. This message is intended for display only. Its wording may change at any time and it should not be parsed or relied upon programmatically.
Show child attributes
Show child attributes
{
"id": "abcd1234cdef1234abcd1234cdef1234",
"content": "My translation",
"unverified": false,
"excluded": false,
"plural_suffix": "",
"key": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "home.index.headline",
"plural": false,
"use_ordinal_rules": false
},
"locale": {
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "de",
"code": "de-DE"
},
"placeholders": ["%{count}"],
"state": "translated",
"created_at": "2015-01-28T09:52:53Z",
"updated_at": "2015-01-28T09:52:53Z"
}
Was this page helpful?