Tracking Translation Progress
This guide will walk you through how to utilize the TextUnited API to keep track of translation milestones within your projects.
Translation progress tracking is the process of monitoring the status of translations as they move through various stages of the translation workflow. This can include tracking the number of words translated, the status of each segment, and the overall progress of the project.
Why Track Translation Progress?
Tracking translation progress provides several advantages:
- Visibility: Gain visibility into the translation pipeline, ensuring that all segments are being worked on and completed in a timely manner.
- Management: Efficiently manage resources and timelines, reallocating translators or adjusting deadlines as needed.
- Quality Assurance: Monitor the progress of quality checks and revisions, ensuring that the final output meets your standards.
Prerequisites
Before proceeding with tracking translation progress, ensure you have:
- API Credentials: If you're using Basic Authentication, get your Company ID and API Key. For Bearer JWT Authentication, you'll need your JWT Access Token. Refer to our guides on Obtaining Your API Key and Company ID and Obtaining JWT Token for details.
- Understanding of API Basics: Familiarity with RESTful APIs, HTTP methods (GET), and JSON format.
Note
You have two primary methods to track the translation progress of your projects in TextUnited: by using either the Project ID or the Custom ID of the project. Both approaches provide a clear overview of the project's translation status, allowing you to manage your projects well.
Step-by-Step Guide for Tracking Translation Progress by Project ID
Objective
To retrieve translation progress for a project identified by its Project ID.
Step 1: Fetch the List of Projects
To obtain the Project ID of your project, you first need to make a call to the "Get Projects" endpoint. This will return a list of all your projects. You can use a cURL command like the following to make this request:
GET /segments/projects
Note
Include your API credentials in the request headers for authentication. Here's an example using curl:
curl --request GET \ --url https://api.textunited.com/segments/projects \ --header 'Authorization: Bearer <your_api_token>' \ --header 'Content-Type: application/json' \ --header 'accept: application/json'
Replace "<your_api_token>" with your actual JWT Access token that can be obtained from calling the Obtain JWT endpoint. This command will return a JSON response containing details of all your projects.
Example Response:
[
{
"id": <auto_generated_project_identifier>,
"customId": "<your_custom_id>",
"taskId": "<your_task_id>",
"name": "<your_project_name>",
"description": "<description_of_your_project>",
"creationDateUtc": <creation_date>,
"startDateUtc": "<start_date_in_UTC>",
"endDateUtc": "<end_date_in_UTC>",
"sourceLanguageId": <your_source_language_id>,
"sourceLanguageCode": "<your_source_language_code>",
"targetLanguages": [
{
"id": <translation_project_id>,
"targetLanguageId": <your_target_language_id>,
"targetLanguageCode": "<your_target_language_code>",
"managedProject": <true_or_false>,
"serviceTranslation": <true_or_false>,
"serviceProofreading": <true_or_false>,
"serviceAutomaticTranslation": <true_or_false>,
"progress": <progress_status>,
"flag": <flag>,
"state": "<status_of_project>",
"team": [
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
],
"domain": <domain>,
"segments": [
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>"
},
{
"id": <auto_generated_project_identifier>,
"customId": "<your_custom_id>",
"taskId": "<your_task_id>",
"name": "<your_project_name>",
"description": "<description_of_your_project>",
"creationDateUtc": <creation_date>,
"startDateUtc": "<start_date_in_UTC>",
"endDateUtc": "<end_date_in_UTC>",
"sourceLanguageId": <your_source_language_id>,
"sourceLanguageCode": "<your_source_language_code>",
"targetLanguages": [
{
"id": <translation_project_id>,
"targetLanguageId": <your_target_language_id>,
"targetLanguageCode": "<your_target_language_code>",
"managedProject": <true_or_false>,
"serviceTranslation": <true_or_false>,
"serviceProofreading": <true_or_false>,
"serviceAutomaticTranslation": <true_or_false>,
"progress": <progress_status>,
"flag": <flag>,
"state": "<status_of_project>",
"team": [
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
],
"domain": <domain>,
"segments": [
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>"
},
{
"id": <auto_generated_project_identifier>,
"customId": "<your_custom_id>",
"taskId": "<your_task_id>",
"name": "<your_project_name>",
"description": "<description_of_your_project>",
"creationDateUtc": <creation_date>,
"startDateUtc": "<start_date_in_UTC>",
"endDateUtc": "<end_date_in_UTC>",
"sourceLanguageId": <your_source_language_id>,
"sourceLanguageCode": "<your_source_language_code>",
"targetLanguages": [
{
"id": <translation_project_id>,
"targetLanguageId": <your_target_language_id>,
"targetLanguageCode": "<your_target_language_code>",
"managedProject": <true_or_false>,
"serviceTranslation": <true_or_false>,
"serviceProofreading": <true_or_false>,
"serviceAutomaticTranslation": <true_or_false>,
"progress": <progress_status>,
"flag": <flag>,
"state": "<status_of_project>",
"team": [
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
],
"domain": <domain>,
"segments": [
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>"
}
]
Step 2: Extract the Project ID
Within the JSON response from the "Get Projects" endpoint, you'll find a list of projects. Each project object in this list will have an "id"
field. Locate the project for which you wish to track translation progress and copy the value of the "id"
field. This is your Project ID for the project.
Step 3: Formulate the API Request for Translation Progress
With your project's Project ID in hand, you're now ready to construct the GET request to track the translation progress. The base URL for this request is https://api.textunited.com.
Append /segments/projects/{id}/progress
to this base URL, replacing {id}
with the Project ID of your project. For example, if your project ID is <your_project_id>
, your URL will look like this:
GET /segments/projects/{<your_project_id>}/progress
Replace the placeholder {<your_project_id>}
with your actual project ID.
If you wish to filter the progress by a specific task within the project, you can append a ?taskId=your_task_id
to the end of the URL. Replace your_task_id
with the actual ID of the task you're interested in. For example, your curl request will look like this:
GET /segments/projects/{<your_project_id>}/progress?taskId=your_task_id
Step 4: Execute the Request
Now, send the GET request to the URL you've constructed using curl
. Here's how you can do it:
curl --request GET \
--url https://api.textunited.com/segments/projects/{<your_project_id>}/progress \
--header 'Authorization: Bearer <your_api_token>' \
--header 'Content-Type: application/json' \
--header 'accept: application/json'
Include your API credentials in the request headers for authentication. Replace "<your_api_token>" with your actual JWT Access token that can be obtained from calling the Obtain JWT endpoint.
Try your Request
You can call the endpoint to retrieve segments associated with the Project ID directly on our documentation platform. Refer to our API Reference for the Get Progress by Project ID endpoint.
Step 5: Analyze the Response
Upon a successful request, you'll receive a JSON response from the server. This response contains detailed information about the translation progress of your project. You can analyze this JSON response to extract the relevant information and display it as needed in your application.
Example Response:
{
"total": <overall_progress_percentage_of_your_entire_project>,
"tasks": [
{
"taskId": "<task_identifier>",
"total": <overall_progress_percentage_of_a_specific_task>,
"targetLanguages": [
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
},
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
}
]
},
{
"taskId": "<task_identifier>",
"total": <overall_progress_percentage_of_a_specific_task>,
"targetLanguages": [
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
},
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
}
]
}
],
"languages": [
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
},
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
}
]
}
Step-by-Step Guide for Tracking Translation Progress by Custom ID
Objective
To retrieve translation progress for a project identified by its Custom ID.
Step 1: Retrieve the Custom ID
Before you can track the translation progress, you need to know the Custom ID of the project you're interested in. To obtain the Custom ID of your project, you first need to make a call to the "Get Projects" endpoint. This will return a list of all your projects. Use the following curl
command to make this request:
GET /segments/projects
Note
Include your API credentials in the request headers for authentication. Here's an example using curl:
curl --request GET \ --url https://api.textunited.com/segments/projects \ --header 'Authorization: Bearer <your_api_token>' \ --header 'Content-Type: application/json' \ --header 'accept: application/json'
Replace "<your_api_token>" with your actual JWT Access token that can be obtained from calling the Obtain JWT endpoint.
Example Response:
[
{
"id": <auto_generated_project_identifier>,
"customId": "<your_custom_id>",
"taskId": "<your_task_id>",
"name": "<your_project_name>",
"description": "<description_of_your_project>",
"creationDateUtc": <creation_date>,
"startDateUtc": "<start_date_in_UTC>",
"endDateUtc": "<end_date_in_UTC>",
"sourceLanguageId": <your_source_language_id>,
"sourceLanguageCode": "<your_source_language_code>",
"targetLanguages": [
{
"id": <translation_project_id>,
"targetLanguageId": <your_target_language_id>,
"targetLanguageCode": "<your_target_language_code>",
"managedProject": <true_or_false>,
"serviceTranslation": <true_or_false>,
"serviceProofreading": <true_or_false>,
"serviceAutomaticTranslation": <true_or_false>,
"progress": <progress_status>,
"flag": <flag>,
"state": "<status_of_project>",
"team": [
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
],
"domain": <domain>,
"segments": [
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>"
},
{
"id": <auto_generated_project_identifier>,
"customId": "<your_custom_id>",
"taskId": "<your_task_id>",
"name": "<your_project_name>",
"description": "<description_of_your_project>",
"creationDateUtc": <creation_date>,
"startDateUtc": "<start_date_in_UTC>",
"endDateUtc": "<end_date_in_UTC>",
"sourceLanguageId": <your_source_language_id>,
"sourceLanguageCode": "<your_source_language_code>",
"targetLanguages": [
{
"id": <translation_project_id>,
"targetLanguageId": <your_target_language_id>,
"targetLanguageCode": "<your_target_language_code>",
"managedProject": <true_or_false>,
"serviceTranslation": <true_or_false>,
"serviceProofreading": <true_or_false>,
"serviceAutomaticTranslation": <true_or_false>,
"progress": <progress_status>,
"flag": <flag>,
"state": "<status_of_project>",
"team": [
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
],
"domain": <domain>,
"segments": [
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>"
},
{
"id": <auto_generated_project_identifier>,
"customId": "<your_custom_id>",
"taskId": "<your_task_id>",
"name": "<your_project_name>",
"description": "<description_of_your_project>",
"creationDateUtc": <creation_date>,
"startDateUtc": "<start_date_in_UTC>",
"endDateUtc": "<end_date_in_UTC>",
"sourceLanguageId": <your_source_language_id>,
"sourceLanguageCode": "<your_source_language_code>",
"targetLanguages": [
{
"id": <translation_project_id>,
"targetLanguageId": <your_target_language_id>,
"targetLanguageCode": "<your_target_language_code>",
"managedProject": <true_or_false>,
"serviceTranslation": <true_or_false>,
"serviceProofreading": <true_or_false>,
"serviceAutomaticTranslation": <true_or_false>,
"progress": <progress_status>,
"flag": <flag>,
"state": "<status_of_project>",
"team": [
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
{
"id": <user_id>,
"name": "<first_and_last_name>",
"username": "<your_email_address>",
"phone": "<user phone number>",
"isProjectManager": <true_or_false>,
"isTranslator": <true_or_false>,
"isProofreader": <true_or_false>,
"isInCountryReviewer": <true_or_false>,
"translationRate": <translation_rate>,
"translationProductivity": <translation_productivity>,
"proofreadedBy": <proofreader>,
"proofreadingRate": <proofreading_rate>,
"proofreadingProductivity": <proofreading_productivity>
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>",
"additionalInfo": "<additional_information>"
},
],
"domain": <domain>,
"segments": [
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
},
{
"id": <your_segment_id>,
"customId": "<your_segment_custom_Id>",
"content": "<content_of_your_segment>",
"notes": "<notes_for_your_segment>",
"taskId": "<identifier_for_the_task>",
"languageSpecificNotes": [
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
},
{
"languageId": <your_language_id>,
"languageCode": "<your_language_code>",
"note": "<note_for_specific_language>"
}
]
}
],
"referenceNumber": "<your_reference_number>",
"customField1": "<custom_project_information>",
"customField2": "<custom_project_information>"
}
]
Step 2: Extract the Custom ID
Within the JSON response from the "Get Projects" endpoint, you'll find a list of projects. Each project object in this list will have a customId
field. Locate the project for which you wish to track translation progress and copy the value of the customId
field.
Step 3: Formulate the API Request for Translation Progress
With your project's Custom ID, construct the GET request to track the translation progress. The base URL for this request is https://api.textunited.com. Append /segments/projects/custom/{customId}/progress
to this base URL, replacing {customId}
with the Custom ID of your project.
GET /segments/projects/custom/{customId}/progress
If you wish to filter the progress by a specific task within the project, append a ?taskId=your_task_id
to the end of the URL. Replace your_task_id
with the actual ID of the task you're interested in. For example, your curl request will look like this:
GET /segments/projects/custom/{customId}/progress?taskId=your_task_id
Step 4: Execute the Request Using Curl
Now, send the GET request to the URL you've constructed using curl. Here's how you can do it:
curl --request GET \
--url https://api.textunited.com/segments/projects/custom/{customId}/progress \
--header 'Authorization: Bearer <your_api_token>' \
--header 'Content-Type: application/json' \
--header 'accept: application/json'
Include your API credentials in the request headers for authentication. Replace "<your_api_token>" with your actual JWT Access token that can be obtained from calling the Obtain JWT endpoint. Replace {customId}
with your actual Custom ID.
Try your Request
You can call the endpoint to retrieve segments associated with the Project ID directly on our documentation platform. Refer to our API Reference for the Get Progress by Custom ID endpoint.
Step 5: Analyze the Response
Upon a successful request, you'll receive a JSON response from the server. This response contains detailed information about the translation progress of your project. You can analyze this JSON response to extract the relevant information and display it as needed in your application.
{
"total": <overall_progress_percentage_of_your_entire_project>,
"tasks": [
{
"taskId": "<task_identifier>",
"total": <overall_progress_percentage_of_a_specific_task>,
"targetLanguages": [
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
},
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
}
]
},
{
"taskId": "<task_identifier>",
"total": <overall_progress_percentage_of_a_specific_task>,
"targetLanguages": [
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
},
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
}
]
}
],
"languages": [
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
},
{
"languageId": <language_identifier>,
"languageCode": "<language_code>",
"progress": <progress_percentage>
}
]
}
Comprehensive Response Fields for Translation Progress
Below is a detailed table outlining the comprehensive list of fields that you can expect as a response when retrieving translation progress with TextUnited's API. This table aims to explain each field, ensuring you have a clear understanding of their role and the expected input.
Field Name | Data Type | Description |
---|---|---|
total | Integer | Represents the overall progress percentage of the entire project, calculated across all languages and tasks. This value indicates the completion rate of the project's translation work. |
tasks | Array | An array containing objects that detail individual tasks within the project. Each task represents a subset of the project's translation work that may focus on a specific aspect or segment of the content. |
taskId | String | A unique string identifier assigned to each task within the project. This ID is used to reference specific tasks when querying or updating task-related information. |
total | Integer | Indicates the overall progress percentage of a specific task, calculated across all languages involved in that task. This value reflects how much of the task's translation work has been completed. |
targetLanguages | Array | An array listing the languages targeted for translation within a specific task. Each entry in this array is an object that specifies a language's internal system identifier (languageId ) and its language code (languageCode ). |
languageId | Integer | A numeric identifier used internally by the system to represent a specific language. This ID is consistent across the platform and is used to reference languages in various operations. |
languageCode | String | A standardized code representing a specific language, such as "EN-US" for American English or "DE-AT" for Austrian German. These codes are widely recognized and used across localization and internationalization effort |
progress | Integer | Shows the progress percentage of translating the content of a specific language within the scope of a task. This value indicates how much of the translation work for that language has been completed relative to the total amount of text to be translated. |
languages | Array | An array containing objects that represent the languages included in the project. Each language object provides details on a specific language's progress across all tasks in the project. |
languageId | Integer | Similar to languageId under targetLanguages , this represents the internal system identifier for a language. It is used to reference languages in various contexts within the API. |
languageCode | String | As defined under targetLanguages , this is the standardized code for a language, facilitating recognition and processing across different systems and platforms. |
progress | Integer | Reflects the overall progress percentage of translating the content of a specific language across all tasks in the project. This value indicates the completion rate of the translation work for that language throughout the entire project. |
Updated about 2 months ago