Exchanges a refresh token for a new app configuration token.
GEThttps://slack.com/api/tooling.tokens.rotate
application/x-www-form-urlencoded
App Manifest API beta
This API is in beta, and is subject to change without the usual notice period for changes.
Keep your tokens secure
App configuration access and refresh tokens are unique to you. Do not share them with anyone.
Each app configuration token will expire 12 hours after it has been generated. In order to continually rotate your config tokens, you are also provided with a refresh token.
It's strongly suggested that you refresh your token before it expires, rather than waiting for it to expire and checking for an error from the Slack API.
In order to refresh config tokens, make a call to tooling.tokens.rotate
, using the refresh token in the refresh_token
argument. In response you'll receive something like this:
{
"ok": true,
"token": "xoxe.xoxp-...",
"refresh_token": "xoxe-...",
"team_id": "...",
"user_id": "...",
"iat": 1633095660,
"exp": 1633138860
}
The token
field contains your new config access token, which you can then store and use for Manifest API calls. The refresh_token
field contains a new refresh token.
The remainder of the response above contains fields which identify the source workspace and user of each token, as well as timestamps which indicate when the token was issued and when it will expire.
To learn how to use app configuration tokens, read our guide to the App Manifest APIs.
Typical success response
{
"ok": true,
"token": "xoxe.xoxp-...",
"refresh_token": "xoxe-...",
"team_id": "...",
"user_id": "...",
"iat": 1633095660,
"exp": 1633138860
}
Typical error response if incorrect refresh token used
{
"ok": false,
"error": "invalid_refresh_token"
}
This table lists the expected errors that this method could return. However, other errors can be returned in the case where the service is down or other unexpected factors affect processing. Callers should always check the value of the ok
params in the response.
Error | Description |
---|---|
internal_error | The server could not complete your operation(s) without encountering an error, likely due to a transient issue on our end. It's possible some aspect of the operation succeeded before the error was raised. |
invalid_refresh_token | The given refresh token is invalid. |
unknown_error | Temporary error for dev only restriction |
accesslimited | Access to this method is limited on the current network |
fatal_error | The server could not complete your operation(s) without encountering a catastrophic error. It's possible some aspect of the operation succeeded before the error was raised. |
invalid_arg_name | The method was passed an argument whose name falls outside the bounds of accepted or expected values. This includes very long names and names with non-alphanumeric characters other than |
invalid_arguments | The method was either called with invalid arguments or some detail about the arguments passed is invalid, which is more likely when using complex arguments like blocks or attachments. |
invalid_array_arg | The method was passed an array as an argument. Please only input valid strings. |
invalid_charset | The method was called via a |
invalid_form_data | The method was called via a |
invalid_post_type | The method was called via a |
missing_post_type | The method was called via a |
ratelimited | The request has been ratelimited. Refer to the |
request_timeout | The method was called via a |
service_unavailable | The service is temporarily unavailable |
team_added_to_org | The workspace associated with your request is currently undergoing migration to an Enterprise Organization. Web API and other platform operations will be intermittently unavailable until the transition is complete. |
This table lists the expected warnings that this method will return. However, other warnings can be returned in the case where the service is experiencing unexpected trouble.
Warning | Description |
---|---|
missing_charset | The method was called via a |
superfluous_charset | The method was called via a |