Remove a 10DLC setup
POST/api/v1/sms/registrations/{id}/remove
POST /sms/registrations/{id}/remove
curl -X POST 'https://www.unitpost.com/api/v1/sms/registrations/123/remove' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'User-Agent: my-app/1.0' \
-H 'Content-Type: application/json' \
-d '{ }'Response · 200
{
"object": "sms_registration",
"id": "id_123",
"type": "string",
"brand_id": "brand_123",
"status": "queued",
"requires_action": false,
"feedback": [
{}
],
"use_case": "string",
"message_type": "string",
"parent_registration_id": "parent_registration_123",
"auto_provision_number": false,
"sender": {
"id": "id_123",
"status": "queued",
"phone_number": "string"
},
"setup_state": "string",
"number_withheld_reason": "string",
"archived_at": "2026-01-01T00:00:00.000Z",
"submitted_at": "2026-01-01T00:00:00.000Z",
"completed_at": "2026-01-01T00:00:00.000Z",
"created_at": "2026-01-01T00:00:00.000Z"
}Take down a 10DLC campaign registration (us_ten_dlc_campaign) that has no active number: the carrier registration is deleted, the campaign's monthly fee ends (no proration) and the registration reads archived_at from then on. A campaign with a live number is refused (resource_in_use): releasing the number with Release an SMS number takes the campaign with it, so there's nothing to remove after (while that release is in flight: sms_release_pending with Retry-After). One under carrier review waits for the review (conflict). Works on any plan. Takes an Idempotency-Key. Requires the sms:manage capability.
Parameters2 fields
| Field | Type | Description |
|---|---|---|
idrequired | string · path | — |
Idempotency-Key | string · header | Any unique string (1–256 characters, e.g. a UUID). Retrying with the same key and the same body within 24 hours returns the first result instead of sending again; the same key with a different body is `409 invalid_idempotent_request`, and one still in flight is `409 concurrent_idempotent_requests`. |
Response · 200 fields18 fields
| Field | Type | Description |
|---|---|---|
objectrequired | string | — |
idrequired | string | — |
typerequired | string | `us_ten_dlc_brand`, `us_ten_dlc_campaign`, or a toll-free verification. |
brand_idrequired | string | null | — |
statusrequired | string | The carrier review state: `draft`, `submitted`, `reviewing`, `requires_updates`, `complete`, `closed`, … |
requires_actionrequired | boolean | The customer must act (the carrier asked for changes). |
feedbackrequired | object[] | null | The carrier's reasons when it asks for changes or closes it (`reason`, `description`, `field_path`, `link`). |
use_caserequired | string | null | — |
message_typerequired | string | null | — |
parent_registration_idrequired | string | null | — |
auto_provision_numberrequired | boolean | null | 10DLC campaigns: a number is leased when carriers approve. |
senderrequired | object | null | 10DLC campaigns: the number it backs, once one exists. |
setup_staterequired | string | null | 10DLC campaigns: one customer-facing state over the campaign and its number. |
number_withheld_reasonrequired | string | null | Why an approved campaign's number isn't being leased (e.g. the plan has no carrier resources). |
archived_atrequired | string | null | — |
submitted_atrequired | string | null | — |
completed_atrequired | string | null | — |
created_atrequired | string | — |
200400401403404409422429502