---
title: "Get a carrier registration"
method: GET
path: "/v1/sms/registrations/{id}"
tags: ["SMS"]
---

# Get a carrier registration

`GET /v1/sms/registrations/{id}`

Poll this for approval progress after starting a registration.

## Path parameters

- `id` string, required

## Response `200`

Registration

- object
  - `id` string
  - `registrationType` 'standard_10dlc' | 'sole_prop_10dlc' | 'toll_free'
  - `status` 'pending' | 'approved' | 'rejected' | 'requested' | 'changes_requested' | 'deactivated' — requested/changes_requested = pre-submission review states; customers see them as pending / needs changes.
  - `brandStatus` string
  - `campaignStatus` string
  - `declineReason` string, nullable
  - `phoneNumbers` string[]
  - `awaitingOtp` boolean
  - `adminReviewNote` string, nullable — The open change request as text (status changes_requested).
  - `reviewRequest` SmsRegistrationReviewRequest — An open change request written as points. Answer each point with POST /v1/sms/registrations/{id}/respond: `answer` says what each point needs (text, a link, a hosted document, or a link or a document).
    - `id` string — Changes with every request. Send it back as `requestId` when answering, so a reply to a replaced request is refused (409) instead of filed under the new points.
    - `intro` string — Context from the reviewer, e.g. what was already fixed on our side.
    - `points` object[]
      - `id` string, required — Point id to send back in `answers[].pointId`.
      - `title` string, required
      - `detail` string, required — What exactly is needed.
      - `answer` 'text' | 'link' | 'file' | 'link_or_file', required
  - `campaignContent` object — The submitted campaign content, present only for rejected registrations with a campaign. Edit and resubmit it via the appeal endpoint's optional content fields.
    - `messageFlow` string
    - `sample1` string
    - `sample2` string

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — Registration not found

## Changes

- **2026-09-25** `2c04683ce694` — 6 info
  - added the optional property `adminReviewNote` to the response with the `200` status
  - added the optional property `details/adAccountId` to the response with the `400` status
  - added the optional property `details/createdObjects` to the response with the `400` status
  - added the optional property `details/stage` to the response with the `400` status
  - …2 more
- **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/sms/registrations/:id/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/b2325332041a?raw)
