Web Evidence Pack – PDF, Screenshot, Text & Monitor
Pricing
from $40.00 / 1,000 evidence packs
Web Evidence Pack – PDF, Screenshot, Text & Monitor
Capture public web pages into timestamped PDF, full-page screenshot, clean text, and HTML. Get metadata, SHA-256 fingerprints, and persistent change detection in one API-ready run for QA, compliance, audits, and monitoring.
Pricing
from $40.00 / 1,000 evidence packs
Rating
0.0
(0)
Developer
Guilherme Mendel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Web Evidence Pack
Capture public web pages as timestamped evidence bundles: PDF, full-page screenshot, clean text, source HTML, metadata, and a SHA-256 content fingerprint in one API-ready run.
The Actor is designed for QA checks, compliance records, public-page archiving, vendor-page audits, and scheduled change monitoring. It does not require a separate server, browser farm, or file host.

What one successful event creates
- Printable A4 PDF with backgrounds
- Full-page PNG screenshot
- Extracted visible text
- Optional rendered HTML
- Final URL, HTTP status, page title, load time, timestamp, and word count
- SHA-256 fingerprint for deterministic change detection
- Persistent snapshots when a
snapshotKeyis supplied - Dataset row plus downloadable files in the run's key-value store
The pay-per-event event is charged only after the page is successfully captured. Blocked and failed pages are not charged for an evidence-pack event.
Example input
{"urls": [{ "url": "https://example.com" },{ "url": "https://www.iana.org/help/example-domains" }],"formats": ["pdf", "screenshot", "text", "html"],"respectRobotsTxt": true,"snapshotKey": "vendor-terms-weekly","waitUntil": "domcontentloaded","timeoutSecs": 30,"postLoadWaitSecs": 1,"maxConcurrency": 2}
The urls field accepts URL strings through the API and request-list objects through the Console editor. A run can process up to 100 unique public URLs.
Example result
{"inputUrl": "https://example.com","finalUrl": "https://example.com/","status": "captured","httpStatus": 200,"title": "Example Domain","capturedAt": "2026-07-13T23:41:59.502Z","loadTimeMs": 112,"wordCount": 19,"contentHash": "c1d5188c6a2eac7fe21f56b03a396b45cb434f30b653d6939f5d2db08babe99f","changed": false,"firstCapture": true,"pdfRecordKey": "EVIDENCE_001_100680ad546c_PAGE.pdf","screenshotRecordKey": "EVIDENCE_001_100680ad546c_FULL.png","textRecordKey": "EVIDENCE_001_100680ad546c_TEXT.txt","htmlRecordKey": "EVIDENCE_001_100680ad546c_SOURCE.html"}
When the Actor runs on Apify, result rows also contain direct API URLs for generated artifacts.
Change monitoring
Set a stable snapshotKey, then run the same input manually, through the API, or on an Apify schedule. The Actor stores the last SHA-256 hash for each input URL in a dedicated named key-value store.
- First capture:
firstCapture: true,changed: false - Same content later:
firstCapture: false,changed: false - Different rendered HTML:
firstCapture: false,changed: true, withpreviousHash
Apify webhooks can notify another system after a scheduled run. Filter the dataset for changed: true in the receiving automation.
Safety and responsible use
This Actor is intentionally limited to public HTTP(S) pages.
- Private, loopback, link-local, reserved,
.local, and localhost targets are blocked. - Redirects and browser subresources are checked to reduce SSRF risk.
- URLs containing embedded credentials are rejected.
robots.txtis respected by default, and verification fails closed.- Concurrency, timeouts, viewport size, input count, text size, and HTML size are bounded.
- Login automation, CAPTCHA bypass, private pages, and anti-bot evasion are not supported.
Use the Actor only for pages you may lawfully access and process. A timestamp and hash help establish a reproducible record, but they are not a qualified timestamp or a guarantee of legal admissibility.
Limitations
- Browser-rendered HTML can include dynamic values, which may change the hash even when the meaningful content did not.
- Pages that require authentication, CAPTCHA solving, browser extensions, or disabled TLS verification are unsupported.
- Very large HTML is not stored above 15 MiB; visible text is truncated above 5 MiB.
- Full-page screenshots may fail on unusually tall or graphics-heavy pages. Other requested artifacts can still succeed and the result will include a warning.
- Artifact API URLs can require authorization when the storage is private.
Local development
Requirements: Node.js 22 or newer.
npm installnpm run checknpm run test:integrationnpx apify-cli validate-schemanpx apify-cli run --purge --input-file ./examples/input.json
The competitor monitor can be refreshed with:
$npm run market:snapshot
It records adjacent Apify Store products, 30-day users, 30-day runs, and pricing models under reports/snapshots/.
Outputs
- Default dataset: one structured result per input URL
- Default key-value store: PDF, PNG, TXT, HTML, and
OUTPUTsummary - Named snapshot store: one
SNAPSHOTSrecord whensnapshotKeyis supplied
Support scope
Supported issues are reproducible failures on public pages within the documented limits. Custom login flows, anti-bot bypasses, legal certification, and custom scraping projects are outside this Actor's scope.