Skip to main content

API - Get translation status

The Beebox proposes automatic, semi-automatic or manual ways in getting files translated. During test and development you will likely want to activate automated "psudeo translation" or "machine translation" workflows, With these workflows source files get immediately translated. With other tests or production you may enable human workflows where it may take hours or days until your source files get translated. From the developer point of view, the actual workflow running behind the curtains remains entirely transparent.

To know when files are translated and ready for download, you need to check the translation status. Either poll the Beebox in regular intervals or check the status upon a user's request.


With a simple filter value, use GET:

(GET) /api/workprogress/translatedfiles?token={token}&filter=&skip=&count=


With a large filter value, please use POST:

(POST) /api/workprogress/translatedfiles

Include parameters as JSON in the request body, e.g. {“token”:…, “filter”:{}}. Make sure to add http header “Content-Type” to “application/json”. Use this version if your filter contains a lot of conditions and the resulting URL would be too large.


Parameters are:


The session token obtained when connecting.


An optional JSON string. If omitted this the method enumerates all translated files in all target languages.


Find status for a specific target language

{ "targetLocale": "es" }

If you do not specify the language the result will return one record per project target language and per file.


Find status for all files matching a regular expression:

{ "patterns": { "fpath": "\\.docx?" } }

Note: "\" must be escaped in JSON using "\\".

{ "patterns": { "fpath": "(\\.docx?)|(^marketing\\\\)" } }
Note: Use | and parenthesis to match any of multiple patterns.


Find status for a list of specific files:

{ "filePaths": [ 
   { "Item1": "", "Item2": "myfile.docx" },
   { "Item1": "", "Item2": "subfolder\\myfile2.html" } 

This retrieves the status of two files (“Item2”) by their name. “Item1” must be set to an empty string, always.


More filters

You can combine the different filter properties into a single JSON. There are many more filter options and these are described in the online documentation.



Optional number, default is 0. Used for pagination. The files to skip.


Optional number, default is 100. Used for pagination and indicates the total number of files to return from this call. Make sure to specify a limit corresponding to your page size (e.g. 100).



Tip 1 - Performance

For performance reasons, try to filter for the files you are actually interested in. It may be inefficient to get the status for 10.000 files when you only have a single one to look for.

Tip 2 - Pagination

Keep in mind that this method returns a maximum of "count" results (100 by default). If you have a lot of files to enumerate either increase the "count" value or paginate the results by calling the method multiple times (see "skip" parameter above).



The method returns the following JSON.  An HTTP status of 200 indicates success. Other HTTP status values indicate an error.


Total items skipped (see URL parameter).


Total items returned by the method.


Grand total items. "total" will be identical to "count" if no pagination takes place. If this number is bigger than “count”, you need to issue the API method again to get more results (with the “skip” parameter set in order to show the second page etc).


Json array containing the summary totals individually per language. Each array element is a JSON object with the structure described in table below.


JSON object per file in the "files" array:


Relative file path.


The target language code.

uptodateBoolean. True if the file is translated and ready for download. You can now proceed with a download.


The target language name.


Total segments.


Total words.


Folder name. Always an empty string.

status & statusc

Detailed status information: status is a numeric value and statusc is a string.

1UptodateFile translated and ready to download. Same as when uptodate field is true.
4NewPass-through projects only. See PT - Translation Workflow
5SubmittingPass-through projects only.
6InProgressTranslation workflow in progress
7DoneTranslation finished but not yet downloadable.
8ErrorPass-through projects only.
10CancelledTranslation workflow cancelled.


Source file date, as shown in the Beebox "in" directory.


Minutes since the source file was saved to Beebox.


Deliverable file date. The date when the deliverable (translated file) was created.


Minutes since the deliverable file date.

 Regular and CMS projects only:

Boolean. True if translation finished but not yet downloadable. Same as status = 7.

notReadyToBuildBoolean. True if translation is in progress. Same as status = 6.
 Pass-through projects only:

Advanced workflow information. A JSON object with these properties:

  • error: Last workflow error text.
  • info: Last workflow info text.
  • pfdt: Date when preliminary file was downloaded. If not null then preliminary file available for download.
  • Note: There are more undocumented properties. Ask Wordbee.



Iterate the “items” node, an array with one record per translated file and target language.

  • Per each record, read the “file” property which is the original file name (including sub directories).
  • Per each record, read the “locale” property which is the target language of this translated file.
  • Per each record, read the “status” property. If the value is 1, then the file is fully translated and can be downloaded.
  • Always check the “total” and “count” properties. If “total” is greater than “count”, then there are more files. You then need to call the method again with the “skip” property set (to go to the second page of results).



Always specify a filter that is as restrictive as possible and returns the status of the files you are really interested in.

Example 1 - You group your files into jobs

You use the notion of a job in your system. A job contains one or more files to be translated into one language.

Prefix file names with your job id, such as in "job-200\filexy.xml", "job-200\file33.xml", etc.

In that case you can easily retrieve the status of all job files using regular expressions:

	"targetLocale": "es",
	"patterns": { "fpath": "^job-200\\\\" }

(Note: "\" must be escaped in JSON as "\\". "\" must also be escaped in regex. Therefore we have 4 backslah to denote a \ in the file name.)

Example 2 - You keep a list of files

You track all files that you have sent but you do not group them. In that case include the list of files to check:

	"targetLocale": "es",
	"filePaths": [ 
		{ "Item1": "", "Item2": "job-200\\filexy.xml" }, 
		{ "Item1": "", "Item2": "job-200\\file33.xml" }, 
		{ "Item1": "", "Item2": "pages\\home.html" } 


Example 3 - You do not track individual files at all

You do not track the files you send, i.e. you drop files to the Beebox without tracking these actions.


In that case you would not specify a filter (or maybe just the target language).

Retrieve the status of all the translated files. Then read out "tfdate" which is the date when the translated file was created.

Download only those files that have been created after the last time you made this call.

In short: You only need to keep track of the last date of downloading.




JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.