# List parking place changes

`GET https://api.parklio.com/v2/parking-place-changes`

The history of every parking place's status changes, with how long each state lasted (`duration`, in seconds). Needs the `PARKING_DETECTION` feature. See the [Live occupancy](/guides/live-occupancy) guide.

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

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `sort` | string[] | no | Sort as `field:asc` or `field:desc`. Send it once. Fields: `id`. See [Sorting](/api/conventions#sorting). |
| `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`, `duration`, `end_time`, `lot_id`, `lot_ids`, `parking_place_name`, `occupancy_status`, `parking_place_id`, `parking_place_ids`, `zone_id`, `zone_ids`. See [Filtering](/api/conventions#filtering). |

## Responses

### 200

```json
{
  "success": true,
  "meta": {
    "total": 100,
    "per_page": 10,
    "current_page": 1,
    "last_page": 1,
    "first_page": 1,
    "first_page_url": "/?page=2",
    "last_page_url": "/?page=10",
    "next_page_url": "/?page=3",
    "previous_page_url": "/?page=1"
  },
  "data": [
    {
      "id": 1,
      "lot_id": 1,
      "parking_place_id": 1,
      "zone_id": 1,
      "duration": 1,
      "end_time": null,
      "occupancy_status": "occupied",
      "parking_place": {},
      "created_at": "2026-01-15T09:30:00.000Z",
      "updated_at": "2026-01-15T09:30:00.000Z"
    }
  ]
}
```

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

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

