Research API

Access the Blossom psychedelic research database programmatically. Papers, clinical trials, 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/papers?limit=10&compound=psilocybin"

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.csv

Endpoints

MethodPathDescriptionTier
GET/api/v1/papersList papers with metadata (paginated, filterable)free
GET/api/v1/papers/:slugSingle paper detail — Pro adds outcome measures & adverse eventsfree
GET/api/v1/trialsList clinical trials (paginated, filterable)free
GET/api/v1/trials/:slugSingle trial detail — Pro adds arms, dosing, eligibilityfree
GET/api/v1/compoundsList compounds with trial/paper countsfree
GET/api/v1/topicsList topics/indications with trial/paper countsfree
GET/api/v1/personsList researchers with affiliationsfree
GET/api/v1/journalsList journals with h-indexfree
GET/api/v1/networkCo-authorship network graph (nodes + edges)pro
GET/api/v1/evidence-matrixCompound × topic evidence matrixpro
GET/api/v1/downloadsList available dataset files for downloadfree

Query Parameters

Common list query parameters (some are endpoint-specific):

ParameterDescription
limitResults per page (1–100, default 25)
cursorPagination cursor (use value from response meta.cursor)
qFull-text search query — matches paper titles and abstracts (papers endpoint only)
doiFilter by DOI (papers endpoint only). Accepts DOI path or DOI URL.
compoundFilter by compound slug (e.g., psilocybin)
topicFilter by topic slug (e.g., depression)
sinceFilter by date (ISO 8601, e.g., 2024-01-01)
formatResponse format: json (default) or csv

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)

# Download a pre-generated dataset (daily updated)
papers <- read.csv("https://www.moreblossom.com/api/v1/downloads/papers-metadata.csv",
                   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.

FileDescriptionTier
papers-metadata.csvAll papers: DOI, PMID, title, date, study type, authors, compounds, topicsfree
papers-outcomes.csvPer-arm outcome measures: timepoints, estimates, CIspro
papers-contrasts.csvBetween-group contrasts: effect sizes, p-valuespro
papers-adverse-events.csvPer-arm TEAE countspro
trials.csvAll trials: registry, phase, status, compound, sponsorfree
trials-detailed.csvTrials with eligibility, therapy, sitespro
persons.csvResearchers with affiliations and paper/trial countsfree
compounds.csvCompounds with pharmacology and countsfree
topics.csvIndications with prevalence and countsfree
evidence-matrix.csvCompound x topic evidence ratingspro
network.jsonCo-authorship network graphpro

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
  • NA for missing values (R convention)
  • ISO 8601 dates (YYYY-MM-DD)
  • Multi-value fields joined with semicolons (e.g., "compound1; compound2")
  • snake_case column names