# List operation tokens

`GET https://api.parklio.com/v2/operation-tokens`

Lists operation tokens. `status` becomes `expired` (checked hourly) after `end_time`, `blocked` when you block it, and `invalid` when the product is removed or paired again. `used_count` doesn't count uses over Bluetooth.

**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: `product_id`, `status`, `date_from`, `date_to`. See [Filtering](/api/conventions#filtering). |
| `sort` | string[] | no | Sort as `field:asc` or `field:desc`. Send it once. Fields: `name`, `id`. See [Sorting](/api/conventions#sorting). |

## 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": 0,
      "product_id": 0,
      "start_time": "2026-01-15T09:30:00.000Z",
      "end_time": "2026-01-15T09:30:00.000Z",
      "status": "active",
      "used_count": 0,
      "is_unlimited": 0,
      "token_close": {
        "challenge_key": "string",
        "status_key": "string",
        "token": "string"
      },
      "token_open": {
        "challenge_key": "string",
        "status_key": "string",
        "token": "string"
      },
      "token_status": {
        "challenge_key": "string",
        "status_key": "string",
        "token": "string"
      },
      "deleted_at": null,
      "created_at": "2026-01-15T09:30:00.000Z",
      "updated_at": "2026-01-15T09:30:00.000Z",
      "product": {
        "device_id": "B123456",
        "id": 1
      }
    }
  ]
}
```

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

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

### 404 — Resource that has been requested does not exist. User should not try to repeat this request.

```json
{
  "success": false,
  "errors": [
    {
      "code": 6,
      "message": "Resource not found."
    }
  ]
}
```

