# List meals

> Lists your meals, newest first, a page at a time.

`GET /meals`

Needs the **Read** permission.

## Query parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `state` | string | Only meals in this state. One of `planned` or `logged`. |
| `day` | date | Only meals on this day, in the timezone each was eaten in. |
| `fromDay` | date | Only meals on this day or later. |
| `toDay` | date | Only meals on this day or earlier. |
| `from` | date-time | Only meals eaten at or after this time, with a UTC offset. |
| `to` | date-time | Only meals eaten before this time, with a UTC offset. |
| `limit` | integer | How many to return. From 1 to 100. Defaults to 20. |
| `offset` | integer | How many to skip. Send the previous page's `nextOffset`. Defaults to 0. |

## Response

`200` with a page of [meals](https://splot.health/docs/api/meals/object), newest first, and the offset of the next page, or `null` on the last.

```json
{ "meals": [], "nextOffset": null }
```

## Example

```sh
curl "https://app.splot.health/v1/meals?fromDay=2026-09-28&toDay=2026-10-04&state=logged" \
  -H "Authorization: Bearer $SPLOT_API_KEY"
```
