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
}