Please consider that API 2.0 is now the preferred version to be used. The old API will remain fully functional until the end of 2021.

Crowdin API v2

Pre-translate Crowdin project files.


Note: Use the combination of project identifier, username, and account key to pass to this endpoint.



Name Value Description
languages required array Set of languages to which pre-translation should be applied. For this use Сrowdin language codes.
files required array Files array that should be translated. Array keys should contain file names with path in Crowdin project.
method optional string Defines which method will be used for pre-translation.
Acceptable values are:
  • "tm" — Pre-translation via Translation Memory
  • "mt" — Pre-translation via Machine Translation. Should be used with engine parameter.
Translation Memory is used by default.
engine optional string Defines engine for Machine Translation.
Acceptable values are:
  • "microsoft" — Pre-translation via Microsoft Translator
  • "google" — Pre-translation via Google Translate
  • "yandex" — Pre-translation via Yandex.Translate
Note: Ensure that you have set appropriate keys for Machine Translation.
approve_translated optional bool Automatically approves translated strings. Acceptable values are: 1 or 0. It works only with TM pre-translation method.
auto_approve_option optional int Defines which translations added by pre-translation via TM should be auto-approved.
Acceptable values are 0, 1, or 2. The default value is 0.
  • "0" — all
  • "1" — with perfect match
  • "2" — all (skip auto-substituted suggestions)
Note:Works only when "approve_translated" parameter is used with value 1.
import_duplicates optional bool Adds translations even if the same translation already exists. Acceptable values are: 1 or 0. It works only with TM pre-translation method.
apply_untranslated_strings_only optional bool Applies translations for untranslated strings only. Acceptable values are: 1 or 0. It works only with TM pre-translation method.
perfect_match optional bool Pre-translate will be applied only for those strings, that have absolute match in source text and contextual information. Acceptable values are: 1 or 0. It works only with TM pre-translation method.
json optional string May not contain value. Defines that response should be in JSON format.
jsonp optional string Callback function name. Defines that response should be in JSONP format.
project-identifier string Project identifier.
login string Your username in Crowdin.
account-key string Your account API key.


If the method is successful it responds with an XML structure, as it is shown below:
<?xml version="1.0" encoding="UTF-8"?>
If you request languages that are not included in your project, the response looks like:
<?xml version="1.0" encoding="UTF-8"?>
    <language status="skipped">French</language>
Unsuccessful response sample:
<?xml version="1.0" encoding="UTF-8"?>
  <message>API key is not valid</message>


curl \
  -F "languages[]=fr" \
  -F "languages[]=uk" \
  -F "files[]=/example.txt" \{project-identifier}/pre-translate?login={username}&account-key={account-key}
$post_params = array();
$request_url = '{project-identifier}/pre-translate?login={username}&account-key={account-key}';
$post_params['languages[]'] = 'uk';
$post_params['files[]'] = '/example.txt';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);

$result = curl_exec($ch);

echo $result;

Was this article helpful?