Documentation
Eight paid doors, ten MCP tools, two ways to pay, and a receipt you can check without asking us.
Doors
POST https://factstamp.agentrails.workers.dev/entity— verify a legal entity: found, ambiguous, not_found or unknown, cited to GLEIF, SEC EDGAR and the Australian Business Register (ABN Lookup).POST https://factstamp.agentrails.workers.dev/citation— verify a citation from a DOI, an arXiv ID or a title: verified, mismatch, ambiguous, retracted, not_found or unknown, cited to Crossref and arXiv. Send what your document claims and each field is compared one by one.POST https://factstamp.agentrails.workers.dev/package— verify a dependency version: verified, advisory, yanked, not_found or unknown, cited to the registry and OSV. An invented version returns the real versions nearest it; an invented name returns the published names that look like it.POST https://factstamp.agentrails.workers.dev/check— check a dated figure claim: verified, stale, contradicted or unknown, cited to the publisher's own series.POST https://factstamp.agentrails.workers.dev/mcpandGET https://factstamp.agentrails.workers.dev/mcp— the MCP door (streamable HTTP). An unpaid probe is answered with the price challenge rather than an error.- Free:
GET https://factstamp.agentrails.workers.dev/health,GET https://factstamp.agentrails.workers.dev/series.json,GET https://factstamp.agentrails.workers.dev/llms.txt,GET https://factstamp.agentrails.workers.dev/SKILL.md,GET https://factstamp.agentrails.workers.dev/samples.
Tools over MCP
Eight paid tools and two free ones. Prices are per unit, not per bundle.
check_figure(paid, US$0.05 a claim) — a dated figure claim in; a cited verdict out.check_entity(paid, US$0.05 a claim) — a company name, LEI or CIK in; identity, jurisdiction and registration status out.verify_citation(paid, US$0.02 a claim) — a DOI, an arXiv ID or a title in; existence, details and retraction status out.verify_package(paid, US$0.02 a claim) — a package and version with its ecosystem in; existence, yanked or deprecated, and OSV advisories out.verify_bulk(paid, 1 cent an item at US$0.12 for up to 12) — a whole bibliography or dependency manifest in one call.watch_add(paid, 1.7 cents a check at US$0.50 for 30 days) — watch one citation or one package version instead of checking it once.watch_portfolio(paid, US$0.20 a reference for 30 days, about 0.67 of a cent a check) — watch up to 25 references with one token.check_document(paid, 5 cents a claim) — a document in; its checkable claims out, each receipted.preview: trueis free.list_series(free) — what is covered, and by which publisher.route_claim(free) — which series a claim would route to, with no verdict.
Paying
- Per call: x402 on Base, in USDC, settled by the facilitator: US$0.05 for the
figure and entity doors, US$0.02 for the citation and package lookups. An unpaid call
returns HTTP 402 with the payment challenge in the
payment-requiredheader. Both x402 dialects are accepted: send the payment onX-PAYMENTor onPAYMENT-SIGNATUREand the answer comes back either way. - Prepaid packs: buy a balance by card at https://factstamp.agentrails.workers.dev/packs and send it as
authorization: Bearer <pack code>. Pack codes are stored as hashes only.
Why five cents — and two — and what the receipt is for
We are not the cheapest, and we are not trying to be. Of 158 priced listings in the x402 catalogue on 30 September 2026, 123 asked a cent or less, and two services sell a citation lookup and a package lookup for half a cent. We could meet that price tomorrow. We do not, because at half a cent the only thing worth selling is the lookup itself, and a lookup is a commodity that gets cheaper every month. What does not get cheaper is proof.
Two prices, one rule. Five cents for the doors where the answer is a judgement about a dated or legal record (a figure claim, an entity's registration). Two cents for the lookups that read a free public register (a citation, a package version), because those are closer to a commodity and we price them like one — while still not at the half-cent floor, since even those answers carry the receipt.
Every paid answer arrives with a signed receipt: an Ed25519 signature over the question, the verdict, the citations relied on and the time. The public key is published, so the receipt can be checked offline by someone who was not here and does not have to trust us.
That is what the price buys. A cheaper lookup returns a word. This returns a word and a record of how it was reached — which is the part that survives an audit, a hand-off to a colleague, or a dispute eighteen months later. It is also how a team can prove, without asking anyone, that a citation or a dependency was checked before it was relied on.
We were measured against the half-cent alternatives on ten hard cases on 30 September 2026, paying their live price to do it. On that set they reported a retracted paper as clean, and a version that was never published as existing. We did not. On an invented package name we also return the published names that look like it, because that is how a slopsquat gets caught before it is installed. The lookup itself is not where we are ten times better; the traceability is.
A whole list, watched
The same standing check, applied to a list instead of an item: up to 25 references for US$5 over 30 days — 20 cents a reference, under a cent a check, and every reference is answered and signed the moment the portfolio is bought. A single watch bought on its own is 50 cents, so the list is cheaper per reference and we will say the arithmetic out loud rather than hide it behind a bundle price. On the pack rail it is charged by the reference — four credits each — so an unused reference is never paid for. One token reads the whole portfolio, and one change on any reference is reported with its own receipt.
A whole document, stamped
There is a page for this you can use in a browser: GET /document is a paste
box. Paste a paragraph and it shows the claims and the exact price, free, with nothing charged and no
account. It is the same preview the API returns, rendered for a human.
POST /document (MCP: check_document) takes a document and we find the claims inside it that can actually be checked against a primary
source — a dated figure, an ABN, a DOI, a pinned package version — then answer each one with the
same door that answers a single call. You get the sentences, the verdicts, a signed receipt for
every claim, and one receipt over the document. Extraction is mechanical: no model
reads your text, so the list of claims is reproducible from the document alone and the count is a
number you can check yourself. Priced as the checks it contains, at the same rate as calling each
door on its own — 5 cents a figure or entity claim on an answer pack, 2 cents a citation or
package claim on a lookup pack — with no bundle premium, up to 25 claims a document. A claim we could not answer is not
charged for, and the preview is free: send the document with "preview": true and
you get the claim list and the exact price before a cent moves. The claim count is the bill, and a
bill you cannot recompute is not a receipt.
Keeping it answered: a watch
A receipt records one answer at one time. A watch keeps asking. For US$0.50 it re-checks one citation or one package version every day for 30 days — 1.7 cents a check, less than a single lookup costs per call — and the moment the answer changes (the paper is retracted, a new advisory lands, the version is yanked) that change is recorded with its own signed receipt, so a change found today is still provable in a year. Give us an https URL at purchase and each change is POSTed to it; otherwise read the watch with the token you were given. A watch says nothing when nothing changed, because a service that notifies you daily is a service you stop reading.
A whole list at once
A bibliography or a dependency manifest is checked in one call rather than twenty-five:
POST https://factstamp.agentrails.workers.dev/bulk takes items[] (or citations[] and
packages[] shorthand), up to 25 entries: one answer-pack credit per three items, or
one credit an entry on a lookup pack. The per-call rail buys the same work through the MCP tool
with a 12-item cap at 1 cent an item, against 2 cents for the same lookup one at a
time. Every entry is answered by the same door that answers a single call, so the verdicts cannot
disagree, and one signed receipt covers the list.
Two ladders, because there are two prices
Prepaying comes in two ladders on the card rail, one for each price tier. Answer packs ($10 / $50 / $200) cover the figure, entity and watch doors: an answer pack's credit buys an answer on those doors. Lookup packs (the same three rungs) cover the citation and package doors: a lookup pack's credit buys a lookup. A bigger pack adds bonus checks, so a credit on a bigger pack costs less than paying that door per call. A lookup pack also covers bulk, one credit an entry. Spending a pack on the other tier still works — the answer always says so, and says what the cheaper route would have been — because a balance that quietly charges five cents for a two-cent lookup is a balance nobody trusts twice.
Verifying a receipt
- Every paid answer carries one, on both rails and on every door: an Ed25519 signature over a canonical form of the payload.
- Our public key is published at
https://factstamp.agentrails.workers.dev/.well-known/factstamp-issuer.json, so you can verify a receipt yourself, offline, without trusting this server. POST https://factstamp.agentrails.workers.dev/verifywith a receipt is a courtesy check that does the same thing.
Limits, stated up front
- Unknown is a first-class answer and is never dressed up as a verdict.
- A partial or near name match is never reported as a match.
- We read published series and open registers only. No scraped personal data, no credit files, no behind-a-login sources.
- Registers are read live on each call; a slow register is allowed to time out rather than guessed at.
Get listed, or get in touch
Machine-readable discovery: https://factstamp.agentrails.workers.dev/.well-known/x402, https://factstamp.agentrails.workers.dev/.well-known/mcp.json,
https://factstamp.agentrails.workers.dev/openapi.json. Anything else: the address below.
Version 0.1.0. Last updated 29 September 2026. Support and takedown requests: info@alpineai.com.au