Skip to content
Tidewell Software
Website Screenshot & PDF API

Website screenshot API in Python

Full-page PNGs of any URL on desktop and iPhone, with cookie banners rejected.

Steps

  1. Get an API token. Apify Console → Settings → API & Integrations. Export it as APIFY_TOKEN.
  2. Install the client. pip install apify-client
  3. List the URLs. urls, one per page.
  4. Pick devices. desktop, laptop, tablet, mobile, android or custom.
  5. Download the files. Each row's fileUrl is public; no token needed.

Input

input.json
{"urls": ["https://en.wikipedia.org/wiki/Web_scraping"], "devices": ["desktop", "mobile"]}

Run it

run.py
import os
import urllib.request

from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("tidewell/website-screenshot-pdf").call(run_input={
    "urls": [
        "https://en.wikipedia.org/wiki/Web_scraping"
    ],
    "devices": ["desktop", "mobile"]
})

for s in client.dataset(run["defaultDatasetId"]).iterate_items():
    if s["status"] == "succeeded":
        urllib.request.urlretrieve(s["fileUrl"], s["device"] + ".png")

Output

Run on 9 November 2026: 2 screenshots, $0.005 at list price.

Dataset rows (trimmed)
[
  {
    "url": "https://en.wikipedia.org/wiki/Web_scraping",
    "status": "succeeded",
    "httpStatus": 200,
    "title": "Web scraping - Wikipedia",
    "device": "mobile",
    "viewport": "393x852",
    "deviceScaleFactor": 2,
    "format": "png",
    "fullPage": true,
    "fileUrl": "https://api.apify.com/v2/key-value-stores/2fX3DRJpXYE171XRH/records/en.wikipedia.org-wiki-Web-scraping-mobile-dd4e01.png?signature=...",
    "contentType": "image/png",
    "width": 786,
    "height": 6500,
    "bytes": 866263,
    "cookieBanner": {"action": "none", "platform": null, "hiddenElements": 0},
    "totalMs": 2929,
    "charged": true,
    "capturedAt": "2026-11-09T19:57:58Z"
  },
  {
    "url": "https://en.wikipedia.org/wiki/Web_scraping",
    "status": "succeeded",
    "httpStatus": 200,
    "title": "Web scraping - Wikipedia",
    "device": "desktop",
    "viewport": "1920x1080",
    "deviceScaleFactor": 1,
    "format": "png",
    "fullPage": true,
    "fileUrl": "https://api.apify.com/v2/key-value-stores/2fX3DRJpXYE171XRH/records/en.wikipedia.org-wiki-Web-scraping-desktop-34b3f1.png?signature=...",
    "contentType": "image/png",
    "width": 1920,
    "height": 8745,
    "bytes": 2409294,
    "cookieBanner": {"action": "none", "platform": null, "hiddenElements": 0},
    "totalMs": 4234,
    "charged": true,
    "capturedAt": "2026-11-09T19:57:59Z"
  }
]

Options

fullPage
false for the viewport only
format
png, jpeg, webp or pdf
selector
Capture one element
waitUntil
networkidle or waitForSelector for charts and SPAs
darkMode, blockAds
Dark theme; ad and tracker blocking

Use it from Claude or ChatGPT

Apify MCP server, this actor only
https://mcp.apify.com/?tools=tidewell/website-screenshot-pdf
Claude
Settings → Connectors → Add custom connector. Paste the URL, sign in to Apify
Claude Code
claude mcp add apify "https://mcp.apify.com/?tools=tidewell/website-screenshot-pdf" -t http
ChatGPT
Add a custom MCP server with the URL and OAuth
Then ask
Use tidewell/website-screenshot-pdf to take full-page desktop and mobile screenshots of https://en.wikipedia.org/wiki/Web_scraping and show me the links.

Pricing

Pay per event, from the actor's live pricing on 9 November 2026.

Price
$0.002 per screenshot, $0.003 per PDF, $0.001 per run start (2 GB).
Free
Failed pages (DNS errors, timeouts, 404s) and retries