---
title: "Refresh Token"
method: POST
path: "/api/v1/token/refresh"
tags: ["External: Token"]
---

# Refresh Token

`POST /api/v1/token/refresh`

Exchange refresh token for new access token.

This endpoint accepts both SDK and Developer refresh tokens and returns
a new access token of the same type. Implements refresh token rotation:
the old refresh token is revoked and a new one is issued.

Args:
    payload: Request containing the refresh token
    db: Database session

Returns:
    TokenResponse with new access token and new refresh token

Raises:
    401: If the refresh token is invalid or revoked

## Request body

- RefreshTokenRequest — Request to exchange refresh token for new access token.
  - `refresh_token` string, required

## Response `200`

Successful Response

- TokenResponse — Token response with optional refresh token.
  - `access_token` string, required
  - `token_type` string
  - `refresh_token` string, nullable
  - `expires_in` integer, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/openwearables/apis/open-wearables-api.md) · [All operations](https://skmtc.net/openwearables/apis/open-wearables-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openwearables/open-wearables-api/versions/37c1c527cd8f/schema)
