Programmatic access
REST API
Public JSON endpoints for genes, expression, orthology, PPI, multi-omics and analysis tools are listed below: https://www.mapleomics.com/api/. Genome, synteny, GWAS and trait pages also use static datasets. No key or registration is required; please keep request rates modest.
page (1-based) and per_page (20/50/100). Other endpoint limits are listed below. Gene identifiers accept both display IDs (e.g. Atru.chr4.2311) and canonical IDs (Atru.chr4.2311_Atru).GET/api/stats
Counts of primary annotated gene records, sample-catalog records, normalized tissue categories and distinct PPI protein identifiers. Source annotation model counts and searchable record counts have separate definitions; see data scope.
curl https://www.mapleomics.com/api/stats
GET/api/gene/search
Search the gene index. Params: q (ID or description substring), species (code, e.g. Atru), page, per_page.
curl 'https://www.mapleomics.com/api/gene/search?q=Atru.chr4.231&species=Atru'
GET/api/gene/<gene_id>/expression · /api/gene/<gene_id>/info
Per-tissue TPM values; gene annotation, coordinates and orthogroup.
curl https://www.mapleomics.com/api/gene/Atru.chr4.2311_Atru/expression
GET/api/ortholog/search · /api/ortholog/group/<orthogroup_id>
OrthoFinder orthologs for a gene (gene param) or all members of an orthogroup.
curl 'https://www.mapleomics.com/api/ortholog/search?gene=Atru.chr4.2311_Atru'
POST/api/blast/run
JSON body: sequence (FASTA or raw), program (blastn/blastp/blastx/tblastn), db (genome/cds/protein), positive finite evalue (≤10), max_target_seqs (integer 1–100, default 50; subjects per query, not HSP rows). blastn/tblastn use genome or CDS; blastp/blastx use protein. Limits: 100 queries and 200,000 residues total. The response includes the actual parameters; failed searches return an error, not zero hits.
curl -X POST https://www.mapleomics.com/api/blast/run \
-H 'Content-Type: application/json' \
-d '{"sequence":"ATGGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCT","program":"blastn","db":"cds","max_target_seqs":10}'GET/api/ppi/search
Up to 100 STRING-derived association edges, ordered by score. Param: protein (protein/gene ID). The page filters this returned subset by score; the API does not accept a score threshold.
curl 'https://www.mapleomics.com/api/ppi/search?protein=Atru.chr5.769'
GET/api/multiomics/…
/gene/<id> cross-layer view; /diff DEG table (params layer, minimum absolute log₂ fold change fc, maximum fdr); /te ratio table (params q, class, sort, dir); /sorf/browse and /sorf/detail/<orf_id> sORF browser; /stats and /search. List page sizes range from 1 to 200. Invalid numeric filters return HTTP 400. gene-level Ribo differential and TE endpoints are temporarily paused (HTTP 503, data_status: under_reanalysis) because the imported Ribo comparison used mixed-date sample groups. All-layer differential queries and gene views omit this affected layer; original source records are retained.
curl 'https://www.mapleomics.com/api/multiomics/te?page=1&per_page=20'
GET/api/samples · /api/samples/stats
Sample catalogue (params species, assay_type, tissue, development_stage, page, per_page) and summary counts by assay, species and stage.
curl https://www.mapleomics.com/api/samples/stats
GET/api/primer/sequence · POST/api/primer/design
Fetch a template (gene_id, flank) or run Primer3 (JSON body: gene_id or sequence, preset, product_size_min/max).
curl -X POST https://www.mapleomics.com/api/primer/design \
-H 'Content-Type: application/json' -d '{"gene_id":"Atru.chr4.2311_Atru"}'POST/api/chat
Natural-language assistant. JSON body: message, optional history.
curl -X POST https://www.mapleomics.com/api/chat \
-H 'Content-Type: application/json' -d '{"message":"Which tissues express KCS most?"}'