# Jittator > Pay-per-call screenshot and PDF API for AI agents at https://api.jittator.com. Send a public URL, or your own HTML or Markdown, and get back a PNG, JPEG or WebP screenshot or a PDF. Paid in bitcoin on every request: no account, no API key, no prepaid balance, no subscription. Every request is checked for free first; a valid unpaid request gets HTTP 402 with an L402 (Lightning) challenge and a Cashu NUT-24 payment request; pay one and repeat the request. Prices in sats per call: - GET or POST /v1/screenshot (viewport screenshot of a URL): 20 - GET or POST /v1/screenshot/full (full-page screenshot of a URL, up to 8000 px tall): 30 - GET or POST /v1/pdf (URL to PDF, first 50 pages): 30 - POST /v1/render/screenshot (screenshot of HTML or Markdown you send): 20 - POST /v1/render/screenshot/full (full-page screenshot of HTML or Markdown): 30 - POST /v1/render/pdf (HTML or Markdown to PDF): 30 - GET /healthz (status): free - GET /.well-known/l402-services (routes, prices, mints and their fees as JSON): free Payment rails: - L402: the 402 has `WWW-Authenticate: L402 macaroon="...", invoice="..."`. Pay the invoice, retry with `Authorization: L402 :`. Invoice and macaroon expire after 1 hour; the macaroon is bound to the route and method and pays one call. Works with Lightning Labs' lnget. - Cashu NUT-24: the 402 has an `X-Cashu` NUT-18 payment request (`creqA...`) with the amount, unit sat and accepted mints. Retry with a `cashuB...` token in the `X-Cashu` header. At list price: https://mint.minibits.cash/Bitcoin, https://21mint.me, https://mint.routstr.com, https://forge.flashapp.me, https://mint.cashu.chat. With the mint's swap fee added (21 / 31 sats in practice; send with "include fees"): https://mint.coinos.io, https://mint.macadamia.cash. A token that falls short gets 400 with an `X-Cashu-Error` header saying by how much, and is not spent. No change is returned on overpayment. - MPP charge and x402 over Lightning: planned, not offered yet. Free validation: parameters, URL, DNS, public address, robots.txt and queue are checked before any 402, so an invalid request gets its 4xx error and no invoice, and a proof sent with it is not used. If a paid call fails while rendering (422 or 5xx): L402 gets `X-L402-Retry: allowed` and the same proof works once more on the same route and method within the hour; Cashu gets a refund token for the price in `X-Cashu-Refund` (redeem it promptly, do not log it). At most one retry or refund per payment and 10 per IP per hour. Limits: 429 `rate_limited` with Retry-After when exceeded (unpaid requests 20 per minute per IP; requests with a proof 120 per minute per IP). Screenshots time out after 20 s, PDFs after 40 s. `503 busy` and `503 payment_backend_error` carry Retry-After. Rules: public http/https pages only; no logins, cookies or credentials; robots.txt honoured (user agent `JittatorBot/0.1 (+https://jittator.com/bot)`); no CAPTCHA or anti-bot bypass; private and internal addresses refused, including through redirects; error pages are returned as JSON errors, never as results; results returned only to the caller and not stored. ## Docs - [Agent skill](https://jittator.com/skill.md): step-by-step calling and 402 handling for agents - [API reference](https://jittator.com/docs): parameters, limits, errors, payment flows, failures after payment - [OpenAPI 3.1](https://jittator.com/openapi.yaml): machine-readable description of every route - [Status](https://api.jittator.com/healthz): free health check with current queue length - [Payment discovery](https://api.jittator.com/.well-known/l402-services): free JSON with routes, prices and accepted mints ## Policies - [Terms of service](https://jittator.com/terms) - [Acceptable use](https://jittator.com/acceptable-use) - [Privacy](https://jittator.com/privacy) - [JittatorBot](https://jittator.com/bot): what the bot does and how to block it - [Contact and abuse reports](https://jittator.com/contact) ## Optional - [Home](https://jittator.com/): overview and examples - [NUT-24 specification](https://github.com/cashubtc/nuts/blob/main/24.md): Cashu payments over HTTP 402 - [lnget](https://github.com/lightninglabs/lnget): command-line HTTP client that pays L402 challenges