---
title: "Get a verification"
method: GET
path: "/v1/verify/verifications/{verificationId}"
tags: ["Verify"]
---

# Get a verification

`GET /v1/verify/verifications/{verificationId}`

Current state of a verification. `status` is effective (a pending code
past its expiry reads as `expired`). Verification records are deleted
24 hours after creation, after which this returns 404.

## Path parameters

- `verificationId` string, required

## Response `200`

The verification.

- Verification — A managed OTP verification. The code itself is never returned or stored (hash only).
  - `id` string
  - `status` 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed'
  - `channel` 'sms'
  - `to` string
  - `expiresAt` string, date-time
  - `attempts` integer
  - `maxAttempts` integer
  - `sendCount` integer — Accepted deliveries (initial send + resends); each bills one verification fee.
  - `lastSentAt` string, date-time, nullable
  - `createdAt` string, date-time
  - `resend` boolean — Present on create responses: true when an active verification was resent instead of created.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — Verification not found (or already reaped).

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 1 info
  - added the optional property `details/budgetScope` to the response with the `400` status
- **2026-09-15** `0dba7d004d75` — 2 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaScope` to the response with the `400` status

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/verify/verifications/:verificationId/get.md)

---

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