AttestPage · Docs · Pricing · OpenAPI · llms.txt

Limits

Last updated: 2026-10-10

Requests

LimitValue
Request body64 KB; 168 KB for receipt/verify and /mcp (413 body_too_large)
URL length2,048 characters, http or https, ports 80 and 443
Quote1,000 characters after normalisation
Quotes per verify/quotes call20
Citations per verify/citations call10
verify/document: document size, pairs per document, pairs per part60,000 bytes; 100 (the rest skipped as beyond_limit); 10
URLs per check/links call10
Citations, quotes, pairs or URLs per free-trial call (verify/citations, verify/quotes, verify/document, check/links)3; a larger batch gets the normal 402 offer (details.reason trial_too_large)
Packages per check/packages call10
Attest note280 characters
Receipt sent to receipt/verify163,840 characters (160 KB; a receipt with every field at its cap is about 128 KB, whatever characters the site's certificate names and headers use)

Fetching

LimitValue
Redirects5, each checked again
Connect timeout5 seconds
Total timeout10 seconds
Body size2 MB as received, 2 MB after decompression
Content typesHTML, XHTML, plain text, JSON
PDFfetch, verify/quote, verify/quotes and verify/citations only. Text layer only, no OCR; the body cap above applies. Up to 1,000 pages and 2,097,152 characters (then signal pdf_truncated). Each PDF gets 5 seconds and 64 MB of buffers plus a 64 MB heap (else pdf_timeout, pdf_over_budget or pdf_out_of_memory, charged like any page we cannot read). 2 PDFs are read at once across all callers, with a queue of 16; then 503 over_capacity (details.reason pdf_queue_full) with Retry-After, not charged
Text returned by fetch20,000 characters (hashes cover the full text)
robots.txtcached up to 1 hour; 5-second timeout

Rates

LimitValue
Per caller IP address60 paid-route requests a minute
verify/citations, verify/quotes and verify/document calls where every citation or quote fails (422, not charged), per caller IP address, counted together6 a minute, counting batches still running; then 429 with details.reason uncharged_failures
verify/citations, verify/quotes and verify/document calls being matched, across all callers, shared2 at once, with a queue of 8; then 503 over_capacity with Retry-After, not charged
Per target host1 request a second and 30 a minute, across all callers
crates.io lookups (check/packages)1 a second across all callers; a call that would wait over 20 seconds gets 429; free trial calls hold at most half of that queue
Whole service8 fetches at once, with a queue of 32
Lightning (L402) invoices, where L402 is on30 unpaid per caller IP address in 10 minutes, 1,000 open in all. An invoice whose request you then pay with x402 does not count

Over a limit you get 429 rate_limited with a Retry-After header, before any payment is asked for. Back off for the time it gives.

What the fetcher does not do

Network

Payments run on Base Sepolia, a test network. See Payments.