yebto / screenshot-api
PHP SDK for the YEB Screenshot API. Capture website screenshots, PDFs, videos, OCR and more.
dev-master
2026-03-06 22:20 UTC
Requires
- php: ^8.1
- yebto/api-client: ^1.0
Suggests
- illuminate/support: Required for Laravel Facade & ServiceProvider integration (^10.0|^11.0|^12.0)
This package is auto-updated.
Last update: 2026-03-06 22:22:28 UTC
README
PHP SDK for the YEB Screenshot API. Capture website screenshots, PDFs, videos, OCR and more.
Works standalone (plain PHP) or with Laravel (Facade + auto-discovery).
Requirements
- PHP 8.1+
- cURL extension
- YEB API Key (free tier available)
Installation
composer require yebto/screenshot-api
Standalone Usage
use Yebto\ScreenshotAPI\ScreenshotAPI; $api = new ScreenshotAPI(['key' => 'your-api-key']); $result = $api->capture('example');
Laravel Usage
Add your API key to .env:
YEB_KEY_ID=your-api-key
Use via Facade:
use ScreenshotAPI; $result = ScreenshotAPI::capture('example');
Or via dependency injection:
use Yebto\ScreenshotAPI\ScreenshotAPI; public function handle(ScreenshotAPI $api) { $result = $api->capture('example'); }
Publish Config
php artisan vendor:publish --tag=yebto-screenshot-config
Available Methods
| Method | Description |
|---|---|
capture($url) |
Capture a screenshot of a URL |
captureHtml($html) |
Capture a screenshot from HTML content |
capturePdf($url) |
Capture a PDF of a URL |
captureVideo($url) |
Capture a video recording of a URL |
bulk($urls) |
Capture screenshots of multiple URLs |
bulkStatus($job_id) |
Check bulk capture job status |
scheduleCreate($url) |
Create a scheduled screenshot |
scheduleUpdate($schedule_id) |
Update a scheduled screenshot |
scheduleDelete($schedule_id) |
Delete a scheduled screenshot |
scheduleList() |
List all scheduled screenshots |
scheduleRun($schedule_id) |
Run a scheduled screenshot now |
diff($url) |
Create a visual diff between screenshots |
diffStatus($job_id) |
Check diff job status |
status($job_id) |
Check screenshot job status |
download($job_id) |
Download a captured screenshot |
metrics($url) |
Get page performance metrics |
ocr($url) |
Extract text from a screenshot via OCR |
extractHtml($url) |
Extract rendered HTML from a URL |
extractText($url) |
Extract visible text from a URL |
devices() |
List available device presets |
All methods accept an optional $extra array parameter for additional API options.
Error Handling
use Yebto\ApiClient\Exceptions\ApiException; use Yebto\ApiClient\Exceptions\AuthenticationException; use Yebto\ApiClient\Exceptions\RateLimitException; try { $result = $api->capture('example'); } catch (AuthenticationException $e) { // Missing or invalid API key (401) } catch (RateLimitException $e) { // Too many requests (429) } catch (ApiException $e) { echo $e->getMessage(); echo $e->getHttpCode(); }
Free API Access
Register at yeb.to with Google OAuth to get a free API key.
Support
- API Documentation: https://yeb.to/api/screenshot
- Email: support@yeb.to
- Issues: GitHub Issues
License
MIT - NETOX Ltd.