HLA-Verify is a deterministic API that checks HLA allele names, typing reports, and donor-recipient match claims against a pinned IPD-IMGT/HLA release — no LLM anywhere in the loop. Built for lab directors qualifying a new check, LIMS and software product managers wiring it into ingest, and AI platform teams gating model output before it reaches a clinician.
Four endpoints, JSON in and out, pinned to IPD-IMGT/HLA 3.65.0 (46,652 named alleles), served from Cloudflare's edge.
Classifies every allele-shaped token in free text as valid, group (G/P), deleted (with successor), fabricated_group, or hallucinated. clean is true only when nothing is fabricated, deleted, or a made-up group.
Any era in, current release out: current_name, comparable 2-field name, G group (NONE / AMBIGUOUS), flags (deprecated_name, null_allele, nonexistent_allele). Up to 5,000 typings per call.
Returns assigned (G/P group, first release, confirmed status, WMDA serology, null flag), valid_prefix (member count and sample), or deleted (successor). 404 for anything not in the release.
Two reported alleles per locus, any era. Frameworks 6/6, 8/8, 10/10, 12/12, antigen. Counts per chromosome, not per locus; GvH/HvG reported separately; a locus too coarse to call is potential with resolution_insufficient; a null allele hiding inside a serologic match raises null_allele_mismatch. Rules R1–R6 are published for lab audit.
Four insertion points, straight from the integration brief — drop a call in, gate on the result.
LIMS, HistoTrac/TIMS exports, PDF-to-text. Call /v1/normalize per reported allele; reject on nonexistent_allele, rewrite to current_name and log on deprecated_name.
Any assistant reply that mentions HLA. Call /v1/verify on the text; block or annotate before display when clean == false.
Call /v1/match per pair; compare against the lab's own count, and route any potential or null_allele* flag to human review.
Call /v1/normalize in batches of up to 5,000; diff reported against current_name on every release.
Every tier hits the same deterministic API. Starter and Pro keys are self-serve through Stripe; Enterprise and the pilot are by request.
| Free | Starter | Pro | Enterprise |
|---|---|---|---|
| $0 | $49/mo | $199/mo | Custom |
| 60 req/min per IP, no key required | 600 req/min per key | 6,000 req/min per key | Uncapped, custom SLA |
| Demo, API docs, evaluation use | Per-key usage reporting, release-change notices | Per-key usage reporting, release-change notices | Volume licensing, SLA on request |
| Start calling | Buy Starter | Buy Pro | Contact us |
Your reports or model outputs, verified against a pinned release with a full audit trail, a verdict diff across releases, and a signed findings letter. Fee credited in full to a first-year licence signed within 90 days. hello@hlaverify.com
Commercial licence for the verification service on your own infrastructure, or self-hosted under PolyForm Noncommercial 1.0.0 for research and evaluation; model-evaluation licences and custom environment families for AI labs. hello@hlaverify.com
A remote MCP server at https://api.hlaverify.com/mcp exposes the same deterministic lookups as tools: verify_text, normalize_allele, allele_info, match_score, about. Streamable HTTP, JSON-RPC 2.0, stateless — nothing to install. Results are byte-identical to the matching /v1/… REST response.
Anonymous calls share the free tier's 60 req/min; add a key for a higher tier: "headers": {"Authorization": "Bearer YOUR_KEY"}. Works in Claude Desktop, claude.ai connectors, Cursor, and any other MCP-capable client. Full machine-readable overview for agents: /llms.txt.
No language model anywhere in the loop. Same input plus same release gives the same JSON every time — no per-request variance to explain to a lab director.
Pinned to an exact IPD-IMGT/HLA release — 46,652 named alleles in 3.65.0. /healthz reports the live release so a pipeline can assert on it; keyed customers get a verdict diff before the pin moves each quarter.
Requests are processed in memory and discarded. Metering records counts per key, never content.
Nomenclature normalization and matching rules R1–R6 are published in the repository for lab audit — not a black box.
HLA-Bench-A (550 nomenclature tasks) and HLA-Bench-C (205 matching pairs) are public, executable-oracle suites with confidence intervals — the same failure modes this API catches at runtime.
A golden test proves the Cloudflare Worker's output is byte-identical to the Python reference service on thousands of generated inputs. Against NMDP's py-ard reduction library, our 2-field names match on 1986/2000 alleles (99.30%) of a deterministic sample; the rest are documented semantic differences, not bugs (docs/pyard-concordance.md).
/healthz always reports the live release.pip install the package, or run the FastAPI service locally). The service code is licensed under PolyForm Noncommercial 1.0.0 — free for research and evaluation, with a commercial licence required for production use.