Textual Chef · for developers
An allergen-free recipe API, with the reasons shown.
Every record says which of the nine major allergens it contains, which ones appear only in an optional ingredient, and which diet and restriction labels it meets. Filter strictly, and the user who said "no peanuts" never sees peanuts.
Contains, and avoidable
{
"id": "air-fryer-chicken-katsu",
"allergens": {
"contains": [
"gluten",
"eggs"
],
"avoidable": [
"fish"
]
},
"restrictions": [
"Dairy-Free",
"Pork-Free",
"Alcohol-Free",
"Corn-Free"
],
"diets": [
"High Protein"
]
}
contains lists allergens found in a required ingredient: exclude on these. avoidable lists allergens found only in an optional or substitutable line. Here the fish is in the Worcestershire sauce offered as an alternative to tonkatsu sauce, so the recipe can be shown with a note instead of hidden. An empty list means the ingredients were scanned and nothing was found, never "unknown".
The vocabularies
Allergens (9)
- dairy
- eggs
- fish
- gluten
- peanuts
- sesame
- shellfish
- soy
- tree nuts
Restrictions (13)
- Alcohol-Free
- Corn-Free
- Dairy-Free
- Egg-Free
- Gluten-Free
- Low-Sodium
- Low-Sugar
- Nightshade-Free
- Nut-Free
- Pork-Free
- Sesame-Free
- Shellfish-Free
- Soy-Free
Diets (14)
- DASH
- Halal-friendly
- High Fiber
- High Protein
- Keto
- Kosher-style
- Low Carb
- Mediterranean
- Paleo
- Pescatarian
- Standard
- Vegan
- Vegetarian
- Whole30
They are closed lists. A record never carries a label outside them, so a filter written today does not break on a new spelling tomorrow. More than a thousand recipes are vegan, and more than two thousand are gluten-free.
How the labels are derived
Allergens are derived from the ingredient list by keyword scan, and every recipe in the catalog has been through the same scan. This is data for filtering and planning. It is not a medical guarantee, and packaged ingredients vary by brand, so an app serving people with severe allergies should tell them to check labels.
The recipes are written with the help of language models and published only after automated schema and culinary checks pass. Every ingredient carries half, standard and double amounts, and the method refers to ingredients by id rather than retyping them, which is how the amounts get written into each step. Nutrition is estimated, not measured in a lab, and every record says so with "estimated": true. Treat it as a planning figure, not a label.
Join the beta
The keyed API opens to a short list first. Beta testers get a lifetime discount on the launch price, whatever it turns out to be, and a say in the record format while it is still v0. The price is not set yet, so there is nothing to pay and nothing to cancel.
We store your email and your two answers, and nothing about your browser or IP address. Reply to the confirmation and we delete your address.