Crowdin API Documentation
What can I do with the API?
Well, lots. The Crowdin API provides secure programmatic access to the Crowdin service, allowing you to build cool and useful tools and services on top plus you can integrate Crowdin with your development process to reach continuous localization.
How to integrate Crowdin with my deployment process?
The Crowdin API uses a RESTful style using XML over HTTP. For HTTP requests used only POST method.
Making requests
For every API request you make, you'll need to present the API access key as "key" URI parameter to be authenticated. The authentication API key can be found on the project settings page the "API" tab. Keep the API key secret! It should be guarded just as you would your regular account password.
Here's an example and principle of forming API request URI.
http://crowdin.net/api/project/test/upload-translation?key=9b4034f446587e5062e8d48eb5a07cdc
Crowdin API has a single point of entry for all requests: http://crowdin.net/api/project/. After goes project identifier (test in example above) and needed action (upload-translation in example). API access key is specified as a URI parameter.
Responses
All Crowdin API responses are composed of light-weight XML and wrapped in a top-level error or success element. Upon a successful call the API will return a single empty element <success/>. Otherwise, on any error condition will return a <error> object containing error code and error message information.
Sample unsuccessful responseError codes explanation3API key is not valid
0: Internal error 1: The Project Identifier value passed in was not valid. 2: Invalid API method specified. 3: The API key pass was not valid. 4: The files HTTP POST variable is required and must be provided. 5: You're trying to add already existing file. 6: An error ocurred while uploading file. 7: Invalid file extension provided. 8: Requested file not found.
API Methods
Detailed instructions on the methods available with the Crowdin API and how to use them.
Add new files to the project
| Method Name | add-file |
| Request Type | POST |
| Request Parameters | files[], key |
| Response | xml |
Example
curl -F "files[strings.xml]=@strings.xml" http://crowdin.net/api/project/{your-project-identifier}/add-file?key=fb7ced95a4cf4ac4cdea11fde78fafc5
Update Files
| Method Name | update-file |
| Request Type | POST |
| Request Parameters | files[], key |
| Response | xml |
Example
curl -F "files[strings.xml]=@strings.xml" http://crowdin.net/api/project/{your-project-identifier}/update-file?key=fb7ced95a4cf4ac4cdea11fde78fafc5
Delete file
| Method Name | delete-file |
| Request Type | POST |
| Request Parameters | file, key |
| Response | xml |
Example
curl -F "file=strings.xml" http://crowdin.net/api/project/{your-project-identifier}/delete-file?key=fb7ced95a4cf4ac4cdea18fde78fafc5
Upload translations
| Method Name | upload-translation |
| Request Type | POST |
| Request Parameters | files[], key |
| Response | xml |
Example
curl -F "files[strings.xml]=@strings.fr.xml" http://crowdin.net/api/project/{your-project-identifier}/upload-translation?key=fb7ced95a44f4ac4cdea14fde78fafc5
Get project translation status
| Method Name | status |
| Request Type | POST |
| Request Parameters | key, [json, xml, jsonp] |
| Response | xml/json/jsonp |
Example
curl http://crowdin.net/api/project/{your-project-identifier}/status?key=1e58796053323325d97bb19b19ca7391&jsonp=test
If jsonp parameter defined it should specify JavaScript callback function name. xml and json parameters do not require any values. Default output format is XML.
Download translations
| Method Name | download |
| Request Type | GET |
| Request Parameters | package, key |
| Response | zip file |
Example
Download translations for all languages as single package.wget http://crowdin.net/api/project/{your-project-identifier}/download/all.zip?key=fb7ced95a4cf4ac4cdea14fde78fafc5
Download French translations.
wget http://crowdin.net/api/project/{your-project-identifier}/download/fr.zip?key=fb7ced95a4cf4ac4cdea14fde78fafc5
Need help working with the API? Contact us.
Translation Memory API Access
The Crowdin API utilizes the REST architecture, with requests made via HTTP and responses returned in JSON format. (We may support XML responses in the upcoming versions)
With our API you will be able to receive Translation Memory suggestions by specified phrase and languages pair. Calls to the Crowdin API will not require any key or authentication token for your requesting application.
Currently Crowdin API is not ready yet, subscribe to our RSS feed to be notified about release date.

Add files