Scheduled & recurring captures

Scheduled Website Captures
& Visual Monitoring

Screenshot any URL on a schedule. Detect changes. Archive evidence. Built for compliance, monitoring, and competitive intelligence.

No credit card required — 500 free screenshots/month

Manual screenshots don't scale

If any of these sound familiar, you need a screenshot API in your workflow.

No proof of what was displayed

You need evidence that a website showed specific content on a specific date. But by the time you realize you need it, the page has already changed.

Manual screenshots don't scale

Opening a browser and hitting Print Screen works for 3 URLs. It completely falls apart when you need to monitor 50, 500, or 5,000 pages regularly.

Self-hosted Puppeteer breaks silently

Your cron job plus self-managed Chromium crashes at 3 AM and nobody notices for days. Memory leaks, zombie processes, and stale browser contexts pile up.

No audit trail

Without proper timestamps and metadata on every capture, your screenshots have no evidentiary weight. An undated PNG proves nothing.

The reliable rendering engine for your scheduler

You bring the schedule. SnapRender handles the screenshot. Every capture is timestamped and delivered as a high-fidelity image.

1

Your scheduler fires

Cron, Task Scheduler, AWS Lambda, GitHub Actions — anything that can trigger an HTTP request.

2

SnapRender captures

Real Chromium renders the page, blocks ads and cookie banners, and returns a timestamped screenshot.

3

You store the result

Save the image to S3, your database, or local storage — tagged with the URL, timestamp, and any metadata you need.

4

Compare over time

Build dashboards, run visual diffs, or simply archive captures as evidence. The data is yours.

crontab -e
# Capture competitor pricing page every day at 8:00 AM
0 8 * * * curl -s "https://app.snap-render.com/v1/screenshot\
  ?url=https://competitor.com/pricing\
  &format=png&full_page=true&cache=false" \
  -H "X-API-Key: sk_live_your_key_here" \
  --output "/captures/competitor-pricing-$(date +\%Y\%m\%d).png"

A single cron line. That's it. SnapRender handles the rendering reliably, every time.

Built for monitoring teams

Every feature you need for reliable, recurring website captures.

Timestamped captures

Every response includes the capture timestamp in HTTP headers. Pair with your file naming convention for a complete audit trail.

Full-page mode

Capture the entire scrollable page, not just the viewport. Essential for archiving complete terms of service, pricing tables, and long-form content.

Cache control

Set cache=false to force a fresh render on every call. Critical for monitoring workflows where you need the current state, not a cached version.

Ad & cookie blocking

Automatically strip ads, cookie consent banners, and GDPR dialogs. Your archived screenshots show the actual content, not obstructing overlays.

Multiple formats

PNG for pixel-perfect archives, JPEG/WebP for space-efficient storage, PDF for print-ready compliance records. Choose per capture.

SSRF protected

Enterprise-grade URL validation blocks private IPs, localhost, and cloud metadata endpoints. Safe to expose in automated pipelines without security risk.

Use cases

From legal compliance to competitive intelligence — here's how teams use scheduled captures.

Legal compliance

Prove that terms of service, disclaimers, or disclosures were displayed on a specific date. Timestamped full-page captures serve as dated evidence.

Competitive monitoring

Track competitor pricing pages, feature announcements, and landing page changes daily. Spot updates the moment they happen with visual before/after records.

Brand protection

Screenshot pages that may be using your brand, logos, or trademarks without authorization. Build a visual evidence archive for enforcement actions.

SEO monitoring

Capture search engine results pages for your target keywords on a schedule. Maintain a visual record of ranking positions and SERP feature changes over time.

Regulatory compliance

Prove advertising compliance by capturing your own pages at regular intervals. Demonstrate to regulators exactly what customers saw and when they saw it.

Change detection

Capture the same page at regular intervals and compare images programmatically. Detect visual changes, layout shifts, or content updates automatically.

Integrated across the developer ecosystem

4

Output formats

5

Device presets

<3s

Avg render time

30d

Max cache TTL

Quick integration

Real code examples for a daily competitor monitoring workflow.

cURL + cron Linux / macOS
# crontab -e
# Run daily at 8:00 AM UTC — capture full page, always fresh
0 8 * * * curl -s "https://app.snap-render.com/v1/screenshot\
?url=https://competitor.com/pricing\
&format=png&full_page=true&cache=false" \
  -H "X-API-Key: sk_live_your_key_here" \
  --output "/data/captures/competitor-pricing-$(date +\%Y\%m\%d-\%H\%M).png"
Node.js
import { SnapRender } from 'snaprender';
import fs from 'fs';

const snap = new SnapRender('sk_live_your_key_here');

// Called by your scheduler (cron, node-cron, AWS EventBridge, etc.)
async function captureCompetitorPricing() {
  const timestamp = new Date().toISOString().slice(0, 10);

  const buffer = await snap.capture('https://competitor.com/pricing', {
    format: 'png',
    full_page: true,
    cache: false,       // Always get a fresh render
    block_ads: true,
    block_cookie_banners: true,
  });

  const filename = `competitor-pricing-${timestamp}.png`;
  fs.writeFileSync(`./captures/${filename}`, buffer);
  console.log(`Captured: ${filename} (${buffer.length} bytes)`);
}

captureCompetitorPricing();
Python
from snaprender import SnapRender
from datetime import datetime
from pathlib import Path

snap = SnapRender("sk_live_your_key_here")

# Called by your scheduler (cron, APScheduler, Celery Beat, etc.)
def capture_competitor_pricing():
    timestamp = datetime.now().strftime("%Y%m%d-%H%M")

    data = snap.capture(
        "https://competitor.com/pricing",
        format="png",
        full_page=True,
        cache=False,              # Always get a fresh render
        block_ads=True,
        block_cookie_banners=True,
    )

    path = Path(f"./captures/competitor-pricing-{timestamp}.png")
    path.write_bytes(data)
    print(f"Captured: {path.name} ({len(data)} bytes)")

capture_competitor_pricing()

How it works

Your scheduler handles the timing. SnapRender handles the rendering. You own the data.

1

Set up a cron job or scheduler

Use cron on Linux/macOS, Task Scheduler on Windows, AWS Lambda with EventBridge, GitHub Actions on a schedule, or any tool that can trigger an HTTP request at a set interval. You control the timing entirely.

2

Call the SnapRender API on each tick

Each scheduled run makes a single API call with your target URL. Set cache=false for always-fresh captures and full_page=true for complete page archives. SnapRender renders the page in a managed Chromium instance and returns the image.

3

Store the screenshot with timestamp

Save each capture to your preferred storage — S3, Google Cloud Storage, a local directory, or a database. Name files with the date and URL for easy retrieval. The API response headers include the exact capture time.

4

Compare captures over time

Build dashboards to view historical captures side by side. Use image comparison libraries to detect visual changes. Generate reports showing exactly what changed and when. The images are yours — analyze them however you need.

Simple pricing for scheduled captures

Every plan includes all features. Pick the volume that fits your monitoring workload. Start free with 500 captures/month.

Most popular

Growth

$29/mo

10,000 screenshots/mo

~333 URLs daily or ~14 URLs/hour

  • All features included
  • 60 req/min burst
  • Full-page & cache control
Start capturing

Business

$79/mo

50,000 screenshots/mo

~1,667 URLs daily or ~69 URLs/hour

  • All features included
  • 120 req/min burst
  • Priority rendering
Subscribe

Scale

$199/mo

200,000 screenshots/mo

~6,667 URLs daily or ~278 URLs/hour

  • All features included
  • 300 req/min burst
  • Enterprise-grade throughput
Subscribe

Free tier: 500 screenshots/month with all features. See all plans

Start capturing websites on schedule

Sign up in 30 seconds. Get your API key. Wire it into your scheduler. First capture in under 5 minutes.

Create free account

No credit card required — 500 free screenshots/month