Start a carrier registration
Starts the US carrier registration that a number needs before SMS
delivers: 10DLC (standard company or sole-proprietor) or toll-free
verification. 10DLC needs brand + campaign; toll-free needs
tollFree. Approval is asynchronous; poll
GET /v1/sms/registrations/{id} (sole-prop registrations first need
the OTP step: a code is texted to the brand's mobile number, submit it
via /verify-otp).
Already have an approved registration? Add another number to it with
POST /v1/phone-numbers/{id}/sms/reuse-registration instead
of registering (and paying the carrier brand fee) again.
Rather have your client fill in the legal business details? Create a
share link with POST /v1/sms/registrations/share.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.sms.startSmsRegistration({ body: { registrationType: 'standard_10dlc', },});console.log(data);{ "registrationId": "string", "status": "pending", "awaitingOtp": true}Pre-check a carrier registration
Dry-run of `POST /v1/sms/registrations` for 10DLC: validates and composes the exact brand/campaign payloads a submission would store (branding, disclosures, auto-replies), runs deterministic compliance lints plus an AI reviewer over them, and returns the findings WITHOUT creating anything. Use it to fix issues before submitting; `block` severity findings indicate a near-certain carrier rejection.
Get a carrier registration
Poll this for approval progress after starting a registration.