https://api.vobiz.ai/api/v1/sms and take the X-Auth-ID and X-Auth-Token headers.
The brand object
Optional fields are omitted from the response when they are empty.
The campaign object
Endpoints
Brands
Campaigns
Documents
Registration lifecycle
1
Create the brand
POST /10dlc/brands with at least name and brandType. The brand starts in DRAFT.2
Register the brand
POST /10dlc/brands/{id}/register moves it to SUBMITTED. registrationStatus starts at PENDING and settles at ACTIVE or REJECTED. A TENDLC_PUBLIC_COMPANY brand also completes brand authentication and shows PENDING_2FA until its business contact does.3
Create and register a campaign
Upload any documents, then
POST /10dlc/campaigns with name and brandId. The campaign starts in DRAFT. POST /10dlc/campaigns/{id}/register submits it, and stage moves through review until it reaches REGISTERED or REJECTED.4
Attach numbers and check the networks
Attach sending numbers with
POST /10dlc/campaigns/{id}/numbers, then use GET /10dlc/campaigns/{id}/network-statuses to see which carriers have provisioned the campaign.rejectionReasons, fix it with PUT /10dlc/campaigns/{id} and either register it again or file an appeal. To follow changes without polling, listen for the 10dlc.brand.updated and 10dlc.campaign.updated events on the WebSocket.
Behaviour to know
- Retrieves refresh from the registry.
GET /10dlc/brands/{id}andGET /10dlc/campaigns/{id}refresh the record from the registry before returning it.lastSyncedAtshows when that last succeeded. The list endpoints return the stored records without a refresh. - Lists are bare arrays.
GET /10dlc/brandsandGET /10dlc/campaignsreturn every record, newest first, with no pagination.GET /10dlc/brands/{id}/vetsis the one paged list:pagefrom 0 andsizefrom 0 to 100 (default 20). - Idempotent creates. Pass a
referenceIdon brand and campaign creates. A retry with the same value, for example after a502, reconciles to the same record. - Updates replace.
PUTon a brand or campaign replaces the whole object, so send every field you want to keep.name(andbrandTypefor brands) is required on every update.PUTapplies to 10DLC campaigns; a toll-free campaign returns400. - Delete order. A brand with campaigns returns
409. Deregister registered campaigns, delete the campaigns, then delete the brand. - Registry pass-through. Vetting records, priority options, network statuses and campaign numbers come straight from the registry, so read the fields you need and ignore the rest.
Errors
Every error is a JSON object with anerror message. When the registry is involved, the body also carries providerError, an opaque diagnostic string you can quote to support.
Example: create a brand
cURL
201 Created
Related
Compliance overview
Which registration your traffic needs.
Register a 10DLC brand
Step-by-step brand registration and vetting.
Register a 10DLC campaign
Campaign fields, review and attaching numbers.
Toll-free verification
Verify toll-free numbers for messaging.
WebSocket events
Get brand and campaign updates as they happen.
Errors
Error format and status codes across the API.