Free API key, instantly: 1,000 calls a day. Get a free key, or use it with no key at 100 a day.
HLA-Verify

Guides › APIs and bioinformatics tools

HLA-Verify verdicts explained: valid, group, deleted, hallucinated

Updated 2026-10-30 · allele examples checked against IPD-IMGT/HLA 3.66.0 on 2026-10-30

HLA-Verify gives every allele-shaped token one of seven verdicts against the pinned IPD-IMGT/HLA release: valid, group, deleted, hallucinated, fabricated_group, mac_code or out_of_scope. Flags such as deprecated_name or null_allele add detail without changing the verdict, and a single clean field summarises the whole text.

The verdicts are designed so that each one maps to an action. This guide lists them with real examples, all produced by the engine at release 3.66.0, and says what to do with each.

The seven verdicts

VerdictMeaningExampleCounts against clean?
validAssigned in this release, or a valid lower-resolution prefix of assigned namesA*02:01:01:01, A*02:01No
groupA real G or P group name in this releaseA*01:01P, A*02:01:01GNo
deletedWas assigned once, no longer current; a successor is given when there is oneA*02:01:14QYes
hallucinatedNo such name in any release back to 1.05.0DQB1*05:03:26:99, B*9999Yes
fabricated_groupShaped like a G or P group, but no such group existsA*02:99:01GYes
mac_codeA multiple allele code, reporting shorthand for a listA*02:ABNo, counted separately
out_of_scopeA name from outside IPD-IMGT/HLA, such as a KIR alleleKIR2DL1*001No, counted separately

clean is true only when the deleted, hallucinated and fabricated-group counts are all zero. Multiple allele codes and out-of-scope names have their own counts, so a report full of them is never silently called clean with those tokens unchecked, but they do not make it dirty either.

valid

valid covers two cases the naming rules treat differently, so read the details. A*02:01:01:01 is one assigned allele. A*02:01 is a valid two-field prefix of 519 assigned alleles in release 3.66.0. Both are correct names; they carry different amounts of information.

Several reporting forms are also valid, because they stand for a current name, but each carries a flag so nothing is converted silently:

TokenFlagRead as
DRB1*1501, B*5701deprecated_nameDRB1*15:01, B*57:01 (pre-2010 spelling)
Cw*07:02deprecated_nameC*07:02 (old HLA-C prefix)
A*02:XXxx_codeThe A*02 group: first field only
A*02:01glg_notationA*02:01
A*24:09Nnull_alleleCurrent, and not expressed

Act on the flags, not just the verdict. A deprecated_name is correct data in an old format: convert it and keep the original. An xx_code carries first-field resolution only and cannot be counted at allele level. A null_allele should stay visible to whoever reads the typing next.

group

A G group is a set of alleles identical over the exons encoding the peptide-binding domains; a P group, a set encoding the same protein there. A group verdict means the name is a real group in this release, nothing more. It does not say which allele is present, and the membership is the release's: A*02:01:01G has 554 members in 3.66.0, including null alleles. Store group names with the release.

deleted

A deleted name was real in an earlier release. Most come with a successor:

  • A*02:01:14Q: successor A*02:01:14 (the Q was removed in August 2026);
  • C*04:09N: successor C*04:09L (suffix changed in December 2024);
  • B*07:02:06: successor B*07:436 (shown to be part of a newly named allele, July 2021).

Some have none: A*2401 was withdrawn in 1995 as a sequence error. Follow the successor when there is one, keep the original string, and do not substitute a similar-looking name when there is not. The deleted alleles guide covers the reasons.

hallucinated

hallucinated means the name appears in no IPD-IMGT/HLA release back to 1.05.0. The name is well formed; it simply never existed. Typical shapes:

  • an extra field on a real name, such as DQB1*05:03:26:99 (DQB1*05:03:26 is assigned);
  • a plausible but unused number, such as B*9999;
  • an invented locus, such as P*24:02.

Despite the name, the verdict says only that the name does not exist, not where it came from. A typo in a hand-entered report gets the same verdict. Either way it is a data error that needs a person. The guide to fabricated names covers the patterns.

Legacy prefixes do not rescue an invented name: the API reference notes that a made-up Cw*9999 is still hallucinated, even though Cw*07:02 is valid.

fabricated_group

fabricated_group is the group-shaped version of the same problem: a token with a G or P suffix that is not a group in this release, such as A*02:99:01G or B*07:02:99G. Treat it like a hallucinated name. Do not reduce it to a two-field name and carry on; the group it claims to be does not exist.

mac_code and out_of_scope

mac_code marks multiple allele codes such as A*02:AB: letters in the second field standing for a list of alleles. HLA-Verify recognises them but does not expand them, so the typing behind one is unchecked. Expand it with the code definitions, or treat the locus as unresolved.

out_of_scope marks names from gene families outside IPD-IMGT/HLA, currently KIR names such as KIR2DL1*001. They are surfaced, so a report that lists KIR typing next to HLA typing is not flagged dirty for the KIR names, and they are not checked.

The response is tied to a release

Every response includes release. A verdict is only true for that release: a name valid today can be deleted after the next quarterly release, and a G group's membership can change. Store the release with every verdict you keep. GET /healthz reports the current pin, and the API guide lists the other calls.

Frequently asked questions

What does hallucinated mean in HLA-Verify?

The name does not appear in any IPD-IMGT/HLA release back to 1.05.0. It may be a typo or a fabricated name; either way it is not a real allele name.

Is a deprecated_name flag an error?

No. It marks a correct name written in an older format, such as DRB1*1501 for DRB1*15:01. The verdict is valid; convert it and keep the original.

Why doesn't a multiple allele code make a report unclean?

Because it is legitimate reporting shorthand. It is counted separately as mac_code so the unchecked typing is visible, but it is not treated as an invented or retired name.

What is the difference between deleted and hallucinated?

A deleted name existed in an earlier release and often has a successor. A hallucinated name never existed in any release.

Sources

HLA-Verify is a research-and-evaluation tool for nomenclature and reference-release validation. It is not a medical device and this guide is not clinical advice. Send allele names, never patient identifiers.