Docs

Documentation

One Bearer key, three render endpoints. First request renders in real Chromium and caches the bytes; repeats come from cache.

01

Quickstart

1. Get a key. Sign in with Google at astraeatech.dev, then mint a key on your profile (up to 10, revocable anytime).

2. Make a request.

terminal
curl -H "Authorization: Bearer $SHOTPDF_KEY" \
  "https://shotpdf.astraeatech.dev/v1/screenshot?url=https://example.com&width=1200&format=png" \
  -o shot.png

3. Check usage. GET /v1/usage?days=30 reports your key's metered totals and is never metered itself.

02

Guides

Guide
What it covers
GET /v1/screenshot — viewport, full page, PNG/JPEG, caching.
GET + POST /v1/pdf — URL or inline HTML, paper size, margins.
GET /v1/og — 1200×630 images from a title or a URL.
03

API reference

The full machine-readable surface is published as OpenAPI 3.0 JSON — import it into RapidAPI, Postman, or any OpenAPI tooling to explore every parameter, default, and error code.

04

Authentication

Every /v1/* endpoint takes Authorization: Bearer sk_live_… (only /healthz is public). A missing or revoked key returns 401 invalid_api_key with a JSON error body.

05

Quotas and errors

Free allows 1,000 metered requests per month; Pro allows 50,000. Past the quota the API returns HTTP 429 until the monthly reset — see pricing. Error responses share one JSON envelope: {"error": {"code": "…", "message": "…"}}.

06

Comparisons

Evaluating render APIs? shotpdf vs ScreenshotOne · shotpdf vs urlbox