> For the complete documentation index, see [llms.txt](https://docs.january.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.january.ai/rest-api/food-analysis.md).

# Food analysis

Turn food into structured data three ways: a photo of a meal, a photo of a packaged food's nutrition label, or a plain-English description. Every analysis returns the same detection object, so a result round-trips into a correction unchanged.

If you already know the food, look it up under [Foods](/rest-api/foods.md) instead.

Image analysis uses the reasoning-based analyzer by default: omit `reasoning`, or send `"reasoning": { "effort": "xhigh" }`. Send `"reasoning": { "effort": "none" }` for the standard analyzer. Both return the same response shape and cost the same credits and rate-limit budget. An analysis can take tens of seconds for a complex meal, so show progress. An image that can't be used fails with one of the `image_*` codes in [Errors](/rest-api/api-overview.md#errors); retrying the same image fails the same way.

Each detected food carries its food `id` and its `serving.id`. Send them as `food_id` and `serving_id` to [log the food](/rest-api/food-logs.md).

Each operation's description states what it costs — see [Credits and pricing](/rest-api/credits-and-pricing.md).

{% openapi src="<https://partners.january.ai/v1.2/openapi.json>" path="/v1.2/food-analysis/image" method="post" %}
<https://partners.january.ai/v1.2/openapi.json>
{% endopenapi %}

{% openapi src="<https://partners.january.ai/v1.2/openapi.json>" path="/v1.2/food-analysis/text" method="post" %}
<https://partners.january.ai/v1.2/openapi.json>
{% endopenapi %}

{% openapi src="<https://partners.january.ai/v1.2/openapi.json>" path="/v1.2/food-analysis/corrections" method="post" %}
<https://partners.january.ai/v1.2/openapi.json>
{% endopenapi %}
