Developers

A JSON API over the corpus

Everything on Typed is generated from structured data on every deploy. These endpoints are that data, as JSON, with CORS on so you can call them from a browser. No key, no rate limit, no sign-up.

Endpoints

/api/v1/index.jsonManifest: what exists, terms, contact
/api/v1/supplements.json250 supplements
/api/v1/foods.json2,222 foods, with macros per 100 g
/api/v1/movements.json355 movements
/api/v1/recipes.json300 recipes

A record

{
  "id": "vitd",
  "name": "Vitamin D3",
  "category": "Vitamins",
  "goals": ["Immune Support", "Bone Health"],
  "tags": ["fat-soluble", "bone-support"],
  "url": "https://typedsupps.com/supplement/vitd"
}

Trying it

curl -s https://typedsupps.com/api/v1/foods.json \
  | jq '.items[] | select(.nutrition.protein_g > 25) | .name'

What is in it, and what is not

These endpoints carry the index: identity, classification, tags, goals, and for foods the macro fields. That is enough to look something up, match it against your own data, and link to it.

They do not carry the writeups — the absorption stages, the evidence grades, the myth sections, the sources. Every record includes the url of the page that does.

Terms

Free to use with attribution: link back to the record’s url. Food values derive from the Australian Food Composition Database (AFCD), Food Standards Australia New Zealand. Educational content only — not medical advice, and not suitable as the basis of clinical decisions.

Breaking changes get a new path (/api/v2/); v1 stays as it is. Questions and corrections: corrections@typedsupps.com.