v1
latestOpenAPI 3.0.02026-08-04891301.4 MBauth
Refresh an access token
Exchanges a valid refresh token for a new access token and a new refresh token, rotating the refresh token on every call. The response also includes the updated user object. Store the new refresh token and discard the old one.
Refresh tokens are single-use — submitting an already-consumed token returns HTTP 401. Rate limiting is applied per (user, IP) pair when the token can be verified, and falls back to IP-only when it cannot. The limit is 30 exchanges per minute per bucket; exceeding it returns HTTP 429.
post/api/v1/auth/refresh
Request body
Example request
{
"refresh_token": "string"
}Response
Successful response
Example response
{
"expires_in": 3600,
"metadata": {
"key": "value"
},
"refresh_token": "rt_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfMDEiLCJleHAiOjE3MTcwMDAwMDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"token_type": "Bearer",
"user": {
"alias": "jdoe",
"app": "dap_0aBcDeFgHiJkLmNoPqRsTu",
"app_name": "Example Name",
"email": "user@example.com",
"id": "usr_0aBcDeFgHiJkLmNoPqRsTu",
"is_system_user": true,
"metadata": {
"key": "value"
},
"name": "Example Name",
"org": "org_0aBcDeFgHiJkLmNoPqRsTu",
"org_name": "Example Name",
"org_role": "member",
"sandbox": "dsb_0aBcDeFgHiJkLmNoPqRsTu",
"sandbox_name": "Example Name"
}
}