API Reference and Developer Documentation

Integration Examples — Direct Upload

Examples below show how you can upload your image file directly to Kraken.io API in various programming languages and parse the response body.

/**
* NOTE: First download our official PHP library from:
* https://github.com/kraken-io/kraken-php
*
* Or install via composer:
* composer require kraken-io/kraken-php
*/

$kraken = new Kraken("your-api-key", "your-api-secret");

$params = array(
    "file" => "/path/to/image/file.jpg",
    "wait" => true
);

$data = $kraken->upload($params);

if ($data["success"]) {
    echo "Success. Optimized image URL: " . $data["kraked_url"];
} else {
    echo "Fail. Error message: " . $data["message"];
}


// For advanced API usage simply alter the `$params` array. For example:

$params = array(
    "file" => "/path/to/image/file.jpg",
    "wait" => true,
    "resize" => array(
        "width" => 100,
        "height" => 75,
        "strategy" => "crop"
    ),
    "s3_store" => array(
        "key" => "AKIAO4AD5J4F1NA33Q12",
        "secret" => "AAwQwJSEgG9WpeCV20GlHI5hGKxKuw5qY80t4CCe",
        "bucket" => "assets",
        "path" => "images/layout/header.jpg"
    ),
    "webp" => true,
    "lossy" => true
);
// NOTE: First install our official Node module:
// $ npm install kraken --save

var Kraken = require('kraken');

var kraken = new Kraken({
    'api_key': 'your-api-key',
    'api_secret': 'your-api-secret'
});

var params = {
    file: '/path/to/image/file.jpg',
    wait: true
};

kraken.upload(params, function (status) {
    if (status.success) {
        console.log('Success. Optimized image URL: %s', status.kraked_url);
    } else {
        console.log('Fail. Error message: %s', status.message);
    }
});


// For advanced API usage simply alter the `params` object. For example:

var params = {
    file: '/path/to/image/file.jpg',
    wait: true,
    resize: {
        width: 100,
        height: 75,
        strategy: 'crop'
    },
    s3_store: {
        key: 'AKIAO4AD5J4F1NA33Q12',
        secret: 'AAwQwJSEgG9WpeCV20GlHI5hGKxKuw5qY80t4CCe',
        bucket: 'assets',
        path: 'images/layout/header.jpg'
    },
    webp: true,
    lossy: true
};
# NOTE: First install our official Ruby gem:
# $ gem install kraken-io

require 'rubygems'
require 'kraken-io'

kraken = Kraken::API.new(
    :api_key => 'your-api-key',
    :api_secret => 'your-api-secret'
)

params = {
    :wait => true
}

data = kraken.upload('/path/to/image/file.jpg', params)

if data.success
    puts 'Success! Optimized image URL: ' + data.kraked_url
else
    puts 'Fail. Error message: ' + data.message
end


# For advanced API usage simply alter the `params` hash. For example:

params = {
    'wait' => true,
    'resize' => {
        'width' => 100,
        'height' => 75,
        'strategy' => 'crop'
    },
    's3_store' => {
        'key' => 'AKIAO4AD5J4F1NA33Q12',
        'secret' => 'AAwQwJSEgG9WpeCV20GlHI5hGKxKuw5qY80t4CCe',
        'bucket' => 'assets',
        'path' => '/path/to/image/file.jpg'
    },
    'webp' => true,
    'lossy' => true
}
package main

import (
    "log"
    "github.com/kraken-io/kraken-go"
)

func main() {
    kr, err := kraken.New("your-api-key", "your-api-secret")

    if err != nil {
        log.Fatal(err)
    }

    params := map[string]interface {} {
        "wait": true
    }

    imgPath := "/path/to/image/file.jpg"

    data, err := kr.Upload(params, imgPath)

    if err != nil {
        log.Fatal("err ", err)
    }

    if data["success"] != true {
        log.Println("Failed, error message ", data["message"])
    } else {
        log.Println("Success, Optimized image URL: ", data["kraked_url"])
    }
}


// For advanced API usage simply alter the `params` hash. For example:

params := map[string]interface {} {
    "wait": true,
    "lossy": true,
    "webp": true,
    "resize": map[string]interface {} {
        "width": 100,
        "height": 75,
        "strategy": "crop"
    },
    "s3_store": map[string]interface {} {
        "key": "AKIAO4AD5J4F1NA33Q12",
        "secret": "AAwQwJSEgG9WpeCV20GlHI5hGKxKuw5qY80t4CCe",
        "bucket": "assets",
        "path": "/path/to/image/file.jpg"
    }
}
/// To install kraken-net, run the following command in the Package Manager Console:
/// Install-Package kraken-net

using Kraken;
using Kraken.Http;

var connection = Connection.Create("your-api-key", "your-api-secret");
var client = new Client(connection);
var response = client.OptimizeWait("c:\path\to\image\file.jpg");

if (response.Result.StatusCode == HttpStatusCode.OK) {
    var url = response.Result.Body.KrakedUrl;
}
# NOTE: First install our official Python Client:
# pip install krakenio

from krakenio import Client

api = Client('your-api-key', 'your-api-secret')

data = {
    'wait': True
}

result = api.upload('/path/to/image/file.jpg', data);

if result.get('success'):
    print result.get('kraked_url')
else:
    print result.get('message')



# For advanced API usage simply alter the `data` object. For example:

data = {
    'wait': True,
    'resize': {
        'width': 100,
        'height': 75,
        'strategy': 'crop'
    },
    's3_store': {
        'key': 'AKIAO4AD5J4F1NA33Q12',
        'secret': 'AAwQwJSEgG9WpeCV20GlHI5hGKxKuw5qY80t4CCe',
        'bucket': 'assets',
        'path': 'images/layout/header.jpg'
    },
    'webp': True,
    'lossy': True
}