Evidence-based supplement research API client — search ingredients, conditions, evidence grades, and PubMed papers from Cited Health.
Project description
citedhealth
Pure Python API client for Cited Health — the evidence-based supplement research platform where every health claim is backed by peer-reviewed PubMed research. Search ingredients, conditions, evidence grades (A-F), and indexed papers. Free, no authentication required.
Cited Health maintains a growing network of supplement review sites covering hair health, sleep, and more. The platform indexes PubMed papers, extracts study data using AI, and calculates evidence grades from A (Strong — multiple RCTs/meta-analyses) to F (Negative — most studies show no effect).
Explore the evidence at citedhealth.com — Ingredients · Evidence · Papers · Developer Docs
Table of Contents
- Install
- Quick Start
- What You Can Do
- Command-Line Interface
- MCP Server (Claude, Cursor, Windsurf)
- API Reference
- Learn More About Evidence-Based Supplements
- License
Install
# Core (zero dependencies)
pip install citedhealth
# With API client (adds httpx)
pip install "citedhealth[api]"
# With CLI (adds typer + rich)
pip install "citedhealth[cli]"
# With MCP server for AI assistants
pip install "citedhealth[mcp]"
# Everything
pip install "citedhealth[all]"
Quick Start
from citedhealth.api import CitedHealth
with CitedHealth() as api:
# Search for supplement ingredients
data = api.ingredients(q="biotin")
print(data["results"][0]["name"]) # Biotin
# Check evidence for a supplement-condition pair
evidence = api.evidence(ingredient="biotin", condition="hair-loss")
link = evidence["results"][0]
print(f"Grade: {link['grade']}, Studies: {link['total_studies']}")
# Get embeddable badge data
badge = api.badge_data("biotin", "hair-loss")
print(f"{badge['ingredient']} for {badge['condition']}: Grade {badge['grade']}")
What You Can Do
Search Ingredients
Cited Health catalogs supplement ingredients with their mechanisms of action, categories, and evidence profiles. Each ingredient is linked to conditions through evidence grades.
from citedhealth.api import CitedHealth
with CitedHealth() as api:
# List all ingredients
all_ingredients = api.ingredients()
# Search by name
results = api.ingredients(q="melatonin")
# Filter by category (vitamins, herbs, amino-acids, minerals, etc.)
vitamins = api.ingredients(category="vitamins")
Learn more: Browse Ingredients · Developer Docs
Check Evidence Grades
The evidence grading engine analyzes PubMed studies and calculates grades from A to F:
| Grade | Label | Criteria |
|---|---|---|
| A | Strong | Multiple RCTs/meta-analyses, consistent positive results |
| B | Moderate | At least one RCT, mostly consistent |
| C | Limited | Small studies, some positive signals |
| D | Preliminary | In vitro, case reports, pilot studies |
| F | Negative | <30% of studies show positive effects |
from citedhealth.api import CitedHealth
with CitedHealth() as api:
# Check evidence for biotin and hair loss
evidence = api.evidence(ingredient="biotin", condition="hair-loss")
for link in evidence["results"]:
print(f"{link['grade']}: {link['ingredient']['name']} for {link['condition']['name']}")
print(f" {link['total_studies']} studies, {link['total_participants']} participants")
Learn more: Evidence Reviews · Grading Methodology
Search PubMed Papers
All papers in Cited Health are indexed from PubMed and enriched with citation data from Semantic Scholar.
from citedhealth.api import CitedHealth
with CitedHealth() as api:
# Search papers by title
papers = api.papers(q="melatonin sleep quality")
# Filter by publication year
recent = api.papers(q="biotin", year=2024)
for paper in recent["results"]:
print(f"[PMID {paper['pmid']}] {paper['title']}")
Learn more: Browse Papers · OpenAPI Spec
Embed Evidence Badges
Get badge data to display evidence grades on external sites. Each badge shows the grade, study count, and links back to the full evidence review.
from citedhealth.api import CitedHealth
with CitedHealth() as api:
badge = api.badge_data("biotin", "hair-loss")
print(f"Grade: {badge['grade']} ({badge['grade_label']})")
print(f"Studies: {badge['studies']}, Participants: {badge['participants']}")
print(f"Evidence page: {badge['url']}")
Or embed directly with a script tag:
<script src="https://citedhealth.com/embed/biotin/for/hair-loss/badge.js"></script>
Command-Line Interface
# Search ingredients
citedhealth ingredients --query biotin
# Check evidence links
citedhealth evidence --ingredient biotin --condition hair-loss
# Search papers
citedhealth papers --query "melatonin sleep" --year 2024
# Get badge data
citedhealth badge biotin hair-loss
MCP Server (Claude, Cursor, Windsurf)
Add to your claude_desktop_config.json:
{
"mcpServers": {
"citedhealth": {
"command": "uvx",
"args": ["--from", "citedhealth[mcp]", "python", "-m", "citedhealth.mcp_server"]
}
}
}
Available tools:
search_ingredients— Search supplement ingredientscheck_evidence— Check evidence grade for a supplement-condition pairsearch_papers— Search PubMed-indexed papers
API Reference
| Method | Description | Parameters |
|---|---|---|
ingredients() |
List/search ingredients | q, category, page, page_size |
papers() |
List/search papers | q, year, page, page_size |
evidence() |
List evidence links | ingredient, condition, page, page_size |
badge_data() |
Get embed badge data | ingredient_slug, condition_slug |
openapi_spec() |
Get OpenAPI 3.1.0 spec | — |
Learn More About Evidence-Based Supplements
- API: REST API Documentation · OpenAPI 3.1.0 Spec
- Browse: Ingredients · Evidence Reviews · Papers
- Guides: Editorial Policy · Medical Disclaimer
- Embed: Badge Widget · Citation Formats
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file citedhealth-0.1.0.tar.gz.
File metadata
- Download URL: citedhealth-0.1.0.tar.gz
- Upload date:
- Size: 72.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15739d782d207d6e536079784812f382df2dfbc8f73e13036031435b033e4717
|
|
| MD5 |
16926e9d3a44ffde685db6bcb5cd934e
|
|
| BLAKE2b-256 |
609b6fa3b037371834e1cda3fa5b6559b83964352be05126941a38dc55d5c61d
|
File details
Details for the file citedhealth-0.1.0-py3-none-any.whl.
File metadata
- Download URL: citedhealth-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d6643c8c451568f1afdc6a8acf038f5b4566129972a46f81209ea8111cb106b
|
|
| MD5 |
fb16bdb4fc8316a312590a40f3a2d5ee
|
|
| BLAKE2b-256 |
c1f258125ca176838cb3ef88c9d2040f73148f87f9388ce6719d1aa3820bcdce
|