Documentation
Snapraven API
Capture screenshots and generate Open Graph images with a single HTTP request.
Introduction
The Snapraven API has two endpoints — /v1/screenshot
and /v1/og.
Both return a binary image (PNG or JPEG). Everything is configured with simple query parameters, so you can use it from
any language — or even directly in an <img> tag.
Base URL:
https://api.snapraven.app/v1 Authentication
Every request needs your API key (get one free in the dashboard).
Send it as an x-api-key header,
or as a key query parameter
(handy for embedding directly in HTML).
# Header (recommended)
curl -H "x-api-key: sr_live_xxx" "https://api.snapraven.app/v1/screenshot?url=https://stripe.com"
# Query parameter (for <img> / <meta> tags)
https://api.snapraven.app/v1/screenshot?url=https://stripe.com&key=sr_live_xxx Quickstart
Capture your first screenshot in one request:
curl -H "x-api-key: sr_live_xxx" \
"https://api.snapraven.app/v1/screenshot?url=https://stripe.com&fullPage=true" \
--output screenshot.png /v1/screenshot
Render any URL into a PNG or JPEG.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | The page to capture. Must include http:// or https://. |
| width | integer | 1280 | Viewport width in pixels (100–3840). |
| height | integer | 800 | Viewport height in pixels (100–3840). |
| fullPage | boolean | false | Capture the entire scrollable page. |
| blockAds | boolean | false | Block ads & trackers for a clean screenshot. |
| format | string | png | Output format: png or jpeg. |
Examples
cURL — clean screenshot (ads blocked)
curl -H "x-api-key: sr_live_xxx" \
"https://api.snapraven.app/v1/screenshot?url=https://cnn.com&blockAds=true&format=jpeg" \
--output clean.jpg JavaScript / Node
const res = await fetch(
"https://api.snapraven.app/v1/screenshot?url=https://stripe.com&blockAds=true",
{ headers: { "x-api-key": process.env.SNAPRAVEN_KEY } }
);
const png = Buffer.from(await res.arrayBuffer()); Python
import requests
r = requests.get(
"https://api.snapraven.app/v1/screenshot",
params={"url": "https://stripe.com", "blockAds": "true"},
headers={"x-api-key": KEY},
)
open("shot.png", "wb").write(r.content) Embed directly in HTML
<img src="https://api.snapraven.app/v1/screenshot?url=https://stripe.com&blockAds=true&key=sr_live_xxx" /> /v1/og
Generate a 1200×630 Open Graph image from a headline. Perfect for social share cards.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| title | string | required | The main headline on the image. |
| subtitle | string | — | Optional secondary line. |
| brand | string | — | Brand name shown at the bottom. |
| theme | string | dark | light or dark. |
| accent | string | #4f46e5 | Accent color (hex). |
Use it as your og:image
Drop this in your page <head> and a fresh card is generated per page:
<meta property="og:image"
content="https://api.snapraven.app/v1/og?title=Hello+World&subtitle=from+my+blog&brand=Acme&key=sr_live_xxx" /> /v1/pdf
Render any URL into a PDF document — great for invoices, reports, receipts, and tickets.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | The page to render. Must include http:// or https://. |
| format | string | A4 | Page size: A4, Letter, Legal, or A3. |
| landscape | boolean | false | Landscape orientation. |
| printBackground | boolean | true | Include background graphics. |
Example
curl -H "x-api-key: sr_live_xxx" \
"https://api.snapraven.app/v1/pdf?url=https://example.com&format=A4&landscape=false" \
--output document.pdf No-code integrations
Snapraven is a plain HTTP API, so it works in any automation tool with an HTTP step — no code, no plugin to install. Just point it at the endpoint and pass your API key.
n8n
- Add an HTTP Request node.
- Method:
GET - URL: the endpoint below.
- Add a header
x-api-keywith your key. - Set Response → Format to File to receive the image/PDF binary.
GET https://api.snapraven.app/v1/screenshot?url={{ $json.url }}&fullPage=true
Header: x-api-key = sr_live_xxx Zapier
- Add an action: Webhooks by Zapier → GET.
- URL: the endpoint below (map fields from your trigger).
- Pass the key in the URL as
key, or add anx-api-keyheader.
https://api.snapraven.app/v1/og?title={{title}}&brand=Acme&key=sr_live_xxx Make (Integromat)
- Add the HTTP module → Make a request.
- Method:
GET, URL: the endpoint below. - Add header
x-api-key. - The response is a binary file you can pass to the next module (upload, email, store).
GET https://api.snapraven.app/v1/pdf?url={{1.url}}&format=A4
Header: x-api-key = sr_live_xxx Tip: prefer the x-api-key header over the
key query parameter when your tool supports headers — it keeps your key out of logs and URLs.
Caching
Identical requests are served from cache — faster, and they don't re-render. Check the
X-Cache response header:
HIT or
MISS.
Rate limits
Requests are rate-limited per API key. If you exceed the limit you'll get a
429 Too Many Requests —
back off and retry. Higher plans get higher limits.
Errors
The API uses standard HTTP status codes.
| Code | Meaning |
|---|---|
| 200 | OK — image returned as binary (png/jpeg). |
| 401 | Unauthorized — missing or invalid API key. |
| 403 | Forbidden — URL blocked by content policy or internal host (SSRF). |
| 422 | Unprocessable — the target URL failed to load. |
| 429 | Too Many Requests — rate limit exceeded. |
| 500 | Server error — something went wrong on our side. |
Acceptable use
Adult and unsafe domains are blocked by default, and requests to internal/private hosts are rejected for security. You are responsible for having the rights to capture any URL you submit. See our Acceptable Use Policy for details.