---
title: "Exchange a refresh token for new tokens"
method: POST
path: "/api/auth/refresh"
tags: ["Authentication"]
---

# Exchange a refresh token for new tokens

`POST /api/auth/refresh`

## Request

- Base URL: `https://slimlytics.com`
- URL: `https://slimlytics.com/api/auth/refresh`
- Auth: none required

## Request body

- RefreshInput
  - `refreshToken` string, required

## Response `200`

New access token and rotated refresh token

- TokenResponse
  - `token` string, required: Short-lived session JWT (Bearer access token)
  - `refreshToken` string, required: Opaque `slrt_` refresh token. Single use: every refresh returns a new one. Sessions stay signed in for 30 idle days (365 days at most).
  - `expiresIn` integer, required: Access token lifetime in seconds

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `500`: Internal service error

---

[API](https://skmtc.dev/slimlytics/apis/slimlytics-api.md) · [All operations](https://skmtc.dev/slimlytics/apis/slimlytics-api/llms.txt) · [OpenAPI document](https://skmtc.dev/slimlytics/apis/slimlytics-api/revisions/f9a26641a254?raw)
