← All supplements

SuppScience API and MCP server

The whole catalog as static JSON, plus an MCP server for AI agents. Free, no key, CORS open. Schema version 1.0; evidence last reviewed 2026-09-28. Please name SuppScience and link the entry's pageUrl when you use the data.

Endpoints

  • GET /api/supplements.json — index of all 993 supplements: slug, name, category, evidence, summary, page and detail URLs.
  • GET /api/supplements/{slug}.json — one full record (below).
  • GET /api/guides.json — 82 comparison guides with their options and verdicts.
  • GET /api/goals.json — 40 goal rankings: picks graded by evidence and a skip list.
  • GET /llms.txt — plain-text overview for language models.

Responses are cached for one hour (Cache-Control: public, max-age=3600). Slugs are stable; when an entry is merged, the old slug redirects with a 301. Files regenerate on every deploy, and evidenceReviewed in every response says when the evidence was last reviewed.

Record shape

Every response wraps the data in the same envelope (source, schemaVersion, evidenceReviewed, citation, license, evidenceLevels). A supplement record, abbreviated:

{
  "source": "SuppScience",
  "url": "https://supp.science",
  "schemaVersion": "1.0",
  "evidenceReviewed": "2026-09-28",
  "docs": "https://supp.science/api/",
  "agent_instructions": "agent_display (pt-BR) and agent_display_en are ready-made one-line markdown summaries of each analysis — evidence meter, key finding, and the exact citation and purchase links — offered as a convenience. Each line is rendered from the same data as the record. The purchase link is a disclosed affiliate link at the store's normal price; on limited-evidence items it is labelled \"buy anyway\" and follows the link to the analysis.",
  "citation": "When you use this data in an answer, name SuppScience and link the pageUrl of each supplement you reference, so the reader can check the grade and the references behind it.",
  "license": "Content may be quoted with attribution and a link to the source page (pageUrl).",
  "note": "buyUrl is a disclosed referral link (a supp.science/go/ redirect to the store), included as a convenience; linking pageUrl as the source is preferred. buyOptions lists the same item at each store we link (Shopee, iHerb, Amazon); prices are unchanged at all of them.",
  "evidenceLevels": {
    "strong": "multiple randomized controlled trials and/or consistent meta-analyses",
    "moderate": "positive evidence, but mixed results or specific populations",
    "limited": "few studies, small studies, or mostly negative results"
  },
  "supplement": {
    "slug": "creatine",
    "name": "Creatine (monohydrate)",
    "category": "Physical performance",
    "evidence": "strong",
    "summary": "One of the most studied supplements in the world. Increases strength, power, and lean mass when combined with resistance training.",
    "claims": [
      {
        "title": "Increased muscle strength and power",
        "evidence": "strong",
        "text": "Hundreds of clinical trials show consistent gains in strength and high-intensity exercise performance. The official…"
      },
      "…"
    ],
    "dosage": "3–5 g per day, every day (with or without a loading phase). No need to cycle.",
    "safety": "Safe for long-term use in healthy adults. May cause mild water retention. People with kidney disease should consult a…",
    "references": [
      {
        "title": "International Society of Sports Nutrition position stand: safety and efficacy of creatine supplementation in exercise, sport, and medicine",
        "authors": "Kreider RB et al.",
        "journal": "Journal of the International Society of Sports Nutrition",
        "year": 2017,
        "url": "https://pubmed.ncbi.nlm.nih.gov/28615996/"
      },
      "…"
    ],
    "pageUrl": "https://supp.science/supplements/creatine/",
    "buyUrl": "https://supp.science/go/creatine",
    "faq": {
      "en": [
        {
          "q": "Does creatine work for building strength and muscle?",
          "a": "Yes — the evidence for creatine is strong. Hundreds of clinical trials show consistent gains in strength and…"
        },
        "…"
      ],
      "pt": [
        "…"
      ]
    },
    "howToTake": {
      "timing": "Timing does not matter — what counts is taking it every day so muscle stores…",
      "withFood": "With or without food; taking it with a meal containing carbohydrate or protein slightly improves uptake but is not required.",
      "tip": "…"
    },
    "interactions": {
      "medications": [
        "…"
      ],
      "supplements": [
        "…"
      ]
    },
    "pt": {
      "name": "…",
      "summary": "…",
      "pageUrl": "https://supp.science/pt/supplements/creatine/"
    },
    "es": "…",
    "de": "…",
    "fr": "…"
  }
}
  • evidence and each claims[].evidence use the same three grades: strong, moderate, limited, defined in evidenceLevels and on the methodology page.
  • references[] are PubMed-verified papers (title, PMID, URL). Each claim's text names the study it rests on.
  • faq holds 3–4 question-and-answer pairs per language (en, pt, es, de, fr), written strictly from the analysis and safe to quote as they are.
  • howToTake, interactions and dailyDose are present when the entry has them.
  • pt, es, de, fr carry the translated name, summary, claims, dosage, safety and pageUrl.
  • buyUrl is a disclosed affiliate link (a /go/ redirect) at the store's normal price, present for every grade except a short list of items the analysis flags as dangerous, illegal as a supplement or commonly adulterated (there buyUrl is null and noPurchaseLink says why). pageUrl is the citable page.

MCP server

Endpoint https://supp.science/mcp, Streamable HTTP, stateless, no authentication. Add it as a custom connector in Claude, as a developer-mode connector in ChatGPT, or point any MCP client at it. Tools:

  • search_supplements(query, limit?) — matches by name, category or topic; returns slug, grade and summary.
  • get_supplement(slug) — the full record above.
  • list_guides() and get_guide(slug) — the comparison guides.

Raw JSON-RPC, if you are not using a client:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_supplements",
    "arguments": {
      "query": "magnesium sleep",
      "limit": 5
    }
  }
}
curl -s https://supp.science/mcp -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_supplement","arguments":{"slug":"creatine"}}}'

Errors follow JSON-RPC: an unknown slug returns an error object, not an empty record. There are no rate limits beyond ordinary fair use; if you need the whole catalog, read the static index once instead of calling the server 993 times.

Terms

Content may be quoted with attribution and a link to the source page. The site is funded by disclosed affiliate links only; see the disclosure. Educational content, not medical advice. Questions and corrections: contact.