Enter a website URL and click on the "Render" button to get an animated screenshot of the website.
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.
Capture high-quality screenshots of any webpage with ease. Convert to JPEG, PNG, WEBP, or GIF formats.
Create animated screenshots to visualize webpage interactions and changes. Export to WEBM, MP4, MOV and AVI formats.
Extract html and data from any website with our powerful web scraping capabilities. Convert to HTML or Markdown format.
Automate screenshot, web scraping, or HTML to PDF conversion, for regular updates or monitoring.
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());
}
}
}
Complete API for rendering website screenshots, HTML to PDF, animated screenshots, web page scraping, and scheduled screenshots.
Start rendering for free