---
title: "Revoke one of your own personal access tokens"
method: DELETE
path: "/personal-access-tokens/{tokenId}"
tags: ["Personal Access Tokens"]
---

# Revoke one of your own personal access tokens

`DELETE /personal-access-tokens/{tokenId}`

Revokes a token by id, scoped to `{tokenId, clientId, callerUserId}`
— a caller can never revoke another user's token through this route,
even though everyone in the org shares the same underlying
`pat-system:<orgId>` client. Revocation takes effect immediately: the
token's next verification attempt fails, including one already in
flight.

## Path parameters

- `tokenId` string, required

## Request body

- RevokePatRequest — Optional request body for `DELETE /personal-access-tokens/{tokenId}` and `DELETE /personal-access-tokens/admin/{tokenId}`. The body itself is optional; `reason`, if present, is stored on the revocation for auditing.
  - `reason` string

## Response `200`

Personal access token revoked successfully

- RevokePatResponse
  - `message` string, required

## Other responses

- `401` — Unauthorized
- `404` — Token not found, already revoked, not owned by the caller, or the org has no PAT app yet
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/pipeshub-ai/apis/pipeshub-api.md) · [All operations](https://skmtc.net/pipeshub-ai/apis/pipeshub-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pipeshub-ai/pipeshub-api/revisions/64bfe76b130e/schema)
