American Society of Hirudotherapy

API Schema Reference

Every public endpoint, its response fields, exposure level, and per-endpoint safety context.

Last Updated: June 2, 2026Reviewed by: ASH Editorial Board
Developer / infrastructure referencePublic open-data documentation

ASH publishes a read-only research API for researchers, developers, and dashboard integrations. Every endpoint is public, CORS-enabled, and CDN-cached no authentication and no PII. This page documents the true response shape of each endpoint and tags every field by exposure level, so consumers know which data is patient-safe versus gated behind an audience parameter.

Exposure levels

  • Patient-safeReturned to anonymous consumers and the default audience=patient payload. Plain-language, governance, and safety-scaffolding fields.
  • Clinician-gatedGated behind ?audience=clinician. Protocol-like depth (leech counts, durations, contraindications, trial intervention detail). Returning it requires an explicit acknowledgement that it is educational, not institutional protocol.
  • Researcher-gatedGated behind ?audience=researcher. Citation depth (key-trial lists, full citation arrays) for literature-graph and academic integrations.
  • AlwaysPresent for every audience identifiers, citation identifiers, governance status, and hypermedia _links.
  • Citation-integrityCitation-integrity status. Every citation-bearing object carries citationIntegrityStatus one of verified_pubmed, unverified_pending, verified_doi, or identifier_absent per the Cycle 11 PMID-quarantine model. Treat unverified_pending entries as suspect until the PMID audit completes.

Endpoints

GET/api/research-articles

Research-article library

PubMed-verified bibliographic metadata for the imported research-article library (1,000+ entries). Bibliographic only — no clinical protocol detail.

Query parameters: limit (1–100, default 25), offset (≥0), organ_system (substring), year_min, year_max, tier (very-low | low | moderate | high).

Response fields

FieldExposureMeaning
slugAlwaysStable identifier for the article entry.
pmidAlwaysPubMed identifier, or null when absent.
titleAlwaysArticle title.
authorsAlwaysAuthor string.
yearAlwaysPublication year.
journalAlwaysSource journal.
citationIntegrityStatusCitation-integrityverified_pubmed | unverified_pending | verified_doi | identifier_absent. Carried by every citation-bearing object.
pmidVerifiedCitation-integrityISO date the PMID was resolved against PubMed E-utilities (present only when verified).
organSystemPatient-safeOrgan-system tag, emitted only when present on the entry.
evidenceTierPatient-safeGRADE tier mirrored from hirudopedia evidenceGrade when present.
studyTypePatient-safeStudy design tag, when present.
safetyDomainPatient-safeSafety-domain tag, when present.
dateAddedPatient-safeISO date the entry was added.

Safety / exposure note

All fields are bibliographic metadata — no protocol detail, leech counts, or dosing. Each article carries citationIntegrityStatus per the Cycle 11 PMID-quarantine model; treat unverified_pending entries as suspect until the PMID Integrity Sprint completes (see /pmid-audit-status). FDA cleared leeches for one indication only (K040187, 2004); all other indexed uses are off-label or investigational.

GET/api/conditions

Condition registry

Audience-routed condition registry. Defaults to patient-safe; clinical protocol depth and citation depth are gated behind the audience parameter.

Default audience: patient (default)

Query parameters: limit (1–100, default 25), offset (≥0), tier (A-FDA-cleared | B-clinical-evidence | C-investigational), category (12 organ-system enum values), audience (patient | clinician | researcher).

Response fields

FieldExposureMeaning
slug, name, tagline, tier, categoryPatient-safeCore identity and classification, present for all audiences.
patientName, laymanDescriptionPatient-safePlain-language naming and description.
icd10CodesPatient-safeICD-10 code array, when present.
regulatoryStatus, evidenceLevel, safetyTier, safetyDomains, scopeStatementPatient-safeGovernance and safety metadata — always safe to expose.
patientSummary, whatThisDoesNotMean, askClinicianQuestions, redFlagsUrgentCare, limitationsPatient-safePatient-facing safety scaffolding.
evidenceSummaryClinician-gatedFull evidence summary. Returned for audience=clinician (and researcher).
protocolSummaryClinician-gatedProtocol summary — gated; only under audience=clinician.
typicalLeechCountClinician-gatedTypical leech count — gated clinical detail.
typicalDurationClinician-gatedTypical treatment duration — gated clinical detail.
contraindicationsClinician-gatedContraindication list — gated clinical decision content.
keyTrials[]Researcher-gatedKey-trial citation depth; only under audience=researcher.
keyTrials[].citationIntegrityStatusCitation-integrityPer-trial integrity status (verified_pubmed | unverified_pending | verified_doi | identifier_absent).
_linksAlwayscondition_page path and related_rcts count.

Safety / exposure note

Defaults to audience=patient and OMITS protocolSummary, typicalLeechCount, typicalDuration, contraindications, and keyTrials. These were reclassified as a P0 safety surface in Cycle 11 — protocol-like content (leech counts, frequencies, thresholds) is gated behind ?audience=clinician with an explicit acknowledgement that it is educational, not a substitute for institutional governance. _safetyContext documents exactly which fields were withheld for the active audience.

GET/api/compounds

Compound registry

Leech-derived bioactive-compound metadata (hirudin, hyaluronidase, eglins, etc.). Pharmacology / biochemistry reference — not clinical protocol detail.

Query parameters: limit (1–100, default 25), offset (≥0), category (anticoagulant | antiplatelet | fibrinolytic | proteinase-inhibitor | anti-inflammatory | antimicrobial | vasodilator | ecm-enzyme | analgesic | other).

Response fields

FieldExposureMeaning
slug, name, taglinePatient-safeIdentity and one-line description.
categoryPatient-safeCompound class enum.
evidenceTierPatient-safeEvidence tier for the compound.
molecularWeightDaPatient-safeMolecular weight in daltons, when numeric.
targetsPatient-safeMolecular-target array, when present.
_linksAlwayscompound_page path.

Safety / exposure note

Bioactive-compound metadata for educational reference — no clinical protocol detail. Drug-vs-leech distinction matters: FDA-approved hirudin-class drugs (lepirudin, desirudin, bivalirudin) are recombinant or synthetic analogs, NOT whole-leech therapy, and most leech salivary compounds remain preclinical.

GET/api/rcts

RCT registry

Randomized-controlled-trial registry. Research-oriented, so it defaults to audience=researcher; the patient audience strips intervention/protocol depth.

Default audience: researcher (default)

Query parameters: limit (1–100, default 25), offset (≥0), grade (high | moderate | low | very-low), status (completed | ongoing | preliminary), condition (registry slug), audience (researcher | clinician | patient).

Response fields

FieldExposureMeaning
slug, title, authors, year, journal, condition, grade, statusAlwaysTrial identity, GRADE certainty, and status — present for all audiences.
pmid, doiAlwaysCitation identifiers (research-citation, not clinical-actionable).
pmidVerifiedCitation-integrityISO verification date, when present.
citationIntegrityStatusCitation-integrityverified_pubmed | unverified_pending | verified_doi | identifier_absent, computed per entry.
design, n, intervention, comparator, primaryEndpoint, primaryResult, cohen_d, followUpDuration, phase, keyFindings, limitations, clinicalImplications, fundingSourceClinician-gatedTrial-design and intervention depth. Withheld from audience=patient; present for clinician and researcher.
citations[]Researcher-gatedFull citation list, each carrying its own citationIntegrityStatus. Only under audience=researcher.
_linksAlwaysrct_page, condition_page, and pubmed URL (or null).

Safety / exposure note

Default audience=researcher exposes trial-design depth; audience=patient strips intervention, comparator, primaryResult and similar protocol-adjacent fields, keeping only title/grade/year/status. Every entry and every nested citation carries citationIntegrityStatus, and _safetyContext lists which fields were filtered for the active audience.

GET/api/biographies

Biography registry

Historically- and contemporary-significant figures in hirudotherapy science (Haycraft 1884 → present). Public-domain biographical facts only.

Query parameters: limit (1–100, default 25), offset (≥0), era (ancient | medieval | 19th-century | early-20th | mid-20th | late-20th | contemporary).

Response fields

FieldExposureMeaning
slug, namePatient-safeIdentifier and full name.
lifeSpanPatient-safeLife-years string (registry lifeYears, e.g. "1857-1922").
eraPatient-safeEra enum value.
contributionPatient-safeOne-sentence contribution (mapped from registry tagline).
publicationCountPatient-safeCount of keyPublications (0 when none).
institutionalAffiliationsPatient-safeAffiliation array, when present.
_linksAlwaysbiography_page path.

Safety / exposure note

Public biographical metadata only — no clinical content. Inclusion in this registry does not imply ASH endorses any clinical claim made by the individual or any product associated with them.

GET/api/jurisdictions

Jurisdiction registry

Global regulatory survey — authorities governing medicinal leech therapy worldwide (FDA, EMA, PMDA, Health Canada, WHO, etc.).

Query parameters: limit (1–100, default 25), offset (≥0), region (north-america | europe | asia-pacific | latin-america | middle-east | africa | oceania).

Response fields

FieldExposureMeaning
slugPatient-safeStable identifier.
namePatient-safeCountry name (registry country field).
regulatoryAuthorityPatient-safeFull agency name (registry name field).
leechRegulatoryStatusPatient-safeHonest status marker; uses 'unregulated' where no leech-specific pathway is verified.
region, typePatient-safeRegion enum and jurisdiction type.
shortNamePatient-safeShort agency name, when present.
lastReviewedByASHPatient-safeISO date of ASH editorial review (closest analogue to a 'regulated since' date).
_linksAlwaysjurisdiction_page path.

Safety / exposure note

Regulatory reference, not medical or legal advice. Most jurisdictions have NO leech-specific authorization pathway; an 'unregulated' status means ASH has not verified a pathway — not that the country allows or prohibits the practice. Verify current status with the named authority before any clinical use.

GET/api/site-stats

Site statistics (hypermedia root)

Aggregate registry counts and cross-API discovery links. Public hypermedia root for programmatic consumers, dashboards, and structured data.

Query parameters: None. Static, CDN-cached.

Response fields

FieldExposureMeaning
asOfAlwaysISO timestamp of the response.
registriesAlwaysCounts: conditions, compounds, rcts, biographies, jurisdictions.
researchArticlesAlwaysResearch-article library size.
totalArtifactsAlwaysSum of all registry counts plus research articles.
longTermGoal, progressPctAlways10,000-article goal and percent progress.
conditionTiersAlwaysCondition counts by tier { A, B, C }.
links, apisAlwaysSite links and the sibling-endpoint discovery object.

Safety / exposure note

Aggregate statistics only — no clinical protocol detail and no per-entry data. conditionTiers.A counts only conditions within the FDA-cleared pathway (K040187, 2004); Tier B/C are off-label or investigational. progressPct measures library size against a 10,000-article goal and does NOT imply clinical recommendation. Each sibling endpoint reached via the apis object enforces its own audience model and citation integrity.

GET/api/changelog

Editorial changelog

Public editorial change history, hand-maintained from the merged-PR record. Companion to /api/site-stats for aggregators tracking editorial activity.

Query parameters: limit (1–50, default 20), category (architecture | content | translation | registry | correction | infrastructure, case-insensitive).

Response fields

FieldExposureMeaning
dateAlwaysEntry date (YYYY-MM-DD).
prRangeAlwaysAssociated PR reference (e.g. "PR #70").
title, summaryAlwaysChange title and summary.
categoryAlwaysOne of architecture | content | translation | registry | correction | infrastructure.
detailsAlwaysArray of detail strings.
categoriesAlwaysTop-level count of entries per category across the full log.

Safety / exposure note

Editorial change log for educational / audit reference — no clinical protocol detail. Inclusion reflects ASH editorial activity, not endorsement of any clinical claim referenced in an entry. The 'correction' category surfaces errata (e.g. fabricated-PMID removals) transparently rather than silently revising them.

Related pages

Open Data

The open-data principle, license, and how the registries are maintained.

Open data →

PMID Audit Status

Live status of the citation-integrity verification sprint.

Audit status →

How Evidence Is Graded

The Tier A/B/C framework and GRADE-aligned ratings behind the API fields.

Framework →

This website provides educational information and does not constitute medical advice, diagnosis, or treatment recommendations. Medicinal leech therapy carries clinically meaningful risks and should be performed only by qualified clinicians under institutionally approved protocols. FDA 510(k) clearance for medicinal leeches is limited to specific indications; investigational and off-label discussions are labeled accordingly. For patient-specific guidance, consult a qualified healthcare provider.