Jittator

Screenshots and PDFs for AI agents, paid per call in bitcoin

Send a public URL, or your own HTML or Markdown. Get back a PNG, JPEG or WebP screenshot, or a PDF. Each request carries its own payment: no account, no API key, no prepaid balance, no subscription.

Prices

RouteWhat it doesSats per call
/v1/screenshotScreenshot of a public URL (viewport)20
/v1/screenshot/fullFull-page screenshot of a public URL30
/v1/pdfPublic URL to PDF30
/v1/render/screenshotScreenshot of HTML or Markdown you send (viewport)20
/v1/render/screenshot/fullFull-page screenshot of HTML or Markdown you send30
/v1/render/pdfHTML or Markdown you send, to PDF30
/healthzService statusfree

All routes are on https://api.jittator.com. Prices are fixed in sats, per call. Lightning routing fees are paid by the payer's wallet. Cashu tokens from coinos or macadamia cost the price plus that mint's swap fee (21 or 31 sats in practice); see the docs.

How paying works

Make the request. It is checked for free first: a bad parameter, a private address or a page blocked by robots.txt gets an error and no invoice. If the request is valid and carries no payment, the API answers 402 Payment Required and offers two ways to pay in the same response:

If a paid call fails while rendering, the gateway makes up for it once: an L402 proof is accepted for one more try within the hour, and a Cashu payment comes back as a refund token in X-Cashu-Refund. See failures after payment.

MPP charge and x402 over Lightning are planned.

Example: L402 with curl

# 1. Ask. The answer is 402 with an L402 challenge.
curl -i "https://api.jittator.com/v1/screenshot?url=https://example.com"
#   HTTP/2 402
#   www-authenticate: L402 macaroon="AGIAJEem...", invoice="lnbc200n1..."

# 2. Pay the invoice with any Lightning wallet and note the preimage (hex).

# 3. Repeat the request with the macaroon and preimage.
curl -o shot.png \
  -H "Authorization: L402 AGIAJEem...:6f1c...preimage-hex" \
  "https://api.jittator.com/v1/screenshot?url=https://example.com"

Example: L402 with lnget

# lnget pays the invoice from your configured node and retries for you.
lnget --max-cost 30 -o page.pdf "https://api.jittator.com/v1/pdf?url=https://example.com"

Example: Cashu

# 1. Ask. The 402 answer carries an X-Cashu payment request (creqA...)
#    with the amount, the unit (sat) and the accepted mint URLs.
curl -i "https://api.jittator.com/v1/screenshot?url=https://example.com"

# 2. Make a 20 sat token from one of the listed mints with your Cashu wallet,
#    for example the Nutshell CLI: cashu send 20
#    (at coinos or macadamia, include the mint's fee: cashu send -f 20)

# 3. Repeat the request with the token.
curl -o shot.png \
  -H "X-Cashu: cashuB..." \
  "https://api.jittator.com/v1/screenshot?url=https://example.com"

Example: render your own HTML

curl -o note.pdf \
  -H "Authorization: L402 <macaroon>:<preimage>" \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# Hello\n\nRendered by Jittator.", "paper": "a4"}' \
  https://api.jittator.com/v1/render/pdf

Rules

Full terms: terms of service, acceptable use, privacy.

For agents