---
title: "Update an API Token"
method: PATCH
path: "/Accounts/{AccountSid}/tokens/{token_id}"
tags: ["Tokens"]
---

# Update an API Token

`PATCH /Accounts/{AccountSid}/tokens/{token_id}`

Changes the name or enabled permission categories of an existing project API token. For the SignalWire REST API's project route, use [Update API token](/docs/apis/rest/project-tokens/update-token).

#### Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Management_.

[Learn more about API scopes](/docs/platform/your-signalwire-api-space).

## Path parameters

- `AccountSid` string, uuid, required — Universal Unique Identifier.
- `token_id` string, uuid, required — Universal Unique Identifier.

## Request body

- UpdateTokenRequest — Request body for updating an API token.
  - `name` string — The name representing the project API token.
  - `permissions` string[] — The permissions you would like to enable for this project API token. If not provided, existing permissions are kept. Valid permissions are: calling, chat, datasphere, fax, management, messaging, numbers, pubsub, storage, tasking, and video.

## Response `200`

The request has succeeded.

- TokenResponse — Response containing a single token.
  - `id` string, uuid, required — Universal Unique Identifier.
  - `name` string, required — The name of the created API Token.
  - `permissions` string[], required — The permissions enabled for this token.
  - `token` string, required — The API token that can be used along with the project ID for basic authentication.

## Other responses

- `400` — The request was invalid or cannot be processed. Check the error details for more information.
- `401` — Authentication failed. Please verify your credentials and try again.
- `404` — The requested resource was not found. Please verify the resource identifier.
- `422` — The token request could not be processed due to validation errors. Check the error details for the specific issue.

## Changes

- **2026-05-12** `2916d5e3072e` — 1 breaking, 1 info
  - the `id` response's property type/format changed from `string`/`uuid` to ``/`` for status `200`
  - added `#/components/schemas/uuid` to the `id` response property `allOf` list for the response status `200`
- **2026-05-12** `5344c0c93a4c` — 1 breaking, 5 info
  - added 'unevaluatedProperties' constraint to the request body
  - added 'unevaluatedProperties' constraint to the response body for the status `200`
  - added 'unevaluatedProperties' constraint to the response body for the status `400`
  - added 'unevaluatedProperties' constraint to the response body for the status `401`
  - …2 more
- **2026-01-19** `d5fbaaddfa3e` — 1 breaking, 6 info
  - the `name` request property's minLength was increased from `0` to `1`
  - added the non-success response with the status `400`
  - added the non-success response with the status `404`
  - the response property `id` became required for the status `200`
  - …3 more
- **2026-01-15** `479ede876c89` — 5 breaking, 3 info
  - the response property `code` became optional for the status `422`
  - the response property `message` became optional for the status `422`
  - the `code` response's property type/format changed from `integer`/`int32` to `string`/`` for status `422`
  - removed the required property `more_info` from the response with the `422` status
  - …4 more
- …earlier changes not shown

[Full history](https://skmtc.dev/signalwire/apis/compatibility-api/changes/Accounts/:AccountSid/tokens/:token_id/patch.md)

---

[API](https://skmtc.dev/signalwire/apis/compatibility-api.md) · [All operations](https://skmtc.dev/signalwire/apis/compatibility-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/signalwire/compatibility-api/revisions/723316346320/schema)
