Loading...
Loading...
Register brands and campaigns for 10DLC (10-digit long code) A2P messaging compliance in the US. Manage campaign assignments to phone numbers. This skill provides Python SDK examples.
npx skill4agent add team-telnyx/telnyx-ext-agent-skills telnyx-10dlc-pythonpip install telnyximport os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)clientGET /10dlc/brandpage = client.messaging_10dlc.brand.list()
page = page.records[0]
print(page.identity_status)POST /10dlc/brandentityTypedisplayNamecountryemailverticalbusinessContactEmailcitycompanyNameeinfirstNameipAddressisResellerlastNamemobilePhonemockphonepostalCodestatestockExchangestockSymbolstreetwebhookFailoverURLwebhookURLwebsitetelnyx_brand = client.messaging_10dlc.brand.create(
country="US",
display_name="ABC Mobile",
email="email",
entity_type="PRIVATE_PROFIT",
vertical="TECHNOLOGY",
)
print(telnyx_brand.identity_status)brandIdGET /10dlc/brand/{brandId}brand = client.messaging_10dlc.brand.retrieve(
"brandId",
)
print(brand)brandIdPUT /10dlc/brand/{brandId}entityTypedisplayNamecountryemailverticalaltBusinessIdaltBusinessIdTypebusinessContactEmailcitycompanyNameeinfirstNameidentityStatusipAddressisResellerlastNamephonepostalCodestatestockExchangestockSymbolstreetwebhookFailoverURLwebhookURLwebsitetelnyx_brand = client.messaging_10dlc.brand.update(
brand_id="brandId",
country="US",
display_name="ABC Mobile",
email="email",
entity_type="PRIVATE_PROFIT",
vertical="TECHNOLOGY",
)
print(telnyx_brand.identity_status)DELETE /10dlc/brand/{brandId}client.messaging_10dlc.brand.delete(
"brandId",
)POST /10dlc/brand/{brandId}/2faEmailclient.messaging_10dlc.brand.resend_2fa_email(
"brandId",
)GET /10dlc/brand/{brandId}/externalVettingexternal_vettings = client.messaging_10dlc.brand.external_vetting.list(
"brandId",
)
print(external_vettings)POST /10dlc/brand/{brandId}/externalVettingevpIdvettingClassresponse = client.messaging_10dlc.brand.external_vetting.order(
brand_id="brandId",
evp_id="evpId",
vetting_class="vettingClass",
)
print(response.create_date)PUT /10dlc/brand/{brandId}/externalVettingevpIdvettingIdvettingTokenresponse = client.messaging_10dlc.brand.external_vetting.imports(
brand_id="brandId",
evp_id="evpId",
vetting_id="vettingId",
)
print(response.create_date)PUT /10dlc/brand/{brandId}/revettelnyx_brand = client.messaging_10dlc.brand.revet(
"brandId",
)
print(telnyx_brand.identity_status)GET /10dlc/brand/{brandId}/smsOtpresponse = client.messaging_10dlc.brand.retrieve_sms_otp_status(
"4b20019b-043a-78f8-0657-b3be3f4b4002",
)
print(response.brand_id)POST /10dlc/brand/{brandId}/smsOtppinSmssuccessSmsresponse = client.messaging_10dlc.brand.trigger_sms_otp(
brand_id="4b20019b-043a-78f8-0657-b3be3f4b4002",
pin_sms="Your PIN is @OTP_PIN@",
success_sms="Verification successful!",
)
print(response.brand_id)PUT /10dlc/brand/{brandId}/smsOtpotpPinclient.messaging_10dlc.brand.verify_sms_otp(
brand_id="4b20019b-043a-78f8-0657-b3be3f4b4002",
otp_pin="123456",
)GET /10dlc/brand/smsOtp/{referenceId}response = client.messaging_10dlc.brand.get_sms_otp_by_reference(
reference_id="OTP4B2001",
)
print(response.brand_id)GET /10dlc/brand_feedback/{brandId}response = client.messaging_10dlc.brand.get_feedback(
"brandId",
)
print(response.brand_id)POST /10dlc/campaignBuilderbrandIddescriptionusecaseageGatedautoRenewaldirectLendingembeddedLinkembeddedLinkSampleembeddedPhonehelpKeywordshelpMessagemessageFlowmnoIdsnumberPooloptinKeywordsoptinMessageoptoutKeywordsoptoutMessageprivacyPolicyLinkreferenceIdresellerIdsample1sample2sample3sample4sample5subUsecasessubscriberHelpsubscriberOptinsubscriberOptouttagtermsAndConditionstermsAndConditionsLinkwebhookFailoverURLwebhookURLtelnyx_campaign_csp = client.messaging_10dlc.campaign_builder.submit(
brand_id="brandId",
description="description",
usecase="usecase",
)
print(telnyx_campaign_csp.brand_id)GET /10dlc/campaignBuilder/brand/{brandId}/usecase/{usecase}response = client.messaging_10dlc.campaign_builder.brand.qualify_by_usecase(
usecase="usecase",
brand_id="brandId",
)
print(response.annual_fee)brandIdGET /10dlc/campaignpage = client.messaging_10dlc.campaign.list(
brand_id="brandId",
)
page = page.records[0]
print(page.age_gated)campaignIdGET /10dlc/campaign/{campaignId}telnyx_campaign_csp = client.messaging_10dlc.campaign.retrieve(
"campaignId",
)
print(telnyx_campaign_csp.brand_id)campaignIdPUT /10dlc/campaign/{campaignId}autoRenewalhelpMessagemessageFlowresellerIdsample1sample2sample3sample4sample5webhookFailoverURLwebhookURLtelnyx_campaign_csp = client.messaging_10dlc.campaign.update(
campaign_id="campaignId",
)
print(telnyx_campaign_csp.brand_id)DELETE /10dlc/campaign/{campaignId}response = client.messaging_10dlc.campaign.deactivate(
"campaignId",
)
print(response.time)POST /10dlc/campaign/{campaignId}/appealappeal_reasonresponse = client.messaging_10dlc.campaign.submit_appeal(
campaign_id="5eb13888-32b7-4cab-95e6-d834dde21d64",
appeal_reason="The website has been updated to include the required privacy policy and terms of service.",
)
print(response.appealed_at)GET /10dlc/campaign/{campaignId}/mnoMetadataresponse = client.messaging_10dlc.campaign.get_mno_metadata(
"campaignId",
)
print(response._10999)GET /10dlc/campaign/{campaignId}/operationStatusresponse = client.messaging_10dlc.campaign.get_operation_status(
"campaignId",
)
print(response)GET /10dlc/campaign/{campaignId}/osr_attributesresponse = client.messaging_10dlc.campaign.osr.get_attributes(
"campaignId",
)
print(response)GET /10dlc/campaign/{campaignId}/sharingresponse = client.messaging_10dlc.campaign.get_sharing_status(
"campaignId",
)
print(response.shared_by_me)POST /10dlc/campaign/acceptSharing/{campaignId}response = client.messaging_10dlc.campaign.accept_sharing(
"C26F1KLZN",
)
print(response)GET /10dlc/campaign/usecase_costresponse = client.messaging_10dlc.campaign.usecase.get_cost(
usecase="usecase",
)
print(response.campaign_usecase)GET /10dlc/partner_campaignspage = client.messaging_10dlc.partner_campaigns.list()
page = page.records[0]
print(page.tcr_brand_id)campaignIdGET /10dlc/partner_campaigns/{campaignId}telnyx_downstream_campaign = client.messaging_10dlc.partner_campaigns.retrieve(
"campaignId",
)
print(telnyx_downstream_campaign.tcr_brand_id)campaignIdPATCH /10dlc/partner_campaigns/{campaignId}webhookFailoverURLwebhookURLtelnyx_downstream_campaign = client.messaging_10dlc.partner_campaigns.update(
campaign_id="campaignId",
)
print(telnyx_downstream_campaign.tcr_brand_id)GET /10dlc/partnerCampaign/{campaignId}/sharingresponse = client.messaging_10dlc.partner_campaigns.retrieve_sharing_status(
"campaignId",
)
print(response)GET /10dlc/partnerCampaign/sharedByMepage = client.messaging_10dlc.partner_campaigns.list_shared_by_me()
page = page.records[0]
print(page.brand_id)GET /10dlc/phone_number_campaignspage = client.messaging_10dlc.phone_number_campaigns.list()
page = page.records[0]
print(page.campaign_id)POST /10dlc/phone_number_campaignsphoneNumbercampaignIdphone_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)phoneNumberGET /10dlc/phone_number_campaigns/{phoneNumber}phone_number_campaign = client.messaging_10dlc.phone_number_campaigns.retrieve(
"phoneNumber",
)
print(phone_number_campaign.campaign_id)PUT /10dlc/phone_number_campaigns/{phoneNumber}phoneNumbercampaignIdphone_number_campaign = client.messaging_10dlc.phone_number_campaigns.update(
campaign_phone_number="phoneNumber",
campaign_id="4b300178-131c-d902-d54e-72d90ba1620j",
phone_number="+18005550199",
)
print(phone_number_campaign.campaign_id)phoneNumberDELETE /10dlc/phone_number_campaigns/{phoneNumber}phone_number_campaign = client.messaging_10dlc.phone_number_campaigns.delete(
"phoneNumber",
)
print(phone_number_campaign.campaign_id)POST /10dlc/phoneNumberAssignmentByProfilemessagingProfileIdcampaignIdtcrCampaignIdresponse = client.messaging_10dlc.phone_number_assignment_by_profile.assign(
messaging_profile_id="4001767e-ce0f-4cae-9d5f-0d5e636e7809",
)
print(response.messaging_profile_id)taskIdGET /10dlc/phoneNumberAssignmentByProfile/{taskId}response = client.messaging_10dlc.phone_number_assignment_by_profile.retrieve_status(
"taskId",
)
print(response.status)taskIdGET /10dlc/phoneNumberAssignmentByProfile/{taskId}/phoneNumbersresponse = client.messaging_10dlc.phone_number_assignment_by_profile.list_phone_number_status(
task_id="taskId",
)
print(response.records)telnyx-timestamptelnyx-signature-ed25519| Event | Description |
|---|---|
| Campaign Status Update |
campaignStatusUpdate| Field | Type | Description |
|---|---|---|
| string | Brand ID associated with the campaign. |
| string | The ID of the campaign. |
| string | Unix timestamp when campaign was created. |
| string | Alphanumeric identifier of the CSP associated with this campaign. |
| boolean | Indicates whether the campaign is registered with T-Mobile. |
| enum | |
| string | Description of the event. |
| enum | The status of the campaign. |