Research API
Access the Blossom psychedelic research database programmatically. Papers, clinical trials, country reports, compounds, researchers, and co-authorship networks — available as JSON, CSV, and downloadable datasets for R, Python, and SPSS.
Quick Start
1. Create an API Key
Go to your Account Settings and create an API key. Copy it immediately — it's only shown once. Use the key in the Authorization header for all requests.
2. Make a request
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/countries/germany"3. Get CSV for R/SPSS
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/papers?format=csv&compound=psilocybin" \
-o papers.csvEndpoints
| Method | Path | Description | Tier |
|---|---|---|---|
| GET | /api/v1/papers | List papers with metadata (paginated, filterable) | free |
| GET | /api/v1/papers/:slug | Single paper detail — Pro adds outcome measures & adverse events | free |
| GET | /api/v1/trials | List clinical trials (paginated, filterable) | free |
| GET | /api/v1/trials/:slug | Single trial detail — Pro adds arms, dosing, eligibility | free |
| GET | /api/v1/trials-forecast | Ranked trial catalyst forecasts — Pro adds narrative and operational detail | free |
| GET | /api/v1/compounds | List compounds with trial/paper counts | free |
| GET | /api/v1/compounds/:slug | Complete published compound report, linked research, and timeline availability | pro |
| GET | /api/v1/compounds/:slug/timeline | Curated compound research-journey timeline, programmes, and milestones | pro |
| GET | /api/v1/topics | List topics/indications with trial/paper counts | free |
| GET | /api/v1/topics/:slug | Complete published topic report, including linked evidence and research summaries | pro |
| GET | /api/v1/research/:compound/:topic | Compound × topic evidence page with matching papers, trials, and available summaries | pro |
| GET | /api/v1/research/:compound/:topic/adverse-events | Published adverse-event evidence summary for a compound × topic pair | pro |
| GET | /api/v1/research/:compound/:topic/dose-summaries | Published dose evidence summary for a compound × topic pair | pro |
| GET | /api/v1/countries | List country reports with public indicators and search links | free |
| GET | /api/v1/countries/:slug | Single country report - Pro adds deep report fields, reimbursement, trials, stakeholders, and events | free |
| GET | /api/v1/countries/:slug/scorecard | Country policy and access scorecard, including published subnational and advocacy context | pro |
| GET | /api/v1/countries/:slug/subnational/:subnationalSlug | Complete published subnational policy, access, research, and ecosystem report | pro |
| GET | /api/v1/regions | List published regional reports | free |
| GET | /api/v1/regions/:slug | Complete regional research, policy, and aggregate intelligence report | pro |
| GET | /api/v1/persons | List researchers with affiliations | free |
| GET | /api/v1/persons/:slug | Complete researcher profile with affiliations, research footprint, and linked entities | pro |
| GET | /api/v1/journals | List journals with h-index | free |
| GET | /api/v1/journals/:slug | Complete journal profile with linked papers and research footprint | pro |
| GET | /api/v1/stakeholders | List organisations and other research stakeholders | free |
| GET | /api/v1/stakeholders/:slug | Single stakeholder with related trials | free |
| GET | /api/v1/network | Co-authorship network graph (nodes + edges) | pro |
| GET | /api/v1/evidence-matrix | Compound × topic evidence matrix | pro |
| GET | /api/v1/downloads | List available dataset files for download | free |
| GET | /api/v1/changes?since=ISO-8601 | Published-record sync feed (upserts only; no deletion tombstones yet) | pro |
Query Parameters
Common list query parameters (some are endpoint-specific):
| Parameter | Description |
|---|---|
| limit | Results per page (1–100, default 25) |
| cursor | Pagination cursor (use value from response meta.cursor) |
| q | Full-text search query — matches paper titles and abstracts (papers endpoint only) |
| doi | Filter by DOI (papers endpoint only). Accepts DOI path or DOI URL. |
| compound | Filter by compound slug (e.g., psilocybin) |
| topic | Filter by topic slug (e.g., depression) |
| since | Filter by date (ISO 8601, e.g., 2024-01-01) |
| sponsor | Filter trials and forecasts by sponsor slug |
| phase | Filter trial forecasts by phase |
| format | Response format: json (default) or csv |
OpenAPI and incremental sync
The complete, machine-readable OpenAPI 3.1 contract for all v1 GET routes is available in the API specification. Pro integrations can start an incremental sync with a strict ISO-8601 since value, then send only the opaque meta.cursor returned by each page. Do not inspect or construct cursors.
Each change includes stable ID, entity type, slug, timestamp, canonical and API paths, resource links, and locator fields. Subnational records include both countrySlug and slug; evidence summaries include compound and topic slugs. The feed currently covers published Sanity documents and upserts only. It does not emit deletion tombstones or revisions to code-backed compound timelines, so consumers should periodically reconcile full listings and treat timeline data as snapshot-only.
# First page
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/changes?since=2026-07-01T00:00:00Z"
# Continuation: use the exact opaque meta.cursor, without since
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/changes?cursor=OPAQUE_CURSOR"Compound reports and timelines
The compounds list is a compact index. Pro keys can retrieve the full published compound report as structured JSON, including portable-text content, linked research, and timeline availability. Where a curated research-journey timeline is published, its milestones and programme threads are available from the timeline endpoint. Open-ended timeline acts use until: null with openEnded: true.
# Complete compound report, including timeline availability
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/compounds/psilocybin"
# Full curated research-journey timeline (published compounds only)
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/compounds/psilocybin/timeline"Topic reports and research evidence
Pro keys can also retrieve complete published topic reports and the evidence pages that connect a compound with an indication. The compound-topic endpoint returns its matched papers and trials alongside any published safety and dose summaries. The two summary endpoints return their complete underlying evidence rows.
# Complete topic report
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/topics/depression"
# Evidence for one compound and indication, with matching papers and trials
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/research/psilocybin/depression"
# Complete safety and dose evidence, where published
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/research/psilocybin/depression/adverse-events"
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/research/psilocybin/depression/dose-summaries"DOI Lookup Flow
Use /api/v1/papers?doi=... to find a paper by DOI, then use the returned slug with /api/v1/papers/:slug for full detail.
# Bare DOI
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/papers?doi=10.1038/s41591-023-02565-4"
# DOI URL
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/papers?doi=https://doi.org/10.1038/s41591-023-02565-4"
# Then fetch full paper by slug
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.moreblossom.com/api/v1/papers/:slug"Response Format
JSON responses follow a consistent envelope:
{
"data": [ ... ],
"meta": {
"cursor": "abc123",
"hasMore": true
}
}Code Examples
Python
import requests
API_KEY = "your_api_key_here" # From Account Settings → API Keys
headers = {"Authorization": f"Bearer {API_KEY}"}
# Filter by compound slug
resp = requests.get(
"https://www.moreblossom.com/api/v1/papers",
params={"compound": "psilocybin", "limit": 50},
headers=headers,
)
papers = resp.json()["data"]
# Full-text search across titles and abstracts
resp = requests.get(
"https://www.moreblossom.com/api/v1/papers",
params={"q": "santo daime", "limit": 25},
headers=headers,
)
papers = resp.json()["data"]R (httr2)
library(httr2)
# Store your API key in .Renviron: BLOSSOM_API_KEY=your_key_here
resp <- request("https://www.moreblossom.com/api/v1/papers") |>
req_headers(Authorization = paste("Bearer", Sys.getenv("BLOSSOM_API_KEY"))) |>
req_url_query(compound = "psilocybin", format = "csv") |>
req_perform()
papers <- read.csv(textConnection(resp_body_string(resp)))R (download CSV)
# Discover the current download URL (datasets are refreshed daily)
downloads <- request("https://www.moreblossom.com/api/v1/downloads") |>
req_headers(Authorization = paste("Bearer", Sys.getenv("BLOSSOM_API_KEY"))) |>
req_perform() |>
resp_body_json()
files <- downloads$data
is_papers <- vapply(
files,
function(file) identical(file$filename, "papers-metadata.csv"),
logical(1)
)
papers_url <- files[[which(is_papers)[1]]]$url
papers <- read.csv(papers_url, na.strings = "NA", fileEncoding = "UTF-8-BOM")Downloadable Datasets
Pre-generated datasets are refreshed daily. Available in CSV (R/SPSS compatible) and JSON formats. Use the /api/v1/downloads endpoint to list all available files with download URLs.
| File | Description | Tier |
|---|---|---|
| papers-metadata.csv | All papers: DOI, PMID, title, date, study type, authors, compounds, topics | free |
| papers-outcomes.csv | Per-arm outcome measures: timepoints, estimates, CIs | pro |
| papers-contrasts.csv | Between-group contrasts: effect sizes, p-values | pro |
| papers-adverse-events.csv | Per-arm TEAE counts | pro |
| trials.csv | All trials: registry, phase, status, compound, sponsor | free |
| trials-detailed.csv | Trials with eligibility, therapy, sites | pro |
| persons.csv | Researchers with affiliations and paper/trial counts | free |
| compounds.csv | Compounds with pharmacology and counts | free |
| topics.csv | Indications with prevalence and counts | free |
| evidence-matrix.csv | Compound x topic evidence ratings | pro |
| network.json | Co-authorship network graph | pro |
Rate Limits
Free
100
requests / minute
Pro
500
requests / minute
CSV Conventions
All CSV files follow these conventions for compatibility with R, SPSS, JASP, and Excel:
- UTF-8 with BOM (Windows Excel compatible)
- Comma-delimited
NAfor missing values (R convention)- ISO 8601 dates (YYYY-MM-DD)
- Multi-value fields joined with semicolons (e.g., "compound1; compound2")
- snake_case column names