---
title: "Refresh reader token"
method: POST
path: "/api/v1/readers/refresh_token"
tags: ["Readers"]
---

# Refresh reader token

`POST /api/v1/readers/refresh_token`

## Request

- Base URL: `https://api.passentry.com`
- URL: `https://api.passentry.com/api/v1/readers/refresh_token`
- Auth: none required

Exchange a refresh token for a new session token and refresh token without the reader password. Use it when an API call returns 401 because the session token expired. The previous tokens are invalidated.

## Request body

- object
  - `refresh_token` string, required: Refresh token from Reader login or the last heartbeat

## Response `200`

Successful

- object
  - `message` string
  - `token` string: New reader session token. Replaces the previous token immediately.
  - `refresh_token` string: New refresh token. Replaces the previous refresh token immediately.

## Other responses

- `401`: Error: Unauthorized

## Changes

- **2026-10-14** `0748466491e3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/passentry/apis/passentry-api/changes/api/v1/readers/refresh_token/post.md)

---

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