website screenshot api

Powerful Screenshot API for developers

Build faster with fewer distractions. Our screenshot API eliminates browser setup, headless errors, and scaling concerns. Take website screenshots with a simple API call.

Built for developers

Fast, reliable website screenshots with a powerful API. Seamless integration, instant results.

Blazing-fast performance

Generate website screenshots in seconds. Optimized for speed, efficiency, and reliability.

Documentation for everything

Clear, detailed, and developer-friendly docs to get you started fast. Every feature, every endpoint—fully covered.

Remove ads and cookie banners

Our Screenshot API removes banners, cookie pop-ups, and ads with ease. Get high-quality, distraction-free screenshots in seconds.

Ad-Free Screenshots: Automatically block intrusive ads with a single parameter. We handle the filtering for you

Bypass Cookie Banners: Our AI-powered ruleset, updated with 50,000+ filters, removes GDPR and cookie pop-ups across the web.

Capture high-resolution screenshots on any device

Deliver pixel-perfect screenshots optimized for all screen sizes, Retina displays, and dark mode.

Optimized for Retina & High-DPI Displays: Capture crisp, high-resolution screenshots with full support for Apple’s Retina and other high-DPI screens.

Custom & Predefined Screen Sizes: Easily set your own dimensions or choose from a range of popular device presets for effortless automation.

Full-Page Screenshots with Lazy Loading: Our engine scrolls through the page, ensuring lazy-loaded images, scripts, and other dynamic content are fully rendered in your screenshots.

High-quality screen recording

Capture smooth, high-resolution animated screenshots with no lag, whether recording the full screen, or a selected area, all optimized for performance.

Smooth HD Videos: Capture smooth, high-resolution animated screenshots without lag.

Full & Partial Screen Capture : Record full screen, or selected areas.

Multi-Format Exports : Create movie files in multiple formats, including MP4, WEBM, AVI, and MOV.

Screenshot API

Fast and scalable Screenshot API for developers

Avoid the complexity of managing headless browsers: use our API to capture screenshots, generate PDFs, or scrape any website by URL. Get started for free with up to 100 requests. It’s scalable, reliable, and developer-friendly.

Website Screenshot API

Capture high-quality screenshots of any webpage with ease. Convert to JPEG, PNG, WEBP, or GIF formats.

Animated Screenshot API

Create animated screenshots to visualize webpage interactions and changes. Export to WEBM, MP4, MOV and AVI formats.

Web Scraping API

Extract html and data from any website with our powerful web scraping capabilities. Convert to HTML or Markdown format.

HTML to PDF API

Convert HTML content into high-quality PDFs effortlessly.

Automated Screenshot API

Automate screenshot, web scraping, or HTML to PDF conversion, for regular updates or monitoring.

Create screenshots without touching a single line of code

No-code integrations

Quickly render website screenshots with Zapier, Airtable, Make and your preferred no-code platforms

Code & SDK

Built for developers, in any language you love


import fs from "node:fs";
import { SDK } from "@screenshotmax/sdk";

// create API client
const sdk = new SDK("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY");

// set up options and fetch screenshot (chaining methods)
const result = await sdk.screenshot
  .setOptions({
    url: "https://example.com",
    format: "png",
  })
  .fetch();

fs.writeFileSync("screenshot.png", Buffer.from(result.data, "binary"));
console.log("Image saved to screenshot.png");

from screenshotmax import SDK
from screenshotmax.enums import ImageFormat
from screenshotmax.options import ScreenshotOptions

sdk = SDK("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY")

# set up options
opts = ScreenshotOptions(
  url="https://example.com",
  format=ImageFormat.PNG
)

# fetch screenshot (chaining methods)
result, headers = sdk.screenshot.set_options(opts).fetch()

# save to file
output_file = "screenshot.png"
with open(output_file, "wb") as f:
  f.write(result)
print("Image saved to screenshot.png")
        

use ScreenshotMax\SDK;
use ScreenshotMax\Options\ScreenshotOptions;

$sdk = new SDK("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY");

// set up options
$opts = new ScreenshotOptions();
$opts->url = "https://example.com";
$opts->format = "png";
$result = $sdk->screenshot->setOptions($opts)->fetch();

// optionally: generate signed URL
// (https://api.screenshotmax.com/v1/screenshot?url=https%3A%2F%2Fexample.com&format=png&access_key=YOUR_ACCESS_KEY&signature=370f5b161bc59eed13b76........1f778635d7fc595dbab12)
$url = $sdk->screenshot->getUrl();

// save screenshot to file
file_put_contents("screenshot.png", $result["data"]);
echo "Image saved to screenshot.png\n";
        

package main

import (
    "fmt"
    "io"
    "net/http"
    "net/url"
    "os"
)

func main() {
    client := &http.Client{}

    endpoint := "https://api.screenshotmax.com/v1/screenshot"
    method := "GET"

    req, err := http.NewRequest(method, endpoint, nil)
    if err != nil {
        fmt.Println("Error creating request:", err)
        return
    }

    params := url.Values{}
    params.Add("access_key", "YOUR_ACCESS_KEY")
    params.Add("url", "https://example.com")
    params.Add("format", "png")

    req.URL.RawQuery = params.Encode()

    resp, err := client.Do(req)
    if err != nil {
        fmt.Println("Request failed:", err)
        return
    }
    defer resp.Body.Close()

    if resp.StatusCode != http.StatusOK {
        fmt.Println("Unexpected status:", resp.Status)
        return
    }

    outFile, err := os.Create("screenshot.png")
    if err != nil {
        fmt.Println("Error creating file:", err)
        return
    }
    defer outFile.Close()

    _, err = io.Copy(outFile, resp.Body)
    if err != nil {
        fmt.Println("Failed to write file:", err)
        return
    }

    fmt.Println("Image saved to screenshot.png")
}
                  

using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();

        var url = "https://api.screenshotmax.com/v1/screenshot" +
                  "?access_key=YOUR_ACCESS_KEY" +
                  "&url=https://example.com" +
                  "&format=png";

        try
        {
            var response = await client.GetAsync(url);
            response.EnsureSuccessStatusCode();

            var imageBytes = await response.Content.ReadAsByteArrayAsync();
            await File.WriteAllBytesAsync("screenshot.png", imageBytes);

            Console.WriteLine("Image saved to screenshot.png");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Request failed: " + ex.Message);
        }
    }
}
                  

import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class ScreenshotRequest {
    public static void main(String[] args) {
        HttpClient client = HttpClient.newHttpClient();

        String url = "https://api.screenshotmax.com/v1/screenshot" +
                      "?access_key=YOUR_ACCESS_KEY" +
                      "&url=https://example.com" +
                      "&format=png";

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .GET()
                .build();

        try {
            HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofByteArray());

            if (response.statusCode() == 200) {
                try (FileOutputStream fos = new FileOutputStream("screenshot.png")) {
                    fos.write(response.body());
                }
                System.out.println("Image saved to screenshot.png");
            } else {
                System.out.println("Failed with HTTP status: " + response.statusCode());
            }
        } catch (IOException | InterruptedException e) {
            System.out.println("Request failed: " + e.getMessage());
        }
    }
}
                  
Customer Stories

Screenshot API you can trust

Trusted by startups and scale-ups alike. Thousands of API calls per day. Dozens of use cases. Here’s what our customers are saying.

Anna R., Product Manager

“Exactly what we needed to automate our reporting. Screenshots, PDFs, even data scraping — all in one clean API!”

Jason T., Growth Marketer

“Switched from three separate tools to this one. The scheduled screenshots and screencasts save us hours every week.”

Lucie M., Developer

“The HTML-to-PDF conversion is pixel-perfect, even on complex layouts. Totally reliable for our invoicing workflows.”

Elena K., Founder

“From capturing user flows to generating PDFs on the fly — it’s like having a full automation team behind a single API.”

Ben C., Operations Lead

“This service just works. The scraping is robust, and being able to schedule everything is a game-changer.”

Focus on your app
We handle the screenshots

You have a business to run. Stop worrying about rendering issues, browser inconsistencies, and automation. Capture perfect website screenshots effortlessly—we've got it covered.

10,000,000+

Requests

24/7

Support

5 stars

Satisfaction

Pricing

Start for free, upgrade as you grow

Transparent and predictable pricing. Choose the plan that matches your workload, from startups to enterprise-level needs.

Monthly
Yearly 2 months free
FREE
$ 0

Free trial

Limited to 100 requests

All features included except Automated Screenshot, IP Location and GPU Rendering

10 requests per minute

Basic
$ 19 190

Monthly Yearly

2,000 requests per month 24,000 requests per year

Website Screenshot

HTML to PDF

Blocking Ads & Cookie Banners

Cache, Webhook & Zapier

Stealth Mode

Signed Requests

$0.009 per extra request

50 requests per minute

Get started for free
MOST POPULAR
Growth
$ 59 590

Monthly Yearly

10,000 requests per month 120,000 requests per year

All Basic Plan Features
Website Screenshot
HTML to PDF
Blocking Ads & Cookie Banners
Cache, Webhook & Zapier
Stealth Mode
Signed Requests

Animated Screenshot

Storage

$0.006 per extra request

100 requests per minute

Get started for free
Scale
$ 199 1,990

Monthly Yearly

50,000 requests per month 600,000 requests per year

All Basic + Growth Plans Features
Website Screenshot
HTML to PDF
Animated Screenshot
Blocking Ads & Cookie Banners
Storage
Cache, Webhook & Zapier
Stealth Mode
Signed Requests

Web Scraping

Choose IP Location

GPU Rendering

Scheduled Tasks (Full Automation)

Priority Support

$0.003 per extra request

200 requests per minute

Get started for free
?

Is ScreenshotMAX free for taking screenshots?

Yes! With our API, you can capture up to 100 website screenshots for free, including animated screenshots, web scraping, and HTML-to-PDF conversion. Upgrade to a paid plan for additional features like GPU rendering, storage, and scheduled tasks, as well as higher limits.

?

Can I easily cancel my subscription?

Yes! You can cancel anytime from the ‘Manage Subscription’ page by selecting ‘Cancel Plan.’ You won’t be charged again, and you’ll retain access to your screenshot quota until the end of your billing period.

?

Is API integration easy for developers?

Yes! Our API is developer-friendly, offering clear documentation and examples to help you seamlessly integrate screenshot capture, web scraping, and PDF generation. Check out our documentation for more details.

?

Can I use ScreenshotMAX for web scraping?

Yes! Our API allows you to efficiently extract website data, choose your IP location, and schedule tasks—perfect for web scraping, data mining, and automation. You can also convert HTML to PDF and capture animated screenshots.

Start now

Take website screenshots in minutes
No browser setup, no headaches, no scaling concerns

Complete API for rendering website screenshots, HTML to PDF, animated screenshots, web page scraping, and scheduled screenshots.

No credit card required