Screenshot & PDF API
for Developers

Convert any URL to a pixel-perfect screenshot or PDF in a single API call. No browser needed.

Try Live Demo View Docs
# Screenshot any URL
curl "https://urlsnap.dev/api/screenshot?url=https://example.com" \
  -H "x-api-key: YOUR_KEY" --output screenshot.png

# Or generate a PDF
curl "https://urlsnap.dev/api/pdf?url=https://example.com" \
  -H "x-api-key: YOUR_KEY" --output page.pdf
# pip install requests
import requests

r = requests.get(
  "https://urlsnap.dev/api/screenshot",
  params={"url": "https://example.com"},
  headers={"x-api-key": "YOUR_KEY"}
)
open("screenshot.png", "wb").write(r.content)
// Node.js (built-in fetch, v18+)
const res = await fetch(
  `https://urlsnap.dev/api/screenshot?url=https://example.com`,
  { headers: { "x-api-key": "YOUR_KEY" } }
);
const buf = await res.arrayBuffer();
fs.writeFileSync("screenshot.png", Buffer.from(buf));
// PHP
$ctx = stream_context_create(['http' => [
  'header' => "x-api-key: YOUR_KEY\r\n"
]]);
$img = file_get_contents(
  "https://urlsnap.dev/api/screenshot?url=https://example.com", false, $ctx
);
file_put_contents("screenshot.png", $img);

Try it live — no signup needed

Enter any public URL. Results appear instantly. Try: example.com, github.com
Screenshot preview

Like what you see? Get your free API key →

🛍️

Running a Shopify store?

Get automated weekly screenshots of your store delivered every Monday — no API needed.

See how it works →

Everything you need

📸

Screenshots

Full-page or viewport screenshots. PNG or JPEG. Custom width & height. Delay support for JS-heavy pages.

📄

PDF Generation

Convert URLs or raw HTML to PDF. A4, Letter, and more. Custom margins, landscape mode.

📝

Web → Markdown New

Extract clean markdown or text from any URL. Full JS rendering — works on SPAs. Great for RAG pipelines & AI agents. Docs →

Fast & Reliable

Headless Chromium under the hood. Real browser rendering. No layout surprises.

🔑

Simple Auth

Just pass your API key as a header. No OAuth, no complex setup. Works with curl, fetch, anything.

📊

Usage Tracking

See your daily and total request counts via the /api/me endpoint. Know exactly where you stand.

🆓

Free Tier

20 requests/day free forever. No credit card required to get started.

Who uses URLSnap?

🖥️

Website Monitoring

Capture visual snapshots of your pages on a schedule to detect regressions and layout breaks.

📰

Link Previews

Generate OG-style thumbnails for shared URLs in your app, dashboard, or browser extension.

📑

Invoice & Report PDFs

Render HTML templates server-side and produce pixel-perfect PDFs for billing or exports.

🤖

LLM & RAG Pipelines

Feed clean markdown to your AI agents and RAG systems. Token estimates included — no parsing required.

🧪

UI Testing

Visual regression testing — diff screenshots across deploys to catch unintended UI changes.

📤

Social Media Tools

Auto-generate preview images for tweets, newsletters, and marketing campaigns from URLs.

Simple pricing

Free

$0/mo
  • 20 requests/day
  • Screenshots & PDFs
  • PNG & JPEG output
  • Community support
Get Started

Pro

$29/mo
  • 5,000 requests/day
  • Screenshots, PDFs & Extract
  • Web → Markdown extract
  • Priority support
  • SLA guarantee
Get Started

Quick Reference

# GET /api/screenshot
?url=https://example.com # required
?width=1280 # viewport width (default: 1280)
?height=800 # viewport height (default: 800)
?format=png # png or jpeg
?full_page=true # full page screenshot
?delay=1000 # wait ms before capture

# GET /api/pdf
?url=https://example.com # required
?format=A4 # A4, Letter, A3...
?landscape=false # landscape mode

# POST /api/pdf (HTML to PDF)
Content-Type: application/json
{"html": "<h1>Hello</h1>", "format": "A4"}

# GET /api/me (check usage)
Returns: plan, requests_today, daily_limit, requests_total

Get your free API key

No credit card required. 20 requests/day free forever.

Upgrade Plan

Enter your email to continue to secure checkout.

🔒 Secure checkout via Stripe. No card stored here.

Frequently asked questions

Do I need a credit card to start?
No. The free tier (20 req/day) requires only your email address. You only need payment info when upgrading to Starter or Pro.
What counts as one request?
Each call to /api/screenshot or /api/pdf counts as one request. Calls to /api/me are free and don't count against your limit.
Do daily limits reset at midnight?
Yes — limits reset at midnight UTC every day. Unused requests do not roll over.
Can I capture pages that require JavaScript?
Yes. URLSnap uses headless Chromium (a real browser), so JavaScript, SPAs, and dynamic content all render correctly. Use the ?delay parameter to wait for animations or async data to load.
Is there a rate limit beyond the daily cap?
There's a soft concurrency limit to keep the service stable for all users. For burst-heavy workloads, the Pro plan is recommended. Contact us if you need custom limits.
Can I cancel my subscription anytime?
Absolutely. Subscriptions are managed via Stripe. You can cancel at any time and keep access until the end of the billing period.
I have a question not listed here.
Email us at support@urlsnap.dev — we typically reply within a few hours.