# citecheck Citation integrity checks for AI agents. Send URLs plus the quote or claim each one is supposed to support. Get back, per URL: alive or dead, archived copy on the Wayback Machine, whether the quote is actually on the page, and (paid stance lane) whether the page supports or contradicts the claim. Composes with any search or research API. Deterministic where possible; an LLM is used only for stance. ## Endpoints POST https://citecheck.citecheck.workers.dev/v1/check/free free, max 3 items, no stance POST https://citecheck.citecheck.workers.dev/v1/check $0.02 per request via MPP (Tempo), max 10 items POST https://citecheck.citecheck.workers.dev/v1/check/stance $0.10 per request via MPP (Tempo), max 10 items, adds stance per claim GET https://citecheck.citecheck.workers.dev/ledger public usage and revenue counters GET https://citecheck.citecheck.workers.dev/health ## Request body {"items":[{"url":"https://...","quote":"verbatim text expected on the page","claim":"the assertion this citation supports"}]} quote and claim are optional. quote drives the drift check; claim drives the stance check (stance lane only). ## Response {"lane":"paid","results":[{"url":"...","status":"live|dead|unreachable|invalid","http_status":200, "archived":{"available":true,"url":"https://web.archive.org/..."}, "quote":{"found":true,"score":1,"snippet":"..."}, "stance":{"stance":"supports|contradicts|unclear","confidence":0.9,"evidence":"..."}, "verdict":"verified|live|drift|contradicted|unclear|dead|invalid","ms":412}]} ## Paying Unpaid requests to paid endpoints return 402 with a WWW-Authenticate: Payment challenge (MPP). With the tempo CLI: tempo request -X POST --json '{"items":[...]}' https://citecheck.citecheck.workers.dev/v1/check