telnyx-10dlc-python

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
<!-- 从Telnyx OpenAPI规范自动生成,请勿编辑。 -->

Telnyx 10DLC - Python

Telnyx 10DLC - Python

Installation

安装

bash
pip install telnyx
bash
pip install telnyx

Setup

初始化设置

python
import os
from telnyx import Telnyx

client = Telnyx(
    api_key=os.environ.get("TELNYX_API_KEY"),  # This is the default and can be omitted
)
All examples below assume
client
is already initialized as shown above.
python
import os
from telnyx import Telnyx

client = Telnyx(
    api_key=os.environ.get("TELNYX_API_KEY"),  # This is the default and can be omitted
)
以下所有示例都假定
client
已经按照上方所示完成初始化。

Error Handling

错误处理

All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:
python
import telnyx

try:
    telnyx_brand = client.messaging_10dlc.brand.create(
        country="US",
        display_name="ABC Mobile",
        email="support@example.com",
        entity_type="PRIVATE_PROFIT",
        vertical="TECHNOLOGY",
    )
except telnyx.APIConnectionError:
    print("Network error — check connectivity and retry")
except telnyx.RateLimitError:
    import time
    time.sleep(1)  # Check Retry-After header for actual delay
except telnyx.APIStatusError as e:
    print(f"API error {e.status_code}: {e.message}")
    if e.status_code == 422:
        print("Validation error — check required fields and formats")
Common error codes:
401
invalid API key,
403
insufficient permissions,
404
resource not found,
422
validation error (check field formats),
429
rate limited (retry with exponential backoff).
所有API调用都可能因网络错误、速率限制(429)、校验错误(422)或认证错误(401)失败。在生产代码中请务必做好错误处理:
python
import telnyx

try:
    telnyx_brand = client.messaging_10dlc.brand.create(
        country="US",
        display_name="ABC Mobile",
        email="support@example.com",
        entity_type="PRIVATE_PROFIT",
        vertical="TECHNOLOGY",
    )
except telnyx.APIConnectionError:
    print("Network error — check connectivity and retry")
except telnyx.RateLimitError:
    import time
    time.sleep(1)  # Check Retry-After header for actual delay
except telnyx.APIStatusError as e:
    print(f"API error {e.status_code}: {e.message}")
    if e.status_code == 422:
        print("Validation error — check required fields and formats")
常见错误码:
401
API密钥无效,
403
权限不足,
404
资源不存在,
422
校验错误(请检查字段格式),
429
触发速率限制(请使用指数退避策略重试)。

Important Notes

重要说明

  • Pagination: List methods return an auto-paginating iterator. Use
    for item in page_result:
    to iterate through all pages automatically.
  • 分页: 列表方法会返回一个支持自动分页的迭代器,你可以使用
    for item in page_result:
    自动遍历所有分页结果。

Operational Caveats

操作注意事项

  • 10DLC is sequential: create the brand first, then submit the campaign, then attach messaging infrastructure such as the messaging profile.
  • Registration calls are not enough by themselves. Messaging cannot use the campaign until the assignment step completes successfully.
  • Treat registration status fields as part of the control flow. Do not assume the campaign is send-ready until the returned status fields confirm it.
  • 10DLC操作有先后顺序:首先创建品牌,然后提交活动,最后绑定消息配置文件等消息基础设施。
  • 仅完成注册调用是不够的,只有分配步骤成功完成后,消息服务才能使用该活动。
  • 请将注册状态字段作为控制流程的判断依据,在返回的状态字段确认活动就绪前,不要假定活动已经可以发送消息。

Reference Use Rules

参考使用规则

Do not invent Telnyx parameters, enums, response fields, or webhook fields.
  • If the parameter, enum, or response field you need is not shown inline in this skill, read references/api-details.md before writing code.
  • Before using any operation in
    ## Additional Operations
    , read the optional-parameters section and the response-schemas section.
  • Before reading or matching webhook fields beyond the inline examples, read the webhook payload reference.
不要自行编造Telnyx参数、枚举值、响应字段或webhook字段。
  • 如果你需要的参数、枚举值或响应字段没有在本技能的示例中列出,请在编写代码前阅读references/api-details.md
  • 在使用
    ## 额外操作
    中的任意接口前,请阅读可选参数章节响应结构章节
  • 如需读取或匹配示例之外的webhook字段,请先阅读webhook payload参考

Core Tasks

核心任务

Create a brand

创建品牌

Brand registration is the entrypoint for any US A2P 10DLC campaign flow.
client.messaging_10dlc.brand.create()
POST /10dlc/brand
ParameterTypeRequiredDescription
entity_type
objectYesEntity type behind the brand.
display_name
stringYesDisplay name, marketing name, or DBA name of the brand.
country
stringYesISO2 2 characters country code.
email
stringYesValid email address of brand support contact.
vertical
objectYesVertical or industry segment of the brand.
company_name
stringNo(Required for Non-profit/private/public) Legal company name.
first_name
stringNoFirst name of business contact.
last_name
stringNoLast name of business contact.
...+16 optional params in references/api-details.md
python
telnyx_brand = client.messaging_10dlc.brand.create(
    country="US",
    display_name="ABC Mobile",
    email="support@example.com",
    entity_type="PRIVATE_PROFIT",
    vertical="TECHNOLOGY",
)
print(telnyx_brand.identity_status)
Primary response fields:
  • telnyx_brand.brand_id
  • telnyx_brand.identity_status
  • telnyx_brand.status
  • telnyx_brand.display_name
  • telnyx_brand.state
  • telnyx_brand.alt_business_id
品牌注册是所有美国A2P 10DLC活动流程的入口。
client.messaging_10dlc.brand.create()
POST /10dlc/brand
参数类型必填描述
entity_type
object品牌对应的实体类型。
display_name
string品牌的展示名称、营销名称或经营名称。
country
stringISO2标准的两位国家代码。
email
string品牌支持联系人的有效邮箱地址。
vertical
object品牌所属的垂直领域或行业分类。
company_name
string(非盈利/私营/公共实体必填)合法公司名称。
first_name
string业务联系人的名。
last_name
string业务联系人的姓。
...另有16个可选参数见references/api-details.md
python
telnyx_brand = client.messaging_10dlc.brand.create(
    country="US",
    display_name="ABC Mobile",
    email="support@example.com",
    entity_type="PRIVATE_PROFIT",
    vertical="TECHNOLOGY",
)
print(telnyx_brand.identity_status)
主要响应字段:
  • telnyx_brand.brand_id
  • telnyx_brand.identity_status
  • telnyx_brand.status
  • telnyx_brand.display_name
  • telnyx_brand.state
  • telnyx_brand.alt_business_id

Submit a campaign

提交活动

Campaign submission is the compliance-critical step that determines whether traffic can be provisioned.
client.messaging_10dlc.campaign_builder.submit()
POST /10dlc/campaignBuilder
ParameterTypeRequiredDescription
brand_id
string (UUID)YesAlphanumeric identifier of the brand associated with this ca...
description
stringYesSummary description of this campaign.
usecase
stringYesCampaign usecase.
age_gated
booleanNoAge gated message content in campaign.
auto_renewal
booleanNoCampaign subscription auto-renewal option.
direct_lending
booleanNoDirect lending or loan arrangement
...+29 optional params in references/api-details.md
python
telnyx_campaign_csp = client.messaging_10dlc.campaign_builder.submit(
    brand_id="BXXXXXX",
    description="Two-factor authentication messages",
    usecase="2FA",
    sample_messages=["Your verification code is {{code}}"],
)
print(telnyx_campaign_csp.brand_id)
Primary response fields:
  • telnyx_campaign_csp.campaign_id
  • telnyx_campaign_csp.brand_id
  • telnyx_campaign_csp.campaign_status
  • telnyx_campaign_csp.submission_status
  • telnyx_campaign_csp.failure_reasons
  • telnyx_campaign_csp.status
活动提交是合规关键步骤,决定了流量是否可以被开通。
client.messaging_10dlc.campaign_builder.submit()
POST /10dlc/campaignBuilder
参数类型必填描述
brand_id
string (UUID)该活动关联的品牌的字母数字标识符。
description
string该活动的概述说明。
usecase
string活动使用场景。
age_gated
boolean活动是否包含年龄限制的消息内容。
auto_renewal
boolean活动订阅自动续费选项。
direct_lending
boolean是否涉及直接借贷或贷款安排
...另有29个可选参数见references/api-details.md
python
telnyx_campaign_csp = client.messaging_10dlc.campaign_builder.submit(
    brand_id="BXXXXXX",
    description="Two-factor authentication messages",
    usecase="2FA",
    sample_messages=["Your verification code is {{code}}"],
)
print(telnyx_campaign_csp.brand_id)
主要响应字段:
  • telnyx_campaign_csp.campaign_id
  • telnyx_campaign_csp.brand_id
  • telnyx_campaign_csp.campaign_status
  • telnyx_campaign_csp.submission_status
  • telnyx_campaign_csp.failure_reasons
  • telnyx_campaign_csp.status

Assign a messaging profile to a campaign

为活动分配消息配置文件

Messaging profile assignment is the practical handoff from registration to send-ready messaging infrastructure.
client.messaging_10dlc.phone_number_assignment_by_profile.assign()
POST /10dlc/phoneNumberAssignmentByProfile
ParameterTypeRequiredDescription
messaging_profile_id
string (UUID)YesThe ID of the messaging profile that you want to link to the...
campaign_id
string (UUID)YesThe ID of the campaign you want to link to the specified mes...
tcr_campaign_id
string (UUID)NoThe TCR ID of the shared campaign you want to link to the sp...
python
response = client.messaging_10dlc.phone_number_assignment_by_profile.assign(
    messaging_profile_id="4001767e-ce0f-4cae-9d5f-0d5e636e7809",
    campaign_id="CXXX001",
)
print(response.messaging_profile_id)
Primary response fields:
  • response.messaging_profile_id
  • response.campaign_id
  • response.task_id
  • response.tcr_campaign_id

消息配置文件分配是从注册到可发送消息基础设施的实际交接步骤。
client.messaging_10dlc.phone_number_assignment_by_profile.assign()
POST /10dlc/phoneNumberAssignmentByProfile
参数类型必填描述
messaging_profile_id
string (UUID)你想要关联到活动的消息配置文件ID。
campaign_id
string (UUID)你想要关联到指定消息配置文件的活动ID。
tcr_campaign_id
string (UUID)你想要关联到指定配置的共享活动的TCR ID。
python
response = client.messaging_10dlc.phone_number_assignment_by_profile.assign(
    messaging_profile_id="4001767e-ce0f-4cae-9d5f-0d5e636e7809",
    campaign_id="CXXX001",
)
print(response.messaging_profile_id)
主要响应字段:
  • response.messaging_profile_id
  • response.campaign_id
  • response.task_id
  • response.tcr_campaign_id

Webhook Verification

Webhook签名验证

Telnyx signs webhooks with Ed25519. Each request includes
telnyx-signature-ed25519
and
telnyx-timestamp
headers. Always verify signatures in production:
python
undefined
Telnyx使用Ed25519对webhook进行签名,每个请求都包含
telnyx-signature-ed25519
telnyx-timestamp
头。生产环境中请务必验证签名:
python
undefined

In your webhook handler (e.g., Flask — use raw body, not parsed JSON):

In your webhook handler (e.g., Flask — use raw body, not parsed JSON):

@app.route("/webhooks", methods=["POST"]) def handle_webhook(): payload = request.get_data(as_text=True) # raw body as string headers = dict(request.headers) try: event = client.webhooks.unwrap(payload, headers=headers) except Exception as e: print(f"Webhook verification failed: {e}") return "Invalid signature", 400 # Signature valid — event is the parsed webhook payload print(f"Received event: {event.data.event_type}") return "OK", 200
undefined
@app.route("/webhooks", methods=["POST"]) def handle_webhook(): payload = request.get_data(as_text=True) # raw body as string headers = dict(request.headers) try: event = client.webhooks.unwrap(payload, headers=headers) except Exception as e: print(f"Webhook verification failed: {e}") return "Invalid signature", 400 # Signature valid — event is the parsed webhook payload print(f"Received event: {event.data.event_type}") return "OK", 200
undefined

Webhooks

Webhook事件

These webhook payload fields are inline because they are part of the primary integration path.
以下webhook payload字段是核心集成路径的一部分,因此在此处列出。

Campaign Status Update

活动状态更新

FieldTypeDescription
brandId
stringBrand ID associated with the campaign.
campaignId
stringThe ID of the campaign.
createDate
stringUnix timestamp when campaign was created.
cspId
stringAlphanumeric identifier of the CSP associated with this campaign.
isTMobileRegistered
booleanIndicates whether the campaign is registered with T-Mobile.
type
enum: TELNYX_EVENT, REGISTRATION, MNO_REVIEW, TELNYX_REVIEW, NUMBER_POOL_PROVISIONED, NUMBER_POOL_DEPROVISIONED, TCR_EVENT, VERIFIED
description
stringDescription of the event.
status
enum: ACCEPTED, REJECTED, DORMANT, success, failedThe status of the campaign.
If you need webhook fields that are not listed inline here, read the webhook payload reference before writing the handler.

字段类型描述
brandId
string活动关联的品牌ID。
campaignId
string活动ID。
createDate
string活动创建的Unix时间戳。
cspId
string该活动关联的CSP的字母数字标识符。
isTMobileRegistered
boolean指示活动是否已在T-Mobile注册。
type
enum: TELNYX_EVENT, REGISTRATION, MNO_REVIEW, TELNYX_REVIEW, NUMBER_POOL_PROVISIONED, NUMBER_POOL_DEPROVISIONED, TCR_EVENT, VERIFIED
description
string事件描述。
status
enum: ACCEPTED, REJECTED, DORMANT, success, failed活动状态。
如果你需要的webhook字段没有在此处列出,请在编写处理逻辑前阅读webhook payload参考

Important Supporting Operations

重要辅助操作

Use these when the core tasks above are close to your flow, but you need a common variation or follow-up step.
当上述核心任务接近你的业务流程,但你需要通用变体或后续步骤时,可以使用这些操作。

Get Brand

查询品牌信息

Inspect the current state of an existing brand registration.
client.messaging_10dlc.brand.retrieve()
GET /10dlc/brand/{brandId}
ParameterTypeRequiredDescription
brand_id
string (UUID)Yes
python
brand = client.messaging_10dlc.brand.retrieve(
    "brandId",
)
print(brand)
Primary response fields:
  • brand.status
  • brand.state
  • brand.alt_business_id
  • brand.alt_business_id_type
  • brand.assigned_campaigns_count
  • brand.brand_id
查看现有品牌注册的当前状态。
client.messaging_10dlc.brand.retrieve()
GET /10dlc/brand/{brandId}
参数类型必填描述
brand_id
string (UUID)
python
brand = client.messaging_10dlc.brand.retrieve(
    "brandId",
)
print(brand)
主要响应字段:
  • brand.status
  • brand.state
  • brand.alt_business_id
  • brand.alt_business_id_type
  • brand.assigned_campaigns_count
  • brand.brand_id

Qualify By Usecase

按使用场景校验资格

Fetch the current state before updating, deleting, or making control-flow decisions.
client.messaging_10dlc.campaign_builder.brand.qualify_by_usecase()
GET /10dlc/campaignBuilder/brand/{brandId}/usecase/{usecase}
ParameterTypeRequiredDescription
usecase
stringYes
brand_id
string (UUID)Yes
python
response = client.messaging_10dlc.campaign_builder.brand.qualify_by_usecase(
    usecase="CUSTOMER_CARE",
    brand_id="brandId",
)
print(response.annual_fee)
Primary response fields:
  • response.annual_fee
  • response.max_sub_usecases
  • response.min_sub_usecases
  • response.mno_metadata
  • response.monthly_fee
  • response.quarterly_fee
在进行更新、删除或做出控制流决策前获取当前状态。
client.messaging_10dlc.campaign_builder.brand.qualify_by_usecase()
GET /10dlc/campaignBuilder/brand/{brandId}/usecase/{usecase}
参数类型必填描述
usecase
string
brand_id
string (UUID)
python
response = client.messaging_10dlc.campaign_builder.brand.qualify_by_usecase(
    usecase="CUSTOMER_CARE",
    brand_id="brandId",
)
print(response.annual_fee)
主要响应字段:
  • response.annual_fee
  • response.max_sub_usecases
  • response.min_sub_usecases
  • response.mno_metadata
  • response.monthly_fee
  • response.quarterly_fee

Create New Phone Number Campaign

创建新的电话号码活动绑定

Create or provision an additional resource when the core tasks do not cover this flow.
client.messaging_10dlc.phone_number_campaigns.create()
POST /10dlc/phone_number_campaigns
ParameterTypeRequiredDescription
phone_number
string (E.164)YesThe phone number you want to link to a specified campaign.
campaign_id
string (UUID)YesThe ID of the campaign you want to link to the specified pho...
python
phone_number_campaign = client.messaging_10dlc.phone_number_campaigns.create(
    campaign_id="4b300178-131c-d902-d54e-72d90ba1620j",
    phone_number="+18005550199",
)
print(phone_number_campaign.campaign_id)
Primary response fields:
  • phone_number_campaign.assignment_status
  • phone_number_campaign.brand_id
  • phone_number_campaign.campaign_id
  • phone_number_campaign.created_at
  • phone_number_campaign.failure_reasons
  • phone_number_campaign.phone_number
当核心任务未覆盖该流程时,创建或开通额外资源。
client.messaging_10dlc.phone_number_campaigns.create()
POST /10dlc/phone_number_campaigns
参数类型必填描述
phone_number
string (E.164)你想要关联到指定活动的电话号码。
campaign_id
string (UUID)你想要关联到指定电话号码的活动ID。
python
phone_number_campaign = client.messaging_10dlc.phone_number_campaigns.create(
    campaign_id="4b300178-131c-d902-d54e-72d90ba1620j",
    phone_number="+18005550199",
)
print(phone_number_campaign.campaign_id)
主要响应字段:
  • phone_number_campaign.assignment_status
  • phone_number_campaign.brand_id
  • phone_number_campaign.campaign_id
  • phone_number_campaign.created_at
  • phone_number_campaign.failure_reasons
  • phone_number_campaign.phone_number

Get campaign

查询活动信息

Inspect the current state of an existing campaign registration.
client.messaging_10dlc.campaign.retrieve()
GET /10dlc/campaign/{campaignId}
ParameterTypeRequiredDescription
campaign_id
string (UUID)Yes
python
telnyx_campaign_csp = client.messaging_10dlc.campaign.retrieve(
    "campaignId",
)
print(telnyx_campaign_csp.brand_id)
Primary response fields:
  • telnyx_campaign_csp.status
  • telnyx_campaign_csp.age_gated
  • telnyx_campaign_csp.auto_renewal
  • telnyx_campaign_csp.billed_date
  • telnyx_campaign_csp.brand_display_name
  • telnyx_campaign_csp.brand_id
查看现有活动注册的当前状态。
client.messaging_10dlc.campaign.retrieve()
GET /10dlc/campaign/{campaignId}
参数类型必填描述
campaign_id
string (UUID)
python
telnyx_campaign_csp = client.messaging_10dlc.campaign.retrieve(
    "campaignId",
)
print(telnyx_campaign_csp.brand_id)
主要响应字段:
  • telnyx_campaign_csp.status
  • telnyx_campaign_csp.age_gated
  • telnyx_campaign_csp.auto_renewal
  • telnyx_campaign_csp.billed_date
  • telnyx_campaign_csp.brand_display_name
  • telnyx_campaign_csp.brand_id

List Brands

列出品牌

Inspect available resources or choose an existing resource before mutating it.
client.messaging_10dlc.brand.list()
GET /10dlc/brand
ParameterTypeRequiredDescription
sort
enum (assignedCampaignsCount, -assignedCampaignsCount, brandId, -brandId, createdAt, ...)NoSpecifies the sort order for results.
page
integerNo
records_per_page
integerNonumber of records per page.
...+6 optional params in references/api-details.md
python
page = client.messaging_10dlc.brand.list()
page = page.records[0]
print(page.identity_status)
Primary response fields:
  • page.page
  • page.records
  • page.total_records
在修改资源前查看可用资源或选择现有资源。
client.messaging_10dlc.brand.list()
GET /10dlc/brand
参数类型必填描述
sort
enum (assignedCampaignsCount, -assignedCampaignsCount, brandId, -brandId, createdAt, ...)指定结果的排序规则。
page
integer
records_per_page
integer每页的记录数量。
...另有6个可选参数见references/api-details.md
python
page = client.messaging_10dlc.brand.list()
page = page.records[0]
print(page.identity_status)
主要响应字段:
  • page.page
  • page.records
  • page.total_records

Get Brand Feedback By Id

根据ID获取品牌反馈

Fetch the current state before updating, deleting, or making control-flow decisions.
client.messaging_10dlc.brand.get_feedback()
GET /10dlc/brand/feedback/{brandId}
ParameterTypeRequiredDescription
brand_id
string (UUID)Yes
python
response = client.messaging_10dlc.brand.get_feedback(
    "brandId",
)
print(response.brand_id)
Primary response fields:
  • response.brand_id
  • response.category

在进行更新、删除或做出控制流决策前获取当前状态。
client.messaging_10dlc.brand.get_feedback()
GET /10dlc/brand/feedback/{brandId}
参数类型必填描述
brand_id
string (UUID)
python
response = client.messaging_10dlc.brand.get_feedback(
    "brandId",
)
print(response.brand_id)
主要响应字段:
  • response.brand_id
  • response.category

Additional Operations

额外操作

Use the core tasks above first. The operations below are indexed here with exact SDK methods and required params; use references/api-details.md for full optional params, response schemas, and lower-frequency webhook payloads. Before using any operation below, read the optional-parameters section and the response-schemas section so you do not guess missing fields.
OperationSDK methodEndpointUse whenRequired params
Get Brand SMS OTP Status
client.messaging_10dlc.brand.get_sms_otp_by_reference()
GET /10dlc/brand/smsOtp/{referenceId}
Fetch the current state before updating, deleting, or making control-flow decisions.
reference_id
Update Brand
client.messaging_10dlc.brand.update()
PUT /10dlc/brand/{brandId}
Inspect the current state of an existing brand registration.
entity_type
,
display_name
,
country
,
email
, +2 more
Delete Brand
client.messaging_10dlc.brand.delete()
DELETE /10dlc/brand/{brandId}
Inspect the current state of an existing brand registration.
brand_id
Resend brand 2FA email
client.messaging_10dlc.brand.resend_2fa_email()
POST /10dlc/brand/{brandId}/2faEmail
Create or provision an additional resource when the core tasks do not cover this flow.
brand_id
List External Vettings
client.messaging_10dlc.brand.external_vetting.list()
GET /10dlc/brand/{brandId}/externalVetting
Fetch the current state before updating, deleting, or making control-flow decisions.
brand_id
Order Brand External Vetting
client.messaging_10dlc.brand.external_vetting.order()
POST /10dlc/brand/{brandId}/externalVetting
Create or provision an additional resource when the core tasks do not cover this flow.
evp_id
,
vetting_class
,
brand_id
Import External Vetting Record
client.messaging_10dlc.brand.external_vetting.imports()
PUT /10dlc/brand/{brandId}/externalVetting
Modify an existing resource without recreating it.
evp_id
,
vetting_id
,
brand_id
Revet Brand
client.messaging_10dlc.brand.revet()
PUT /10dlc/brand/{brandId}/revet
Modify an existing resource without recreating it.
brand_id
Get Brand SMS OTP Status by Brand ID
client.messaging_10dlc.brand.retrieve_sms_otp_status()
GET /10dlc/brand/{brandId}/smsOtp
Fetch the current state before updating, deleting, or making control-flow decisions.
brand_id
Trigger Brand SMS OTP
client.messaging_10dlc.brand.trigger_sms_otp()
POST /10dlc/brand/{brandId}/smsOtp
Create or provision an additional resource when the core tasks do not cover this flow.
pin_sms
,
success_sms
,
brand_id
Verify Brand SMS OTP
client.messaging_10dlc.brand.verify_sms_otp()
PUT /10dlc/brand/{brandId}/smsOtp
Modify an existing resource without recreating it.
otp_pin
,
brand_id
List Campaigns
client.messaging_10dlc.campaign.list()
GET /10dlc/campaign
Inspect available resources or choose an existing resource before mutating it.None
Accept Shared Campaign
client.messaging_10dlc.campaign.accept_sharing()
POST /10dlc/campaign/acceptSharing/{campaignId}
Create or provision an additional resource when the core tasks do not cover this flow.
campaign_id
Get Campaign Cost
client.messaging_10dlc.campaign.usecase.get_cost()
GET /10dlc/campaign/usecase/cost
Inspect available resources or choose an existing resource before mutating it.None
Update campaign
client.messaging_10dlc.campaign.update()
PUT /10dlc/campaign/{campaignId}
Inspect the current state of an existing campaign registration.
campaign_id
Deactivate campaign
client.messaging_10dlc.campaign.deactivate()
DELETE /10dlc/campaign/{campaignId}
Inspect the current state of an existing campaign registration.
campaign_id
Submit campaign appeal for manual review
client.messaging_10dlc.campaign.submit_appeal()
POST /10dlc/campaign/{campaignId}/appeal
Create or provision an additional resource when the core tasks do not cover this flow.
appeal_reason
,
campaign_id
Get Campaign Mno Metadata
client.messaging_10dlc.campaign.get_mno_metadata()
GET /10dlc/campaign/{campaignId}/mnoMetadata
Fetch the current state before updating, deleting, or making control-flow decisions.
campaign_id
Get campaign operation status
client.messaging_10dlc.campaign.get_operation_status()
GET /10dlc/campaign/{campaignId}/operationStatus
Fetch the current state before updating, deleting, or making control-flow decisions.
campaign_id
Get OSR campaign attributes
client.messaging_10dlc.campaign.osr.get_attributes()
GET /10dlc/campaign/{campaignId}/osr/attributes
Fetch the current state before updating, deleting, or making control-flow decisions.
campaign_id
Get Sharing Status
client.messaging_10dlc.campaign.get_sharing_status()
GET /10dlc/campaign/{campaignId}/sharing
Fetch the current state before updating, deleting, or making control-flow decisions.
campaign_id
List shared partner campaigns
client.messaging_10dlc.partner_campaigns.list_shared_by_me()
GET /10dlc/partnerCampaign/sharedByMe
Inspect available resources or choose an existing resource before mutating it.None
Get Sharing Status
client.messaging_10dlc.partner_campaigns.retrieve_sharing_status()
GET /10dlc/partnerCampaign/{campaignId}/sharing
Fetch the current state before updating, deleting, or making control-flow decisions.
campaign_id
List Shared Campaigns
client.messaging_10dlc.partner_campaigns.list()
GET /10dlc/partner_campaigns
Inspect available resources or choose an existing resource before mutating it.None
Get Single Shared Campaign
client.messaging_10dlc.partner_campaigns.retrieve()
GET /10dlc/partner_campaigns/{campaignId}
Fetch the current state before updating, deleting, or making control-flow decisions.
campaign_id
Update Single Shared Campaign
client.messaging_10dlc.partner_campaigns.update()
PATCH /10dlc/partner_campaigns/{campaignId}
Modify an existing resource without recreating it.
campaign_id
Get Assignment Task Status
client.messaging_10dlc.phone_number_assignment_by_profile.retrieve_status()
GET /10dlc/phoneNumberAssignmentByProfile/{taskId}
Fetch the current state before updating, deleting, or making control-flow decisions.
task_id
Get Phone Number Status
client.messaging_10dlc.phone_number_assignment_by_profile.list_phone_number_status()
GET /10dlc/phoneNumberAssignmentByProfile/{taskId}/phoneNumbers
Fetch the current state before updating, deleting, or making control-flow decisions.
task_id
List phone number campaigns
client.messaging_10dlc.phone_number_campaigns.list()
GET /10dlc/phone_number_campaigns
Inspect available resources or choose an existing resource before mutating it.None
Get Single Phone Number Campaign
client.messaging_10dlc.phone_number_campaigns.retrieve()
GET /10dlc/phone_number_campaigns/{phoneNumber}
Fetch the current state before updating, deleting, or making control-flow decisions.
phone_number
Create New Phone Number Campaign
client.messaging_10dlc.phone_number_campaigns.update()
PUT /10dlc/phone_number_campaigns/{phoneNumber}
Modify an existing resource without recreating it.
phone_number
,
campaign_id
,
phone_number
Delete Phone Number Campaign
client.messaging_10dlc.phone_number_campaigns.delete()
DELETE /10dlc/phone_number_campaigns/{phoneNumber}
Remove, detach, or clean up an existing resource.
phone_number

For exhaustive optional parameters, full response schemas, and complete webhook payloads, see references/api-details.md.
请优先使用上述核心任务。下方的操作在此处列出了精确的SDK方法和必填参数;请参考references/api-details.md获取完整的可选参数、响应结构和低频率webhook payload。 在使用下方任意操作前,请阅读可选参数章节响应结构章节,不要猜测缺失的字段。
操作SDK方法接口地址使用场景必填参数
获取品牌SMS OTP状态
client.messaging_10dlc.brand.get_sms_otp_by_reference()
GET /10dlc/brand/smsOtp/{referenceId}
在进行更新、删除或做出控制流决策前获取当前状态。
reference_id
更新品牌
client.messaging_10dlc.brand.update()
PUT /10dlc/brand/{brandId}
查看现有品牌注册的当前状态。
entity_type
,
display_name
,
country
,
email
, +2 more
删除品牌
client.messaging_10dlc.brand.delete()
DELETE /10dlc/brand/{brandId}
查看现有品牌注册的当前状态。
brand_id
重发品牌2FA邮件
client.messaging_10dlc.brand.resend_2fa_email()
POST /10dlc/brand/{brandId}/2faEmail
当核心任务未覆盖该流程时,创建或开通额外资源。
brand_id
列出外部审核记录
client.messaging_10dlc.brand.external_vetting.list()
GET /10dlc/brand/{brandId}/externalVetting
在进行更新、删除或做出控制流决策前获取当前状态。
brand_id
订购品牌外部审核服务
client.messaging_10dlc.brand.external_vetting.order()
POST /10dlc/brand/{brandId}/externalVetting
当核心任务未覆盖该流程时,创建或开通额外资源。
evp_id
,
vetting_class
,
brand_id
导入外部审核记录
client.messaging_10dlc.brand.external_vetting.imports()
PUT /10dlc/brand/{brandId}/externalVetting
无需重建即可修改现有资源。
evp_id
,
vetting_id
,
brand_id
重新审核品牌
client.messaging_10dlc.brand.revet()
PUT /10dlc/brand/{brandId}/revet
无需重建即可修改现有资源。
brand_id
通过品牌ID获取品牌SMS OTP状态
client.messaging_10dlc.brand.retrieve_sms_otp_status()
GET /10dlc/brand/{brandId}/smsOtp
在进行更新、删除或做出控制流决策前获取当前状态。
brand_id
触发品牌SMS OTP
client.messaging_10dlc.brand.trigger_sms_otp()
POST /10dlc/brand/{brandId}/smsOtp
当核心任务未覆盖该流程时,创建或开通额外资源。
pin_sms
,
success_sms
,
brand_id
验证品牌SMS OTP
client.messaging_10dlc.brand.verify_sms_otp()
PUT /10dlc/brand/{brandId}/smsOtp
无需重建即可修改现有资源。
otp_pin
,
brand_id
列出活动
client.messaging_10dlc.campaign.list()
GET /10dlc/campaign
在修改资源前查看可用资源或选择现有资源。None
接受共享活动
client.messaging_10dlc.campaign.accept_sharing()
POST /10dlc/campaign/acceptSharing/{campaignId}
当核心任务未覆盖该流程时,创建或开通额外资源。
campaign_id
获取活动成本
client.messaging_10dlc.campaign.usecase.get_cost()
GET /10dlc/campaign/usecase/cost
在修改资源前查看可用资源或选择现有资源。None
更新活动
client.messaging_10dlc.campaign.update()
PUT /10dlc/campaign/{campaignId}
查看现有活动注册的当前状态。
campaign_id
停用活动
client.messaging_10dlc.campaign.deactivate()
DELETE /10dlc/campaign/{campaignId}
查看现有活动注册的当前状态。
campaign_id
提交活动申诉请求人工审核
client.messaging_10dlc.campaign.submit_appeal()
POST /10dlc/campaign/{campaignId}/appeal
当核心任务未覆盖该流程时,创建或开通额外资源。
appeal_reason
,
campaign_id
获取活动MNO元数据
client.messaging_10dlc.campaign.get_mno_metadata()
GET /10dlc/campaign/{campaignId}/mnoMetadata
在进行更新、删除或做出控制流决策前获取当前状态。
campaign_id
获取活动操作状态
client.messaging_10dlc.campaign.get_operation_status()
GET /10dlc/campaign/{campaignId}/operationStatus
在进行更新、删除或做出控制流决策前获取当前状态。
campaign_id
获取OSR活动属性
client.messaging_10dlc.campaign.osr.get_attributes()
GET /10dlc/campaign/{campaignId}/osr/attributes
在进行更新、删除或做出控制流决策前获取当前状态。
campaign_id
获取共享状态
client.messaging_10dlc.campaign.get_sharing_status()
GET /10dlc/campaign/{campaignId}/sharing
在进行更新、删除或做出控制流决策前获取当前状态。
campaign_id
列出我共享的合作伙伴活动
client.messaging_10dlc.partner_campaigns.list_shared_by_me()
GET /10dlc/partnerCampaign/sharedByMe
在修改资源前查看可用资源或选择现有资源。None
获取共享状态
client.messaging_10dlc.partner_campaigns.retrieve_sharing_status()
GET /10dlc/partnerCampaign/{campaignId}/sharing
在进行更新、删除或做出控制流决策前获取当前状态。
campaign_id
列出共享活动
client.messaging_10dlc.partner_campaigns.list()
GET /10dlc/partner_campaigns
在修改资源前查看可用资源或选择现有资源。None
获取单个共享活动
client.messaging_10dlc.partner_campaigns.retrieve()
GET /10dlc/partner_campaigns/{campaignId}
在进行更新、删除或做出控制流决策前获取当前状态。
campaign_id
更新单个共享活动
client.messaging_10dlc.partner_campaigns.update()
PATCH /10dlc/partner_campaigns/{campaignId}
无需重建即可修改现有资源。
campaign_id
获取分配任务状态
client.messaging_10dlc.phone_number_assignment_by_profile.retrieve_status()
GET /10dlc/phoneNumberAssignmentByProfile/{taskId}
在进行更新、删除或做出控制流决策前获取当前状态。
task_id
获取电话号码状态
client.messaging_10dlc.phone_number_assignment_by_profile.list_phone_number_status()
GET /10dlc/phoneNumberAssignmentByProfile/{taskId}/phoneNumbers
在进行更新、删除或做出控制流决策前获取当前状态。
task_id
列出电话号码活动绑定
client.messaging_10dlc.phone_number_campaigns.list()
GET /10dlc/phone_number_campaigns
在修改资源前查看可用资源或选择现有资源。None
获取单个电话号码活动绑定
client.messaging_10dlc.phone_number_campaigns.retrieve()
GET /10dlc/phone_number_campaigns/{phoneNumber}
在进行更新、删除或做出控制流决策前获取当前状态。
phone_number
创建新的电话号码活动绑定
client.messaging_10dlc.phone_number_campaigns.update()
PUT /10dlc/phone_number_campaigns/{phoneNumber}
无需重建即可修改现有资源。
phone_number
,
campaign_id
,
phone_number
删除电话号码活动绑定
client.messaging_10dlc.phone_number_campaigns.delete()
DELETE /10dlc/phone_number_campaigns/{phoneNumber}
移除、解绑或清理现有资源。
phone_number

如需完整的可选参数、全量响应结构和完整的webhook payload,请查看references/api-details.md