Skip to main content
POST
X account email verification API & login challenges
Free. This endpoint does not consume credits.
Use this endpoint after Connect X Account returns 202 Email Code Required. Submit the one-time code from the account email inbox before expiresAt.
This endpoint cannot reopen an expired, failed, completed, or replaced challenge. After 409, 410, or 422, start Connect X Account again for a new account. For an existing account, use Re-authenticate X Account with the current password and any required TOTP secret key.

Continue the pending login

Use the returned challenge ID

Keep the id from the 202 response and submit the inbox code to that challenge. The challenge belongs to the same pending login attempt.

Enter the account email code

Use the one-time code X sent to the account email inbox. Xquik strips spaces before submission. 123 456 and 123456 work the same way.

Handle another code prompt

If X asks for a new email code, this endpoint returns 202 again. Keep the same flow open and submit the next inbox code before expiresAt.

Start over when stale

410 means the code expired. 409 means the challenge already completed, failed, or expired, or a newer challenge replaced it. Start Connect X Account again for a new account, or use Re-authenticate X Account for an existing account.
The dashboard follows the same flow. It keeps the pending row open and asks for the email code. It accepts a new 202 prompt if X asks again. After the 201 response, it refreshes the account list.

Headers

string
required
Your API key. Session cookie authentication is also supported. Generate a key from the dashboard.
string
required
Must be application/json.

Path parameters

string
required
Challenge ID returned by Connect X Account.

Body

string
required
Email verification code for the pending connection. The API accepts codes from 4 to 64 characters. Xquik strips spaces before submission.

Response

201 Created

string
Unique account ID.
string
Connected X username.
string
X user ID.
string
Account connection status (for example "active").
string
Derived login and cookie health. One of healthy, locked, needsReauth, recovering, suspended, temporaryIssue. See Account health for meanings.
string
ISO 8601 time when Xquik connected the account.

202 Email code required

string
Always x_account_connection_challenge.
string
Challenge ID to submit with the next email verification code.
string
Always requires_email_code.
string
ISO 8601 expiration time for the challenge.
string
Human-readable next step.
string
X username being connected.
The connection still needs a valid email code. Submit the new code to the same endpoint.

400 Invalid input

Missing email_code, invalid JSON, or a code outside the accepted length.

401 Unauthenticated

Missing or invalid API key.

404 Not found

The challenge ID does not exist or does not belong to the authenticated user.

409 Conflict

The challenge already completed, failed, or expired, or a newer challenge replaced it.

410 Expired

Start a new account connection to receive a fresh challenge.

422 Login failed

X rejected the code or account login state. Start a new connection if the account requires fresh credentials.

429 Rate limit exceeded

Wait for the Retry-After header before retrying.

503 Service unavailable

Retry after a short delay.
Related. Connect X Account starts the challenge, and List X Accounts verifies the account after connection.