Skip to content
A simple PHP Crowdin API client
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


A simple PHP Crowdin API client

Crowdin is a translation and localization management platform :

FYI, an official and more complete Ruby Client exists here :

Build Status Scrutinizer Quality Score


PSR-2 conventions and coding standard

Wrap following API methods :

  • Add a file, delete a file
  • Add a directory, delete a directory, change a directory
  • Update File, Upload translations, Upload fresh version of your localization file
  • Export Translations, Build fresh package with the latest translations.
  • Download Translations, Download last exported translation package (one language or all languages as one zip file).
  • Supported Languages, Get supported languages list with Crowdin codes mapped to locale name and standardized codes.
  • Translation Status, Track overall translation and proofreading progress of each target language.
  • Project Info, Shows project details and meta information.

Missing API methods


Optional, for dev purpose:

How to use ?

Add the following lines in your project composer.json :

    "require": {
        "akeneo/crowdin-api": "1.0.0-alpha3"
    "minimum-stability": "alpha"

Then, to instantiate the client and use available API methods :

require 'vendor/autoload.php';

use Akeneo\Crowdin\Client;

$project = 'akeneo';
$key     = 'my-api-key';
$client  = new Client($project, $key);

// download last build package from Crowdin
$api = $client->api('download');
$result = $api->execute();

// update a Crowdin file from local filesystem
$api = $client->api('update-file');
$localPath = '/home/nico/git/pim/src/Pim/Bundle/CatalogBundle/Resources/translations/messages.en.yml';
$crowdinPath = 'PimCommunity/CatalogBundle/Resources/translations/messages.en.yml';
$api->addTranslation($localPath, $crowdinPath);
$result = $api->execute();

You can take a look at following use cases to see more real life samples.

Use cases

The Akeneo core team uses this library in Nelson, a command based translation workflow between Crowdin and Github (cf

The Sylius core team uses this library in SyliusBot to manage community translations

If you use this library don't hesitate to open a PR to explain your use case here :)


The MIT License (MIT)


Feel free to fork and propose PR to complete missing API methods

Any contributions are welcomed!

You can’t perform that action at this time.