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 NameData TypeDescription
totalIntegerRepresents 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.
tasksArrayAn 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.
taskIdStringA 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.
totalIntegerIndicates 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.
targetLanguagesArrayAn 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).
languageIdIntegerA 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.
languageCodeStringA 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
progressIntegerShows 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.
languagesArrayAn 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.
languageIdIntegerSimilar 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.
languageCodeStringAs defined under targetLanguages, this is the standardized code for a language, facilitating recognition and processing across different systems and platforms.
progressIntegerReflects 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.