# Food Log Entries

The `foodLogs` query retrieves a comprehensive list of food log entries for the authenticated user within a specified date range. This query allows access to data for all food categories.

### Available Arguments

| Argument | Type   | Required? | Description                                                                                   |
| -------- | ------ | --------- | --------------------------------------------------------------------------------------------- |
| `Start`  | Date   | True      | Starting filter date range, format `YYYY-mm-dd`                                               |
| `End`    | Date   | True      | Ending filter date range, format `YYYY-mm-dd`                                                 |
| `Id`     | String | False     | `ID` of the logged food. Add this parameter to get the specific information of a logged food. |

### Available Fields

| Field           | Type                                                  | Note                                                                                                                                                  |
| --------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`          | String                                                | Name of the logged item                                                                                                                               |
| `date`          | Date                                                  | Date of the log entry                                                                                                                                 |
| `mealType`      | MealType                                              | Type of meal that was logged. RECIPE, MENU\_ITEM                                                                                                      |
| `servings`      | \[[servings](/graphql/objects/food-logs/servings.md)] | Object that contains predefined serving types and sizes                                                                                               |
| `serving`       | Float                                                 | Index of the [**servings** ](/graphql/objects/food-logs/servings.md)element that was logged                                                           |
| `quantity`      | Float                                                 | Quantity of logged servings                                                                                                                           |
| `servingWeight` | Float                                                 | Weight in grams of each serving                                                                                                                       |
| `food`          | Food                                                  | union Food = `BrandedFoodNodeProxy`, `CommonFoodNodeProxy`, `MealProxy`, `MyBrandedFoodProxy`, `MyCommonFoodProxy`, `RecipeProxy`, `UserRecipeProxy`. |

### Pagination

The `foodLogs` query supports the use of pagination. The following fields can be used

{% tabs %}
{% tab title="Query" %}

```graphql
cursor
    }
     pageInfo {
      endCursor
      hasNextPage
    }
```

{% endtab %}
{% endtabs %}

Refer to the [pagination ](https://docs.suggestic.com/graphql/query/search#pagination)documentation for more information.

## Examples

### GraphQL Examples

#### Get the meals logged on specific dates

The following example retrieves the meals logged between to given dates:&#x20;

{% tabs %}
{% tab title="Query" %}

```graphql
{
  foodLogs(start: "2021-09-01", end: "2021-10-05"){
   edges {
      node
         {
        foodId
        portionModifier
        date
        grams
        mealTime
      }
    }
   }
}
```

{% endtab %}

{% tab title="Response" %}

```graphql
{
  "data": {
    "foodLogs": {
      "edges": [
        {
          "node": {
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjQ3OTk0MQ==",
            "portionModifier": null,
            "date": "2021-10-01",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjQ3OTk0MQ==",
            "portionModifier": null,
            "date": "2021-10-01",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjQ3OTk0MQ==",
            "portionModifier": null,
            "date": "2021-10-01",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "Q29tbW9uRm9vZE5vZGU6MTczNDQ0",
            "portionModifier": null,
            "date": "2021-10-02",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjQ3OTk0MQ==",
            "portionModifier": null,
            "date": "2021-10-02",
            "grams": 2,
            "mealTime": "DINNER"
          }
        }
      ]
    }
  }
}
```

{% endtab %}
{% endtabs %}

### curl Example

{% tabs %}
{% tab title="Query" %}

```java
curl -XPOST 'https://production.suggestic.com/graphql' \
  -H 'Authorization: Bearer <User-JWT>' \
  -H 'Content-Type: application/json' \
--data-raw '{"query": "{foodLogs(start:\"2021-09-01\", end:\"2021-10-05\"){edges{ node { id date mealTime foodId grams servings}} }}"}'
```

{% endtab %}
{% endtabs %}

### GraphQL Example

{% tabs %}
{% tab title="Query" %}

```graphql
query($first: Int, $start: Date! $end: Date!) {
  foodLogs(first: $first, start: $start, end: $end){
     edges {
       cursor 
         node {
            id 
            date 
            mealTime 
            foodId 
            grams 
            servings
            time 
            portionModifier
           }
          }
        pageInfo {
          hasNextPage
         hasPreviousPage 
         startCursor
         endCursor
            }
        }
    }
```

{% endtab %}

{% tab title="Response" %}

```graphql
{
  "data": {
    "foodLogs": {
      "edges": [
        {
          "node": {
            "foodId": "Q29tbW9uRm9vZE5vZGU6MTczNDQ0",
            "portionModifier": null,
            "date": "2021-09-02",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjQ3OTk0MQ==",
            "portionModifier": null,
            "date": "2021-10-01",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjQ3OTk0MQ==",
            "portionModifier": null,
            "date": "2021-10-01",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjQ3OTk0MQ==",
            "portionModifier": null,
            "date": "2021-10-01",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "Q29tbW9uRm9vZE5vZGU6MTczNDQ0",
            "portionModifier": null,
            "date": "2021-10-02",
            "grams": 2,
            "mealTime": "DINNER"
          }
        },
        {
          "node": {
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjQ3OTk0MQ==",
            "portionModifier": null,
            "date": "2021-10-02",
            "grams": 2,
            "mealTime": "DINNER"
          }
        }
      ]
    }
  }
}
```

{% endtab %}
{% endtabs %}

### GraphQL Example with nutrients and all food data types

{% tabs %}
{% tab title="Query" %}

```graphql
query($start: Date! $end: Date!) {
  foodLogs(start: $start, end: $end){
     edges {
       cursor 
         node {
            id 
            date 
            mealTime 
            foodId
            grams 
            servings
            time
            portionModifier
            food {
					... on BrandedFoodNodeProxy {
						brandedFood {
							brandName
							brandOwner
							dataType
							description
							foodDataId
							householdServingFulltext
							name
							nutrients {
							  amount
							  name
							  type
							  unit
							}
							servingSize
							servingSizeUnit
						}
					}
					... on CommonFoodNodeProxy {
						commonFood {
							dataType
							description
							foodDataId
							name
							nutrients {
								amount
								name
								type
								unit
							}
							portions {
								amount
								gramWeight
								modifier
								seqNum
							}
						}
					}
					... on MealProxy {
						meal {
							id
							meal
							numOfServings
							recipe {
								id
								databaseId
								name
								numberOfServings
								nutritionalInfo {
									calcium
									calories
									carbs
									cholesterol
									fat
									fiber
									iron
									potassium
									protein
									saturatedFat
									sodium
									sugar
									transFat
									vitaminD
								}
								serving
								servingWeight
							}
						}
					}
					... on MyBrandedFoodProxy {
						myBrandedFood {
							brandName
							brandOwner
							dataType
							description
							foodDataId
							householdServingFulltext
							name
							nutrients {
							  amount
							  name
							  type
							  unit
							}
							servingSize
							servingSizeUnit
						}
					}
					... on RecipeProxy {
						recipe {
							databaseId
							name
							numberOfServings
							nutritionalInfo {
								calcium
								calories
								carbs
								cholesterol
								fat
								fiber
								iron
								potassium
								protein
								saturatedFat
								sodium
								sugar
								transFat
								vitaminD
							}
							serving
							servings {
							  amount
							  description
							  equivalent
							  unit
							}
							servingWeight
						}
					}
					... on UserRecipeProxy {
						userRecipe {
							name
							nutrientsPerServing {
								amount
								name
								type
								unit
							}
							servingWeight
							text
						}
					}
				}
           }
          }
        pageInfo {
          hasNextPage
         hasPreviousPage 
         startCursor
         endCursor
            }
        }
    }
```

{% endtab %}

{% tab title="Response" %}

```graphql
{
  "data": {
    "foodLogs": {
      "edges": [
        {
          "cursor": "T2Zmc2V0OjE=",
          "node": {
            "id": "Rm9vZExvZzo5ODEwMQ==",
            "date": "2023-01-12",
            "mealTime": "DINNER",
            "foodId": "QnJhbmRlZEZvb2ROb2RlOjFhMDFlMzI5LTc3ZjQtNDgzYy1hNzg4LTZkOTNlYWE1MjMzMQ==",
            "grams": 100,
            "servings": 2,
            "time": null,
            "portionModifier": "halfs",
            "food": {
              "brandedFood": {
                "brandName": null,
                "brandOwner": "OREOS",
                "dataType": "branded_food",
                "description": "OREOS, CHOCOLATE COVERED",
                "foodDataId": "504036",
                "householdServingFulltext": "1 PIECE",
                "name": "Chocolate covered oreos",
                "nutrients": [
                  {
                    "amount": 0,
                    "name": "Calcium, Ca",
                    "type": "CALCIUM_CA",
                    "unit": "MG"
                  },
                  {
                    "amount": 6.43,
                    "name": "Iron, Fe",
                    "type": "IRON_FE",
                    "unit": "MG"
                  },
                  {
                    "amount": 0,
                    "name": "Vitamin A, IU",
                    "type": "VITAMIN_A_IU",
                    "unit": "IU"
                  },
                  {
                    "amount": 0,
                    "name": "Vitamin C, total ascorbic acid",
                    "type": "VITAMIN_C_TOTAL_ASCORBIC_ACID",
                    "unit": "MG"
                  },
                  {
                    "amount": 0,
                    "name": "Cholesterol",
                    "type": "CHOLESTEROL",
                    "unit": "MG"
                  },
                  {
                    "amount": 0,
                    "name": "Protein",
                    "type": "PROTEIN",
                    "unit": "G"
                  },
                  {
                    "amount": 25,
                    "name": "Total lipid (fat)",
                    "type": "FAT",
                    "unit": "G"
                  },
                  {
                    "amount": 71.43,
                    "name": "Carbohydrate, by difference",
                    "type": "CARBS",
                    "unit": "G"
                  },
                  {
                    "amount": 500,
                    "name": "Energy",
                    "type": "ENERGY",
                    "unit": "KCAL"
                  },
                  {
                    "amount": 53.57,
                    "name": "Sugars, total including NLEA",
                    "type": "SUGARS_TOTAL_INCLUDING_NLEA",
                    "unit": "G"
                  },
                  {
                    "amount": 3.6,
                    "name": "Fiber, total dietary",
                    "type": "FIBER_TOTAL_DIETARY",
                    "unit": "G"
                  },
                  {
                    "amount": 232,
                    "name": "Sodium, Na",
                    "type": "SODIUM_NA",
                    "unit": "MG"
                  },
                  {
                    "amount": 0,
                    "name": "Fatty acids, total trans",
                    "type": "FATTY_ACIDS_TOTAL_TRANS",
                    "unit": "G"
                  },
                  {
                    "amount": 12.5,
                    "name": "Fatty acids, total saturated",
                    "type": "FATTY_ACIDS_TOTAL_SATURATED",
                    "unit": "G"
                  }
                ],
                "servingSize": 28,
                "servingSizeUnit": "g"
              }
            }
          }
        }
      ],
      "pageInfo": {
        "hasNextPage": false,
        "hasPreviousPage": false,
        "startCursor": "T2Zmc2V0OjA=",
        "endCursor": "T2Zmc2V0OjE="
      }
    }
  }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.suggestic.com/graphql/query/queries/food-log/food-log-entries.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
