API

Read-only JSON for 1,058 herbs and 493 formulas

Endpoints

Plain static files: no key, no sign-up, no rate limit. They are rebuilt whenever the catalogue is, and served with Access-Control-Allow-Origin: * so a browser can read them from any site.

https://bencaoindex.com/api/v1/index.jsonEvery herb and formula, with every name it can be matched on and its page URL.
https://bencaoindex.com/api/v1/herbs/{slug}.jsonOne herb: names, category, nature, flavour, channels, actions and traditional uses, cautions, safety flags and the formulas it appears in.
https://bencaoindex.com/api/v1/formulas/{slug}.jsonOne formula: names, ingredients, actions and traditional uses, cautions and safety flags.
https://bencaoindex.com/api/v1/categories.jsonEvery category, with the slugs of the herbs and formulas in it.
https://bencaoindex.com/api/v1/schemas/{index|herb|formula|categories}.schema.jsonA JSON Schema (draft 2020-12) for each file, with every field described.

Matching a name

Fetch index.json once and look names up in it. Each entry carries match_keys: its pinyin, Chinese, Latin, English and other names, normalised so that Bái Sháo, bai shao and baishao all find the same herb. Normalise your text the same way before looking it up:

const normalise = (s) => s.normalize("NFD")
  .replace(/[\u0300-\u036f]/g, "")       // tone marks and other diacritics
  .toLowerCase()
  .replace(/[^\p{L}\p{N}]+/gu, " ")       // punctuation and spacing to one space
  .trim();
// Latin-script keys are also listed with the spaces removed.

A key can belong to more than one entry: a few records share a name and nothing else tells them apart. A processed form, such as honey-fried gan cao, has its own entry, with prepared_form_of naming its parent, and its page_url points at its section on the parent's page.

A record

/api/v1/herbs/bai-shao.json, from this build:

{
  "version": "v1",
  "type": "herb",
  "slug": "bai-shao",
  "page_url": "https://bencaoindex.com/herbs/bai-shao/",
  "api_url": "https://bencaoindex.com/api/v1/herbs/bai-shao.json",
  "last_modified": "2026-09-18T18:05:37.648564+00:00",
  "names": {
    "pinyin": "bai shao",
    "chinese": "白芍",
    "latin": "Radix Paeoniae Alba",
    "english": "peony",
    "japanese": "Byakushaku",
    "korean": "baekjack",
    "sanskrit": null,
    "pinyin_alternates": [],
    "other": []
  },
  "prepared_form_of": null,
  "preparation": null,
  "prepared_forms": [
    "bai-shao-chao"
  ],
  "categories": [
    {
      "slug": "astringents",
      "name": "Astringents"
    },
    {
      "slug": "anti-inflammatory",
      "name": "Anti-inflammatory"
    },
    {
      "slug": "alteratives",
      "name": "Alteratives"
    },
    {
      "slug": "antispasmodic",
      "name": "Antispasmodic"
    },
    {
      "slug": "tonify-blood",
      "name": "Tonify Blood"
    },
    {
      "slug": "analgesics",
      "name": "Analgesics"
    },
    {
      "slug": "antimicrobials",
      "name": "Antimicrobials"
    }
  ],
  "temperature": [
    "Slightly Cold"
  ],
  "flavour": [
    "Bitter",
    "Sour"
  ],
  "channels": [
    "Spleen",
    "Liver"
  ],
  "part_used": [],
  "family": "Ranunculaceae",
  "species": "Paeonia Lactiflora",
  "actions": [
    {
      "action": "Nourishes Blood and regulates menstruation",
      "traditionally_used_for": [
        "Liver Blood deficiency showing as irregular periods, uterine bleeding or vaginal discharge, with a pale dull complexion and brittle nails",
        "Painful periods, and disorders of pregnancy or the postpartum period, from Blood deficiency weakening the Ren and Chong vessels",
        "Anemia",
        "Premenstrual tension with breast distension"
      ]
    },
    {
      "action": "Preserves Yin and harmonises the Ying and Wei",
      "traditionally_used_for": [
        "Night sweats and spontaneous sweating from Yin deficiency",
        "Sweating from collapse of Yin",
        "Ying and Wei out of harmony, with sweating that does not resolve the exterior condition",
        "Liver and Spleen disharmony"
      ]
    },
    {
      "action": "Calms Liver Yang and extinguishes Liver Wind",
      "traditionally_used_for": [
        "Yang of the Liver rising on a base of Yin and Blood deficiency: headache, dizziness and vertigo, ringing in the ears, redness of the eyes and face, and irritability",
        "Internal Wind from depleted Blood and Yin, with tremor, twitching and muscle spasm, progressing to convulsions in severe cases",
        "Liver Qi constraint with Liver Yang rising"
      ]
    },
    {
      "action": "Softens the Liver and relieves pain",
      "traditionally_used_for": [
        "Cramping and spasm of the sinews and muscles, including the calves",
        "Hypochondriac, intercostal or abdominal pain from Liver and Spleen disharmony",
        "Abdominal pain, borborygmus and diarrhea",
        "Painful Bi with spasm, from Blood deficiency",
        "Dysentery with tenesmus"
      ]
    }
  ],
  "cautions": [
    {
      "kind": "contraindication",
      "text": "Diarrhea from Cold due to Yang deficiency of the Middle Jiao; its cool, astringent nature can make it worse"
    },
    {
      "kind": "contraindication",
      "text": "A Wind-type rash or eczema that has not yet fully come out, since astringing may hold the pathogen in"
    },
    {
      "kind": "contraindication",
      "text": "After childbirth while bleeding continues or where there is Blood stasis"
    },
    {
      "kind": "caution",
      "text": "Avoid large doses and long courses in people with liver disease"
    },
    {
      "kind": "caution",
      "text": "Can make some people drowsy; take care before driving or using machinery"
    }
  ],
  "safety": {
    "toxic": false,
    "toxicity_grade": null,
    "toxicity_graded_by": null,
    "external_use_only": false,
    "contains_aristolochic_acid": false,
    "caution_in_pregnancy": false
  },
  "contains": [],
  "herb_interactions": [
    {
      "kind": "antagonistic",
      "herb_slug": "shi-hu",
      "note": "Antagonistic pairing with Shi Hu (Dendrobium)"
    },
    {
      "kind": "antagonistic",
      "herb_slug": "xiao-ji",
      "note": "Antagonistic pairing with Xiao Ji (Cirsium)"
    }
  ],
  "drug_interactions": [
    {
      "drug": "anticoagulants and antiplatelets",
      "severity": null,
      "note": "Anticoagulant and antiplatelet medicines (warfarin, heparin, enoxaparin, aspirin, dipyridamole, clopidogrel): use together only with caution"
    },
    {
      "drug": "antidiabetics",
      "severity": null,
      "note": "Insulin and oral antidiabetics such as tolbutamide, glipizide and glyburide: the combination may push blood sugar too low"
    },
    {
      "drug": "sedatives",
      "severity": null,
      "note": "Sedatives, including barbiturates: the herb has a calming, pain-relieving effect of its own and has lengthened barbiturate-induced sleep"
    }
  ],
  "formulas": [
    "ai-fu-nuan-gong-wan",
    "ba-zhen-tang",
    "bai-he-gu-jin-tang",
    "bu-gan-tang",
    "chai-ge-jie-ji-tang",
    "chai-hu-shu-gan-san",
    "chai-hu-si-wu-tang",
    "da-chai-hu-tang",
    "da-ding-feng-zhu",
    "da-fang-feng-tang",
    "da-huang-zhe-chong-wan",
    "da-qin-jiao-tang",
    "da-yuan-yin",
    "dan-gui-san",
    "dang-gui-ji-xue-teng-tang",
    "ding-xiang-jiao-ai-tang",
    "du-huo-ji-sheng-tang",
    "e-jiao-ji-zi-huang-tang",
    "fang-feng-tong-sheng-san",
    "fu-zi-tang",
    "ge-gen-jia-ban-xia-tang",
    "ge-gen-tang",
    "gu-jing-wan",
    "gui-zhi-er-yue-bi-yi-tang",
    "gui-zhi-fu-zi-tang",
    "gui-zhi-jia-ge-gen-tang",
    "gui-zhi-jia-hou-po-xing-ren-tang",
    "gui-zhi-jia-long-gu-mu-li-tang",
    "gui-zhi-jia-shao-yao-tang",
    "gui-zhi-ma-huang-ge-ban-tang",
    "gui-zhi-tang",
    "guo-qi-yin",
    "hei-xiao-yao-san",
    "huang-qin-tang",
    "jia-jian-fu-mai-tang",
    "jia-wei-bai-tou-weng-tang",
    "jia-wei-mai-men-dong-tang",
    "jia-wei-si-wu-tang",
    "jia-wei-xiao-yao-san",
    "jian-ling-tang",
    "ling-jiao-gou-teng-tang",
    "nei-shu-huang-lian-tang",
    "ning-xue-tang",
    "qin-lian-si-qu-tang",
    "qing-jing-san",
    "qing-re-zhi-beng-tang",
    "qing-yi-tang",
    "qu-feng-zi-bao-dan",
    "ren-shen-yang-ying-tang",
    "san-bi-tang",
    "san-huang-si-wu-tang",
    "san-jia-fu-mai-tang",
    "she-quan-da-bu-tang",
    "sheng-yang-yi-wei-tang",
    "shu-jing-huo-xue-tang",
    "shun-jing-tang",
    "si-ni-san",
    "si-wu-tang",
    "tao-hong-si-wu-tang",
    "tong-xie-yao-fang",
    "wu-ji-san",
    "wu-ji-wan",
    "wu-tou-gui-zhi-tang",
    "wu-tou-tang",
    "xiang-sha-ping-wei-san",
    "xiao-yao-san",
    "yang-yin-qing-fei-tang",
    "yi-qi-cong-ming-tang",
    "yi-yi-ren-tang-2",
    "yu-zhu-san",
    "zhen-gan-xi-feng-tang",
    "zhen-wu-tang"
  ],
  "attribution": {
    "text": "bai shao — Bencao Index",
    "html": "<a href=\"https://bencaoindex.com/herbs/bai-shao/\">bai shao — Bencao Index</a>"
  },
  "terms": {
    "licence": "Free to use and republish with visible attribution and a link back to the source page. The catalogue is a reference work and is knowingly incomplete; nothing in it is medical advice.",
    "url": "https://bencaoindex.com/api/#terms"
  }
}

What is in it, and what is not

Only what the record's page already shows, from published records only. Uses appear as traditionally_used_for and are traditional uses as the sources record them. They are not treatment claims, and nothing here is medical advice.

A safety flag that is false means the record does not carry it, not that the substance is safe. Many records are not finished yet.

Not in v1: the written descriptions, dosage, symptoms and conditions, combinations, modifications, research and images. They are on the pages.

Versioning

Everything under /api/v1/ only ever gains fields. A field is never renamed, removed or given a different type there; a change like that goes to /api/v2/, and v1 stays up beside it. Ignore fields you do not know. The published schemas allow extra fields for exactly that reason.

Terms of use

Free to use and republish with visible attribution and a link back to the source page. The catalogue is a reference work and is knowingly incomplete; nothing in it is medical advice.

  • Wherever you show a record's facts, link to its page: the record's page_url. Every file carries a ready-made attribution line.
  • Present uses as traditional ("traditionally used for…"), never as a treatment, a cure or advice to take something.
  • If you show a herb's uses, show its cautions and safety flags with them.
  • Do not republish the catalogue wholesale as your own.

The data is provided as it is, with no warranty. See the terms of use.