May 26, 2015

CloudConvert is out of Beta

We're often asked why CloudConvert stays in Beta for such a long time. CloudConvert is running now for more than one year stable and reliable and thus is not a "Beta" service in the traditional definition any more. Leaving Beta was an ongoing process for us and we are happy to announce that we are at the end of this process. We have Service Level Agreements and are offering prioritized support for our paying users.

Besides of the thousands of users which relay on CloudConvert every day there are a lot of services out there which use our API in production already today. As we are officially out of Beta now there is really no barrier for enterprise usage now. If you have any questions, feel free to contact us!


May 5, 2015

Box integration

With Box.com we just integrated the fourth storage provider for CloudConvert. You can now use Box both as input and output storage for conversions. Plus, if you have connected your Box account with your CloudConvert account, you will find a new button "Convert this file with CloudConvert" directly in the Box App UI!

undefined



Apr 13, 2015

Swift Framework for iOS and OS X

Today we are releasing the initial version of our API Wrapper for Swift. As we are using it in our iOS App for CloudConvert we thought it makes sense to publish it.

The following code snippet shows how easily it can be used. Also, we published a complete XCode Example project in the repository.

import CloudConvert
 
CloudConvert.apiKey = "your_api_key"
 
let inputURL = NSBundle.mainBundle().URLForResource("file",withExtension: "png")!
let outputURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL
 
CloudConvert.convert([
                    "inputformat": "png",
                    "outputformat" : "pdf",
                    "input" : "upload",
                    "file": inputURL,
                    "download": outputURL
                ],
                progressHandler: { (step, percent, message) -> Void in
                    println(step! + " " + percent!.description + "%: " + message!)
                },
                completionHandler: { (path, error) -> Void in
                    if(error != nil) {
                        println("failed: " + error!.description)
                    } else {
                        println("done! output file saved to: " + path!.description)
                    }   
            })

We are looking forward to see the awesome apps you create using it!


Apr 8, 2015

2,000,000 users

We’re very happy to announce that we’ve recently had our 2 millionth sign up. We want to take the opportunity and share some interesting numbers with you:

  • 400,000 of our users were active within the last 30 days - 20,000 within the last 24h.
  • We are converting 100,000 files a day and raising. This is 1,15 files per second!
  • About half of the conversions are done by third party apps using our API.
  • All in all we've converted 15 million files with a total size of 200TB.

Thanks to all of you!


Mar 11, 2015

Official node.js API Wrapper

As announced we published the official node.js API Wrapper.

var fs = require('fs');
var cloudconvert = new (require('cloudconvert'))('your_api_key');
 
cloudconvert.convert({
    inputformat: 'png',
    outputformat: 'jpg',
    file: fs.createReadStream('tests/input.png'),
    converteroptions: {
        quality : 75,
    }
}).on('error', function(err) {
    console.error('Failed: ' + err);
}).on('finished', function(data) {
    console.log('Done: ' + data.message);
    this.pipe(fs.createWriteStream('out.jpg'));
}).on('downloaded', function(destination) {
    console.log('Downloaded to: ' + destination.path);
});

Mar 8, 2015

Rewritten PHP API Wrapper

Because our PHP Api wrapper was a bit dusty we decided to rewrite it. You can find it now on GitHub. With the new one you can do cool stuff like this:

$api = new Api("your_api_key");
$api->convert([
        'inputformat' => 'pdf',
        'outputformat' => 'jpg',
        'converteroptions' => [
            'page_range' => '1-3',
        ],
        'input' => 'upload',
        'file' => fopen('./tests/input.pdf', 'r'),
    ])
    ->wait()
    ->downloadAll('./output/');
?>

By the way, an official node-js API wrappper is also in the works!