Update a campaign registration
Asks the US 10DLC registry to update the set of numbers covered by a registered campaign, without deregistering it.
curl --request POST \
--url https://api.vobiz.ai/api/v1/sms/10dlc/campaigns/{id}/update-registration \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"numbers": [
"14155550100",
"14155550101"
]
}
'from vobiz import Vobiz
client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")
client.sms.campaigns.update_campaign_registration(
id="4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24",
numbers=[
"14155550100",
"14155550101"
],
)
const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({numbers: ['14155550100', '14155550101']})
};
fetch('https://api.vobiz.ai/api/v1/sms/10dlc/campaigns/{id}/update-registration', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "8a7d2f10-3c4b-4e9a-b1d2-6e5f4a3b2c11",
"accountId": "MA_XXXXXXXX",
"brandId": "5f1c3a2e-7b4d-4e8f-9a0b-1c2d3e4f5a60",
"name": "Example Corp account alerts",
"campaignType": "TEN_DIGIT_LONG_CODE",
"stage": "REGISTERED_PENDING_UPDATE",
"useCases": [
"ALERTS"
],
"messageTypes": [
"SMS"
],
"lowVolume": true,
"ageGated": false,
"directLending": false,
"embeddedLink": true,
"embeddedPhone": false,
"numbers": [
"14155550100"
],
"lastSyncedAt": "2026-10-18T09:30:00Z",
"createdAt": "2026-10-06T14:28:25Z",
"updatedAt": "2026-10-18T09:30:00Z"
}{
"error": "invalid request: numbers or numberKeys is required"
}{
"error": "missing or invalid credentials"
}{
"error": "campaign not found"
}{
"error": "registration provider rejected the request: campaign is not registered",
"providerError": "registration error 403 (HTTP 403): campaign is not registered"
}{
"error": "internal error"
}{
"error": "registration provider unavailable",
"providerError": "registration error 500 (HTTP 500): upstream timeout"
}Authorizations
Your Vobiz account Auth ID (MA_XXXXXXXX).
Your Vobiz account Auth Token.
Path Parameters
Campaign ID (UUID) returned by POST /10dlc/campaigns or POST /10dlc/campaigns/toll-free. An unknown ID, an ID from another account, or a value that is not a UUID returns 404 with {"error":"campaign not found"}.
Body
Numbers to add to, remove from or re-register on a campaign. Provide numbers, numberKeys, or both; if both are empty the request returns 400 with invalid request: numbers or numberKeys is required.
Phone numbers on your account, as digits with country code and no + (for example 14155550100). These values also update the campaign's numbers list on add and remove.
["14155550100", "14155550101"]
Registry number keys from GET /10dlc/campaigns/{id}/numbers, as an alternative to numbers.
Response
The campaign after the registry accepted the update request.
A 10DLC or toll-free campaign on your account and its state at the US 10DLC registry. Optional fields are omitted when empty, and registry state is refreshed when you retrieve the campaign.
Campaign ID (UUID) on your account. Use it in every /10dlc/campaigns/{id} path.
"8a7d2f10-3c4b-4e9a-b1d2-6e5f4a3b2c11"
Your Vobiz account ID (MA_...). Always the account whose credentials made the request.
"MA_XXXXXXXX"
ID of the brand the campaign runs under. Omitted for toll-free campaigns, which carry their business details themselves.
"5f1c3a2e-7b4d-4e8f-9a0b-1c2d3e4f5a60"
Name you gave the campaign, for your reference.
"Example Corp account alerts"
Kind of campaign. TEN_DIGIT_LONG_CODE is a standard 10DLC campaign (the default on create) and TOLL_FREE_UNIFIED_NUMBER is a toll-free verification created with POST /10dlc/campaigns/toll-free. The other values are registry campaign types you can request on create.
TEN_DIGIT_LONG_CODE, TOLL_FREE_UNIFIED_NUMBER, TOLL_FREE_NUMBER, SHORT_CODE, EXTERNAL_TEN_DIGIT_LONG_CODE, DCA2_TEN_DIGIT_LONG_CODE, TOLL_FREE_EXTERNALLY_VERIFIED, RCS_SENDER_LAUNCH Registry lifecycle stage. A new campaign is DRAFT; after you register it, it moves through review stages such as SUBMITTED, IN_REVIEW or APPEALED and settles at REGISTERED or REJECTED. Other values include REGISTERED_PENDING_UPDATE, REGISTERED_PENDING_DEREGISTRATION, REJECTED_EXTERNALLY, DEREGISTERED, ARCHIVED, BLOCKED, SUSPENDED and DELETED; treat it as an open string.
"REGISTERED"
Description of the program as submitted to the registry. Omitted when not set.
Opt-in confirmation message as submitted. Omitted when not set.
HELP reply as submitted. Omitted when not set.
STOP reply as submitted. Omitted when not set.
Customer care phone number, in E.164 format. Omitted when not set.
"+14155550100"
Customer care email address. Omitted when not set.
"support@example.com"
Sample messages as submitted. Omitted when not set.
Public URL of your terms and conditions. Omitted when not set.
Public URL of your privacy policy. Omitted when not set.
Use-case codes as submitted, for example ALERTS or, on a toll-free campaign, NOTIFICATIONS. Omitted when not set.
["ALERTS"]
Message types as submitted, for example SMS. Omitted when not set.
["SMS"]
Opt-in details as submitted, keyed by channel (for example web). Omitted when not set.
Whether the campaign is declared low volume. Always present; false unless you set it.
Whether the content is restricted to adults. Always present; false unless you set it.
Whether the content relates to direct lending. Always present; false unless you set it.
Whether messages contain URLs. Always present; false unless you set it.
Whether messages contain phone numbers. Always present; false unless you set it.
Numbers recorded on the campaign on your account. 10DLC campaigns store digits with country code (for example 14155550100); toll-free campaigns store E.164 with a leading +. For the registry's own list use GET /10dlc/campaigns/{id}/numbers.
["14155550100"]
The registry's review feedback after a rejection, with keys such as rejectionDate, rejectionReasons and rejectionDetails (each detail has errorCode, description, recommendedAction and rejectionCategory). Omitted when the campaign has no feedback; address every point before you appeal.
When Vobiz last refreshed this record from the US 10DLC registry, in ISO 8601 (RFC 3339) UTC. Omitted until the first refresh.
"2026-10-14T17:19:03Z"
When the record was created on your account, in ISO 8601 (RFC 3339) UTC.
"2026-10-06T14:28:25Z"
When the record last changed on your account, in ISO 8601 (RFC 3339) UTC.
"2026-10-14T17:19:03Z"
Was this page helpful?
curl --request POST \
--url https://api.vobiz.ai/api/v1/sms/10dlc/campaigns/{id}/update-registration \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"numbers": [
"14155550100",
"14155550101"
]
}
'from vobiz import Vobiz
client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")
client.sms.campaigns.update_campaign_registration(
id="4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24",
numbers=[
"14155550100",
"14155550101"
],
)
const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({numbers: ['14155550100', '14155550101']})
};
fetch('https://api.vobiz.ai/api/v1/sms/10dlc/campaigns/{id}/update-registration', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "8a7d2f10-3c4b-4e9a-b1d2-6e5f4a3b2c11",
"accountId": "MA_XXXXXXXX",
"brandId": "5f1c3a2e-7b4d-4e8f-9a0b-1c2d3e4f5a60",
"name": "Example Corp account alerts",
"campaignType": "TEN_DIGIT_LONG_CODE",
"stage": "REGISTERED_PENDING_UPDATE",
"useCases": [
"ALERTS"
],
"messageTypes": [
"SMS"
],
"lowVolume": true,
"ageGated": false,
"directLending": false,
"embeddedLink": true,
"embeddedPhone": false,
"numbers": [
"14155550100"
],
"lastSyncedAt": "2026-10-18T09:30:00Z",
"createdAt": "2026-10-06T14:28:25Z",
"updatedAt": "2026-10-18T09:30:00Z"
}{
"error": "invalid request: numbers or numberKeys is required"
}{
"error": "missing or invalid credentials"
}{
"error": "campaign not found"
}{
"error": "registration provider rejected the request: campaign is not registered",
"providerError": "registration error 403 (HTTP 403): campaign is not registered"
}{
"error": "internal error"
}{
"error": "registration provider unavailable",
"providerError": "registration error 500 (HTTP 500): upstream timeout"
}