1.0.0 2016-03-04 17:47 UTC


PHP client that utilizes Guzzle to interact with the Shutterstock API.

Build Status Code Climate Test Coverage Scrutinizer Code Quality


Use Composer to install the dependencies.

$ composer require shutterstock/api


Instantiating the client requires passing in your client id and secret, which you can register for on the Shutterstock Developers site.


require_once __DIR__ . '/vendor/autoload.php';

$client = new Shutterstock\Api\Client($clientId, $clientSecret);

Interacting with the different endpoints is as simple as reading the API documentation. There are two main methods of the client to deal with - Client::get and Client::post - which take an endpoint as their first argument and the client parameters as the second.

// perform an image search for puppies
$client->get('images/search', array('query' => 'puppies'));

// retrieve details for a handful of image ids
$client->get('images', array('id' => array(1, 2, 3)));

// create a lightbox
$client->post('images/collections', array('name' => 'Lightbox Name Here'));

Each request will return a PSR-7 response object, which you can read about on the Guzzle/PSR7 repo. The response object bodies have been decorated with a JsonSerializable interface to allow easier handling of the default API responses.

$imageResponse = $client->get('images', array('id' => array(1, 2, 3)));
if ($imageResponse->getStatusCode() != 200) {
    // error handler
$images = $imageResponse->getBody()->jsonSerialize()['data'];
// etc

If your application is setup to handle async CURL requests, you can also make Client::getAsync and Client::postAsync calls, which return Guzzle Promises.

For more examples and a demo application using this client, see [LINK HERE].


Apache 2.0 © 2016-2017 Shutterstock Images, LLC