Skip to main content

Recipes

Two endpoints return recipes: a list of the recipes on your account, and the full detail of one recipe.

List recipes​

GET /recipes

Returns the recipes you can see in Nutritionist Pro, newest ID first. Recipes in Draft status are left out.

Query parameters​

  • limit. Number of recipes to return, from 1 to 200. The default is 50.
  • offset. Number of recipes to skip. The default is 0.
  • view. summary (the default) or full. The full view returns every recipe in the same shape as Get one recipe.
  • updated_since and updated_until. Return only recipes changed in a date range.

See Lists and syncing for how these parameters behave.

Example request​

curl -H "Authorization: Bearer <API_KEY>" \
"https://dev.nutritionistpro.com/v3/customer/recipes?limit=2"

Example response​

{
"status": true,
"code": 200,
"data": [
{
"id": 2000147,
"name": "Banana bread",
"code": "BB-001",
"number_of_servings": 8.0,
"created_at": "2026-03-04T15:20:11Z",
"updated_at": "2026-05-19T09:02:47Z"
},
{
"id": 2000139,
"name": "Tomato soup",
"code": null,
"number_of_servings": 4.0,
"created_at": "2026-02-11T18:45:00Z",
"updated_at": "2026-02-11T18:52:30Z"
}
],
"meta": { "total": 37, "limit": 2, "offset": 0 }
}

Summary fields​

  • id. The recipe ID. Use it with Get one recipe.
  • name. The recipe name.
  • code. The recipe's unique code, or null when none was entered.
  • number_of_servings. How many servings the recipe makes.
  • created_at and updated_at. Dates and times in UTC.

Get one recipe​

GET /recipes/{id}

Returns one recipe in full. A recipe that does not exist, is in Draft status, or belongs to another account returns 404 with the message Recipe not found.

Example request​

curl -H "Authorization: Bearer <API_KEY>" \
"https://dev.nutritionistpro.com/v3/customer/recipes/2000147"

Example response​

The nutrients list is shortened here. A real response carries every published nutrient that has a value.

{
"status": true,
"code": 200,
"data": {
"id": 2000147,
"name": "Banana bread",
"code": "BB-001",
"number_of_servings": 8.0,
"created_at": "2026-03-04T15:20:11Z",
"updated_at": "2026-05-19T09:02:47Z",
"region": { "id": 1, "name": "USA" },
"preparation_method": "Baked",
"meal_component": "Bread",
"preparation_time": "15 minutes",
"cooking_time_minutes": 60,
"cooking_temperature": "350",
"instructions": "Mash the bananas.\nMix in the remaining ingredients.\nBake for one hour.",
"serving": {
"amount": 1.0,
"unit": "slice(s)",
"gram_weight": 85.0,
"note": null
},
"allergens": [
{ "id": 8, "name": "Milk" },
{ "id": 9, "name": "Eggs" }
],
"nutrient_basis": "per_serving",
"nutrients": [
{ "id": 121, "name": "Weight", "abbreviation": "Wt", "unit": "gram(s)", "value": 85.0 },
{ "id": 1, "name": "Kilocalories", "abbreviation": "Kcal", "unit": "kilocalorie(s)", "value": 210.556 },
{ "id": 2, "name": "Protein", "abbreviation": "Protein", "unit": "gram(s)", "value": 3.4 }
],
"ingredients": [
{
"line": 1,
"ingredient_id": 9012,
"name": "Bananas, raw",
"amount": 300.0,
"unit": "gram(s)",
"text": "3 ripe bananas"
},
{
"line": 2,
"ingredient_id": 2000101,
"name": "House flour blend",
"amount": 250.0,
"unit": "gram(s)",
"text": "2 cups flour blend"
}
],
"creator": { "id": 4210, "name": "Test User" },
"account": { "id": 518, "name": "Test Account" }
}
}

Detail fields​

The detail carries every summary field, plus:

  • region. The recipe's region as id and name, or null.
  • preparation_method and meal_component. Names, or null when none was chosen.
  • preparation_time. Text as entered in the recipe.
  • cooking_time_minutes. A whole number of minutes, or null.
  • cooking_temperature. Text as entered in the recipe.
  • instructions. The instruction steps in order, separated by line breaks, or null.
  • serving. The typical serving: amount, unit, gram_weight, and note. null when the recipe has no serving.
  • allergens. A list of id and name pairs. Empty when none are set.
  • nutrient_basis. Always per_serving.
  • nutrients. See Nutrients.
  • ingredients. The ingredient lines in recipe order.
  • creator. The user who created the recipe.
  • account. The account that user belongs to.

Ingredient line fields​

  • line. The position of the line in the recipe.
  • ingredient_id. The ID of the ingredient. Use it with Get one ingredient.
  • name. The ingredient name.
  • amount and unit. The quantity used in the recipe.
  • text. The line as it reads in the recipe.

An ingredient can itself be a recipe (a sub-recipe). Reading it through the ingredients endpoint returns "type": "recipe".