Fast, reliable website screenshots with a powerful API. Seamless integration, instant results.
Generate website screenshots in seconds. Optimized for speed, efficiency, and reliability.
Clear, detailed, and developer-friendly docs to get you started fast. Every feature, every endpoint—fully covered.
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.
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.
Smooth HD Screencasts: Capture smooth, high-resolution screencasts 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.
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());
}
}
}
“Exactly what we needed to automate our reporting. Screenshots, PDFs, even data scraping — all in one clean API!”
“Switched from three separate tools to this one. The scheduled screenshots and screencasts save us hours every week.”
“The HTML-to-PDF conversion is pixel-perfect, even on complex layouts. Totally reliable for our invoicing workflows.”
“From capturing user flows to generating PDFs on the fly — it’s like having a full automation team behind a single API.”
“This service just works. The scraping is robust, and being able to schedule everything is a game-changer.”
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.
Requests
Support
Satisfaction
Free trial
Limited to 100 requests
All features included except Scheduled Screenshot, IP Location and GPU Rendering
10 requests per minute
Monthly Yearly
2,000 requests per month 24,000 requests per year
Website Screenshot
HTML to PDF
Blocking Ads & Cookie Banners
Cache, Webhook & Zapier
$0.009 per extra request
50 requests per minute
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
Animated Screenshot
Storage
$0.006 per extra request
200 requests per minute
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
Web Scraping
Choose IP Location
GPU Rendering
Scheduled Screenshot
$0.003 per extra request
1,000 requests per minute
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.
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.
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.
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.
Powerful API for website screenshots, rendering HTML to PDF, animated screenshots, scraping, and scheduled screenshots — seamlessly integrated to save you time and effort.
Try Website Screenshot API — No Credit Card Needed