Proofs

Get proof status

Check the current status of a proof (active, suspended, revoked, or expired). Useful for quick status checks without validating the full JWT. Accepts the public proof handle (ph_ctl_<32 hex>, the proof_id claim of a proof token, or ph_dlg_<32 hex> for a delegation) or a verification id. A live proof reads active — the same word POST /proofs/{id}/unsuspend and GET /delegations/{id} use. Reachable with an API key (proofs:read) or a dashboard session cookie; the scope binds API-key callers only.

get/api/v1/proofs/{id}/status

Request

  • Base URL: https://api.proof.holdings
  • URL: https://api.proof.holdings/api/v1/proofs/{id}/status
  • Auth: one of:
    • HTTP bearer
    • API key in cookie auth_token

Path parameters

idstring required

Public proof handle (ph_ctl_<32 hex> / ph_dlg_<32 hex>) or verification id

Example:ph_ctl_0123456789abcdef0123456789abcdef

Response

Proof status

proof_idstring required

Public proof handle (ph_ctl_<32 hex>), or a verification id for a legacy proof

status'pending' | 'active' | 'failed' | 'expired' | 'revoked' | 'cancelled' | 'suspended' required

Current status of the proof — active is a live proof, suspended the reversible pause

is_validboolean required
is_revokedboolean required
revoked_atstring date-time nullable required
revoked_reasonstring nullable required
suspended_atstring date-time nullable required

When the current suspension began (null unless status is suspended)

expires_atstring date-time nullable required
is_expiredboolean required

Example response

{
  "proof_id": "ph_ctl_0123456789abcdef0123456789abcdef",
  "status": "active",
  "is_valid": true,
  "expires_at": "2026-03-15T12:00:00Z"
}

Changes

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