Create Project

Create Crowdin project.

Request

POST https://api.crowdin.com/api/account/create-project?account-key={account-key}

Parameters

Name Value Description
login required string Your Crowdin Account login name.
name required string Project name.
identifier required string Project identifier. Should be unique among other Crowdin projects.
source_language required string Source files language. Crowdin language code.
languages required array An array of language codes project should be translate to.
join_policy required string Project join policy. Acceptable values are:
  • open
  • private
language_access_policy optional string Defines how project members can access target languages. Acceptable values are:
  • "open" - any translator can access any language. (default)
  • "moderate" - translator should be granted with access to certain language.
hide_duplicates optional bool Defines whether duplicated strings should be displayed to translators or should be hidden and translated automatically. Acceptable values are: 1 or 0.
export_translated_only optional bool Defines whether only translated strings will be exported to the final file. We do not recommend to set this option if you have text (*.html, *.txt, *.docx etc.) documents in your project since it may damage resulted files. Acceptable values are: 1 or 0.
export_approved_only optional bool If set to 1 only approved translations will be exported in resulted ZIP file. Acceptable values are: 1 or 0.
auto_translate_dialects optional bool Untranslated strings of dialect will be translated automatically in exported file, leveraging translations from main language. Acceptable values are: 1 or 0.
public_downloads optional bool Defines whether "Download" button visible to everyone on Crowdin webpages. Acceptable values are: 1 or 0.
use_global_tm optional bool Defines if translations would be leveraged from Crowdin Global Translation Memory. When using this option any translations made in your project will be commited to Crowdin Global TM automatically. Acceptable values are: 1 or 0.
logo optional file Project logo at Crowdin.
cname optional string Custom domain name for Crowdin project.
description optional string Project description.
in_context optional bool Defines whether the In-Context should be active in the project. Acceptable values are: 1 or 0.
pseudo_language optional string Specify the language code for the In-Context's pseudo-language that will store some operational data.
webhook_file_translated optional string Open this URL when one of the project files is translated. URL will be opened with "project" - project identifier, "language" - language code, "file_id" - Crowdin file identifier and "file" - file name.
webhook_file_proofread optional string Open this URL when one of the project files is proofread. URL will be opened with "project" - project identifier, "language" - language code, "file_id" - Crowdin file identifier and "file" - file name.
webhook_project_translated optional string Open this URL when project translation is complete. URL will be opened with "project" - project identifier and "language" - language code.
webhook_project_proofread optional string Open this URL when project proofreading is complete. URL will be opened with "project" - project identifier and "language" - language code.
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.
Variables
account-key required string Crowdin account API key.

Response

If the method is successful, it responds with an XML structure, as it is shown below (when language_access_policy = open).
<?xml version="1.0" encoding="ISO-8859-1"?>
<project>
  <success>1</success>
  <invitation>http://translate.example.com/project/test-project-api/invite</invitation>
  <url>http://translate.example.com/project/test-project-api</url>
  <key>ca51cef8f852425496b1cdd3e86fea88</key>
</project>
Response example for projects with "Moderate" language_access_policy.
<?xml version="1.0" encoding="ISO-8859-1"?>
<project>
  <success>1</success>
  <invitation>
    <item>
      <language>Ukrainian</language>
      <translator>http://translate.example.com/project/test-project-api/invite?d=7585662585d5d32307d3937373</translator>
      <proofreader>http://translate.example.com/project/test-project-api/invite?d=3585k635r4d5d32307d3937373</proofreader>
    </item>
  </invitation>
  <url>https://crowdin.com/project/test-project-api</url>
  <key>d13720ba72204273af0321ca980945ec</key>
</project>
Unsuccessful response sample:
<?xml version="1.0" encoding="ISO-8859-1"?>
<error>
  <code>12</code>
  <message>Account key is invalid</message>
</error>

Examples

curl \
  -F "login=admin" \
  -F "logo=@logo.png" \
  -F "name=This is a test project" \
  -F "identifier=test-project-api" \
  -F "description=Brief Description" \
  -F "hide_duplicates=1" \
  -F "cname=translate.example.com" \
  -F "join_policy=open" \
  -F "languages[]=fr" \
  -F "languages[]=ru" \
  -F "export_approved_only=1" \
  -F "public_downloads=1" \
  -F "source_language=en" \
  https://api.crowdin.com/api/account/create-project?account-key={account-key}
<?php
$post_params = array();
$request_url = 'https://api.crowdin.com/api/account/create-project?account-key={account-key}';
$post_params['login'] = 'admin';
$post_params['name'] = 'Test Project';
$post_params['identifier'] = 'api-test-project';
$post_params['join_policy'] = 'private';
$post_params['languages[0]'] = 'fr';
$post_params['languages[1]'] = 'uk';
$post_params['source_language'] = 'en';

$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);
curl_close($ch);

echo $result;