Automating Website Evidence Collection with Webhooks and APIs
Published April 3, 2026
Taking a screenshot by hand works fine when you need one. But when you are monitoring dozens of competitor pages, tracking compliance across an entire website, or documenting infringement that could disappear at any moment, manual captures become a bottleneck. They are slow, inconsistent, and easy to forget.
Worse, manual screenshots lack the metadata that makes evidence defensible. A screenshot saved to your desktop has no cryptographic hash, no trusted timestamp, no HTML source, and no chain of custody. If opposing counsel challenges it, you have nothing to prove it was not altered after the fact.
Automated website evidence collection solves both problems. It captures pages on a schedule or in response to events, and it produces complete evidence packages - screenshot, source code, SHA-256 hash, and RFC 3161 timestamp - without anyone touching a browser.
Why Manual Evidence Collection Fails at Scale
Consider a brand protection team tracking counterfeit listings across Amazon, eBay, and AliExpress. New infringing listings appear daily. By the time an analyst manually screenshots each one, the seller may have already changed the listing or taken it down. The evidence window closes fast.
Or consider a compliance officer responsible for verifying that 50 pages on a corporate website display the correct privacy notices, cookie banners, and disclaimers. Checking each page by hand every week is tedious and error-prone. Pages get missed. Screenshots get saved without timestamps. Audit trails fall apart.
Manual evidence collection also introduces human variability. One analyst captures full-page screenshots. Another captures only the visible viewport. One saves HTML source. Another does not. When evidence quality depends on who captured it and whether they remembered every step, the process is fragile.
The Snapoena REST API - Evidence Capture in One HTTP Call
The Snapoena API reduces evidence capture to a single HTTP POST. Send a URL and receive a complete evidence package - full-page screenshot, HTML source, SHA-256 hash, RFC 3161 trusted timestamp, and metadata - all captured from a server-side browser that you do not need to install or manage.
A basic capture request looks like this:
curl -X POST https://api.snapoena.com/v1/captures \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/product-listing",
"webhook_url": "https://your-app.com/webhooks/snapoena",
"full_page": true
}'The API returns a capture ID immediately. The actual capture runs asynchronously - Snapoena loads the page in a headless browser, waits for rendering to complete, captures the screenshot and source, generates hashes and timestamps, and stores the evidence package. When the capture finishes, the webhook fires.
Every capture produces the same complete evidence package regardless of who triggered it or when. No steps get skipped. No metadata gets forgotten. The process is identical whether it runs at 2 PM or 2 AM.
Webhooks - Connecting Captures to Your Workflow
A webhook is a callback URL that Snapoena calls when a capture completes. Instead of polling the API to check if your capture is ready, you register a URL and Snapoena sends the results to you.
When a capture finishes, Snapoena sends a POST request to your webhook URL with the capture details:
{
"event": "capture.completed",
"capture_id": "cap_a1b2c3d4",
"url": "https://example.com/product-listing",
"screenshot_url": "https://cdn.snapoena.com/...",
"sha256": "e3b0c44298fc1c14...",
"timestamp_token": "MIIEpAYJKoZIhvc...",
"evidence_bundle_url": "https://cdn.snapoena.com/...zip",
"captured_at": "2026-04-03T14:22:31Z"
}This is where automation gets powerful. Your webhook handler can do anything with the capture data - send a Slack notification, file it in a case management system, attach it to a JIRA ticket, email it to outside counsel, or trigger another downstream process.
Example Workflow - Monitor, Capture, Notify
Here is a practical example. Suppose you need to monitor a competitor's pricing page and capture evidence whenever the content changes. The workflow has three parts:
- Schedule periodic captures. A cron job or scheduled task calls the Snapoena API every hour to capture the target URL. Each capture produces a full evidence package with a SHA-256 hash of the page content.
- Detect changes. Your webhook handler compares the new SHA-256 hash against the previous capture. If the hash changed, the page content changed. If it matches, nothing happened and no action is needed.
- Notify your team. When a change is detected, the webhook handler sends a Slack message with the screenshot URL, the capture timestamp, and a link to download the full evidence bundle. The legal team has court-ready documentation without lifting a finger.
The entire pipeline runs unattended. No one needs to remember to check the page. No one needs to open a browser and take a screenshot. The evidence is captured, hashed, timestamped, and delivered automatically.
Bulk Capture - Processing Many URLs at Once
Some workflows require capturing evidence from hundreds or thousands of URLs at once. A brand protection team might need to document 200 counterfeit listings before filing takedown requests. A compliance team might need to verify every page on a website after a policy update.
The Snapoena bulk capture API accepts an array of URLs in a single request. Each URL is captured independently with its own evidence package, and webhooks fire as each capture completes. You can process an entire batch without writing a loop or managing concurrency.
curl -X POST https://api.snapoena.com/v1/captures/bulk \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://example.com/listing-1",
"https://example.com/listing-2",
"https://example.com/listing-3"
],
"webhook_url": "https://your-app.com/webhooks/snapoena",
"full_page": true
}'Each capture in the batch receives the same treatment - server-side rendering, full-page screenshot, HTML source preservation, SHA-256 hashing, and RFC 3161 timestamping. Bulk capture does not mean reduced quality.
Use Cases for Automated Evidence Collection
Compliance monitoring
Regulations like GDPR, CCPA, ADA, and FTC guidelines require specific disclosures on websites. Automated captures on a daily or weekly schedule create a continuous compliance record. If an auditor asks whether your privacy policy was displayed correctly on a specific date, you have timestamped evidence to prove it. Read more in our compliance evidence guide.
Brand protection
Counterfeit product listings, trademark violations, and unauthorized use of brand assets appear and disappear quickly. Automated monitoring captures evidence the moment it is detected - before sellers can edit or remove listings. Bulk capture handles the volume, and webhooks route evidence directly to your enforcement team or outside counsel.
Litigation support
Attorneys working on IP disputes, defamation cases, or contract violations need to preserve web evidence as it exists today. A scheduled capture job ensures that key pages are documented regularly. If content changes or disappears, the evidence is already preserved with cryptographic proof of when it was captured and that it has not been modified.
Competitive intelligence
Tracking competitor pricing, product pages, and marketing claims over time builds a factual record. Automated evidence collection removes the manual effort and ensures consistent, timestamped documentation that can be referenced in pricing disputes or false advertising claims.
Getting Started
The Snapoena API is available on all paid plans. Generate an API key from your dashboard, make your first capture with curl or your preferred HTTP client, and register a webhook to start receiving results automatically. The API documentation covers authentication, rate limits, response formats, and error handling in detail.
If your evidence workflow still depends on someone remembering to open a browser and press Print Screen, it is time to automate. Machines do not forget, do not skip steps, and do not produce inconsistent results. Your evidence should not either.
Automate your evidence collection
The Snapoena API captures court-ready evidence with one HTTP call. Add webhooks to route evidence to Slack, email, or your case management system - no manual steps required.
Get Your API Key