MITOMAP APImitomap.org ↗
Access MITOMAP's rRNA/tRNA and coding region mutations, position-level variant search, and GenBank frequency stats via 4 structured JSON endpoints.
What is the MITOMAP API?
The MITOMAP API exposes 4 endpoints covering the full breadth of the MITOMAP mitochondrial DNA database, including rRNA/tRNA mutations, coding and control region pathogenic variants, and per-position variant lookups. The get_rna_mutations_by_position endpoint accepts any mtDNA position from 1 to 16569 and returns allele frequencies from MITOMAP, gnomAD, and HelixMTdb alongside conservation scores, making it practical for targeted variant interrogation.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/202effad-6cdd-4532-8f3d-025b39656ef1/get_rna_mutations_table' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace mitomap-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.mitomap_api import Mitomap, RnaMutation, CodingMutation, PositionVariant, GenbankFrequencyInfo
client = Mitomap()
# Get GenBank frequency dataset info
genbank_info = client.genbankfrequencyinfos.get()
print(genbank_info.summary_preview[:200], genbank_info.stats)
# Search for variants at a well-known pathogenic position
for variant in client.positionvariants.search(position="3243"):
print(variant.nucleotide_change, variant.locus, variant.conservation, variant.mitomap_frequency)
# List all RNA mutations
for mutation in client.rnamutations.list():
print(mutation.allele, mutation.locus, mutation.disease, mutation.status, mutation.gb_frequency)
# List all coding/control region mutations
for coding_mut in client.codingmutations.list():
print(coding_mut.allele, coding_mut.position, coding_mut.nucleotide_change, coding_mut.disease)
Extract all RNA mutation data from the MutationsRNA table. Returns the full set of rRNA/tRNA mutations with associated disease, status, and frequency information. Contains approximately 489 mutations. No pagination — returns the complete dataset in one call.
No input parameters required.
{
"type": "object",
"fields": {
"count": "integer total number of RNA mutations returned",
"mutations": "array of RNA mutation objects"
},
"sample": {
"data": {
"count": 489,
"mutations": [
{
"locus": "MT-CR",
"allele": "A576G",
"status": "Reported",
"disease": "Hearing loss patient",
"position": 576,
"rna_type": "noncoding MT-TF precursor",
"homoplasmy": "nr",
"gb_frequency": "0.005%(0.012%)",
"heteroplasmy": "nr",
"mitotip_score": "N/A"
}
]
},
"status": "success"
}
}About the MITOMAP API
RNA and Coding Mutation Tables
Two bulk-fetch endpoints cover the primary MITOMAP mutation catalogs. get_rna_mutations_table returns the complete MutationsRNA table as an array of objects, each carrying fields such as position, locus, disease, allele, rna_type, homoplasmy, heteroplasmy, status, mitotip_score, and associated annotations. get_coding_mutations_table targets the MutationsCodingControl table and returns locus, allele, position, nucleotide_change, amino_acid_change, plasmy, disease, and status for confirmed and reported pathogenic variants in protein-coding genes and the control region. Both endpoints return a count integer alongside the mutations array so you can validate completeness without counting rows yourself.
Position-Based Variant Search
get_rna_mutations_by_position accepts a single required parameter — position (a string representing an mtDNA nucleotide position, 1–16569) — and returns a variants array with per-variant fields including nucleotide_change, mitomap_frequency, gnomad_frequency, helix_frequency, and conservation scores. The response also echoes back position_queried for straightforward result validation. This endpoint is useful when you have a candidate position from a sequencing pipeline and want to cross-reference it against multiple population frequency sources in one call.
GenBank Frequency Context
get_genbank_frequency_info retrieves summary statistics about the GenBank sequence dataset underlying MITOMAP's frequency calculations. It returns a stats object of key-value pairs extracted from statistical tables and a summary_preview string containing the first 1500 characters of the frequency information page. This provides the denominator context needed to interpret allele frequencies returned by other endpoints.
The MITOMAP API is a managed, monitored endpoint for mitomap.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mitomap.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official mitomap.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Cross-referencing a candidate mtDNA variant against MITOMAP disease associations using
get_rna_mutations_by_positionwith a specific nucleotide position - Building a local mirror of all confirmed pathogenic coding-region mutations by polling
get_coding_mutations_tableand filtering on thestatusfield - Comparing population frequencies across MITOMAP, gnomAD, and HelixMTdb for variants returned by the position search endpoint
- Extracting MitoTIP scores from
get_rna_mutations_tableto prioritize tRNA variants in a mitochondrial disease gene panel - Auditing homoplasmy vs. heteroplasmy annotations for all RNA mutations to support variant classification workflows
- Retrieving GenBank dataset size and statistics to normalize allele frequency calculations in downstream analysis scripts
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does MITOMAP provide an official developer API?+
What does `get_rna_mutations_by_position` return beyond basic variant info?+
variants array where each object includes nucleotide_change, locus, mitomap_frequency, gnomad_frequency, helix_frequency, and conservation scores — giving you three independent population frequency sources and a conservation signal in a single response. The position_queried field echoes back the input so responses are self-documenting.Can I filter the mutation tables by disease or status through these endpoints?+
get_rna_mutations_table and get_coding_mutations_table) return all records without server-side filtering; fields like disease, status, homoplasmy, and heteroplasmy are present in each object so you can filter client-side. Server-side filtering by disease or gene is not currently exposed. You can fork this API on Parse and revise it to add filtered query parameters.Does the API cover somatic mtDNA mutations or only germline/inherited variants?+
How current is the data returned by the mutation table endpoints?+
get_genbank_frequency_info endpoint returns a summary_preview that typically notes the GenBank release version used, which can serve as a rough freshness indicator.