Citation and research integrity logo

Paper Contradiction Finder

$1.00 USDC per call · Research integrity · POST /api/v1/find-contradictions · Id paperContradictions

Takes 2 to 4 papers (DOI, arXiv id, PMID or their URLs) on a shared question and answers whether their reported numbers conflict: a verdict (CONTRADICTION_FOUND / NO_CONTRADICTION_FOUND / INCONCLUSIVE) with confidence, a one-line headline, the decisive quotes side by side and a next step, then the full evidence. Fetches the best available text (ar5iv, Europe PMC full text, else abstract), extracts quantitative claims with exact quote spans (hazard/odds/risk ratios, relative changes, differences, confidence intervals, P-values, sample sizes, units), pairs claims by shared outcome vocabulary (at most 24 pairs), and tests each pair the model confirms as the same quantity in comparable populations: opposite directions, non-overlapping intervals, the difference test from CI-derived standard errors, and a significant-versus-powered-null check, after unit normalization. Classifies each pair CONTRADICTS / CONSISTENT / DIFFERENT_POPULATIONS_OR_MEASURES / INSUFFICIENT_INFO and reports a per-paper trust summary (retraction and correction status, replication signals, sample size, preregistration, funding and conflict statements, how often the paper is contradicted) by a documented formula. Author-prestige metrics are excluded on purpose. mode "fast" makes no model call and tests only identical outcome phrases. If a paper cannot be found or an upstream lookup fails, the result is returned marked partial with the gaps named; abstract-only papers lower the stated confidence. A screening aid for reading, not a systematic review; CONTRADICTS does not say which paper is right.

What you get

Shows a buyer exactly which published numbers disagree across papers, with quote spans and the statistics behind each verdict, instead of an LLM's impression of consensus.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/find-contradictions. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.

curl -i -X POST https://agents.writerslogic.com/api/v1/find-contradictions \
  -H 'content-type: application/json' \
  -d '{"papers":["10.1056/NEJM199608153350701","10.1001/jama.288.3.321"],"claim":"Does postmenopausal estrogen plus progestin therapy reduce coronary heart disease risk?","mode":"full"}'

Input

FieldTypeRequiredDescription
papersarray<string; length 3..300>; max 4 itemsyes2 to 4 papers on a shared question, each a DOI (bare, doi: or doi.org URL), an arXiv id or arxiv.org URL, or a PMID (bare, PMID:n, or a pubmed.ncbi.nlm.nih.gov or europepmc.org URL).
claimstring; length 3..2000noOptional claim or question to focus on; claims about it are paired first.
modestring; one of "full", "fast"nofull (default): one model call judges whether candidate claim pairs measure the same quantity in comparable populations. fast: no model call; only pairs with identical normalized outcome phrases are tested.

Example request body

{
  "papers": [
    "10.1056/NEJM199608153350701",
    "10.1001/jama.288.3.321"
  ],
  "claim": "Does postmenopausal estrogen plus progestin therapy reduce coronary heart disease risk?",
  "mode": "full"
}

Result

The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.

FieldTypeRequiredDescription
verdictstring; one of "CONTRADICTION_FOUND", "NO_CONTRADICTION_FOUND", "INCONCLUSIVE"noHeadline result across all tested pairs: CONTRADICTION_FOUND, NO_CONTRADICTION_FOUND (some pairs tested and consistent), or INCONCLUSIVE (nothing could be tested as the same quantity; not evidence of agreement).
confidenceintegerno0-100, by the documented rule in confidenceBasis.
headlinestringnoOne sentence naming the papers and the kind of conflict; read this first.
humanSummarystringnoThe decisive quotes side by side, the difference-test p-value, and what was not counted. (summary holds the pair counts.)
nextStepstringnoThe single most useful action for the buyer.
topFindingsarray<object>noUp to 3 most decisive contradictions, model-confirmed ones first.
partialbooleannoTrue when a paper was not found, the model call failed, or upstream lookups were skipped or rate-limited; the result is still signed and missing says what was not seen.
missingarray<string>no
confidenceBasisstringno
modestring; one of "full", "fast"no
deterministicbooleannoTrue when no model call was made.
llmCallsintegerno0 in fast mode or when no candidate pairs exist; otherwise 1.
decidedByobjectnoPairs by what decided them: code (identical outcome phrase, statistics), llm (model said not the same quantity), llm+code (model said same, code ran the tests), none (undecided).
degradedone ofnoSet when the model call failed and only identical-outcome pairs were tested.
focusone ofno
summaryobjectnoPair counts per classification (CONTRADICTS, CONSISTENT, DIFFERENT_POPULATIONS_OR_MEASURES, INSUFFICIENT_INFO) and pairsTested.
papersarray<object>noPer paper: resolved metadata, text level, integrity (retraction, correction), replication signals, sample size, preregistration, funding and conflict-of-interest cues with quotes, and the trust summary.
claimsarray<object>noQuantitative claims with exact quote spans (offsets into the paper text), measure, value, confidence interval, P, unit, direction word and normalized outcome phrase.
pairsarray<object>noCandidate claim pairs with classification, contradiction kind, the statistical tests with details, who decided, and the verified model quotes.
trustMethodobjectnoTrust formula, weights, and the author-prestige metrics excluded on purpose.
coverageobjectnoCounts, caps, upstream call budget, elapsed time and failed sources.
caveatsarray<string>no

Pay and connect

Available through: x402 (USDC on Base), MCP, RapidAPI, Apify.

Machine-readable