> For the complete documentation index, see [llms.txt](https://docs.ibexa.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ibexa.ai/developers/rest-api/login/refresh-token.md).

# Refresh Token

Refresh access token using a valid refresh token.

Exchange a valid refresh token for a new access token and refresh token pair. No authentication header required.

**Token Rotation**: Each refresh token can only be used once. After use, the old refresh token is invalidated and a new one is returned. This provides security against token theft.

**Reuse Detection**: If a previously used refresh token is submitted, all refresh tokens for the user are revoked as a security measure.

```json
{"openapi":"3.1.0","info":{"title":"Ibexa Agentic Marketing Platform","version":"0.1.0"},"paths":{"/api/v1/login/refresh-token":{"post":{"tags":["login","public"],"summary":"Refresh Token","description":"Refresh access token using a valid refresh token.\n\nExchange a valid refresh token for a new access token and refresh token pair.\nNo authentication header required.\n\n**Token Rotation**: Each refresh token can only be used once. After use, the old\nrefresh token is invalidated and a new one is returned. This provides security\nagainst token theft.\n\n**Reuse Detection**: If a previously used refresh token is submitted, all refresh\ntokens for the user are revoked as a security measure.","operationId":"login-refresh_token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenRequestSchema"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessTokenResponseSchema"}}}},"401":{"description":"User not authenticated","content":{"application/json":{}}},"403":{"description":"User lacks permission","content":{"application/json":{}}}}}}},"components":{"schemas":{"RefreshTokenRequestSchema":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token","description":"Opaque refresh token"}},"type":"object","required":["refresh_token"],"title":"RefreshTokenRequestSchema","description":"Request schema for refresh token endpoint."},"AccessTokenResponseSchema":{"properties":{"access_token":{"type":"string","title":"Access Token","description":"JWT access token"},"refresh_token":{"type":"string","title":"Refresh Token","description":"Opaque refresh token"},"token_type":{"type":"string","title":"Token Type","description":"Token type","default":"bearer"}},"type":"object","required":["access_token","refresh_token"],"title":"AccessTokenResponseSchema","description":"Response schema for access token."}}}}
```
