How can I access the API?
When you sign up, we automatically create an access key for you. You can manage all your access keys
from your dashboard. To make a successful API call you just have to fill the access_key
parameter with a valid access key.
Do the API ever experience downtime?
Our screenshot API health is closely monitored 24/7. The most critical part of our infrastructure is
built over AWS Lambda which ensures us a very high level of robustness and reliability. We dont
publicly display our uptime statistics, but let us know if you would like to have more details on
the API uptime.
Do you keep my data and produced screenshots private?
Yes. For each screenshot you make with our API, a brand new isolated Chrome instance is created and
then destroyed along with all temporary data. There is no way to access cached screenshots without
your API key. We carefully designed our API to make sure your data is safe.
What image format does your screenshot API supports?
Our API currently supports the png
,jpeg
and the webp
formats.
You can specify the output format using the format parameter and you can control the
jpeg
and webp
quality with the quality parameter.
How can I make a full page screenshot?
You can make screenshots at the full height of the target web page by setting the
full_page parameter to true
.
How do I add a delay to make sure the page is loaded?
Please note that by default, our screenshot API waits until the network is idle before capturing a
screenshot. If you need to add additional wait time you can use the delay parameter to
delay the screenshot by a few more seconds. This could be useful to wait for animations for example.
How do I wait for a particular element to appear?
If the element is inserted in the page after being lazy loaded, you can pass a CSS selector in the
wait_for parameter. This will make the API wait for the element to appear in the page
before capturing a screenshot.
How do I capture a screenshot of a specific element?
You can use the element parameter to capture a specific HTML element of the page.
It accepts CSS selectors and the first matched element is captured.
How can I set the language of the website to capture?
Use the accept_language parameter to set the language of the target website you want to
capture.
How can I capture websites that have bot protection?
Some websites use
Cloudflare
or similar services with bot protection that may block our screenshot API.
While ApiFlash does its best to bypass bot protection, some strict protections may still block access.
In this case, you may want to use the
proxy parameter to supply your own proxy. Many of our
clients successfully use residential proxies or specialized "web unlocker" proxies from providers
like
BrightData. The level of proxy
needed depends on the protection level. Sometimes a basic residential proxy is sufficient, while stricter
protections may require more specialized solutions.
How can I capture screenshots of pages behind authentication?
For pages that require authentication, there are several approaches:
- Use the headers or cookies parameters to pass authentication tokens or session cookies
- If you control the target website, consider adding a secure way to bypass authentication using a secret key in the URL
- Use JavaScript injection to automate the login process before taking the screenshot
The best approach depends on the authentication mechanism. For example, if the target website uses session cookies,
you would first need to authenticate normally, capture the cookie values, then pass those to ApiFlash
using the
cookies parameter. For token-based auth, you can usually pass the token in the
headers parameter.
Why do fonts look different in my screenshots?
Screenshots are captured using Chrome running on Linux, which have a different set of system
fonts than Windows or macOS. If your website relies on system fonts, the text might render differently
than what you see locally. The only reliable solution is to make your website serve its own fonts.
Don't rely on system fonts as they vary between operating systems. Use web font services like
Google Fonts or self-host your
fonts using
@font-face
declarations. This ensures the exact same font is used everywhere:
on your computer, your users' devices, and our screenshot service.
Are screenshots cached?
Yes. API calls made with the same parameters do return a cached screenshot. You can control how long
the screenshot is kept in cache using the ttl parameter.
How can I force the API to capture a new screenshot?
To make our screenshot API capture a fresh new screenshot and bypass the cache, you have to set the
fresh parameter to true
. A new screenshot will be captured and returned.
Keep in mind that if you made a screenshot with the same parameters except the fresh one,
it will still be kept in cache. This parameter does not invalidate cache.
What counts as a screenshot in my monthly quota?
Cached screenshots and failed screenshots don't count in your monthly quota. All the metrics that
you can find in your dashboard are for unique successful screenshots.
What happens if I almost used all of my monthly quota?
When you reach 80% of your plan's monthly quota, we do send you an email to warn you that you're
close from having used all the allowed screenshots for the billing period.
What if I use my monthly quota entirely?
Our website screenshot API will respond with an HTTP 402
error code.
What's the engagement when subscribing for a paid plan?
You're free to unsubscribe anytime. You can do so from your dashboard with a few clicks. If you are
not satisfied with our screenshot API service, please get in touch with us, we will do our best to
resolve the issues.
Is my credit card information safe?
Credit card data never go through our servers. We do use
Stripe for all billing related
operations.