---
title: "POST /api/v1/x/accounts/{id}/reauth"
method: POST
path: "/api/v1/x/accounts/{id}/reauth"
tags: ["X Accounts"]
---

# POST /api/v1/x/accounts/{id}/reauth

`POST /api/v1/x/accounts/{id}/reauth`

## Request

- Base URL: `https://xquik.com`
- URL: `https://xquik.com/api/v1/x/accounts/{id}/reauth`
- Auth: API key in cookie `__Host-xquik_session`

Starts re-authentication for an existing X account connection. Needs a dashboard session, so X credentials never pass through an API key.

## Path parameters

- `id` string, required

## Request body

- object
  - `password` string, required: Updated account password
  - `totp_secret` string: Replacement Authenticator App TOTP secret. Omit it to reuse the saved secret.
  - `email` string: Email for the X account. It replaces the stored email.

## Response `200`

Re-authenticated

- SanitizedXAccount: Sanitized X account summary returned by connect and reauth.
  - `id` string, required
  - `xUserId` string, required
  - `xUsername` string, required
  - `status` 'active', required
  - `health` 'healthy' | 'locked' | 'needsReauth' | 'recovering' | 'suspended' | 'temporaryIssue', required
  - `createdAt` string, date-time, required

## Other responses

- `400`: Invalid input. A value past its maxLength gets this answer, & the message names the field & its limit.
- `401`: Unauthenticated
- `403`: An API key or OAuth token called a route that needs a dashboard session. Sign in at dashboard.xquik.com/account instead.
- `404`: No X account with this ID belongs to the authenticated user. Returns error code `account_not_found`.
- `422`: Login requires new credentials, account verification, or a wait. Cooldowns include `retryAfterMs` and `Retry-After`. Codes are `login_failed` or `passkey_required`. `reason` is `account_not_found` (unknown username), `repeated_login_error`, or `login_unconfirmed` (X showed no known page after the password). Retrying a `login_unconfirmed` login before `Retry-After` can make X lock the account.
- `429`: A prior login attempt triggered a cooldown. The response has `reason`, `retryAfterMs` & a `Retry-After` header in seconds. The error code is `login_cooldown`.
- `500`: Unexpected error.
- `503`: The X connection service is temporarily unavailable. Retry shortly. The error code is `service_unavailable`.
- `default`: Unexpected error.

## Changes

- **2026-10-20** `45942c75fdc2`: 18 warning
  - added the new `topup_in_progress` enum value to the `error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `400`
  - added the new `topup_in_progress` enum value to the `error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `401`
  - added the new `topup_in_progress` enum value to the `error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `403`
  - added the new `topup_in_progress` enum value to the `error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `404`
  - …14 more

[Operation history](https://skmtc.dev/xquik-dev/apis/xquik-api/changes/api/v1/x/accounts/:id/reauth/post.md)

---

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