ToolMint

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

RoutePriceWhat it doesParameters (* required)
GET /verify$0.005Verify one citationdoi, arxiv, title, authors, year, venue, ref
POST /verify/batch$0.03Verify 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:

StatusMeaning (from the OpenAPI)Charged?
400Bad input (not charged)No
422DOI registered outside Crossref (e.g. DataCite) — not verified, not chargedNo
502Upstream error (not charged)No
503Source busy / rate limited (not charged)No