---
title: "List Consent Queue"
method: GET
path: "/sms-consent"
tags: ["sms-consent"]
---

# List Consent Queue

`GET /sms-consent`

## Request

- Base URL: `https://api.verdun.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.verdun.ai/sms-consent`
- Auth: HTTP bearer

Consents awaiting a human: `pending_review`, orphans, and (non-linkable)
`unverifiable` rows. Keyset-paginated.

## Query parameters

- `limit` integer
- `cursor` string, nullable

## Response `200`

Successful Response

- SmsConsentQueueResponse
  - `items` SmsConsentQueueItem[], required: This page of the review queue.
    - `id` string, uuid, required: Unique identifier of the consent record.
    - `phone_number` string, required: Canonical E.164 number the consent covers.
    - `full_name` string, nullable: Name given at consent time, if any.
    - `email` string, nullable: Email given at consent time, if any.
    - `organization` string, nullable: Organization given at consent time.
    - `consent_version` string, required: Server-owned key for the exact text agreed to.
    - `consented_at` string, date-time, nullable: When consent actually occurred. NULL for a Rail A enrollment that is still waiting for its YES reply.
    - `source` string, required: How the consent was obtained.
    - `status` string, required: pending_confirmation | pending_review | linked | dismissed | revoked | unverifiable. Only `linked` with a bound contact authorizes a send.
    - `site_contact_id` string, uuid, nullable: Bound contact, if any.
    - `site_id` string, uuid, nullable: Bound site, if any.
    - `contact_slot` string, nullable: primary | afterhours.
    - `evidence_ref` string, nullable: What proves it — the inbound YES message id for Rail A.
    - `linked_at` string, date-time, nullable: When it was bound to a contact.
    - `revoked_at` string, date-time, nullable: When a STOP superseded it.
    - `dismissed_at` string, date-time, nullable: When it was dismissed or expired.
    - `confirmation_sent_at` string, date-time, nullable: When the Rail A confirmation text was sent. One, ever.
    - `confirmation_error` string, nullable: Last confirmation send failure, if any.
    - `created_at` string, date-time, nullable: Row creation time.
    - `updated_at` string, date-time, nullable: Row last-update time.
    - `linkable` boolean, required: False for `unverifiable` rows, which are surfaced so an operator can see them but can never be linked.
  - `next_cursor` string, nullable: Opaque keyset cursor for the next page, or null at the end. Keyset rather than offset because the public form inserts continuously.

## Other responses

- `422`: Validation Error

---

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