PHP SDK
Official SDK for the ScreenshotCenter API. Capture screenshots, PDFs, HTML, and video — without writing raw HTTP calls.
Installation
terminal
composer require screenshotcenter/screenshotcenter
Package coming soon to Packagist — packagist.org/packages/screenshotcenter/screenshotcenter
Quick start
index.php
use ScreenshotCenter\Client;
$client = new Client(getenv('SCREENSHOTCENTER_API_KEY'));
// Take a screenshot and wait for it to finish
$shot = $client->screenshot->create('https://example.com');
$result = $client->waitFor($shot['id']);
echo $result['url']; // final URL
echo $result['status']; // "finished" More examples
Geo-targeting
$shot = $client->screenshot->create('https://example.com', [
'country' => 'fr',
'lang' => 'fr-FR',
'tz' => 'Europe/Paris',
]);
$done = $client->waitFor($shot['id']);
$client->screenshot->saveImage($done['id'], '/tmp/fr.png'); PDF generation
$shot = $client->screenshot->create('https://example.com', ['pdf' => true]);
$done = $client->waitFor($shot['id']);
$client->screenshot->savePdf($done['id'], '/tmp/page.pdf'); Error handling
use ScreenshotCenter\Errors\ApiError;
use ScreenshotCenter\Errors\TimeoutError;
use ScreenshotCenter\Errors\ScreenshotFailedError;
try {
$result = $client->waitFor($shot['id'], interval: 2.0, timeout: 60.0);
} catch (ScreenshotFailedError $e) {
echo "Screenshot failed: {$e->error}";
} catch (TimeoutError $e) {
echo "Timed out after {$e->timeoutMs}ms";
} catch (ApiError $e) {
echo "API error {$e->status}: {$e->getMessage()}";
}