Catalog / ToolMint Citation Verify
Coming soon Research & health
ToolMint Citation Verify
Is this reference real? DOI / arXiv / title / free-text citation → found, canonical metadata (Crossref, arXiv), field-by-field mismatches and retraction flags. Metadata only, never abstracts.
Routes and prices
| Route | Price | What it does | Parameters (* required) |
|---|---|---|---|
GET /verify | $0.005 | Verify one citation | doi, arxiv, title, authors, year, venue, ref |
POST /verify/batch | $0.03 | Verify up to 10 citations | — |
Free routes: /, /health, /openapi.json, /.well-known/x402.
Try it
Not deployed yet. The URL below is the planned address. After launch, an unpaid call returns
402 with the terms in the price table.curl -i "https://toolmint-citation-verify.toolmint.workers.dev/verify?doi=10.1016/S0140-6736(97)11096-0"
What you get
- verdict: verified | mismatch | not_found | unverifiable, plus found, matchedBy, confidence
- canonical record: source, doi, arxivId, title, authors, venue, year, type, publisher, url, citedByCount
- mismatches[]: field, what you gave, the canonical value, severity (major/minor), note
- retracted + updates[]: retractions, corrections, expressions of concern (Crossref, incl. Retraction Watch)
- candidates[] (up to 3 when not found), notes[], sources[] with fetchedAt and sha256 hash, terms, cacheHit (6 h)
- Abstracts are never returned.
Sources and terms
- Crossref REST API (no key; metadata free to use for any purpose; some abstracts may be copyrighted, so none are returned). Polite pool via mailto; Worker paces itself at 2 requests/s per isolate.
- arXiv API (metadata CC0 1.0; must not imply arXiv endorsement; one request every 3 s). Worker paces at 1 per 3 s per isolate and caps arXiv items per batch at 3.
Limits (read before relying on it)
- not_found does not mean the work doesn't exist: books without DOIs, theses, case law and non-arXiv DataCite DOIs are not covered in v1.
- Per-isolate pacing can't guarantee the arXiv/Crossref limits across many isolates: add a Cloudflare rate-limit rule on /verify* before volume.
- Neither Crossref nor arXiv endorses this tool.
Example
GET /verify?doi=10.1016/S0140-6736(97)11096-0
Errors are not charged
Payment settles only on a successful answer. These responses are never settled:
| Status | Meaning (from the OpenAPI) | Charged? |
|---|---|---|
400 | Bad input (not charged) | No |
422 | DOI registered outside Crossref (e.g. DataCite) — not verified, not charged | No |
502 | Upstream error (not charged) | No |
503 | Source busy / rate limited (not charged) | No |