Nutrition
Macros, micros and portions for real ingredients, taken from published food composition tables, down to amino acid profiles and DIAAS scores. Every number carries its unit and its source.
Waitlist openPrivate alpha
What's in the ground
Look up an ingredient, work out a recipe, count its carbon. Same API style, same JSON shape, every time.
Macros, micros and portions for real ingredients, taken from published food composition tables, down to amino acid profiles and DIAAS scores. Every number carries its unit and its source.
Parse ingredient lines, convert units, scale servings and roll a recipe up into totals, or try an ingredient swap and see what it changes. The same recipe adds up the same way on every call.
Greenhouse gas numbers per ingredient and per recipe, in kg CO2e and ready for a Scope 3 report, with the dataset and year each figure came from.
How it behaves
Food data your app can trust, and your model can't make up.
No sampling and no drift between calls. Cache it, test it, diff it.
Values come from real datasets, with the source and year attached to each one.
Stable field names and explicit units, so it fits a typed client or an LLM tool call without glue code.
The shared types, units and field names are drafted in the conventions RFC.
{
"id": "tofu",
"per": "100 g",
"proteinG": {
"value": 20.3,
"source": "nevo 2024"
}
}AI & vibe code friendly
Your coding assistant writes a lot of your API calls now. So we're building the API for it too, down at the protocol level, not just in nicer docs.
Works with MCP clients like
The alpha will ship a native llms.txt and an OpenAPI 3.1 spec. Hand your assistant one URL and it will have every endpoint, field and unit in context.
/llms.txt/openapi.jsonEvery error will say what we got, what we expected and what to change. The same mistake will always return the same error, so your assistant can correct the call and retry on its own.
GET /v1/foods/tofu?unit=Grams { "error": "invalid_parameter", "field": "unit", "received": "Grams", "expected": ["g", "kg", "ml", "oz"], "fix_suggestion": "Send the unit in lowercase, like g." }
The alpha will ship an MCP server. Plug SproutlySquad into Cursor or Claude Desktop and your agent will look up foods, work out recipes and count carbon without you writing a single wrapper.
No OAuth dance and no stateful sign-in. A single bearer token will work the same in a script, a notebook or an agent running on your laptop.
Guides
Long reads on the science behind the numbers, and how to wire them into your product.
Nutrition
What DIAAS measures, why one limiting amino acid sets the whole score, and how to read a plant protein number before you build anything on it.
7 min read
Recipes
Swapping butter for oil is one line of code. Keeping the bake from collapsing takes more than a lookup table.
Coming soon
Carbon
How ingredient-level CO2e rolls up into a menu, a supply chain and a report someone will actually audit.
Coming soon
Protein
Not all protein counts the same. A walk through the DIAAS formula, one amino acid at a time.
Coming soon
Behind the build
Our own app will run on the same endpoints you'll get. Here's what eating our own cooking teaches us about the API.
Coming soon
FAQ
No date yet. People on the waitlist get their invite first, in the order they joined.
Pricing isn't set yet. The private alpha is free. Joining the waitlist is free and doesn't commit you to anything.
Published food composition and environmental datasets, such as NEVO. Each value in a response will name its source.
Yes. Responses will be plain JSON with stable fields, so they work as a tool result. Your model gets real numbers instead of estimating them.
Drop your email and we'll send an API key when the private alpha opens.