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
GET

/v1/screenshot

Render any URL into a PNG or JPEG.

Parameters

ParameterTypeDefaultDescription
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" />
GET

/v1/og

Generate a 1200×630 Open Graph image from a headline. Perfect for social share cards.

Parameters

ParameterTypeDefaultDescription
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" />
GET

/v1/pdf

Render any URL into a PDF document — great for invoices, reports, receipts, and tickets.

Parameters

ParameterTypeDefaultDescription
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

  1. Add an HTTP Request node.
  2. Method: GET
  3. URL: the endpoint below.
  4. Add a header x-api-key with your key.
  5. 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

  1. Add an action: Webhooks by ZapierGET.
  2. URL: the endpoint below (map fields from your trigger).
  3. Pass the key in the URL as key, or add an x-api-key header.
https://api.snapraven.app/v1/og?title={{title}}&brand=Acme&key=sr_live_xxx

Make (Integromat)

  1. Add the HTTP module → Make a request.
  2. Method: GET, URL: the endpoint below.
  3. Add header x-api-key.
  4. 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.

CodeMeaning
200OK — image returned as binary (png/jpeg).
401Unauthorized — missing or invalid API key.
403Forbidden — URL blocked by content policy or internal host (SSRF).
422Unprocessable — the target URL failed to load.
429Too Many Requests — rate limit exceeded.
500Server 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.

Ready to build?

Get your free API key — 100 requests/month, no credit card.

Get your free API key