{"openapi":"3.1.0","info":{"title":"AIRBabel","description":"Allele / leader / RSS reference with deterministic UIDs, alias resolution, AA + similarity search, AIRR-aligned responses.","version":"0.1.0"},"paths":{"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/version":{"get":{"summary":"Version","description":"Code version *and* the stamped dataset release this instance serves.\n\nTwo separate things, kept separate: ``version`` is the software, ``dataset`` is\nthe data plus the distance computation it is scored with. An instance that has\nnever been stamped reports ``dataset: null`` rather than borrowing the software\nversion, because claiming a data version you do not have is the failure this\nendpoint exists to prevent.","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Version Version Get"}}}}}}},"/api/resolve":{"get":{"summary":"Resolve","operationId":"resolve_api_resolve_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Query"}},{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Scope resolution to one species, or several comma-separated (human,rhesus). A name or sequence reused across species is otherwise resolved to a single, deterministic species; use /api/search/name?exact=1 to list every species that carries a name.","title":"Species"},"description":"Scope resolution to one species, or several comma-separated (human,rhesus). A name or sequence reused across species is otherwise resolved to a single, deterministic species; use /api/search/name?exact=1 to list every species that carries a name."},{"name":"view","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^airr$"},{"type":"null"}],"title":"View"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ResolveResult"},{"$ref":"#/components/schemas/AlleleDescription"}],"title":"Response Resolve Api Resolve Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sequences/{uid}":{"get":{"summary":"Get Sequence","operationId":"get_sequence_api_sequences__uid__get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"view","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^airr$"},{"type":"null"}],"title":"View"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SequenceRecord"},{"$ref":"#/components/schemas/AlleleDescription"}],"title":"Response Get Sequence Api Sequences  Uid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sequences/{uid}/aliases":{"get":{"summary":"Aliases","operationId":"aliases_api_sequences__uid__aliases_get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Alias"},"title":"Response Aliases Api Sequences  Uid  Aliases Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sequences/{uid}/similar":{"get":{"summary":"Similar","operationId":"similar_api_sequences__uid__similar_get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"min_identity","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"default":0.85,"title":"Min Identity"}},{"name":"same_species","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Same Species"}},{"name":"to_species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict neighbours to one species (e.g. 'human') or several comma-separated ('human,mouse'); the cross-species closest-ortholog lookup. Overrides same_species. A selection mixing the query's own species with others is served at the 0.85 cross-species floor, since below that the precomputed cache holds same-species edges the cross-species side lacks.","title":"To Species"},"description":"Restrict neighbours to one species (e.g. 'human') or several comma-separated ('human,mouse'); the cross-species closest-ortholog lookup. Overrides same_species. A selection mixing the query's own species with others is served at the 0.85 cross-species floor, since below that the precomputed cache holds same-species edges the cross-species side lacks."},{"name":"kind","in":"query","required":false,"schema":{"type":"string","pattern":"^(nt|aa)$","default":"nt","title":"Kind"}},{"name":"functional","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter neighbours by functionality: true = functional only, false = non-functional only, unset = all (incl. unknown).","title":"Functional"},"description":"Filter neighbours by functionality: true = functional only, false = non-functional only, unset = all (incl. unknown)."},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Keep only neighbours contributed by this source (IMGT, OGRDB, HUSA, MUSA, KIARVA, ...); case-insensitive. Unknown source = no matches.","title":"Source"},"description":"Keep only neighbours contributed by this source (IMGT, OGRDB, HUSA, MUSA, KIARVA, ...); case-insensitive. Unknown source = no matches."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResults"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rss/{uid}":{"get":{"summary":"Rss","description":"Coding alleles linked to this RSS, each with the source(s) of that link.","operationId":"rss_api_rss__uid__get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RssAllele"},"title":"Response Rss Api Rss  Uid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rss/{uid}/similar":{"get":{"summary":"Rss Similar","description":"RSS sequences similar to this one (identity-ranked).","operationId":"rss_similar_api_rss__uid__similar_get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"min_identity","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"default":0.85,"title":"Min Identity"}},{"name":"same_species","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Same Species"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RssSimilar"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search/name":{"get":{"summary":"Search Name","operationId":"search_name_api_search_name_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Q"}},{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One species, or several comma-separated (human,rhesus).","title":"Species"},"description":"One species, or several comma-separated (human,rhesus)."},{"name":"exact","in":"query","required":false,"schema":{"type":"boolean","description":"Return only exact-name matches, across species unless species is given. Use to list every species that reuses a name.","default":false,"title":"Exact"},"description":"Return only exact-name matches, across species unless species is given. Use to list every species that reuses a name."},{"name":"partial","in":"query","required":false,"schema":{"type":"boolean","description":"Browse mode: every allele whose name contains the query, so a fragment (IGHV1-6, 1-69) returns all variations to refine among. Default (neither flag) is precise: an exact allele, or a bare gene name resolved to exactly its own alleles (IGHV1-6 does not pull IGHV1-69).","default":false,"title":"Partial"},"description":"Browse mode: every allele whose name contains the query, so a fragment (IGHV1-6, 1-69) returns all variations to refine among. Default (neither flag) is precise: an exact allele, or a bare gene name resolved to exactly its own alleles (IGHV1-6 does not pull IGHV1-69)."},{"name":"subgroup","in":"query","required":false,"schema":{"type":"boolean","description":"Treat the query as an IMGT subgroup (IGHV1) and return every allele in it, anchored so IGHV1 does not pull IGHV10-1. Returns nothing for a query that is not a bare subgroup. The default path already falls back to this when a bare-subgroup query matches nothing else.","default":false,"title":"Subgroup"},"description":"Treat the query as an IMGT subgroup (IGHV1) and return every allele in it, anchored so IGHV1 does not pull IGHV10-1. Returns nothing for a query that is not a bare subgroup. The default path already falls back to this when a bare-subgroup query matches nothing else."},{"name":"functional","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by functionality: true = functional only, false = non-functional only, unset = all (incl. unknown).","title":"Functional"},"description":"Filter by functionality: true = functional only, false = non-functional only, unset = all (incl. unknown)."},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Keep only records contributed by this source (IMGT, OGRDB, HUSA, MUSA, KIARVA, ...); case-insensitive. Unknown source = no matches.","title":"Source"},"description":"Keep only records contributed by this source (IMGT, OGRDB, HUSA, MUSA, KIARVA, ...); case-insensitive. Unknown source = no matches."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResults"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pmid/{pmid}":{"get":{"summary":"Alleles For Pmid","description":"Every allele a PubMed record attests — the reverse of an allele's reference list.\n\nAccepts a bare PMID, `PMID:29163486`, or a PubMed URL. Each hit carries the\nevidence tier that attests it (`verified` / `sequence` / `name`), and the per-tier\ntotals are reported separately: a mined name-only lead is a weaker claim than a\ncurator-verified cross-reference, so they are never summed into one number.\n\nArchived alleles are **included** and flagged, because a paper citing an allele is\nthe reason archived records stay reachable at all.","operationId":"alleles_for_pmid_api_pmid__pmid__get","parameters":[{"name":"pmid","in":"path","required":true,"schema":{"type":"string","title":"Pmid"}},{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One species, or several comma-separated (human,rhesus).","title":"Species"},"description":"One species, or several comma-separated (human,rhesus)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PmidResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search/sequence":{"post":{"summary":"Search Sequence","operationId":"search_sequence_api_search_sequence_post","parameters":[{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One species, or several comma-separated (human,rhesus).","title":"Species"},"description":"One species, or several comma-separated (human,rhesus)."},{"name":"category","in":"query","required":false,"schema":{"type":"string","pattern":"^(coding|leader|rss)$","default":"coding","title":"Category"}},{"name":"locus","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the search to one chain (IGH/IGK/IGL/TRA/TRB/TRG/TRD). Use when the chain is known, e.g. from an existing V call.","title":"Locus"},"description":"Restrict the search to one chain (IGH/IGK/IGL/TRA/TRB/TRG/TRD). Use when the chain is known, e.g. from an existing V call."},{"name":"partial","in":"query","required":false,"schema":{"type":"boolean","description":"Local (containment) identity: a truncated or divergent query resolves against its best-matching window, scoring a contained fragment near 1.0. Uncacheable and concurrency-limited.","default":false,"title":"Partial"},"description":"Local (containment) identity: a truncated or divergent query resolves against its best-matching window, scoring a contained fragment near 1.0. Uncacheable and concurrency-limited."},{"name":"functional","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by functionality: true = functional only, false = non-functional only, unset = all (incl. unknown).","title":"Functional"},"description":"Filter by functionality: true = functional only, false = non-functional only, unset = all (incl. unknown)."},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Keep only records contributed by this source (IMGT, OGRDB, HUSA, MUSA, KIARVA, ...); case-insensitive. Unknown source = no matches.","title":"Source"},"description":"Keep only records contributed by this source (IMGT, OGRDB, HUSA, MUSA, KIARVA, ...); case-insensitive. Unknown source = no matches."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResults"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search/aa":{"post":{"summary":"Search Aa","operationId":"search_aa_api_search_aa_post","parameters":[{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One species, or several comma-separated (human,rhesus).","title":"Species"},"description":"One species, or several comma-separated (human,rhesus)."},{"name":"locus","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the search to one chain (IGH/IGK/IGL/TRA/TRB/TRG/TRD). Use when the chain is known, e.g. from an existing V call.","title":"Locus"},"description":"Restrict the search to one chain (IGH/IGK/IGL/TRA/TRB/TRG/TRD). Use when the chain is known, e.g. from an existing V call."},{"name":"partial","in":"query","required":false,"schema":{"type":"boolean","description":"Local (containment) identity: a truncated or divergent query resolves against its best-matching window. Uncacheable and concurrency-limited.","default":false,"title":"Partial"},"description":"Local (containment) identity: a truncated or divergent query resolves against its best-matching window. Uncacheable and concurrency-limited."},{"name":"functional","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by functionality: true = functional only, false = non-functional only, unset = all (incl. unknown).","title":"Functional"},"description":"Filter by functionality: true = functional only, false = non-functional only, unset = all (incl. unknown)."},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Keep only records contributed by this source (IMGT, OGRDB, HUSA, MUSA, KIARVA, ...); case-insensitive. Unknown source = no matches.","title":"Source"},"description":"Keep only records contributed by this source (IMGT, OGRDB, HUSA, MUSA, KIARVA, ...); case-insensitive. Unknown source = no matches."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AaSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResults"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/export":{"get":{"summary":"Export Index","description":"Describe the bulk-export endpoints and the attribution obligation (CC BY).","operationId":"export_index_api_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Export Index Api Export Get"}}}}}}},"/api/export/alleles.fasta":{"get":{"summary":"Export Fasta","description":"Download all matching alleles as FASTA (self-attributing headers).","operationId":"export_fasta_api_export_alleles_fasta_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","pattern":"^(coding|leader|rss)$","default":"coding","title":"Category"}},{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Species"}},{"name":"segment","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[VDJ]$"},{"type":"null"}],"title":"Segment"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","pattern":"^(nt|aa)$","default":"nt","title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/export/alleles.json":{"get":{"summary":"Export Json","description":"Download all matching alleles as JSON, each with its names + sources.","operationId":"export_json_api_export_alleles_json_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","pattern":"^(coding|leader|rss)$","default":"coding","title":"Category"}},{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Species"}},{"name":"segment","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[VDJ]$"},{"type":"null"}],"title":"Segment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Export Json Api Export Alleles Json Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/help":{"get":{"summary":"Help Page","description":"Human-readable guide to the website and REST API.","operationId":"help_page_help_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/tutorial":{"get":{"summary":"Tutorial Page","description":"Worked questions, plus the runnable Python client shown inline.","operationId":"tutorial_page_tutorial_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/tutorial/airbabel_example.py":{"get":{"summary":"Tutorial Script","description":"The same file the tutorial page shows, as a download.","operationId":"tutorial_script_tutorial_airbabel_example_py_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Home","operationId":"home__get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"mode","in":"query","required":false,"schema":{"type":"string","default":"auto","title":"Mode"}},{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Species"}},{"name":"min","in":"query","required":false,"schema":{"type":"number","default":0.85,"title":"Min"}},{"name":"cat","in":"query","required":false,"schema":{"type":"string","default":"coding","title":"Cat"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","default":"nt","title":"Kind"}},{"name":"partial","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Partial"}},{"name":"functional","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Functional"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overview":{"get":{"summary":"Overview","operationId":"overview_overview_get","parameters":[{"name":"species","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Species"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/examples":{"get":{"summary":"Examples Page","description":"Real records that show why names alone can't identify an allele.","operationId":"examples_page_examples_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/sources":{"get":{"summary":"Sources Page","description":"Every data source, its licence and citation — the paper trail for the dataset.","operationId":"sources_page_sources_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/seq/{uid}":{"get":{"summary":"Detail","operationId":"detail_seq__uid__get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rss/{uid}":{"get":{"summary":"Rss Page","operationId":"rss_page_rss__uid__get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/leader/{uid}":{"get":{"summary":"Leader Page","operationId":"leader_page_leader__uid__get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rss/{uid}/similar":{"get":{"summary":"Rss Similar Page","operationId":"rss_similar_page_rss__uid__similar_get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"min","in":"query","required":false,"schema":{"type":"number","default":0.85,"title":"Min"}},{"name":"cross_species","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Cross Species"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seq/{uid}/similar":{"get":{"summary":"Similar","operationId":"similar_seq__uid__similar_get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"min","in":"query","required":false,"schema":{"type":"number","default":0.85,"title":"Min"}},{"name":"cross_species","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Cross Species"}},{"name":"to_species","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"To Species"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","default":"nt","title":"Kind"}},{"name":"back","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Back"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AaSearchRequest":{"properties":{"sequence_aa":{"type":"string","title":"Sequence Aa"}},"type":"object","required":["sequence_aa"],"title":"AaSearchRequest"},"Alias":{"properties":{"name":{"type":"string","title":"Name"},"scheme":{"type":"string","title":"Scheme"},"source":{"type":"string","title":"Source"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"historical":{"type":"boolean","title":"Historical","default":false},"release":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Release"}},"type":"object","required":["name","scheme","source"],"title":"Alias"},"AliasGroup":{"properties":{"name":{"type":"string","title":"Name"},"scheme":{"type":"string","title":"Scheme"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"historical":{"type":"boolean","title":"Historical","default":false},"release":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Release"},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","default":[]}},"type":"object","required":["name","scheme"],"title":"AliasGroup","description":"One distinct name (a ``(name, scheme)`` pair), with **every source** that\nattributes it collapsed into ``sources``. The same designation often comes from\nmany sources (and IMGT spans many release versions); grouping keeps the names\ntable to one row per name instead of one per source-version."},"AlleleDescription":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases","default":[]},"coding_sequence":{"type":"string","title":"Coding Sequence"},"sequence_aa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sequence Aa"},"functional":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Functional"},"locus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locus"},"sequence_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sequence Type"},"species":{"$ref":"#/components/schemas/Ontology"},"germline_set_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Germline Set Ref"}},"type":"object","required":["label","coding_sequence","species"],"title":"AlleleDescription","description":"AIRR-aligned view of a coding allele (subset of AIRR AlleleDescription)."},"ArchivedMatch":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"type":"string","title":"Name"},"first_seen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Seen"},"last_seen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Seen"},"superseded_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded By"},"superseded_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded By Name"},"superseded_by_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Superseded By Length"},"superseded_relation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded Relation"}},"type":"object","required":["uid","name"],"title":"ArchivedMatch","description":"A name that matched nothing current, but does match a record we still hold.\n\nArchived records are excluded from search on purpose — the current allele is what\na name query wants. Returning plain silence is the wrong way to do it: the record\nis here, the query was not a mistake, and a paper citing that name deserves an\nanswer. So a zero-result name search reports what it deliberately skipped."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"NativeRecord":{"properties":{"uid":{"type":"string","title":"Uid"},"species":{"type":"string","title":"Species"},"category":{"type":"string","title":"Category"},"segment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment"},"locus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locus"},"secondary_locus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secondary Locus"},"subtype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtype"},"sequence":{"type":"string","title":"Sequence"},"sequence_hash":{"type":"string","title":"Sequence Hash"},"sequence_aa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sequence Aa"},"aa_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aa Hash"},"aa_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aa Origin"},"protein_uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protein Uid"},"functional":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Functional"},"length":{"type":"integer","title":"Length"},"has_ambiguity":{"type":"boolean","title":"Has Ambiguity"},"allele_names":{"items":{"$ref":"#/components/schemas/Alias"},"type":"array","title":"Allele Names","default":[]},"other_names":{"items":{"$ref":"#/components/schemas/Alias"},"type":"array","title":"Other Names","default":[]},"allele_name_groups":{"items":{"$ref":"#/components/schemas/AliasGroup"},"type":"array","title":"Allele Name Groups","default":[]},"other_name_groups":{"items":{"$ref":"#/components/schemas/AliasGroup"},"type":"array","title":"Other Name Groups","default":[]},"former_names":{"items":{"$ref":"#/components/schemas/Alias"},"type":"array","title":"Former Names","default":[]},"retired":{"type":"boolean","title":"Retired","default":false},"prev_versions":{"items":{"$ref":"#/components/schemas/RecordVersion"},"type":"array","title":"Prev Versions","default":[]},"newer_version":{"anyOf":[{"$ref":"#/components/schemas/RecordVersion"},{"type":"null"}]},"archived":{"type":"boolean","title":"Archived","default":false},"similarity_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Similarity Note"},"composition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Composition"},"first_seen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Seen"},"last_seen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Seen"},"xrefs":{"items":{"$ref":"#/components/schemas/Xref"},"type":"array","title":"Xrefs","default":[]},"references":{"items":{"$ref":"#/components/schemas/Reference"},"type":"array","title":"References","default":[]},"rss":{"items":{"$ref":"#/components/schemas/RssLink"},"type":"array","title":"Rss","default":[]},"leaders":{"items":{"$ref":"#/components/schemas/RssLink"},"type":"array","title":"Leaders","default":[]},"sources":{"items":{"$ref":"#/components/schemas/SourceTag"},"type":"array","title":"Sources","default":[]}},"type":"object","required":["uid","species","category","sequence","sequence_hash","length","has_ambiguity"],"title":"NativeRecord","description":"Our native record shape."},"Ontology":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"}},"type":"object","required":["id","label"],"title":"Ontology","description":"AIRR Ontology value (CURIE id + label), e.g. NCBITaxon for species."},"PmidHit":{"properties":{"uid":{"type":"string","title":"Uid"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"species":{"type":"string","title":"Species"},"locus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locus"},"sequence_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sequence Type"},"kind":{"type":"string","title":"Kind"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"archived":{"type":"boolean","title":"Archived","default":false},"superseded_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded By"}},"type":"object","required":["uid","species","kind"],"title":"PmidHit","description":"One allele attested by a paper, carrying **how** the paper attests it."},"PmidResult":{"properties":{"pmid":{"type":"string","title":"Pmid"},"url":{"type":"string","title":"Url"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"count":{"type":"integer","title":"Count"},"capped":{"type":"boolean","title":"Capped","default":false},"n_verified":{"type":"integer","title":"N Verified","default":0},"n_sequence":{"type":"integer","title":"N Sequence","default":0},"n_name":{"type":"integer","title":"N Name","default":0},"hits":{"items":{"$ref":"#/components/schemas/PmidHit"},"type":"array","title":"Hits","default":[]}},"type":"object","required":["pmid","url","count"],"title":"PmidResult","description":"Every allele one PubMed record attests, tiered by evidence.\n\nThe reverse of the allele page's reference list. Tiers are kept separate and never\ncollapsed into a flat count: a mined name-only lead is not the same claim as a\ncurator-verified cross-reference, and reporting one total would present the weaker\nas the stronger."},"RecordVersion":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"type":"string","title":"Name"},"length":{"type":"integer","title":"Length"},"relation":{"type":"string","title":"Relation"},"current":{"type":"boolean","title":"Current","default":false},"first_seen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Seen"},"last_seen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Seen"}},"type":"object","required":["uid","name","length","relation"],"title":"RecordVersion","description":"Another **record of the same allele**: a different sequence carrying the same\nIMGT designation in a different release range.\n\nIMGT revises the extent of a record without changing its name — a partial\nV-REGION later completed, or a longer record trimmed. Because a sequence's\nidentity is its hash, each extent is a separate row, and the older one loses its\ncurrent name. Nothing was renamed and no allele went away; only the span of\nsequence IMGT publishes under that name changed.\n\n``relation`` says how this record relates to the one being viewed:\n``\"extends\"`` (it contains the viewed sequence), ``\"trims\"`` (it is contained in\nthe viewed sequence), or ``\"differs\"`` (neither, so the bases changed too).\n\nOnly ever populated from **disjoint** release ranges. Two sequences that held one\nname in the *same* release are a genuine ambiguity, not a version chain, and are\ndeliberately excluded."},"Reference":{"properties":{"pmid":{"type":"string","title":"Pmid"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"verified":{"type":"boolean","title":"Verified","default":false},"kind":{"type":"string","title":"Kind","default":"name"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},"type":"object","required":["pmid"],"title":"Reference","description":"A literature reference (PubMed) attesting an allele.\n\n``kind`` tiers the evidence, strongest first:\n\n* ``\"verified\"`` — curator-provided (from the internal tables / GenBank xref).\n* ``\"sequence\"`` — auto-mined, but the allele's **sequence** was found in the\n  paper's full text or a supplementary file (hash match; cross-species-safe).\n* ``\"name\"`` — auto-mined by **name** only (a lead; the same name can denote a\n  different allele in another species, so treat as a pointer, not proof).\n\n``verified`` (kept for back-compat) is true iff ``kind == \"verified\"``.\n``detail`` carries the mining provenance for a sequence/name hit (e.g.\n``\"sequence_exact · fulltext:PMC1234567\"``)."},"ResolveResult":{"properties":{"matched_by":{"type":"string","title":"Matched By","description":"uid | protein_uid | name | sequence_hash | rc_hash | aa_hash"},"record":{"$ref":"#/components/schemas/SequenceRecord"}},"type":"object","required":["matched_by","record"],"title":"ResolveResult"},"RssAllele":{"properties":{"uid":{"type":"string","title":"Uid"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"species":{"type":"string","title":"Species"},"locus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locus"},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","default":[]}},"type":"object","required":["uid","species"],"title":"RssAllele","description":"A coding allele linked to an RSS, with the source(s) of that link."},"RssHit":{"properties":{"uid":{"type":"string","title":"Uid"},"sequence":{"type":"string","title":"Sequence"},"species":{"type":"string","title":"Species"},"subtype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtype"},"score":{"type":"number","title":"Score"},"allele_count":{"type":"integer","title":"Allele Count"}},"type":"object","required":["uid","sequence","species","score","allele_count"],"title":"RssHit","description":"One RSS sequence in a similarity result."},"RssLink":{"properties":{"uid":{"type":"string","title":"Uid"},"subtype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtype"},"sequence":{"type":"string","title":"Sequence"},"relation":{"type":"string","title":"Relation"},"exon1_len":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exon1 Len"},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","default":[]}},"type":"object","required":["uid","sequence","relation"],"title":"RssLink","description":"A linked RSS (or leader) sequence flanking a coding allele."},"RssSimilar":{"properties":{"uid":{"type":"string","title":"Uid"},"sequence":{"type":"string","title":"Sequence"},"count":{"type":"integer","title":"Count"},"capped":{"type":"boolean","title":"Capped","default":false},"hits":{"items":{"$ref":"#/components/schemas/RssHit"},"type":"array","title":"Hits","default":[]}},"type":"object","required":["uid","sequence","count"],"title":"RssSimilar","description":"RSS sequences similar to a query RSS."},"SearchHit":{"properties":{"uid":{"type":"string","title":"Uid"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"species":{"type":"string","title":"Species"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"locus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locus"},"sequence_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sequence Type"},"score":{"type":"number","title":"Score"},"matched_by":{"type":"string","title":"Matched By"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases","default":[]},"superseded_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded By"}},"type":"object","required":["uid","species","score","matched_by"],"title":"SearchHit"},"SearchResults":{"properties":{"query":{"type":"string","title":"Query"},"count":{"type":"integer","title":"Count"},"capped":{"type":"boolean","title":"Capped"},"hits":{"items":{"$ref":"#/components/schemas/SearchHit"},"type":"array","title":"Hits","default":[]},"archived_matches":{"items":{"$ref":"#/components/schemas/ArchivedMatch"},"type":"array","title":"Archived Matches","default":[]}},"type":"object","required":["query","count","capped"],"title":"SearchResults"},"SequenceRecord":{"properties":{"native":{"$ref":"#/components/schemas/NativeRecord"},"airr":{"$ref":"#/components/schemas/AlleleDescription"}},"type":"object","required":["native","airr"],"title":"SequenceRecord","description":"A full record: native + AIRR views."},"SequenceSearchRequest":{"properties":{"sequence":{"type":"string","title":"Sequence"}},"type":"object","required":["sequence"],"title":"SequenceSearchRequest"},"SourceTag":{"properties":{"name":{"type":"string","title":"Name"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"curie_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Curie Prefix"},"redistributable":{"type":"boolean","title":"Redistributable"},"original_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Id","description":"CURIE cross-reference, e.g. GENBANK:X02897"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","required":["name","redistributable"],"title":"SourceTag","description":"One source attesting a sequence, with its CURIE cross-reference."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"Xref":{"properties":{"label":{"type":"string","title":"Label"},"curie":{"type":"string","title":"Curie"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","required":["label","curie"],"title":"Xref","description":"A cross-reference to an external resource (CURIE + resolved URL)."}}}}