Free API · No credit card required

Screenshot any website
with a simple API

Capture pixel-perfect screenshots of any URL. Desktop and mobile viewports, PNG and JPEG output, full page or viewport crop. One GET request is all it takes.

No credit card required. No catch.

savepage.io/demo

Enter a URL and click Capture

0

screenshots captured

One request. One screenshot.

No SDKs to install, no headless browsers to manage. Send a GET request with the URL you want to capture and get back an image. It works from any language, any platform.

  • Desktop (1440x900) and mobile (375x812) viewports
  • PNG and JPEG output formats
  • Full page capture or viewport crop
  • Custom delay for JavaScript-heavy pages
  • Configurable width and height
Terminal
bash
curl "https://api.savepage.io/v1/?url=https://example.com&width=1440&height=900&format=png" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o screenshot.png
response.json
json
{
  "status": "success",
  "url": "https://example.com",
  "image": "https://cdn.savepage.io/captures/abc123.png",
  "width": 1440,
  "height": 900,
  "format": "png",
  "size": 847291,
  "captured_at": "2026-04-01T12:00:00Z"
}

Built for developers

Everything you need to capture, store, and serve website screenshots at any scale.

RESTful API

Standard HTTP GET requests. Works with curl, Python, JavaScript, Go, or any HTTP client.

Full Page Capture

Scroll the entire page and capture it as one continuous image. No content gets cut off.

Mobile Viewports

Test how sites look on phones and tablets. Set any viewport width and height.

JavaScript Rendering

Pages are rendered in a real Chromium browser. SPAs, dynamic content, and lazy-loaded images all work.

PNG and JPEG

Choose the format that fits your use case. PNG for pixel-perfect quality, JPEG for smaller files.

CDN Delivery

Screenshots are served from a global CDN. Fast delivery, no matter where your users are.

Used by 2,000+ developers and teams

DashbotArchivistPagewatchRenderHQSiteproof

Works with every language

If it can send an HTTP request, it can take a screenshot.

screenshot.py
python
import requests

response = requests.get(
    "https://api.savepage.io/v1/",
    params={
        "url": "https://example.com",
        "width": 1440,
        "height": 900,
        "format": "png"
    },
    headers={
        "Authorization": "Bearer YOUR_API_KEY"
    }
)

data = response.json()
print(data["image"])  # CDN URL
screenshot.js
javascript
const params = new URLSearchParams({
  url: "https://example.com",
  width: "1440",
  height: "900",
  format: "png"
});

const res = await fetch(
  `https://api.savepage.io/v1/?${params}`,
  {
    headers: {
      Authorization: "Bearer YOUR_API_KEY"
    }
  }
);

const data = await res.json();
console.log(data.image); // CDN URL
screenshot.go
go
package main

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

func main() {
    url := "https://api.savepage.io/v1/" +
        "?url=https://example.com" +
        "&width=1440&height=900&format=png"

    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")

    resp, _ := http.DefaultClient.Do(req)
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
Terminal
bash
# Capture and save directly
curl -s "https://api.savepage.io/v1/?url=https://github.com&format=png" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  | jq -r '.image' \
  | xargs curl -o screenshot.png

# Mobile screenshot
curl "https://api.savepage.io/v1/?url=https://github.com&width=375&height=812&format=png" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Full page capture
curl "https://api.savepage.io/v1/?url=https://github.com&fullpage=true&format=jpeg" \
  -H "Authorization: Bearer YOUR_API_KEY"

Free. No catch.

100 screenshots per month at no cost. No credit card required. No trial period. Works for personal and commercial projects.

Free Forever
$0/month
  • 100 screenshots/month
  • 1440x900 viewport
  • PNG and JPEG
  • Full page capture
  • No credit card
Get Your Free API Key

Need higher limits? See paid plans

Start capturing screenshots today

Free, no credit card required. Set up takes less than a minute.

Get Your Free API Key