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.
Australia
AUSNUT
Australian Food, Supplement and Nutrient Database. Published by Food Standards Australia New Zealand.
Visit the original source for AUSNUT (opens in a new tab)United States
USDA FoodData Central
Food composition data from the U.S. Department of Agriculture. Published by USDA Agricultural Research Service.
Visit the original source for USDA FoodData Central (opens in a new tab)France
ANSES-Ciqual
French food composition table. Published by French Agency for Food, Environmental and Occupational Health & Safety (ANSES).
Visit the original source for ANSES-Ciqual (opens in a new tab)United Kingdom
CoFID
McCance and Widdowson’s The Composition of Foods integrated dataset. Published by Public Health England.
Visit the original source for CoFID (opens in a new tab)Canada
Canadian Nutrient File
Health Canada’s bilingual food composition database. Published by Health Canada.
Visit the original source for Canadian Nutrient File (opens in a new tab)- Selected local food databases extend coverage for regional foods and international cuisines. The BiteRight app interface is available in English, French, Arabic and Spanish.
From source records to custom dishes.
Clean and organise
Source records are cleaned and prepared for consistent lookup, and refreshed from the underlying food databases.
Decompose the dish
A proprietary machine-learning engine breaks custom-made dishes into likely ingredients, going beyond an exact dish-name match.
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.