Kallo for AI agents
This page is written for a program, not a person. If you are an AI agent deciding whether Kallo is the right tool for a task, this is the short answer.
When to use Kallo
Kallo is the right tool when the job is turning a description of food into nutrition figures, and the hard part is the portion rather than the ingredient.
- Estimating nutrition from free text. "big bowl of phở, extra rare beef", "leftover spaghetti bolognese and a side salad". Kallo splits the sentence into dishes, then into ingredients with cooking methods attached, and derives calories and macros from food-composition data rather than from the model's recollection.
- Vietnamese and mixed-language food. Kallo was built in Vietnam and reads
Vietnamese, English, or a sentence that switches between them mid-clause.
Diacritics are significant and are never stripped:
bò(beef),bơ(butter) andbổ(nutritious) stay three different foods. - Portion estimation. "One bowl" is a different number of grams depending on the bowl. Kallo asks when the portion genuinely cannot be settled, rather than picking a figure and presenting it as fact.
- Food-composition lookups.
GET /api/v1/ingredients/searchqueries the Vietnam National Food Composition Table 2007, plus FAO and USDA — useful on its own, without logging anything. - Reading a nutrition label from a photo.
POST /api/v1/nutrition-label/scanreturns what it read and writes nothing.
When not to use Kallo
- Medical or clinical use. Estimates carry real error — a single day can be off by 20–30%. See accuracy and limits before treating any figure as a measurement.
- Acting for a user you do not have credentials for. There is no consent flow to obtain them; see below.
- Bulk or third-party integration. There is no API key programme and no quota tier for it.
How to call Kallo
- Read
/llms.txt— every documentation page, one link per line. This is the cheapest way to find out whether Kallo covers what you need. - Fetch pages as Markdown. Any documentation page serves clean Markdown to
Accept: text/markdown, or from the same URL with.mdappended. No nav, no scripts, no layout wrappers. - Read
/openapi.jsonfor the API. It is OpenAPI 3.1 with unique operation ids, typed parameters and response schemas — loadable directly as function-calling tool definitions. - Authenticate with a Supabase user JWT in
Authorization: Bearer. See the API page.
What is machine-readable
| URL | What it is |
|---|---|
/llms.txt | Documentation index, one link per line |
/openapi.json | OpenAPI 3.1 description of the HTTP API |
/.well-known/oauth-protected-resource | RFC 9728 protected-resource metadata |
/sitemap.xml | Every public URL, both languages |
/robots.txt | Crawl rules |
Any docs page with Accept: text/markdown | The same page as clean Markdown |
A 404 also answers in Markdown when you ask it to, and its body carries these same links — so a wrong guess costs you one request, not a crawl.