Free research API
Use the free psilocybin research API without signup or keys. Download JSON and CSV, query country trials, and import data directly into R, Python or SPSS.
Free access · No subscription for research tools or data exports
No signup. No API key. Just a URL.
Research data are publicly readable over HTTPS. Send a GET request without an Authorization header. Use JSON for applications, CSV for tables and statistical software, and the sanitized SQLite download for a complete offline data copy. There is no paid API tier.
Country research facts
curl "https://psilocybin-research.com/api/v1/countries/germany"The country response contains indexed psilocybin/psilocin trial facts, reported status, conditions, study-start counts and registry-check information. It does not assert national treatment legality or reimbursement. The Germany report provides separately checked editorial context.
Psilocybin papers as CSV
curl "https://psilocybin-research.com/api/v1/papers?format=csv&compound=psilocybin&limit=50000" \
-o psilocybin-papers.csvCSV uses the shared rights-safe export. The response headers state the exported count and limit. Read the publication-status column: the literature index includes preprints and registrations unless you apply a status filter.
Paginated JSON
curl "https://psilocybin-research.com/api/v1/papers?compound=psilocybin&per_page=100&page=1"The response has rows, total, page, per_page and pages. Increment page through pages. Numeric page sizes are capped at 200 records. For bulk analysis, CSV or SQLite avoids repeated requests.
Available resources
| Endpoint | Purpose | Useful parameters |
|---|---|---|
| papers | Bibliographic records | compound, search, author, publication_statuses[], from, to, per_page, page; CSV: limit |
| countries | Country names and indexed trial counts | Country collection URLs supplied in the response |
| countries/germany | Country-specific registry research view | phase, status, sponsor, condition, q, format=csv |
| trials | Allowlisted trial designs and registry dates | country, phase, status, sponsor, condition, q, format=csv |
| network | Co-authorship graph and publication evidence | q, topic, limit; full=1 for all matching names |
| results | Selected original evidence annotations | topic=depression or alcohol-use-disorder |
| topics | Derived navigation labels and counts | No claim of verified clinical classification |
| authors | Name-based researcher directory | search, limit |
The data guide describes full-network edge encoding and legacy api.php resources. Existing API URLs continue to work. Hidden and false-positive records, source abstracts, unrestricted payload text and credentials are excluded.
Import into R, Python or SPSS
R
options(HTTPUserAgent = "PsilocybinResearchClient/1.0")
papers <- read.csv(
"https://psilocybin-research.com/api/v1/papers?format=csv&compound=psilocybin&limit=50000",
fileEncoding = "UTF-8", check.names = FALSE
)Python
import pandas as pd
from urllib.request import Request, urlopen
request = Request(
"https://psilocybin-research.com/api/v1/papers?format=csv&compound=psilocybin&limit=50000",
headers={"User-Agent": "PsilocybinResearchClient/1.0"}
)
with urlopen(request) as response:
papers = pd.read_csv(response)Use an explicit client identifier: the host may reject generic R or Python user-agents. No credentials or API key are needed.
SPSS
Download the CSV, then use the text-data import wizard. Select UTF-8, comma-separated fields, double-quote text qualification and the first row as variable names. Keep DOI, PMID and date fields as strings to preserve their source representation.
Archive the exact input, record its retrieval date and cite the dataset and original sources. Public reading does not grant rights to redistribute publisher full text.
Response and workload behaviour
Unknown resources or countries absent from indexed location metadata return 404. Invalid compound or format parameters return 400. Busy API requests can return 429 with a Retry-After header; wait before retrying. The default CSV export limit is 5,000 records; the maximum is 50,000. JSON pages are bounded. Source coverage and metadata completeness vary, so zero matching records is not proof that no research exists.