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.
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
{ "composed": { "brand": {}, "campaign": {} }, "advisories": [ { "field": "string", "code": "string", "concern": "string", "severity": "block" } ], "verdict": "pass", "aiUnavailable": true}List carrier registrations
Previous Page
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`.