REST ClientProject

create

View as MarkdownOpen in Claude

tokens.create

Create a new API token for the project.

Request

namestringRequired
The name representing the API token.
permissionslist of enumsRequired
The permissions you would like to enable for this token. Valid permissions are calling, chat, datasphere, fax, management, messaging, numbers, pubsub, storage, tasking, and video
project_idstringOptionalformat: "uuid"
Personal access token only. The project to create the token for. Required with a Personal access token and must name a project the token holder can reach (`invalid_project_id`). Ignored with a project API token, which creates the token on its own project.
subproject_idstringOptionalformat: "uuid"
The unique identifier of the subproject you would like to create a token for. The subproject passed must be a child of the project used to authenticate the request, or of `project_id` when authenticating with a Personal access token.

Response

idstringRequiredformat: "uuid"
The ID of the API Token.
namestringRequired
The name of the API Token.
permissionslist of enumsRequired
The permissions enabled for this token.
tokenstringRequired
The API token that can be used along with the project ID for basic authentication. It is returned only in this response and cannot be retrieved again; store it securely.

Response Example

Response
{
"id": "ea14556a-984f-11ee-b9d1-0242ac120002",
"name": "John Doe's Token",
"permissions": [
"calling",
"fax",
"messaging"
],
"token": "swapi_0123456789ab0123456789ab0123456789ab"
}

Example

from signalwire.rest import RestClient
client = RestClient(
project="your-project-id",
token="your-api-token",
host="your-space.signalwire.com",
)
token = client.project.tokens.create(name="ci-token")
print("Token:", token.get("token"))
print("ID:", token.get("id"))