JPEG Rendering Optimizations

If you are requesting jpeg images you will now receive higher quality images without any noticable file size increase. This also reflects on capture performance so in order to decrease file sizes while maintaining quality, we suggest using jpeg instead on png.

Fixed Shutters Not Firing

We have a shutter feature that can be used to wait for an element to be visible. However it was not working as expected in rare situations, causing the entire capture job to fail.

This functionality has been fixed and you can reliably use shutter options in your API calls.

Delay Option Improvements

We have made several improvements to delay option and the order which we apply the delay.

Delay is now applied after all javascript / css injection jobs are completed and several jobs causing implicit delays (such as prescrolling page to render lazy assets) are merged together so their delays will not stack together.

Wait mode: dom

It is now possible to pass wait=dom parameter in order to wait for domready event before render. The default is wait=load which waits for window.onload event.

This way you can create faster captures and handle such sites where loading hangs or takes a lot of time.

Faster API Calls

We have deployed a new capturing architecture which improves our capturing performance 30% in average. These changes have been made available to all users without any modifications required on your side.

Stability Fixes

Based on our monitoring, we identified several browser crashes occuring during captures. These have been mostly visible in the latest weeks. All issues should be resolved as of now.

API Version 3

We have a new and exciting release of the Screenshot API with many improvements, a brand new rendering engine and new features.

In order to switch to the new version you will need to change your API url from v2 to v3, as in

It is mostly backwards compatible so you should be able to switch without any issues.

Faster Rendering: The version 3 of screenshot API is around twice as fast compared to v2.

Better Engine: Our rendering engine now uses the latest Chromium releases, providing better standards compliance.

New Wait Modes: In previous versions the API would wait for the window load event before rendering the screenshot. Now you have an option to wait for network to become idle using wait=network parameter to ensure pages load completely even with a lot of async resources.

Shutter: If you need to control the precise moment of capture, you can use shutter=<css selector> parameter to wait for a DOM element before capture. Combined with js injection, you can control the render time as you wish.

Media Emulation: Now it’s possible to emulate print css media using emulate_media=print parameter if you wish to capture pages in printing mode.

Better Retina: While the previous version had a retina mode, it came with some caveats regarding to retina image loading, now retina=true parameter creates true retina images with device scale factor of 2.

More Metadata: Using the json=true parameter now returns details regarding to the page and server response, as well as the CDN url of the captured image as it always did.

Better Error Reporting: The new API is more transparent regarding to the errors caused by the remote server or on our end. You can work around errors more easily due to this granular error information.

Ability To Capture Error Pages: The previous API would only capture pages with status code of 200-299, now you can override this behavior using allow_failed=true parameter.

New Service IP Addresses

In order to provide a better and uninterrupted service, we will be adding more servers to our Screenshot API. If you need to whitelist our capture servers please use the following IP addresses: