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.
One deterministic engine, JSON in and out, every endpoint pinned to IPD-IMGT/HLA 3.66.0 (47,424 named alleles), served from Cloudflare's edge. The four below are the core; the Lab Toolkit (/v1/typing/check, /v1/compat, /v1/glstring) is specified at api.hlaverify.com/docs.
Classifies every allele-shaped token in free text as valid, group (G/P), deleted (with successor), fabricated_group, hallucinated, or mac_code (an NMDP multiple allele code, surfaced rather than silently skipped). clean is true only when nothing is fabricated, deleted, or a made-up group.
Any era or reporting shorthand in, current release out: legacy names, G and P group names, A*02:XX, two-field A*02:01g, optional HLA- prefix; returns current_name, comparable 2-field name, G group (NONE / AMBIGUOUS), flags (deprecated_name, null_allele, nonexistent_allele, g_group_name, xx_code, lg_notation, mac_code). 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), group (a G or P group name: type, member count and sample), or deleted (successor). Reported shorthands (A*0101, A*02:XX, A*02:01g) answer with the facts of the name they stand for plus resolves_to and a flag; an NMDP code (A*02:AB) returns mac_code. 404 for anything not in the release.
Two reported alleles per locus, any era, G/P group names included (a typing reported at G-group resolution matches by the 2-field name it is written under). 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. A tier sets how many calls you get a day and how many typings one call can carry. Details on hlaverify.com/pricing.
| Tier | Price | Calls per day | Typings per batch call | Burst | Support |
|---|---|---|---|---|---|
| Free public beta anonymous, no key | $0 | 100 per IP | 250 | 60/min | community |
| Starter | $49/mo | 500 | 250 | 60/min | email, best effort |
| Lab | $299/mo | 10,000 | 5,000 | 600/min | email, next business day |
| Scale | $1,999/mo | 1,000,000 | 5,000 | 6,000/min | priority, named contact |
| Enterprise | Talk to us | uncapped | 5,000 | uncapped | custom terms, self-hosted option |
Quotas reset at midnight UTC and every response carries the quota left. Self-serve checkout is not open yet: a paid key is set up by email to hello@hlaverify.com. Research access is free with approval (hlaverify.com/research). There is one IPD-IMGT/HLA release compiled into the service and every caller gets it; per-key release pinning is planned, not built.
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, check_typing, donor_compat, validate_gl_string, 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 100 calls a day per IP; 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 — 47,424 named alleles in 3.66.0. /healthz reports the live release so a pipeline can assert on it; every move to a new release is published with the verdicts it changed.
Verification 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.