Website Screenshot Evidence Packs (PNG + SHA-256)
Pricing
from $3.00 / 1,000 usable screenshots
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Features
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
| Field | What it does |
|---|---|
urls | 1 to 5 public http or https URLs. Each URL is opened directly; links are not followed. |
viewports | desktop, mobile, or both. Default is desktop. |
fullPage | Off 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/:
| Field | Example |
|---|---|
| status | captured |
| url / finalUrl | https://example.com/ |
| viewport | desktop |
| httpStatus | 200 |
| capturedAt | 2026-11-10T22:08:46.099Z |
| sha256 | 9dab6e63…2039066 |
| byteLength | 74812 |
| width × height | 1280 × 800 |
| kvKey | cap-… (the PNG in the run's key-value store) |
| refusedSubresourceCount | 0 |
| usable | true |
| reasonCode | null (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/httpsonly. 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_exhaustedand 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-clientlibraries 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
- AI Page to JSON: URL + Schema Extractor: turn public web pages into validated JSON from your own field list or JSON Schema; failed, blocked and JS-only pages are free.
- PDF to Text Markdown Extractor (Digital, No OCR): bulk-convert digital PDFs from URLs to clean text and Markdown with page counts; scanned files are flagged and free.
- Google Rank Tracker API: Daily Keyword Positions: track where your site ranks on Google for the keywords you research, with SERP features, AI Overview, top competitors and changes since the last run.
- Bulk Image and File Downloader (ZIP + SHA-256): download up to 20 public image, PDF and file URLs per run into one ZIP with SHA-256 checksums and a per-file status manifest; failed downloads are free.
See every SteadyScrape (steady-scrape) Actor on our Apify profile.