{
"count": 3,
"items": [
{
"url": "https://en.wikipedia.org/wiki/Screenshot",
"finalUrl": "https://en.wikipedia.org/wiki/Screenshot",
"statusCode": 200,
"title": "Screenshot - Wikipedia",
"device": "desktop",
"format": "png",
"fullPage": true,
"screenshotUrl": "https://2-29-135-242.sslip.io/m/f/wphf2PzufpfOn1drF/shot-en.wikipedia.org-ce96fea443.png?s=blpit7PnCdsHcjS0oOzM",
"key": "shot-en.wikipedia.org-ce96fea443.png",
"takenAt": "2026-11-11T16:44:31Z",
"error": null,
"width": 1366,
"height": 4266,
"deviceScaleFactor": 1,
"pageHeight": 4266,
"truncated": false,
"bytes": 854337,
"sha256": "6d20cd0eafb37984983958101b23dd8ad48814d0d56800d298b69d219dd9e973",
"contentHash": "b4667f19d8a8e0ea6bb4ecbc",
"loadTimeMs": 3893,
"warning": null
},
{
"url": "https://www.python.org",
"finalUrl": "https://www.python.org/",
"statusCode": 200,
"title": "Welcome to Python.org",
"device": "desktop",
"format": "png",
"fullPage": true,
"screenshotUrl": "https://2-29-135-242.sslip.io/m/f/wphf2PzufpfOn1drF/shot-www.python.org-4863eab2e0.png?s=LbQrFlvLTxLgmhc25DMy",
"key": "shot-www.python.org-4863eab2e0.png",
"takenAt": "2026-11-11T16:44:34Z",
"error": null,
"width": 1366,
"height": 2652,
"deviceScaleFactor": 1,
"pageHeight": 2652,
"truncated": false,
"bytes": 414550,
"sha256": "11e9bd2ca831649a07bf8ef5958f47b6f46b22c4e43fa4a6a530df9e1c6abf8e",
"contentHash": "1513fba47705fb51a1dce0bb",
"loadTimeMs": 2316,
"warning": null
},
{
"statusCode": 200,
"title": "source: Marketplace of ready-to-run tools for AI",
"device": "desktop",
"format": "png",
"fullPage": true,
"key": "shot-source.com-7c0cb88185.png",
"takenAt": "2026-11-11T16:44:45Z",
"error": null,
"width": 1366,
"height": 10000,
"deviceScaleFactor": 1,
"pageHeight": 10072,
"truncated": true,
"bytes": 948205,
"sha256": "2cad42a6768072894e0d2c5bf4ac953c728e7b253936027cc0c504542f99dc0e",
"contentHash": "00e5b1ab7158a944a515a6f9",
"loadTimeMs": 17895,
"warning": null
}
]
}
curl --location --request GET 'https://zylalabs.com/api/14847/url+to+png+api/38662/website+screenshot+api?urls=https://apify.com,https://en.wikipedia.org/wiki/Screenshot,https://www.python.org&device=desktop&fullPage=true&format=png&jpegQuality=80&viewportWidth=OptionalviewportHeight=OptionalmaxHeight=10000&waitUntil=load&delayMs=OptionalhideCookieBanners=true&darkMode=false' --header 'Authorization: Bearer YOUR_API_KEY'
After signing up, every developer is assigned a personal API access key, a unique combination of letters and digits provided to access to our API endpoint. To authenticate with the URL to PNG API simply include your bearer token in the Authorization header.
| Header | Description |
|---|---|
Authorization
|
Required
Should be Bearer access_key. See "Your API Access Key" above when you are subscribed.
|
No long-term commitment. Upgrade, downgrade, or cancel anytime.
Turn a web page URL into a full-page PNG or JPEG screenshot with real Chromium, cookie banners hidden, in one JSON call.
URL to PNG API: turn any public URL into a full-page or viewport PNG, JPEG or PDF with real Chromium. Desktop, tablet and mobile viewports, wait for selector, delay, dark mode, hide cookie banners and any element, capture one element.
Up to 100 results per request, depending on the endpoint.
Every request collects live data from the public source. Identical requests may be served from a cache for up to 6 hours.
List parameters accept several values separated by commas, for example: london,paris.
The Website Screenshot API returns a JSON object containing details about the screenshot taken from a specified URL. This includes the screenshot URL, status code, title, device type, image format, dimensions, and additional metadata like load time and content hash.
Key fields in the response include `url`, `finalUrl`, `statusCode`, `title`, `screenshotUrl`, `width`, `height`, `loadTimeMs`, and `bytes`. These fields provide essential information about the screenshot and the webpage.
Users can customize requests by specifying parameters such as viewport size, image format (PNG or JPEG), and options to hide cookie banners or specific elements. This allows for tailored screenshots based on user needs.
Typical use cases include website monitoring, generating previews for social media, creating documentation, and visualizing webpage changes over time. The API is useful for developers, marketers, and content creators.
The response data is organized in a JSON format, with a top-level object containing a `count` of results and an `items` array. Each item in the array represents a screenshot with detailed attributes, making it easy to parse and utilize.
Accepted parameter values include specific URLs for screenshots, image formats (PNG or JPEG), and viewport types (desktop, tablet, mobile). Users can also specify options like `fullPage` for complete screenshots or `hide` to exclude certain elements.
Data accuracy is maintained by using real Chromium for rendering screenshots, ensuring that the output closely resembles what users would see in a browser. Additionally, the API collects live data from public sources for each request.
If a request returns partial or empty results, check the `statusCode` field for errors. A status code of 200 indicates success, while other codes may indicate issues with the URL or request parameters. Adjusting parameters or retrying the request may resolve the issue.
To obtain your API key, first sign in to your account and navigate to the API you want to use. From the API's Pricing section, choose a plan and complete the subscription process. Once subscribed, return to the API page and you will see your API Access Key displayed at the top of the documentation page. You can use this key to authenticate your requests.
You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.
The free trial lasts for 7 days and allows you to make up to 50 API requests.
No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.
Yes. If the API offers a free trial, you will see a "Free 7-Day Trial" option in its Pricing section. The trial lasts for 7 days and allows up to 50 API requests, enabling you to evaluate the API before subscribing to a paid plan.
Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.
You can monitor your API usage through the response headers included with every request:
x-zyla-api-calls-monthly-used: Shows the total number of API requests you have used during the current billing period.
x-zyla-api-calls-monthly-remaining: Shows the number of API requests you have remaining for the current billing period.
Yes, you can cancel your subscription at any time. Simply go to the Pricing section of the API you're subscribed to and click the "Unsubscribe" button.
Please note that upgrades, downgrades, and cancellations take effect immediately. Once your subscription is canceled, access to the service will end immediately, regardless of any remaining API calls in your quota.
Please have a look at our Refund Policy: https://zylalabs.com/terms#refund