Skip to content

Developer guide

Evidence Authority

The AlphaCitation Standard · Version 3.0


Know which evidence is competent to establish a medical claim.

Check whether a source has the authority to settle a claim about a medicine, in a particular market, on a particular date.

  1. UnderstandWhat the standard decides, and what it leaves to you.
  2. Try the APIOne request, and the verdict the reference implementation gives it.
  3. Test conformityRun the test vectors against the reference implementation, or your own.

Example: one claim, three sources. Which one settles it?

ClaimA medicine is approved in the UAEP1, market AE, answer of 14 October 2026

  • SourceAuthorisation decision of the Emirates Drug EstablishmentSpeaks for AE; in force from 1 June 2026VerdictSettlesCompetent source class, authority, market and date.Rule S6-settles. Test vector EAS-V001.
  • SourceAuthorisation decision of the US FDASpeaks for US; in force from 4 June 2021 (illustrative date)VerdictSupportsThe source speaks for US, not AE: a foreign record is a declared benchmark at most, never a settlement of a local proposition.Rule R2. Test vector EAS-V003.
  • SourceInstitutional guidance of the Dubai Health AuthoritySpeaks for AE-DU; in force from 3 September 2024VerdictSupportsAn institutional guidance may support P1 (Registered or authorised) but never settles it.Rule R1. Test vector EAS-V002.
Computed by the reference implementation from the source metadata shown, using the standard’s published test vectors; not a verification of any medicine’s status.

Understand

The standard decides one question about a claim in an answer about a medicine: whether a given source has the authority to settle it, for the claim’s market, on the claim’s date. For each kind of claim (approval, indication, availability, coverage, efficacy, safety and others) it names the classes of evidence that can settle it, and requires that each come from a body competent to issue it. The API’s requirements endpoint lists the bodies AlphaCitation’s implementation recognises.

It decides authority, not truth. Whether the record, read correctly, says what the claim says is interpretation. Whether the claim is then supported or contradicted is adjudication. Both stay with you, and every API response says so.

Each source receives one of four verdicts for a claim:

  • Settles

    What may rest on it: a conclusion, including a finding, once the record is read correctly and the claim adjudicated against it (section 8).

  • Supports

    What may rest on it: corroboration, never a finding.

  • Irrelevant

    What may rest on it: nothing.

  • Not determinablereported as not assessable

    What may rest on it: nothing: unknown, never false.

A claim that no source settles is unknown, never false. The full text gives the propositions, the evidence classes and the rules that decide each verdict.

Try the API

The API is open and needs no key. Send a claim (its proposition, market and date) and one source described by its metadata; it returns the verdict, the rule that decided it and the reason. This is test vector EAS-V001: An answer given on 14 October 2026 says a medicine is approved in the UAE. The source is the Emirates Drug Establishment's approval of 1 June 2026.

curl -s https://alphacitation.com/api/v1/evidence-authority/judge \
  -H "Content-Type: application/json" \
  -d '{
    "claim": {
      "proposition": "P1",
      "market": [
        "AE"
      ],
      "answerDate": "2026-10-14"
    },
    "evidence": {
      "judged": "single",
      "sources": [
        {
          "evidenceClass": "authorisation_decision",
          "authority": "ae_ede",
          "effectiveFrom": "2026-06-01",
          "currency": "assured"
        }
      ]
    }
  }'
{
  "standard": {
    "version": "3.0",
    "doi": "10.5281/zenodo.23594909",
    "conceptDoi": "10.5281/zenodo.23577316"
  },
  "implementation": "@alphacitation/evidence-authority",
  "apiVersion": "3.0.0",
  "decidesFrom": "The source metadata in the request only. The API does not fetch, read or verify any source, holds no evidence, and makes no clinical or regulatory determination.",
  "establishes": "Whether a source, as the request's metadata describes it, has the authority to settle the claim for its market and date (the standard's first question, section 2).",
  "doesNotEstablish": [
    "that the source exists, is authentic, or is described correctly by the metadata sent",
    "what the source says, or whether it concerns the claim's product, population, endpoint and date (interpretation)",
    "whether the claim is true, false or unresolved (adjudication)"
  ],
  "pipeline": [
    "1. metadata accepted (this API, as sent)",
    "2. authority classified (this API)",
    "3. source verified: authentic, current, described correctly (the caller)",
    "4. record interpreted against the claim (the caller)",
    "5. claim adjudicated: only on a source that settles, after 3 and 4 (the caller)"
  ],
  "claimDate": "2026-10-14",
  "inForceOn": "2026-10-14",
  "dateKind": "state",
  "market": {
    "codes": [
      "AE"
    ],
    "basis": "answer",
    "conflict": false
  },
  "verdict": {
    "outcome": "settles",
    "settles": true,
    "rule": "settled",
    "standardRule": "S6-settles",
    "reason": "the source settles P1 (Registered or authorised)",
    "limitations": [
      {
        "dimension": "time",
        "note": "in force on 2026-10-14"
      },
      {
        "dimension": "authority",
        "note": "Emirates Drug Establishment, authorisation decision"
      },
      {
        "dimension": "jurisdiction",
        "note": "speaks for AE"
      }
    ]
  }
}
const res = await fetch("https://alphacitation.com/api/v1/evidence-authority/judge", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "claim": {
      "proposition": "P1",
      "market": [
        "AE"
      ],
      "answerDate": "2026-10-14"
    },
    "evidence": {
      "judged": "single",
      "sources": [
        {
          "evidenceClass": "authorisation_decision",
          "authority": "ae_ede",
          "effectiveFrom": "2026-06-01",
          "currency": "assured"
        }
      ]
    }
  }),
});
const { claimDate, verdict } = await res.json();
console.log(claimDate, verdict.outcome, verdict.standardRule, verdict.reason);

The API decides from the source metadata in the request only. The API does not fetch, read or verify any source, holds no evidence, and makes no clinical or regulatory determination.

To ask what would settle a claim before you fetch anything: GET /api/v1/evidence-authority/requirements?proposition=P1&market=AE&date=2026-10-14.

The claim’s market

A claim may carry three markets: market, the market the answer states for the claim; questionMarket, the market stated in the question; and configuredMarket, the market the deploying system declares for its user. The answer’s market governs, then the question’s, then configuration; otherwise the market is unresolved. The response’s market gives the codes that governed, the step that fixed them (basis) and whether a later step stated a different market (conflict).

The same claim with its market stated only in the question:

{
  "proposition": "P1",
  "market": null,
  "answerDate": "2026-10-14",
  "questionMarket": [
    "AE"
  ]
}
{
  "market": {
    "codes": [
      "AE"
    ],
    "basis": "question",
    "conflict": false
  }
}

Event claims

An answer that says when something happened (“approved in June 2026”) makes an event claim. Send dateKind: "event" with the time it states as statedDate. The claim’s date stays the stated period, and the source is judged as the record of the event, issued by the answer’s date even if its force later ended; the response gives that date as inForceOn. A past-tense event with no time stated (“was approved”) is dateKind: "undated_event", dated the answer’s date.

The same claim as an event claim:

{
  "proposition": "P1",
  "market": [
    "AE"
  ],
  "answerDate": "2026-10-14",
  "statedDate": "2026-06",
  "dateKind": "event"
}
{
  "claimDate": "2026-06",
  "inForceOn": "2026-10-14",
  "dateKind": "event",
  "verdict": {
    "outcome": "settles"
  }
}

Every field, value and response is described in the OpenAPI document.

Test conformity

Download the reference implementation (TypeScript source, Apache License 2.0), build it with Node.js and npm, and run the standard’s 161 test vectors.

curl -LO https://alphacitation.com/standards/evidence-authority/latest/reference-implementation.zip
unzip reference-implementation.zip
cd evidence-authority
npm install
npm run build
node scripts/run-vectors.cjs
161 of 161 test vectors reproduced (Evidence-Authority Standard 3.0, doi:10.5281/zenodo.23594909)

An implementation conforms to a version when it reproduces every test vector of that version: for each, the claim's date, the verdict, the deciding rule and, where the vector states them, whether the registry record settles that a study was ongoing or that it was not (P3d) and the step that fixed the claim's market, with whether a later step conflicted. To test your own implementation, run it on test-vectors.json and compare each result with the vector’s expected field.

The classification test set is different: it measures how well a classifier divides answers into claims and assigns each to a proposition (Annex B). It is not part of conformance.