# List existing tokens

List customer-visible metadata for the authenticated account's existing proxy tokens.

```http
GET /api/v1/tokens
Authorization: Bearer lit_...
```

This operation returns metadata and proxy credentials. It does not create or modify tokens.

## Query parameters

| Parameter | Rules |
| --- | --- |
| `limit` | Integer 1–100; default 50. |
| `cursor` | Opaque cursor returned by the preceding page. |
| `type` | `unlimited` or `ppg`. |
| `status` | `active`, `expired`, or `disabled`. |

Results are ordered newest first. Keep requesting the returned `page.nextCursor` until it is `null`. Treat the cursor as opaque and use it only with the same query parameters.

## Example

```bash
curl --get 'https://litport.net/api/v1/tokens' \
  -H "Authorization: Bearer $LITPORT_API_KEY" \
  --data-urlencode 'type=ppg' \
  --data-urlencode 'status=active' \
  --data-urlencode 'limit=20'
```

```json
{
  "data": [
    {
      "id": 12345,
      "type": "ppg",
      "status": "active",
      "label": "Production crawler",
      "createdAt": "2026-08-01T10:15:00.000Z",
      "expiresAt": null,
      "ingress": {
        "hub": "example-hub",
        "protocol": "http",
        "mode": "request-selected",
        "supportedProtocols": ["http", "socks5"]
      },
      "poolSelection": {
        "mode": "fixed",
        "pool": { "authKey": "residential-main", "name": "Residential Main" }
      },
      "username": "proxy-username",
      "password": "proxy-password"
    }
  ],
  "page": { "nextCursor": null }
}
```

Example identifiers and hubs in this documentation are illustrative.

## Field semantics

`type` is `ppg` or `unlimited` according to the token product.

`status` is `disabled` when explicitly disabled, otherwise `expired` when its expiration has passed, otherwise `active`.

For unlimited tokens, `ingress.mode` is `assigned`; `hub` and `protocol` are authorization constraints. PPG tokens use `ingress.mode: request-selected`; `hub` and `protocol` are dashboard/export preferences and `supportedProtocols` lists the choices. In both cases, ingress is not exit geography.

For PPG tokens, `poolSelection.mode` is `auth-parameter` when the proxy username must select a pool. It is `fixed` when the token is locked to one pool; the public `pool` descriptor names that pool without exposing an internal identifier. If a fixed pool cannot be described safely, `pool` is `null`. Use the dashboard exporter to build the correct credential.

`username` and `password` are the proxy credentials for the token. Use them with the endpoint shown in the dashboard.
