# List sessions

`GET https://api.parklio.com/v2/sessions`

Lists parking sessions. Open sessions have no `ended_at`; filter them with `ended_at:eq:null`. `duration` is in seconds, `discount_time` in minutes (`-1` = unlimited). See the [Sessions and tariffs](/guides/sessions-and-tariffs) guide.

**Auth:** `Authorization: Bearer <token>`

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | number | no | Page number, starting at 1. See [Paging](/api/conventions#paging). |
| `size` | number | no | Items per page: 10 by default, at most 300. See [Paging](/api/conventions#paging). |
| `filter` | string[] | no | Filter as `field:rule:value`, for example `lot_id:eq:7`. Repeat `filter` to combine filters; all must match. Fields: `account_id`, `created_at`, `ended_at`, `license_plate`, `lot_id`, `lpr_camera_id`, `zone_id`, `public_id`. See [Filtering](/api/conventions#filtering). |
| `sort` | string[] | no | Sort as `field:asc` or `field:desc`. Send it once. Fields: `created_at`, `id`, `ended_at`. See [Sorting](/api/conventions#sorting). |

## Responses

### 200

```json
{
  "success": true,
  "data": [
    {
      "id": 501,
      "public_id": "K7Q2M9X4TB",
      "duration": 1800,
      "amount_paid": 0,
      "exit_allowed": true,
      "entry_license_plate": {
        "id": 9001,
        "plate": "ZG1234AB",
        "image_url": null,
        "cropped_image_url": null
      },
      "created_at": "2026-03-02T08:12:41.000Z",
      "entry": {
        "id": 15,
        "type": "lpr_camera"
      },
      "zone_id": 9
    }
  ],
  "meta": {
    "total": 1,
    "per_page": 10,
    "current_page": 1,
    "last_page": 1,
    "first_page": 1,
    "first_page_url": "/?page=1",
    "last_page_url": "/?page=1",
    "next_page_url": "/?page=2",
    "previous_page_url": null
  }
}
```

### 401 — Account user is not logged in and they should log in again.

```json
{
  "success": false,
  "errors": [
    {
      "code": 1,
      "message": "Unauthorized access."
    }
  ]
}
```

