curl --request GET \
--url https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid} \
--header 'Authorization: <api-key>'import requests
url = "https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}', 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/{jobUid}",
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://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}"
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://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}")
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{
"beginIndex": 123,
"continuous": true,
"continuousJobInfo": {
"dateUpdated": "2023-11-07T05:31:56Z"
},
"dateCreated": "2023-11-07T05:31:56Z",
"dateDue": "2023-11-07T05:31:56Z",
"endIndex": 123,
"filename": "<string>",
"importStatus": {
"errorMessage": "<string>",
"status": "RUNNING"
},
"imported": true,
"innerId": "<string>",
"isParentJobSplit": true,
"jobReference": {
"filename": "<string>",
"uid": "<string>"
},
"lastWorkflowLevel": 123,
"originalFileDirectory": "<string>",
"project": {
"name": "<string>",
"uid": "<string>"
},
"providers": [
{
"type": "<string>",
"id": "<string>",
"uid": "<string>"
}
],
"serverTaskId": "<string>",
"sourceLang": "<string>",
"status": "NEW",
"targetLang": "<string>",
"uid": "<string>",
"updateSourceDate": "2023-11-07T05:31:56Z",
"updateTargetDate": "2023-11-07T05:31:56Z",
"wordsCount": 123,
"workUnit": {},
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"name": "<string>",
"order": 123,
"workflowLevel": 123
}
}Get job
This API call provides specific information about a job within a project.
The response includes fundamental job details such as the current status, assigned providers, language combination, or workflow step to which the job belongs. Additionally, it offers a subset of the Get project information.
Furthermore, the response contains timestamps for the last Update source and Update target operations executed on the job.
If the job was imported as continuous, the job will be marked as such, and the response will include the timestamp of the last update.
Moreover, the response features a boolean flag indicating if the job was imported successfully. It also highlights potential errors that might have occurred during the import process.
The jobReference field serves as a unique identifier that allows matching corresponding jobs across different
workflow steps.
Import readiness: The importStatus.status field indicates whether file import has completed:
RUNNING— import is in progressERROR— import failed; checkimportStatus.errorMessagefor detailsOK— import succeeded; the job is ready for subsequent operations such as pre-translate
Do not call Pre-translate job until importStatus.status is OK.
Calling it earlier returns 400 JOB_NOT_READY.
curl --request GET \
--url https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid} \
--header 'Authorization: <api-key>'import requests
url = "https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}', 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/{jobUid}",
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://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}"
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://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.memsource.com/web/api2/v1/projects/{projectUid}/jobs/{jobUid}")
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{
"beginIndex": 123,
"continuous": true,
"continuousJobInfo": {
"dateUpdated": "2023-11-07T05:31:56Z"
},
"dateCreated": "2023-11-07T05:31:56Z",
"dateDue": "2023-11-07T05:31:56Z",
"endIndex": 123,
"filename": "<string>",
"importStatus": {
"errorMessage": "<string>",
"status": "RUNNING"
},
"imported": true,
"innerId": "<string>",
"isParentJobSplit": true,
"jobReference": {
"filename": "<string>",
"uid": "<string>"
},
"lastWorkflowLevel": 123,
"originalFileDirectory": "<string>",
"project": {
"name": "<string>",
"uid": "<string>"
},
"providers": [
{
"type": "<string>",
"id": "<string>",
"uid": "<string>"
}
],
"serverTaskId": "<string>",
"sourceLang": "<string>",
"status": "NEW",
"targetLang": "<string>",
"uid": "<string>",
"updateSourceDate": "2023-11-07T05:31:56Z",
"updateTargetDate": "2023-11-07T05:31:56Z",
"wordsCount": 123,
"workUnit": {},
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"name": "<string>",
"order": 123,
"workflowLevel": 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.
Response
OK
Index of the first segment of this part within the original job
When true, this is a continuous job
Show child attributes
Show child attributes
Date and time the job was created
Due date of the job; null if not set
Index of the last segment of this part within the original job
Original filename of the job
Show child attributes
Show child attributes
When true, the file has been imported successfully
InnerId is a sequential number of a job in a project. Jobs created from the same file share the same innerId across workflow steps.
Whether the job originates from a split
Show child attributes
Show child attributes
Highest workflow step level in the project
Directory path of the original source file
Show child attributes
Show child attributes
Providers assigned to the job. This field is empty for callers without linguist visibility and does not reflect actual job assignment - it is not a reliable way to check whether anyone is assigned. To check your own assignment, use GET /api2/v1/users/{userUid}/jobs instead.
Show child attributes
Show child attributes
Identifier of the server-side import task
Source language code
Current status of the job
NEW, ACCEPTED, DECLINED, REJECTED, DELIVERED, EMAILED, COMPLETED, CANCELLED Target language code
Unique identifier used in API paths
Date and time the source was last updated; null if never updated
Date and time the target was last updated; null if never updated
Number of words in the job
Workflow step level of this job (1-based)
Show child attributes
Show child attributes
Was this page helpful?