Getting started
Synchronous screenshot
The
screenshot endpoint runs a browser session and returns a base64-encoded image in JSON — ideal for programmatic integrations and the API Tester.Async jobs
The
jobs endpoints enqueue screenshot tasks for background processing and let you poll for status and results — ideal for high-volume or slow pages.REST Architecture
The Website Screenshot API follows REST principles, utilizing predictable resource-oriented URLs and standard HTTP status codes for seamless integration and error handling.HTTPS Security
All API communications are secured using TLS 1.2 or higher encryption protocols to ensure data integrity and privacy.API Versioning
The Website Screenshot API maintains backward compatibility through versioning, currently operating on Version 1.Authentication
Your API key serves as the exclusive credential for accessing the Website Screenshot API. Each Cleariflow service requires a unique key. Include your key in the JSON body asapi_key, or as a query parameter for the legacy GET endpoint.
Base URL
Page rendering
Pages are rendered in a real headless browser. JavaScript is fully executed before the screenshot is captured. Built-in SSRF protection blocks requests to localhost and private IP ranges.Response and error codes
When requests fail, the API returns structured JSON error responses with specific codes and descriptions for effective troubleshooting.| Code | Type | Details |
|---|---|---|
| 200 | OK | Screenshot captured successfully. |
| 202 | Accepted | Async job was enqueued successfully. |
| 400 | Bad request | Bad request — invalid URL, blocked target, or malformed payload. |
| 401 | Unauthorized | The request was unacceptable. Typically due to the API key missing or incorrect. |
| 422 | Quota reached | The request was aborted due to insufficient API credits. (Free plans) |
| 429 | Too many requests | The request was aborted due to the number of allowed requests per second being reached. This happens on free plans as requests are limited to 1 per second. |
| 500 | Internal server error | The request could not be completed due to an error on the server side. |