PHP SDK

PHP SDK

View Markdown

The Ittybit PHP library provides convenient access to the Ittybit API from PHP.


Requirements

Use of the Ittybit PHP SDK requires:

  • PHP ^8.1

Installation

Use Composer to configure and install the Ittybit PHP SDK:

composer require ittybit/ittybit

Instantiation

To get started with the Ittybit SDK, instantiate the IttybitClient class as follows:

use Ittybit\IttybitClient;

$ittybit = new IttybitClient(
    apiKey: "ITTYBIT_API_KEY"
);

Then you can use the client to make requests to the API.

$response = $ittybit->files->list();
print_r($response->data);

Configuration Options

The SDK allows you to configure various options when creating the client:

use Ittybit\IttybitClient;
use GuzzleHttp\Client;

$ittybit = new IttybitClient(
    apiKey: "ITTYBIT_API_KEY",
    options: [
        'baseUrl' => 'https://api.ittybit.com', // Custom base URL
        'client' => new Client(), // Custom HTTP client
        'maxRetries' => 3, // Maximum number of retries
        'timeout' => 30.0, // Request timeout in seconds
        'headers' => [ // Additional headers
            'X-Custom-Header' => 'value'
        ]
    ]
);

Available Clients

The SDK provides several specialized clients for different API areas:

// Files
$ittybit->files;       

// Media
$ittybit->media;       

// Tasks
$ittybit->tasks;       

// Automations
$ittybit->automations; 

// Signatures
$ittybit->signatures;  

Exception Handling

When the API returns a non-success status code (4xx or 5xx response), an exception will be thrown:

try {
    $ittybit->files->create([
        'url' => 'https://example.com/video.mp4',
        'filename' => 'video.mp4',
        'folder' => 'example',
    ]);
} catch (\Exception $e) {
    echo 'Error: ' . $e->getMessage() . "\n";
    // Handle the error appropriately
}

Advanced

Custom HTTP Client

This SDK is built to work with any HTTP client that implements Guzzle's ClientInterface. By default, if no client is provided, the SDK will use Guzzle's default HTTP client. However, you can pass your own client that adheres to ClientInterface:

use GuzzleHttp\Client;
use Ittybit\IttybitClient;

$customClient = new Client([
    'timeout' => 5.0,
]);

$ittybit = new IttybitClient(
    apiKey: "ITTYBIT_API_KEY",
    options: [
        'client' => $customClient
    ]
);

On this page