GetScreenshot is a RESTful API that can be accessed by any standard/popular client with HTTP capabilities. This means that almost any language with an HTTP request library o built-in module can make calls to GetScreenshot.
A successful request to the GetScreenshot API will return a simple JSON that includes a URL pointing to the resulting screen capture.
By design, GetScreenshot only uses a GET / URL query parameter model. We intentionally designed the API this way to favor usability, low-effort implementations and beginner developer friendliness. There's also a tiny performance improvement when using GET requests instead of POST, but we didn't consider this when designing the API.
Although we believe a GET endpoint is the right approach for this type of service, we understand that there are situations (for security / or architecture reasons) where passing formed JSON payloads to a POST API is necessary. We don't have that functionality yet, but we expect to release POST support very soon. If you have that particular need, please let us know so we can keep you posted.
GetScreenshot is heavily optimized to return a response in as little time as possible. However is important to understand that the underlying operation is equivalent to navigating to any website from a Chrome Browser tab. GetScreenshot will make several optimizations under the hood, but it will only be as fast as the website you're trying to load.
In general terms, the size of a website shouldn't have a noticeable impact on the API response times, since GetScreenshot operates on top of a server with a throughput of 10 Gbps. However, GetScreenshot needs to make scrolling operations and controlled wait times in order to reveal all the DOM elements. This will have an impact on the speed of the response depending on the size of the DOM that you're trying to capture.
In practice GetScreenshot API response times take in average 8000-12000 ms for simple websites and 15000 to 22000 ms for complex websites.
Have in mind that after 30000 ms the API will timeout regardless of what's happening in the server. It's extremely rare for GetScreenshot to go over 30 seconds. If your website is very complex and indeed takes more than 30 seconds to get captured, our standard solution might not be a good fit for your case.
We can provide a dedicated endpoint for your business with a custom timeout. If you're interested on this, please contact us.
GetScreenshot API is NOT cached. That means that every time you make a call and get a successful response you will get a new fresh capture. We opted to not cache our API to decrease the pricing associated with setting up a cache cluster and cache index. This is reflected in a cheaper API call than other services.
We also opted to not cache our API because we believe ephemeral responses are more secure since we are dealing with a smaller data surface.
In simple terms what this means is that your request lives only for the time is needed to provide a response. This allows us to offer a service that is easily adaptable to a HIPAA and GDPR compliant architecture.
If you have a need for cached API calls, we can provide a dedicated cached endpoint for an extra $15 USD a month. This fee covers the price of a 512MB cache cluster and a cache index. If you're interested in something like this please let us know.
Screenshots are saved for 30 days in a secure Amazon S3 Bucket. You can access and retrieve your screenshot image as many times as you want with no extra charge. You can also hotlink to the image but please note that the image will get deleted after 30 days, no exceptions.
If you need a permanent link to your image we recommend you to use the S3 Bucket Save option. This feature allows you to pass a user/key pair to our API that will be used to save the image to your own Amazon S3 Bucket. This feature is not publicly available, so please contact us for further instructions.