Website Screenshot API

Deliver pixel-perfect screenshots on demand with an API that was built for automation teams. Add Screenshots provides real-time and bulk capture, no concurrent throttling, and direct delivery to S3, Azure, Google Cloud, Cloudflare R2, or your HTTPS endpoint.

Ready in minutes: Create a free account for 100 monthly captures, generate your API key, and point requests at https://api.addscreenshots.com/screenshots. Need more throughput? Upgrade instantly without rate-limit surprises. Start Free

Quick start in 60 seconds

Authenticate with your primary or public API key and pass the target URL. Optional parameters let you control viewport, delay, CSS/JS injection, storage location, and output format.

# Capture a full-page screenshot and upload to S3
curl -X POST https://api.addscreenshots.com/screenshots \\
-H "x-api-key: YOUR_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{
"url": "https://example.com",
"full_page": true,
"storage": {"provider": "s3", "bucket": "example-screenshots"}
}'

Prefer SDKs? Check the GET/POST reference, Base64 examples, and language samples across custom CSS, JavaScript injection, and storage templates.

Key capabilities developers rely on

  • No throttling: Fire concurrent jobs without queuing limits so monitoring, QA, and reporting workflows stay responsive.
  • Global regions: Capture from 20+ locations to validate localized experiences and latency-sensitive layouts.
  • Bulk scheduling: Orchestrate hourly, daily, or monthly batches with scheduled screenshots and webhook callbacks.
  • Visual diff automation: Combine captures with change detection to flag unexpected UI changes.
  • Security-aware delivery: Route outputs directly to your cloud storage or FTP so assets never touch public links.

Pricing snapshot

PlanMonthly CapturesHighlights
Free100Live GET requests, 1080p captures, webhook delivery, usage logs.
Starter1k - 10kBulk POST jobs, scheduled monitoring, Base64/HTML exports, $0.003 per extra capture.
Pro & Enterprise50k+Dedicated regions, SSO, invoicing, custom retention, white-label delivery.

See full pricing and regional availability, including yearly discounts and pay-as-you-grow overage rates.

See the API in action



Integration playbooks

Why teams switch to Add Screenshots

  • No surprise caps: Competing APIs queue traffic after a few concurrent jobs; our infrastructure processes real-time and batch requests side by side.
  • Multi-cloud resilience: Choose AWS, Azure, or Google capture engines and fail over automatically when a region blips.
  • Compliance friendly: Keep data residency under control with regional routing and direct storage delivery.
  • Developer-first workflow: Transparent logs, per-request usage tracking, and human-readable error responses.
  • Feature velocity: Rapid turnaround on new browser engines, CSS/JS overrides, and turbo rendering.
Tip: Pair the API with automated change detection to alert product and QA teams when layouts shift unexpectedly. Use scroll and wait controls to guarantee dynamic content loads before capture.

Real-Time URL to Screenshot Requests

The url to screenshot API supports real-time GET requests, allowing you to capture website screenshots instantly with a single URL. This feature is perfect for on-the-fly captures or generating live screenshots of websites.

Bulk Requests using the HTTP POST Method

If you require capturing multiple website screenshots simultaneously, our API offers bulk requests via the HTTP POST method. This capability makes it ideal for large-scale projects or automated workflows.

Integrating our API into your application is seamless, supporting popular programming languages like PHP, Python, Ruby, and more. Sign up today to unlock the full potential of website screenshot capture with our API.

Getting started with the Add Screenshots API

API Specification
The Open API definition and Swagger UI is available at https://api.addscreenshots.com/

What is an API Key and Why Do You Need It to Take a Screenshot?

An API key is a credential used to identify the user, website, or application making a call to the Screenshot API. Each account has its own unique set of API keys, and using an API key allows for screenshot account information to be associated with the account.

Without an API key, the Screenshot API cannot authenticate the user and their account information cannot be linked to the screenshot request. In other words, an API key is required to ensure secure and authorized access to the Screenshot API.

If you're looking to use the Screenshot API to capture website screenshots, be sure to sign up for an account and obtain your own unique API key. With an API key, you can easily integrate our API into your application and start capturing website screenshots with ease.

Where can I find my website screenshot API key?

Visit the API Keys page to find your list of API keys. Need an account? Sign up to get started.

An example of the API keys page is shown below:

Screenshot API keys


Why are there 4 API keys and which one should I use?

Each account with our Screenshot API will have four API keys with specific use cases:

NamePurposeUse
PrimaryThis key is used internally to generate screenshots within your code or application for internal apps.Internal Apps
SecondarySimilar to the primary key, this key is also used internally for generating screenshots within your code or application for internal apps. It serves as a backup in case the primary key was compromised and needs to be regeneratedInternal Apps
PublicThis key is used on public websites in conjunction with a token signed by the secret key.Public Websites
SecretThis key is used for signing a unique token of a screenshot request for internal apps.Internal Apps

If you're using our Screenshot API for internal applications where end-users cannot see the API key, use either the primary or secondary API key. For public websites, where end-users can potentially see or access the API key, use the public API key and a base64 token of the request with an HMAC SHA265 signature.

By using the appropriate API key for your specific use case, you can ensure secure and authorized access to the Screenshot API. If you have any questions about which API key to use or how to use it, please don't hesitate to contact our support team.


What happens if my API key is compromised or stolen?

If your Screenshot API key is compromised or stolen, it's important to take immediate action to secure your account and prevent unauthorized access. Fortunately, our Screenshot API makes it easy to regenerate a new API key and deactivate the old one.

Simply navigate to the API Keys screen in your account and click on the Regenerate icon next to the compromised API key. Within seconds, the old key will be deactivated and a brand-new key will be generated for your account.

By regenerating your API key, you can ensure the security of your account and prevent any potential misuse of your Screenshot API. If you suspect that your API key has been compromised or have any concerns about the security of your account, please contact our support team for assistance.


API keys for internal applications

Only use the Primary or Secondary API keys where end users cannot see the key. For example, used on your server for internal use.

How do I use the Primary or Secondary Screenshot API key?

To use the API for internal applications, simply include the apikey in the query string or the x-api-key in the request header as shown below.

Screenshot API keys


What is an example of using the primary/secondary API key in a URL query string?

The API key can included in the apikey query string as shown below:

// Line breaks added for readability GET https://api.addscreenshots.com/screenshots
?apikey=
YOUR_API_KEY
&url=example.com

Your API key can be found on the API Keys page. Need an API Key? Sign up to get started.
For internal applications, replace YOUR_API_KEY with your own unique API Key.
For public facing websites or hotlinks, generate a signed URL.

What is an example of using the primary/secondary API key in a HTTP Header?

The API key can also be added in the HTTP request as a header with name x-api-key (apikey and x-apikey is also supported) and the value of the API key as shown below:

x-api-key: YOUR_API_KEY