---
title: "List personal access tokens"
method: GET
path: "/pat"
tags: ["Personal access tokens"]
---

# List personal access tokens

`GET /pat`

## Request

- Base URL: `https://api.nullplatform.com`
- URL: `https://api.nullplatform.com/pat`
- Auth: HTTP bearer

Lists your own personal access tokens. You only ever see the tokens you created.

> ℹ️ **Note:** Personal access tokens are managed with your own login session. A request authenticated with an API key, a personal access token included, is rejected with a `403`.

## Query parameters

- `search` string
- `status` string
- `expires_at:range` string
- `expires_at:gte` string
- `expires_at:lte` string
- `sort` 'name:asc' | 'name:desc' | 'last_used_at:asc_nulls_last' | 'last_used_at:desc_nulls_last'
- `limit` integer
- `offset` integer

## Response `200`

The operation was successful.

- PatPaginatedResponse
  - `paging` object, required
    - `offset` integer, required: The start of the paging window.
    - `limit` integer, required: Maximum number of tokens per page.
    - `total` integer: The number of tokens that match the filters.
  - `results` PatResponse[], required
    - `id` integer, required: Unique ID for the token.
    - `name` string, required: The descriptive name given to the token.
    - `masked_api_key` string: The token, masked.
    - `access` 'grants' | 'same_as_user', required: Whether the token follows your access (`same_as_user`) or holds its own grants (`grants`).
    - `tags` object[], required: Tags associated with the token. Empty when it has none.
      - `key` string, required: Tag key.
      - `value` string, required: Tag value.
    - `grants` object[], required: What the token can do. For a `same_as_user` token, these are your own grants in the organization at the moment of the request. A token that no longer works, because it expired or your user is inactive, reports none.
      - `id` integer: The ID of the grant.
      - `nrn` string: The NRN of the resource the grant applies to.
      - `role_id` integer: The ID of the role granted.
      - `role_slug` string: The slug of the role granted.
      - `actions` string[]: The action names the grant resolves to, present when it was created from `actions` or `inherits`.
    - `personal` boolean: Always `true` for a personal access token.
    - `owner_id` integer: The ID of the user who created the token.
    - `acting_user_id` integer: The ID of the user the token acts as: you.
    - `last_used_at` string, date-time, nullable: The ISO-8601 UTC timestamp of when the token was last exchanged for an access token.
    - `expires_at` string, date-time, required: The ISO-8601 UTC timestamp of when the token stops working.
    - `expired` boolean: Whether the token has expired.
    - `created_at` string, date-time, required: The ISO-8601 UTC timestamp of when the token was created.
    - `updated_at` string, date-time, required: The ISO-8601 UTC timestamp of when the token was last updated.

## Other responses

- `4XX`: The request couldn't be processed. For example, a parameter is invalid, the resource doesn't exist, or you don't have permission. The body is a problem details object (RFC 9457).
- `5XX`: Something went wrong on nullplatform's side. The body is a problem details object (RFC 9457).

## Changes

- **2026-10-15** `728d4df70ca1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nullplatform/apis/nullplatform-api/changes/pat/get.md)

---

[API](https://skmtc.dev/nullplatform/apis/nullplatform-api.md) - [All operations](https://skmtc.dev/nullplatform/apis/nullplatform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nullplatform/apis/nullplatform-api/revisions/d3f66bc633d4?raw)
