Zernio
Zernio
API Reference

SMS

Messaging

Send an SMS/MMSPOSTLook up carrier + line typeGETList SMS opt-outsGET

Number Setup

Enable SMS on a numberPOSTDisable SMS on a numberDELETEAdd number to SMS registrationPOST

Registrations

List carrier registrationsGETPre-check a carrier registrationPOSTStart a carrier registrationPOSTGet a carrier registrationGETCreate a registration share linkPOSTDeactivate a brand/campaign registrationDELETE

Registration Review

Appeal a rejected campaignPOSTReply to a change requestPOSTUpload opt-in form proof for an appealPOSTUpload opt-in form proofPOSTRe-send the sole-prop OTPPOSTSubmit the sole-prop OTPPOST

Sender IDs

List alphanumeric sender IDsGETCreate an alphanumeric sender IDPOSTDelete an alphanumeric sender IDDELETERequest a higher sender ID daily limitPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
SMS

Reply to a change request

Replies to a reviewer change request on a registration in changes_requested state: a note, hosted document URLs (from POST /v1/sms/opt-in-proof), or both, sent together. The registration returns to requested (back in review), and you do not need to resubmit the whole registration. To change the submitted brand/campaign fields themselves, resubmit via POST /v1/sms/registrations with resubmitRequestId instead.


POST
/v1/sms/registrations/{id}/respond

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

{  "status": "requested"}
Was this page helpful?

Appeal a rejected campaign

Appeals a rejected 10DLC campaign with the carrier registry. Only a registration that reached campaign creation can be appealed; a brand-level rejection should be fixed and re-verified instead. On success the registration returns to `pending`. Content rejections (e.g. an opt-in flow without a verifiable form link, or unrealistic samples) should be FIXED in the same call: pass the corrected `messageFlow` / `sample1` / `sample2` and the campaign is updated before the appeal is filed, so the reviewer sees the new content. The current content is on `GET /v1/sms/registrations/{id}` (`campaignContent`).

Upload opt-in form proof for an appeal

Hosts a screenshot (or PDF) of your SMS opt-in form and returns its public URL. Carrier reviewers reject campaigns whose consent can't be verified and ask for a "link/screenshot of the opt-in form". The registry has no attachment field, so include the returned URL inside the `messageFlow` you submit with the appeal (`POST /v1/sms/registrations/{id}/appeal`).

note?string

Answer for the reviewer. Required when no files are sent.

Lengthlength <= 2000
files?array<string>

Hosted document URLs returned by POST /v1/sms/opt-in-proof.

Itemsitems <= 5