Tokens API - POST a new token
Creates a new DESK API authentication token. The response contains the newly created token.
The new token is owned by the same user who owns the token used to authenticate the call.
The request consumes an application/json
payload.
The request produces one of the following payload types:
application/json
text/plain
text/csv
Use the Accept header to set the required response type.
POST |
|
Parameters
Parameter | Type | Description | In | Required |
---|---|---|---|---|
body | CreateTenantToken |
The JSON body of the request. Contains parameters of the new token. |
body | required |
The CreateTenantToken object
Parameters of a new token.
Element | Type | Description | Required |
---|---|---|---|
name | string |
The name of the token. |
required |
expiresIn | Duration |
How long the token is valid. If not set, the token never expires. |
optional |
scopes | string[] |
The list of permissions assigned to the token:
|
required |
The Duration object
Defines a period of time.
Element | Type | Description | Required |
---|---|---|---|
value | integer |
The amount of time. |
required |
unit | string |
The unit of time. If not set, millisecond is used. The unit element can hold these values. |
optional |
This is a model of the request body, showing the possible elements. It has to be adjusted for usage in an actual request. See the Example expandable section for working sample request.
{
"name": "My Tenant Token",
"scopes": [
"ReadConfig",
"WriteConfig",
"DataPrivacy"
],
"expiresIn": {
"value": 3600,
"unit": "SECONDS"
}
}
Possible values
Possible values for the items element in the CreateTenantToken object:
- ActiveGateCertManagement
- AdvancedSyntheticIntegration
- AppMonIntegration
- CaptureRequestData
- DTAQLAccess
- DataExport
- DataImport
- DataPrivacy
- Davis
- DcrumIntegration
- DssFileManagement
- ExternalSyntheticIntegration
- InstallerDownload
- LogExport
- LogImport
- MaintenanceWindows
- PluginUpload
- ReadConfig
- ReadSyntheticData
- RumJavaScriptTagManagement
- SupportAlert
- TenantTokenManagement
- UserSessionAnonymization
- WriteConfig
Possible values for the unit element in the Duration object:
- DAYS
- HOURS
- MILLIS
- MINUTES
- SECONDS
Request headers
Accept header value | Description |
---|---|
application/json |
The response contains JSON payload with token. |
text/plain |
The response contains token in plain text format. |
accept: text/csv; header=present; charset=utf-8 |
The response contains token in CSV-format. |
accept: text/csv; header=absent; charset=utf-8 |
The response contains token in CSV-format, preceded by the token heading. |
Response format
The Token object
Element | Type | Description |
---|---|---|
token | string | DESK API authentication token. |
{}
Example
In this example, the request creates a new token named REST example. It is valid for 24 hours and has the following permissions:
- Access problem and event feed, metrics, and topology
- Read configuration
- Write configuration
The Accept header sets the response content type as text/plain
.
The response code of 201 indicates that the creation was successful. The response contains the new token as plain text.
The API token is passed in the Authorization header.
You can download or copy the example request body to try it out on your own.
Curl
curl -X POST \
https://mySampleEnv.live.dexp.ae/api/v1/tokens/ \
-H 'Authorization: Api-Token abcdefjhij1234567890' \
-H 'Content-Type: application/json' \
-H 'Accept: text/plain'
-d '{
"name": "REST example",
"scopes": [
"WriteConfig",
"ReadConfig",
"DataExport"
],
"expiresIn": {
"value": 24,
"unit": "HOURS"
}
}
'
Request body
api-examples/env/token/post-token.json
{
"name": "REST example",
"scopes": [
"WriteConfig",
"ReadConfig",
"DataExport"
],
"expiresIn": {
"value": 24,
"unit": "HOURS"
}
}
Response body
0987654321jihgfedcba
Response code
201
Result
The new token looks like this in the DESK interface: