Upload TM

Upload your Translation Memory for Crowdin Project in TMX, CSV or XLS/XLSX file format.


POST https://api.crowdin.com/api/project/{project-identifier}/upload-tm?key={project-key}


Name Value Description
file required file File in TBX, CSV or XLS/XLSX formats. See TMX 1.4b Specification.
first_line_contains_header CSV and XLS/XLSX files only
string Used when uploading CSV (or XLS/XLSX) files via API. Defines whether first line should be imported or it contains columns headers. May not contain value.
scheme CSV and XLS/XLSX files only
string Note: Used only when uploading CSV (or XLS/XLSX) file to define data columns mapping.
Acceptable value is the combination of the following constants (%language_code% is a placeholder for your language code): Example parameter you will have to add: &scheme=phrase_en,none,phrase_uk,phrase_fr
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 required string Should contain the project identifier.
project-key required string Project API key.


If successful, this method returns a XML structure, as it is shown below.
<?xml version="1.0" encoding="ISO-8859-1"?>
Unsuccessful response sample:
<?xml version="1.0" encoding="ISO-8859-1"?>
  <message>API key is not valid</message>


curl \
  -F "file=@translation-memory.tmx" \
curl \
  -F "file=@tm.csv" \
  -F "first_line_contains_header=true" \
  -F "scheme=phrase_en,none,phrase_uk,phrase_fr" \
$post_params = array();
$request_url = 'https://api.crowdin.com/api/project/{project-identifier}/upload-tm?key={project-key}';

if(function_exists('curl_file_create')) {
  $post_params['file'] = curl_file_create('/home/crowdin/test.tmx');
} else {
  $post_params['file'] = '@/home/crowdin/test.tmx';

$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;