Skip to main content

A nutrition API built for health apps.

Add food logging to your product. Send a meal photo, voice note or text description; receive the recognised dish, ingredients, estimated portion and nutrient data as JSON.

Private preview. Developers can get sandbox access to test the API. Production access, final specifications and pricing are not available yet.

Good nutrition starts with good sources.

2.5M+

food records

National and local food-composition databases bring regional food knowledge into one nutrition foundation.

Record count reported by BiteRight. Records are not the same as unique foods, and source links identify original publishers without implying their endorsement of BiteRight.

From source records to custom dishes.

  1. Clean and organise

    Source records are cleaned and prepared for consistent lookup, and refreshed from the underlying food databases.

  2. Decompose the dish

    A proprietary machine-learning engine breaks custom-made dishes into likely ingredients, going beyond an exact dish-name match.

  3. Retrieve the nutrition

    An in-house engine matches foods and retrieves nutrient values from curated food-composition records.

Method as described by BiteRight; the data pipeline and engines are not independently audited here. Machine learning interprets the meal; nutrient values come from food-composition records rather than a generated answer. Dish composition and portions remain estimates, and grounding in source data does not make every estimate error-free.

Tested against weighed food

87%

of portion-weight estimates were judged correct in BiteRight’s internal testing, comparing model estimates with food portions measured by weight.

Internal evaluation. Sample size and acceptance tolerance are not yet published. It measures portion-weight estimation only, not nutrient-composition accuracy, and it is not clinical validation.

How the API is structured.

Send meal input over HTTPS as a multipart request with bearer authentication. Receive a JSON food log with the recognised dish, estimated weight, ingredients and nutrient amounts.

The API is in private preview. Developers can get sandbox access to test it. This summary follows the sandbox documentation; endpoints, fields, limits and availability are not final, and production access is not yet available.

Authentication

Each request carries an Authorization: Bearer header. Use the API base URL and access token assigned to your team. Keep tokens on your server, not in client apps.

Endpoints

POST /api/b2b/v1/food-log

Log a meal from one or more photos, or from a text description.

date
Meal date, for example 2026-09-07.
images[]
Meal photo file(s), sent as multipart uploads. Use for photo logging.
meal_name
Text description of the meal. Use for manual or text logging.
size
Portion size: Small, Medium, Large or Custom.
custom_size
Portion amount when size is Custom.

POST /api/b2b/v1/food-log-voice

Log a meal from a voice note. Requires a dietary profile and RDI setup first.

date
Meal date.
voices[]
Voice note file(s), sent as multipart uploads.

Response fields

recognized_dish
The dish the meal was matched to.
total_weight
Estimated total weight of the meal, as a string with its unit.
calories
A nutrient object: name, amount and unit.
macronutrients
Nutrient objects such as protein, carbohydrates and fiber.
minerals, vitamins
Further nutrient objects in the same name, amount and unit shape.
ingredients
The ingredients recognised in the meal.

Errors

Check both the HTTP status and the JSON body. A response with HTTP 200 can still contain an error field, so treat any error value as a failed request.

Example request

curl --fail-with-body --request POST \
  --url "$BASE_URL/api/b2b/v1/food-log" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --form 'date=2026-09-07' \
  --form 'meal_name=Salmon bowl with quinoa, broccoli, avocado and sweet potato' \
  --form 'size=Medium' \
  --form 'images[]=@meal.jpg'

Example response

{
  "recognized_dish": "Salmon grain bowl",
  "total_weight": "300 g",
  "calories": {
    "name": "Calories",
    "amount": "542",
    "unit": "kcal"
  },
  "macronutrients": {
    "protein": {
      "name": "Protein",
      "amount": "34",
      "unit": "g"
    },
    "carbohydrates": {
      "name": "Carbohydrates",
      "amount": "48.7",
      "unit": "g"
    },
    "fiber": {
      "name": "Fiber",
      "amount": "8",
      "unit": "g"
    }
  },
  "minerals": {
    "potassium": {
      "name": "Potassium",
      "amount": "980",
      "unit": "mg"
    }
  },
  "ingredients": [
    "salmon",
    "quinoa",
    "broccoli",
    "avocado",
    "sweet potato"
  ]
}

Abbreviated, with illustrative values. Not a live analysis or dietary advice. Dish composition and portions are estimates.

Access and pricing

Pricing has not been set. BiteRight plans to publish plans, usage limits, overage rules, support levels and contract options before launch; these are not yet confirmed. Until then, access is discussed case by case based on your expected volume and integration needs.

Tell us what you are building.

Share your product, the meal inputs you need and your expected volume. The team will give an honest fit check and contact you when the API is ready to test.

Please leave out patient or personal health information. An inquiry does not activate access.