curl --request POST \
--url https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"jobs": [
{
"uid": "3HYnHHLkTPJfMxBCDbPXFe"
}
]
}
'import requests
url = "https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount"
payload = { "jobs": [{ "uid": "3HYnHHLkTPJfMxBCDbPXFe" }] }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({jobs: [{uid: '3HYnHHLkTPJfMxBCDbPXFe'}]})
};
fetch('https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount', 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://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jobs' => [
[
'uid' => '3HYnHHLkTPJfMxBCDbPXFe'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount"
payload := strings.NewReader("{\n \"jobs\": [\n {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"jobs\": [\n {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"jobs\": [\n {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"segmentsCountsResults": [
{
"counts": {
"addedSegments": 123,
"addedWords": 123,
"allConfirmed": true,
"charsCount": 123,
"completedCharsCount": 123,
"completedSegmentsCount": 123,
"completedWordsCount": 123,
"confirmedCharsCount": 123,
"confirmedLockedCharsCount": 123,
"confirmedLockedWordsCount": 123,
"confirmedWordsCount": 123,
"lockedCharsCount": 123,
"lockedSegmentsCount": 123,
"lockedWordsCount": 123,
"machineTranslationPostEditedSegmentsCount": 123,
"machineTranslationRelevantSegmentsCount": 123,
"nonEmptySegmentGroupsCount": 123,
"qualityAssurance": {
"ignoredWarningsCount": 123,
"segmentsCount": 123,
"warningsCount": 123
},
"qualityAssuranceResolved": true,
"segmentGroupsCount": 123,
"segmentsCount": 123,
"translatedLockedSegmentsCount": 123,
"translatedSegmentsCount": 123,
"wordsCount": 123
},
"jobPartUid": "<string>",
"previousWorkflow": {
"completed": true,
"counts": {
"addedSegments": 123,
"addedWords": 123,
"allConfirmed": true,
"charsCount": 123,
"completedCharsCount": 123,
"completedSegmentsCount": 123,
"completedWordsCount": 123,
"confirmedCharsCount": 123,
"confirmedLockedCharsCount": 123,
"confirmedLockedWordsCount": 123,
"confirmedWordsCount": 123,
"lockedCharsCount": 123,
"lockedSegmentsCount": 123,
"lockedWordsCount": 123,
"machineTranslationPostEditedSegmentsCount": 123,
"machineTranslationRelevantSegmentsCount": 123,
"nonEmptySegmentGroupsCount": 123,
"qualityAssurance": {
"ignoredWarningsCount": 123,
"segmentsCount": 123,
"warningsCount": 123
},
"qualityAssuranceResolved": true,
"segmentGroupsCount": 123,
"segmentsCount": 123,
"translatedLockedSegmentsCount": 123,
"translatedSegmentsCount": 123,
"wordsCount": 123
}
}
}
]
}Get segments count
This API provides the current count of segments (progress data).
Every time this API is called, it returns the most up-to-date information. Consequently, these numbers will change dynamically over time. The data retrieved from this API call is utilized to calculate the progress percentage in the UI.
The call returns the following information:
Counts of characters, words, and segments for each of the locked, confirmed, and completed categories. In this context,
completed is defined as confirmed + locked - confirmed and locked; a segment that has target content from
pre-translation but has not yet been confirmed by a linguist is not counted as confirmed, completed, or
translated — see the next paragraph.
translatedSegmentsCount counts segments confirmed at this workflow step, not segments that merely have target text.
A job can be fully pre-translated and still report translatedSegmentsCount: 0 and completedSegmentsCount: 0 if
none of its segments have been confirmed yet — this is expected behavior, not a sign that pre-translation produced
no content. To check whether pre-translation actually produced content, use machineTranslationRelevantSegmentsCount
below.
The number of added words if the Update source operation has been performed on the job. In this context, added words are defined as the original word count plus the sum of words added during all subsequent update source operations.
machineTranslationRelevantSegmentsCount counts segments that have both a non-empty target and stored machine
translation (MT) output — this is the field to check to confirm that pre-translation produced content, independent
of whether that content has since been confirmed. machineTranslationPostEditedSegmentsCount counts segments where
the MT output was post-edited; it stays 0 for a segment whose target still equals the stored MT output.
A breakdown of Quality assurance results, including the number of segments on which it was performed, the count of warnings found, and the number of warnings that were ignored.
Additionally, a breakdown of the aforementioned information from the previous Workflow step is also provided.
curl --request POST \
--url https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"jobs": [
{
"uid": "3HYnHHLkTPJfMxBCDbPXFe"
}
]
}
'import requests
url = "https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount"
payload = { "jobs": [{ "uid": "3HYnHHLkTPJfMxBCDbPXFe" }] }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({jobs: [{uid: '3HYnHHLkTPJfMxBCDbPXFe'}]})
};
fetch('https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount', 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://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jobs' => [
[
'uid' => '3HYnHHLkTPJfMxBCDbPXFe'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount"
payload := strings.NewReader("{\n \"jobs\": [\n {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"jobs\": [\n {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/segmentsCount")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"jobs\": [\n {\n \"uid\": \"3HYnHHLkTPJfMxBCDbPXFe\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"segmentsCountsResults": [
{
"counts": {
"addedSegments": 123,
"addedWords": 123,
"allConfirmed": true,
"charsCount": 123,
"completedCharsCount": 123,
"completedSegmentsCount": 123,
"completedWordsCount": 123,
"confirmedCharsCount": 123,
"confirmedLockedCharsCount": 123,
"confirmedLockedWordsCount": 123,
"confirmedWordsCount": 123,
"lockedCharsCount": 123,
"lockedSegmentsCount": 123,
"lockedWordsCount": 123,
"machineTranslationPostEditedSegmentsCount": 123,
"machineTranslationRelevantSegmentsCount": 123,
"nonEmptySegmentGroupsCount": 123,
"qualityAssurance": {
"ignoredWarningsCount": 123,
"segmentsCount": 123,
"warningsCount": 123
},
"qualityAssuranceResolved": true,
"segmentGroupsCount": 123,
"segmentsCount": 123,
"translatedLockedSegmentsCount": 123,
"translatedSegmentsCount": 123,
"wordsCount": 123
},
"jobPartUid": "<string>",
"previousWorkflow": {
"completed": true,
"counts": {
"addedSegments": 123,
"addedWords": 123,
"allConfirmed": true,
"charsCount": 123,
"completedCharsCount": 123,
"completedSegmentsCount": 123,
"completedWordsCount": 123,
"confirmedCharsCount": 123,
"confirmedLockedCharsCount": 123,
"confirmedLockedWordsCount": 123,
"confirmedWordsCount": 123,
"lockedCharsCount": 123,
"lockedSegmentsCount": 123,
"lockedWordsCount": 123,
"machineTranslationPostEditedSegmentsCount": 123,
"machineTranslationRelevantSegmentsCount": 123,
"nonEmptySegmentGroupsCount": 123,
"qualityAssurance": {
"ignoredWarningsCount": 123,
"segmentsCount": 123,
"warningsCount": 123
},
"qualityAssuranceResolved": true,
"segmentGroupsCount": 123,
"segmentsCount": 123,
"translatedLockedSegmentsCount": 123,
"translatedSegmentsCount": 123,
"wordsCount": 123
}
}
}
]
}Authorizations
Get a token from auth/login endpoint and then pass it in the Authorization HTTP header in every subsequent API call. For more information visit our help center.
Path Parameters
Project UID
Body
Job parts to compute segment counts for
1 - 100 elementsShow child attributes
Show child attributes
Response
OK
Per-job-part segment count results
Show child attributes
Show child attributes
Was this page helpful?