---
title: "Refresh Access Token"
method: POST
path: "/rest/v2/auth/refresh-token.json"
tags: ["Token Management"]
---

# Refresh Access Token

`POST /rest/v2/auth/refresh-token.json`

## Request

- Base URL: `https://api.runsignup.com`
- URL: `https://api.runsignup.com/rest/v2/auth/refresh-token.json`
- Auth: none declared
- TypeScript: <https://skmtc.dev/runsignup/apis/runsignup-oauth2-authentication-api/docs/rest/v2/auth/refresh-token.json/post.ts> (a function with typed inputs; its response is checked against the schema)

Use refresh token to obtain a new access token.

## Request body `application/x-www-form-urlencoded`

- object
  - `grant_type` 'refresh_token', required: OAuth2 grant type. Must be 'refresh_token'.
  - `refresh_token` string, required: Refresh token received from previous token exchange.
  - `client_id` string, required: OAuth2 client identifier.
  - `client_secret` string, required: OAuth2 client secret (base64 encoded).
  - `scope` string: Requested scope (optional, defaults to original scope).

## Response `200`

Successful token refresh

- TokenResponse
  - `access_token` string, required: OAuth2 access token (JWT format)
  - `token_type` 'Bearer', required: Token type for authorization header
  - `expires_in` integer, required: Access token lifetime in seconds
  - `refresh_token` string: Refresh token for obtaining new access tokens
  - `scope` string: Granted access scope

## Other responses

- `400`: Bad Request - Invalid refresh token
- `401`: Unauthorized - Invalid client credentials

---

[API](https://skmtc.dev/runsignup/apis/runsignup-oauth2-authentication-api.md) - [All operations](https://skmtc.dev/runsignup/apis/runsignup-oauth2-authentication-api/llms.txt) - [OpenAPI document](https://skmtc.dev/runsignup/apis/runsignup-oauth2-authentication-api/revisions/6195b3437b58?raw)
