Accounts

Get account-session status

Poll an account-bootstrap session. Sets JWT + refresh cookies on verified status — the response shape does not vary with whether verification created a User or signed an existing one in.

A session whose sign-in was STARTED with an API key is bound to that key when it is issued (see the create endpoint): every copy of it — this poll, the messenger's "Open Dashboard" link, a magic link — ends when the key is revoked by any path. A poll presenting an API key the API no longer accepts (Authorization: Bearer pk_…) gets 401 invalid_api_key and no cookie. A poll without a pk_ bearer is unaffected.

get/api/v1/accounts/{id}

Request

  • Base URL: https://api.proof.holdings
  • URL: https://api.proof.holdings/api/v1/accounts/{id}
  • Auth: none declared

Path parameters

idstring required

Account session ID

Example:auth_abc123

Response

Account session status

idstring required
type'account_creation' | 'login' required

Outcome of an account-session creation. account_creation means a new User will be written on verification. login indicates the submitted identity matched an existing User and the session will log them in.

channel'telegram' | 'whatsapp' | 'sms' | 'email' required

Authentication channel

status'pending' | 'verified' | 'expired' required

Status of an auth session

deep_linkstring
qr_codestring

Base64-encoded PNG QR code for the deep link

qr_textstring

UTF-8 text QR for terminal/agent rendering

sms_codestring

Short code for SMS-channel reverse-OTP

sms_messagestring
emailstring
email_sentboolean
email_errorstring
expires_atstring date-time required
instructionsstring
verified_atstring date-time
user_idstring
created_atstring date-time

Example response

{
  "id": "auth_9c2f...",
  "type": "account_creation",
  "channel": "telegram",
  "status": "pending",
  "deep_link": "https://t.me/bot?start=auth_9c2f...",
  "expires_at": "2026-04-16T20:10:00Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.