API Guide for Researchers
Query our evidence graph programmatically. No authentication required for read access. All endpoints return JSON under /api/v2.
Quick Start — 3 Commands
# 1. Platform overview
curl -s https://sma-research.info/api/v2/stats | python3 -m json.tool
# 2. Ranked molecular targets
curl -s "https://sma-research.info/api/v2/scores?mode=discovery" | python3 -m json.tool
# 3. Search drug efficacy claims
curl -s "https://sma-research.info/api/v2/claims?claim_type=drug_efficacy&limit=10" | python3 -m json.toolCore Data Endpoints
GET/stats
Platform overview counts for all major tables
curl -s https://sma-research.info/api/v2/stats
GET/targets
All molecular targets. Params:
target_type, limit (1-2000), offsetcurl -s ".../targets?target_type=gene&limit=200"
GET/targets/symbol/{symbol}
Single target by gene symbol (e.g., ROCK2, LIMK1, SMN2)
curl -s ".../targets/symbol/ROCK2"
GET/targets/{id}/deep-dive
Full target view: claims, hypotheses, drugs, trials, network edges
GET/claims
Search claims. Params:
claim_type, confidence_min, target, q, enrichedcurl -s ".../claims?claim_type=drug_efficacy&confidence_min=0.8&enriched=true"
GET/hypotheses
Ranked hypotheses. Params:
status, limit, offsetcurl -s ".../hypotheses?limit=20"
GET/scores
7-dimension target prioritization. Params:
mode (discovery|clinical), min_scorecurl -s ".../scores?mode=discovery"
GET/drugs
Drugs and therapies. Params:
approval_status, drug_typecurl -s ".../drugs?approval_status=approved"
GET/trials
Clinical trials from ClinicalTrials.gov
GET/sources
PubMed literature sources. Params:
source_type, limit, offsetGET/news
Research highlights and discoveries. Also: /news/rss for RSS feed
GET/search
Semantic + keyword hybrid search. Params:
q, mode (semantic|keyword|hybrid)curl -s ".../search?q=ROCK+inhibitor&mode=hybrid"
Computational Biology
GET/structures
Predicted protein structures with pLDDT scores. Params:
symbol, min_plddtGET/pockets, /pockets/druggable
Binding pockets from fpocket analysis. Filter by symbol
GET/splice/predict?variant=c.6T>C
SMN2 splice variant effect prediction. Also: /splice/known-variants, /splice/elements
GET/molecules/browser
AI-designed molecules (GenMol). Params:
target, bbb_only, min_qedGET/dock/score
Pharmacophore scoring against 7 binding pockets. Params:
pocket, limitGET/interactions/target/{symbol}
Protein-protein and drug-target interaction network for a gene
GET/cascade/predict
Predict downstream signaling cascade effects. Params:
gene, perturbationGET/screen/dual-target
Dual-target screening candidates and synergy predictions
Data Export
GET/export/{table}?fmt=csv
Bulk download as CSV or JSON. Tables: targets, drugs, trials, claims, hypotheses, graph_edges, drug_outcomes, cross_species_targets, target_scores, molecule_screenings
curl -s ".../export/claims?fmt=csv&limit=5000" -o sma_claims.csv
GET/export/target/{symbol}?fmt=bibtex
Export all evidence for a target as JSON, CSV, or BibTeX citations
curl -s ".../export/target/ROCK2?fmt=bibtex"
GET/molecules/browser/export?fmt=sdf
Download AI-designed molecules as SDF (for cheminformatics tools) or CSV
Claim Type Reference
gene_expressionprotein_interactionpathway_membershipdrug_targetdrug_efficacybiomarkersplicing_eventneuroprotectionmotor_functionsurvivalsafetyfunctional_interactionotherPython Example
import requests
BASE = "https://sma-research.info/api/v2"
# Get scored and ranked targets
scores = requests.get(f"{BASE}/scores", params={"mode": "discovery"}).json()
for t in scores[:10]:
print(f"{t['symbol']:10s} score={t['composite_score']:.3f}")
# Search high-confidence drug efficacy claims
claims = requests.get(f"{BASE}/claims", params={
"claim_type": "drug_efficacy",
"confidence_min": 0.8,
"enriched": True,
"limit": 100
}).json()
for c in claims:
print(f"[{c['confidence']:.2f}] {c['predicate'][:80]}")
# Deep-dive: full evidence for a target
target = requests.get(f"{BASE}/targets/symbol/ROCK2").json()
dive = requests.get(f"{BASE}/targets/{target['id']}/deep-dive").json()
print(f"Claims: {len(dive['claims'])}, Hypotheses: {len(dive['hypotheses'])}")R Example
library(httr)
library(jsonlite)
base_url <- "https://sma-research.info/api/v2"
# All targets with discovery-mode scores
scores <- fromJSON(content(
GET(paste0(base_url, "/scores"), query = list(mode = "discovery")),
"text"
))
# Top 10 by composite score
top10 <- head(scores[order(-scores$composite_score), ], 10)
print(top10[, c("symbol", "composite_score")])
# Export as CSV
resp <- GET(paste0(base_url, "/export/targets"), query = list(fmt = "csv", limit = 5000))
writeLines(content(resp, "text"), "sma_targets.csv")Rate Limits & Access
No authentication required for all GET endpoints.
No formal rate limiting — but please stay under ~10 req/sec sustained.
CORS is restricted to sma-research.info. Use server-side calls or curl from other domains.
Bulk downloads: Use
/export endpoints instead of paginating through /claims.Write access (POST/PUT) requires an admin API key. Contact christian@bryzant.com if needed.
Citation
If you use data from this platform, please cite:
Fischer, C. (2026). SMA Research Platform — Open Evidence Graph
for Spinal Muscular Atrophy. https://sma-research.info
Bryzant Labs. Accessed [date].BibTeX
@misc{fischer2026sma,
author = {Fischer, Christian},
title = {{SMA Research Platform --- Open Evidence Graph for SMA}},
year = {2026},
url = {https://sma-research.info},
note = {Accessed: 2026-03-25}
}Try It Live
GET/api/v2/
Select an endpoint and click Send to try the API.