POST /api/ensembl/variants
Price: 10 credits
Get a genetic variant record from Ensembl by its identifier
Takes the identifier a variant database gave the variant - a dbSNP rs number, but also COSMIC and other sources Ensembl imports - within one species, so `species` must match the identifier. `mappings` is where the genomic coordinates and the allele string live, and a variant mapping to several places has several entries. The extra blocks are off by default because they dwarf the record: `include_genotypes` alone returns one row per sequenced sample.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)variant string required — Variant identifier as the source names it (examples: "rs699", "rs1042522", "COSM476"; minLength: 1)species string — Ensembl species the variant belongs to (default: "homo_sapiens"; examples: "homo_sapiens"; minLength: 1)include_phenotypes boolean — Also return the trait associations recorded for the variant (default: false)include_genotypes boolean — Also return the individual sample genotypes, which run to thousands of rows (default: false)include_population_genotypes boolean — Also return genotype frequencies aggregated per population (default: false)include_populations boolean — Also return allele frequencies per population (default: false)@type string (default: "EnsemblVariant")name string requiredspecies string (default: "")variant_class string (default: "")source string (default: "")ambiguity string (default: "")most_severe_consequence string (default: "")minor_allele string (default: "")minor_allele_frequency number nullablesynonyms array (default: [])evidence array (default: [])clinical_significance array (default: [])mappings array (default: [])@type string (default: "EnsemblVariantMapping")location string (default: "")seq_region_name string (default: "")start integer nullableend integer nullablestrand integer nullableallele_string string (default: "")ancestral_allele string (default: "")assembly_name string (default: "")coord_system string (default: "")phenotypes array (default: [])@type string (default: "EnsemblVariantPhenotype")trait string (default: "")source string (default: "")study string (default: "")risk_allele string (default: "")p_value string (default: "")beta_coefficient string (default: "")odds_ratio string (default: "")genes array (default: [])variants array (default: [])ontology_accessions array (default: [])genotypes array (default: [])@type string (default: "EnsemblVariantGenotype")sample string (default: "")genotype string (default: "")gender string (default: "")population_genotypes array (default: [])@type string (default: "EnsemblVariantPopulationGenotype")population string (default: "")genotype string (default: "")count integer nullablefrequency number nullablepopulations array (default: [])@type string (default: "EnsemblVariantPopulation")population string (default: "")allele string (default: "")frequency number nullableallele_count integer nullableurl string (default: "")422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — Variant not found Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.