Document-rendering API · live

Turn any URL into a screenshot, a PDF, & a social card.

proofito renders any URL or HTML into a PNG/JPEG screenshot, a print-ready PDF, or a 1200×630 OG image. One integration, three outputs, byte-cached for speed. Try it — type a URL:

render preview — runs in your browser, no key needed
PNG screenshot● done
your-site.com
PDF document● done
Invoice — your-site.com
print-ready · A4
OG image 1200×630● done
proofito · og:image
Your page, as a social card.
1200 × 630 · JPEG

◈ Mock preview for illustration — the real API returns actual rendered bytes with X-Cache: HIT/MISS headers.

One curl. Three artifacts.

Authenticate with a sk_live_ key, pick an endpoint, get bytes back. Free tier needs no card.

Read the docs
terminal
# screenshot any URL
curl -H "Authorization: Bearer sk_live_..." \
  "https://proofito.astraeatech.dev/v1/screenshot?url=https://example.com" \
  -o shot.png
01

One call, three artifacts.

Every render runs in real Chromium — never a headless approximation. Pick the output you need; the input stays the same URL or HTML.

/01Capture

PNG or JPEG screenshots of any URL. Full-page, element, or viewport captures with device emulation.

  • GET /v1/screenshot
  • width · format · fullPage
  • X-Cache: HIT on repeats

/02Compose

Print-ready PDFs from a URL or from inline HTML you POST directly. Invoices, reports, exports.

  • GET /v1/pdf — from a URL
  • POST /v1/pdf — HTML, max 256 KB
  • CSS print semantics honored

/03Socialize

OG images that get clicked. 1200×630 JPEG social cards generated from a URL or just a title.

  • GET /v1/og
  • from a URL or a title
  • 1200×630, every time
02

From URL to bytes in four steps.

No SDK to install, no browser to babysit. The pipeline is the product.

Step 01

Send it

GET a URL or POST raw HTML. Authenticate with your sk_live_ key.

→
Step 02

We render

Real Chromium loads the page — fonts, JS, and all — exactly like your visitors see it.

→
Step 03

Cache checks

Content-hashed byte cache. Identical input returns instantly with X-Cache: HIT.

→
Step 04

You ship

Bytes back in milliseconds. Embed them, attach them, serve them — done.

03

The spec sheet.

Six endpoints. One auth model. Metering per key, never per seat.

Endpoint
What it does
GET /healthz
Liveness probe. No auth.
GET /v1/screenshot
PNG/JPEG screenshot of a URL. Auth, metered.
GET /v1/pdf
PDF of a URL. Auth, metered.
POST /v1/pdf
PDF of inline HTML (JSON body, max 256 KB). Auth, metered.
GET /v1/og
1200×630 JPEG social image, from a URL or a title. Auth, metered.
GET /v1/usage
Your key's usage totals. Auth, never metered.

Authenticated endpoints take an Authorization: Bearer sk_live_… header. See pricing for quotas.

04

Start free. Scale when it works.

Prove it works before you pay. 1,000 requests a month, every endpoint included.

Free
$0/month
  • 1,000 requests/month
  • All endpoints included
  • No card required
See plans
Most picked Pro
$49/month
  • 50,000 requests/month
  • Email support
  • Same simple API
Go Pro
05

How it stacks up.

Screenshot APIs exist. Most of them charge $99–259/month for the same three outputs — or make you run the browser yourself.

proofitoLegacy APIsSelf-hosted
Screenshots + PDFs + OG images✓ one integration✓ often split across plans✗ you wire it up
Real Chromium rendering✓✓✗ your ops problem
Byte-level render cache✓ content-hashed✗ rare✗ build it
Free tier, no card✓ 1,000 req/mo✗ usually card-first—
Entry paid price$49/mo$99–259/moyour infra bill
06

Asked a lot.

Short answers to the questions every developer asks before integrating.

Do I need a credit card for the free tier? +
No. Sign in with Google, mint a sk_live_ key, and you get 1,000 requests a month. The card only appears if you choose Pro.
What counts as a request? +
One rendered artifact — one screenshot, one PDF, or one OG image. Cache hits count the same as misses; the quota is per key, per calendar month.
How does the cache work? +
Renders are hashed by input content. Repeat the exact same request and you get byte-identical output in milliseconds, flagged with X-Cache: HIT.
Can I render private pages behind a login? +
Yes — POST your own HTML directly to /v1/pdf, or render any public URL with /v1/screenshot and /v1/og.
What happens if I exceed my quota? +
Requests return a quota error instead of silently billing you. Upgrade to Pro for 50,000 requests a month whenever you're ready.

Ship your first render today.

Free tier, no card, live in about a minute. Your sk_live_ key is waiting.