---
title: "Generate a new API Token"
method: POST
path: "/Accounts/{AccountSid}/tokens"
tags: ["Tokens"]
---

# Generate a new API Token

`POST /Accounts/{AccountSid}/tokens`

Generate an API Token for a project to be used to authenticate requests within the project.

#### 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](/platform/dashboard/getting-started/your-signalwire-api-space#api-token-scopes).

## Path parameters

- `AccountSid` string, uuid, required

## Response `200`

The request has succeeded.

- TokenResponse — Response containing a single token.
  - `id` string, uuid, required — The unique identifier of the created API Token.
  - `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.
- `422` — The token request could not be processed due to validation errors. Check the error details for the specific issue.

## Changes

- **2026-01-19** `d5fbaaddfa3e` — 3 breaking, 5 info
  - the `permissions` request property's minItems was increased to `1`
  - the `name` request property's minLength was increased from `0` to `1`
  - the `subproject_id` request property format changed from no format to `uuid`
  - added the non-success response with the status `400`
  - …4 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 changed from `integer` to `string`, and format from `int32` to no format for status `422`
  - removed the required property `more_info` from the response with the `422` status
  - …4 more
- **2026-01-15** `07f73f74a61d` — 1 breaking, 1 info
  - removed the media type `application/json` from the request body
  - added the media type `application/x-www-form-urlencoded` to the request body
- **2026-01-15** `3c88f14db21e` — 6 breaking, 2 warning, 4 info
  - added the new required request property `name`
  - added the new required request property `permissions`
  - the request's body type changed from no type to `object`
  - the `code` response's property type changed from `string` to `integer`, and format from no format to `int32` for status `422`
  - …8 more

[Change history](https://skmtc.dev/signalwire/apis/compatibility-api/changes/Accounts/:AccountSid/tokens/post.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/8891278c1908/schema)
