Website Screenshot Evidence Packs (PNG + SHA-256) avatar

Website Screenshot Evidence Packs (PNG + SHA-256)

Pricing

from $3.00 / 1,000 usable screenshots

Go to Apify Store
Website Screenshot Evidence Packs (PNG + SHA-256)

Website Screenshot Evidence Packs (PNG + SHA-256)

Desktop and mobile screenshots of public URLs with SHA-256 hashes, HTTP status, UTC time and a ZIP manifest. $0.003 per 2xx capture; failed pages free.

Pricing

from $3.00 / 1,000 usable screenshots

Rating

0.0

(0)

Developer

SteadyScrape

SteadyScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Features

Limited permissions

Share

What does Website Screenshot Evidence Packs do?

Website Screenshot Evidence Packs takes screenshots of public web pages in a fixed desktop (1280×800) or mobile (390×844) viewport and hands you an evidence-style pack: each PNG, its SHA-256 hash, the UTC capture time, the page's HTTP status and final URL, and a JSON manifest plus a ZIP archive of everything. It costs $0.003 per successful screenshot plus $0.003 once per run that saved at least one. Failed, blocked, refused and non-2xx pages are free.

It is built for QA teams, marketers, compliance and support staff who need a quick, verifiable record of how a public page looked. The files are ordinary webpage captures with integrity hashes. They are not notarized, not legal proof, and not a guarantee of historical truth.

What you can do with it

  • Release QA: capture your landing, pricing and docs pages on desktop and mobile after every deploy, and keep the hashes with the release notes.
  • Ad and offer checks: save what a partner or affiliate page showed today, with the HTTP status and final URL after redirects.
  • Support tickets: attach a hashed screenshot of a public page to a bug report so everyone looks at the same bytes.
  • Compliance notes: keep a dated, hashed snapshot of your own public terms, disclosures or price pages.
  • Scheduled snapshots: run it daily or weekly on the same URLs with an Apify schedule and keep a simple visual history.

Input

FieldWhat it does
urls1 to 5 public http or https URLs. Each URL is opened directly; links are not followed.
viewportsdesktop, mobile, or both. Default is desktop.
fullPageOff by default (viewport only). When on, the capture is the full page, cut off at 4,000 pixels tall.

Example input (prefilled in the console):

{
"urls": ["https://example.com/"],
"viewports": ["desktop"],
"fullPage": false
}

There are no fields for cookies, headers, proxies, scripts or logins, and unknown fields fail the run.

Output

One dataset row per URL and viewport. Sample from a real run on https://example.com/:

FieldExample
statuscaptured
url / finalUrlhttps://example.com/
viewportdesktop
httpStatus200
capturedAt2026-11-10T22:08:46.099Z
sha2569dab6e63…2039066
byteLength74812
width × height1280 × 800
kvKeycap-… (the PNG in the run's key-value store)
refusedSubresourceCount0
usabletrue
reasonCodenull (set when a row is partial, refused or failed)

The key-value store holds OUTPUT (run summary), the manifest JSON, each PNG and a ZIP with manifest.json plus captures/01-desktop-<hash>.png. Download the dataset as JSON, CSV or Excel. Compare the PNG bytes with the sha256 before you rely on a file.

Pricing

Pay per event:

  • $0.003 per usable screenshot: a stored PNG of a page that answered with a 2xx HTTP status and had no blocked requests.
  • $0.003 once per run that saved at least one usable screenshot.

Free: refused URLs (private, local or credential URLs), failed loads, timeouts, non-2xx pages (404, 403, 500 and so on), pages where some requests were blocked, and runs that saved nothing usable. Those rows are still in the dataset, marked partial, refused or failed with a reason code, and partial rows still include their PNG when one was taken.

Worked example: 5 URLs on desktop and mobile = 10 screenshots = 10 × $0.003 + $0.003 = $0.033 for the run. 1,000 desktop screenshots in runs of 5 URLs = 1,000 × $0.003 + 200 × $0.003 = $3.60. With pay-per-event pricing these events are the whole Actor price; there is no separate start fee and no compute charge on top. You can set a maximum charge per run in the run options; the Actor stops before a screenshot that would go over it.

How it compares

  • Versus a browser extension or manual screenshot: you get the same fixed viewport every time, a SHA-256 for each file, the HTTP status and final URL, and a manifest you can archive, without anyone at a keyboard.
  • Versus running your own headless browser: no Chrome to install or keep patched, and no servers. Five URLs per run keeps each run short and predictable.
  • Versus archive or notary services: this is not a third-party archive and not a timestamp authority. It is a cheap, hashed capture you control. Use a notary service when you need legal-grade proof.

Limits

  • Up to 5 URLs and 10 screenshots per run, one at a time. Run it again or schedule it for more.
  • Desktop 1280×800, mobile 390×844, device scale 1.
  • About 15 seconds to load each page and 180 seconds per run.
  • Public http/https only. Usernames, passwords, credential query keys, localhost, .local, .internal, and private or reserved IP addresses are refused before anything is fetched.
  • Shared capture capacity can run out on a busy day. Those rows are marked remote_quota_exhausted and are free; try again later.

How it works and privacy

Screenshots are taken in a remote headless browser (Cloudflare Browser Run) called by the Actor; Chrome does not run inside your Apify run. For each page the browser records the main document's HTTP status and final URL, refuses requests to private or local addresses, and saves one PNG. The browser is closed after every page. Redirect targets are checked against the same address rules by name, not by DNS pinning.

Capture only pages you have a right to request. The Actor does not log in, bypass paywalls or solve captchas, and it does not decide whether a 200 page is a login wall or a challenge page. It does not collect profile data, but anything shown on the public page will appear in the PNG. Logs go through a redaction pass and never contain secrets.

Retention follows your Apify plan. The Actor does not delete files and does not set a TTL. Default run storages follow your plan's data retention; download or copy the ZIP if you need to keep it longer.

FAQ

Is a screenshot legal proof? No. It is a webpage capture with a hash of the stored bytes and a UTC time from the run's clock. It is not notarized.

Am I charged for errors or 404 pages? No. Only a stored PNG of a 2xx page with no blocked requests is charged, plus the once-per-run event when at least one such screenshot exists.

Can I screenshot a logged-in page or pass cookies? No. Cookies, headers, passwords and proxy credentials are not accepted.

Can I take full-page screenshots? Yes, set fullPage to true. Pages taller than 4,000 pixels are cut off at 4,000 pixels.

Why was my page marked partial? The page answered with a non-2xx status, or the browser refused at least one request to a private or local address. The PNG is kept in the pack and the row is free.

Integrations

  • Schedules: run the same URLs daily or weekly from Apify Console.
  • API: start runs and download the dataset or ZIP with the Apify API or the apify-client libraries for JavaScript and Python.
  • Make, Zapier and n8n: use the Apify modules to start a run and fetch results.
  • AI agents (MCP): call the Actor through Apify's MCP server so an agent can capture and hash a page.

More from SteadyScrape

See every SteadyScrape (steady-scrape) Actor on our Apify profile.