Textual Chef · for developers
A recipe API with nutrition per serving.
Every record carries calories, protein, carbs, fat, fiber and sodium per serving, next to the full ingredient list and method. Enough to fill a day's calorie target, rank dinners by protein, or keep a low-sodium plan honest.
The nutrition block
{
"id": "kuru-fasulye",
"servings": 4,
"nutritionPerServing": {
"calories": 420,
"proteinG": 28,
"carbsG": 45,
"fatG": 14,
"fiberG": 12,
"sodiumMg": 680,
"estimated": true
},
"diets": [
"High Fiber",
"High Protein",
"Mediterranean"
]
}
| Field | Unit |
|---|---|
calories | kcal per serving |
proteinG, carbsG, fatG, fiberG | grams per serving |
sodiumMg | milligrams per serving |
estimated | true unless the figures came from a measured source |
A missing value is null, never zero. Zero means zero.
Per serving, so scaling does not move it
The figures are for one serving at the standard batch, and servings says how many that batch makes. Halving or doubling a recipe changes the quantities and the number of servings, not the nutrition of a serving, so a planner can offer every batch size without recomputing macros.
What people build with it
- Meal planners with targets. Allocate a day's calories across breakfast, lunch and dinner, then pick recipes that land near each slot.
- High-protein search. More than eight hundred recipes carry 30 g of protein or more per serving.
- Diet-aware ranking. Combine the nutrition block with the diet and allergen labels so a vegan, low-sodium user never sees the wrong dinner.
How the numbers are made
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.