TelnyxDownstreamCampaign
Campaign is generated by the 10DLC registry once the corresponding campaign request is approved. Each campaign is assigned a unique identifier - **campaignId**. Once a campaign is activated, limited information is published to the NetNumber OSR service for consumption by members of the ecosystem. When a campaign is suspended(reversible) or expired(non-reversible), campaign data is deleted from the OSR service.
Properties
| Name | Type | Description |
|---|---|---|
| ageGated | boolean | Age gated content in campaign. |
| assignedPhoneNumbersCount | number | Number of phone numbers associated with the campaign |
| brandDisplayName | string | Display or marketing name of the brand. |
| campaignStatus | string | Campaign status |
| createdAt | string | Date and time that the brand was created at. |
| description | string | Summary description of this campaign. |
| directLending | boolean | Direct lending or loan arrangement. |
| embeddedLink | boolean | Does message generated by the campaign include URL link in SMS? |
| embeddedLinkSample | string | Sample of an embedded link that will be sent to subscribers. |
| embeddedPhone | boolean | Does message generated by the campaign include phone number in SMS? |
| failureReasons | string | Failure reasons if campaign submission failed |
| helpKeywords | string | Subscriber help keywords. Multiple keywords are comma separated without space. |
| helpMessage | string | Help message of the campaign. |
| isNumberPoolingEnabled | boolean | Indicates whether the campaign has a T-Mobile number pool ID associated with it. |
| messageFlow | string | Message flow description. |
| numberPool | boolean | Does campaign utilize pool of phone numbers? |
| optinKeywords | string | Subscriber opt-in keywords. Multiple keywords are comma separated without space. |
| optinMessage | string | Subscriber opt-in message. |
| optoutKeywords | string | Subscriber opt-out keywords. Multiple keywords are comma separated without space. |
| optoutMessage | string | Subscriber opt-out message. |
| privacyPolicyLink | string | Link to the campaign's privacy policy. |
| sample1 | string | Message sample. Some campaign tiers require 1 or more message samples. |
| sample2 | string | Message sample. Some campaign tiers require 2 or more message samples. |
| sample3 | string | Message sample. Some campaign tiers require 3 or more message samples. |
| sample4 | string | Message sample. Some campaign tiers require 4 or more message samples. |
| sample5 | string | Message sample. Some campaign tiers require 5 or more message samples. |
| subUsecases | array | Campaign sub-usecases. Must be of defined valid sub-usecase types. Use `/10dlc/enum/usecase` operation to retrieve list of valid sub-usecases |
| subscriberOptin | boolean | Does campaign require subscriber to opt-in before SMS is sent to subscriber? |
| subscriberOptout | boolean | Does campaign support subscriber opt-out keyword(s)? |
| tcrBrandId | string | Unique identifier assigned to the brand by the registry. |
| tcrCampaignId | string | Unique identifier assigned to the campaign by the registry. |
| termsAndConditions | boolean | Is terms & conditions accepted? |
| termsAndConditionsLink | string | Link to the campaign's terms and conditions. |
| updatedAt | string | Date and time that the brand was last updated at. |
| usecase | string | Campaign usecase. Must be of defined valid types. Use `/10dlc/enum/usecase` operation to retrieve usecases available for given brand. |
| webhookFailoverURL | string | Failover webhook to which campaign status updates are sent. |
| webhookURL | string | Webhook to which campaign status updates are sent. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/telnyx/json-schema/telnyx-telnyx-downstream-campaign-schema.json",
"title": "TelnyxDownstreamCampaign",
"description": "Campaign is generated by the 10DLC registry once the corresponding campaign request is approved. Each campaign is assigned a unique identifier - **campaignId**. Once a campaign is activated, limited information is published to the NetNumber OSR service for consumption by members of the ecosystem. When a campaign is suspended(reversible) or expired(non-reversible), campaign data is deleted from the OSR service.",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/telnyx-shared-campaigns-api-openapi.yml#/components/schemas/TelnyxDownstreamCampaign",
"properties": {
"ageGated": {
"description": "Age gated content in campaign.",
"title": "AgeGated",
"type": "boolean"
},
"assignedPhoneNumbersCount": {
"description": "Number of phone numbers associated with the campaign",
"title": "AssignedPhoneNumbersCount",
"type": "number"
},
"brandDisplayName": {
"description": "Display or marketing name of the brand.",
"title": "Branddisplayname",
"type": "string"
},
"campaignStatus": {
"description": "Campaign status",
"enum": [
"TCR_PENDING",
"TCR_SUSPENDED",
"TCR_EXPIRED",
"TCR_ACCEPTED",
"TCR_FAILED",
"TELNYX_ACCEPTED",
"TELNYX_FAILED",
"MNO_PENDING",
"MNO_ACCEPTED",
"MNO_REJECTED",
"MNO_PROVISIONED",
"MNO_PROVISIONING_FAILED"
],
"title": "campaignStatus",
"type": "string"
},
"createdAt": {
"description": "Date and time that the brand was created at.",
"type": "string"
},
"description": {
"description": "Summary description of this campaign.",
"title": "Description",
"type": "string"
},
"directLending": {
"description": "Direct lending or loan arrangement.",
"title": "Directlending",
"type": "boolean"
},
"embeddedLink": {
"description": "Does message generated by the campaign include URL link in SMS?",
"title": "Embeddedlink",
"type": "boolean"
},
"embeddedLinkSample": {
"description": "Sample of an embedded link that will be sent to subscribers.",
"title": "EmbeddedLinkSample",
"type": "string"
},
"embeddedPhone": {
"description": "Does message generated by the campaign include phone number in SMS?",
"title": "Embeddedphone",
"type": "boolean"
},
"failureReasons": {
"description": "Failure reasons if campaign submission failed",
"title": "failureReasons",
"type": "string"
},
"helpKeywords": {
"description": "Subscriber help keywords. Multiple keywords are comma separated without space.",
"title": "Helpkeywords",
"type": "string"
},
"helpMessage": {
"description": "Help message of the campaign.",
"title": "Helpmessage",
"type": "string"
},
"isNumberPoolingEnabled": {
"description": "Indicates whether the campaign has a T-Mobile number pool ID associated with it.",
"title": "isNumberPoolingEnabled",
"type": "boolean"
},
"messageFlow": {
"description": "Message flow description.",
"title": "Messageflow",
"type": "string"
},
"numberPool": {
"description": "Does campaign utilize pool of phone numbers?",
"title": "Numberpool",
"type": "boolean"
},
"optinKeywords": {
"description": "Subscriber opt-in keywords. Multiple keywords are comma separated without space.",
"title": "Optinkeywords",
"type": "string"
},
"optinMessage": {
"description": "Subscriber opt-in message.",
"title": "Optinmessage",
"type": "string"
},
"optoutKeywords": {
"description": "Subscriber opt-out keywords. Multiple keywords are comma separated without space.",
"title": "Optoutkeywords",
"type": "string"
},
"optoutMessage": {
"description": "Subscriber opt-out message.",
"title": "Optoutmessage",
"type": "string"
},
"privacyPolicyLink": {
"description": "Link to the campaign's privacy policy.",
"title": "PrivacyPolicyLink",
"type": "string"
},
"sample1": {
"description": "Message sample. Some campaign tiers require 1 or more message samples.",
"title": "Sample1",
"type": "string"
},
"sample2": {
"description": "Message sample. Some campaign tiers require 2 or more message samples.",
"title": "Sample2",
"type": "string"
},
"sample3": {
"description": "Message sample. Some campaign tiers require 3 or more message samples.",
"title": "Sample3",
"type": "string"
},
"sample4": {
"description": "Message sample. Some campaign tiers require 4 or more message samples.",
"title": "Sample4",
"type": "string"
},
"sample5": {
"description": "Message sample. Some campaign tiers require 5 or more message samples.",
"title": "Sample5",
"type": "string"
},
"subUsecases": {
"description": "Campaign sub-usecases. Must be of defined valid sub-usecase types. Use `/10dlc/enum/usecase` operation to retrieve list of valid sub-usecases",
"items": {
"type": "string"
},
"title": "Subusecases",
"type": "array",
"uniqueItems": true
},
"subscriberOptin": {
"description": "Does campaign require subscriber to opt-in before SMS is sent to subscriber?",
"title": "Subscriberoptin",
"type": "boolean"
},
"subscriberOptout": {
"description": "Does campaign support subscriber opt-out keyword(s)?",
"title": "Subscriberoptout",
"type": "boolean"
},
"tcrBrandId": {
"description": "Unique identifier assigned to the brand by the registry.",
"title": "TcrBrandid",
"type": "string"
},
"tcrCampaignId": {
"description": "Unique identifier assigned to the campaign by the registry.",
"title": "TcrCampaignid",
"type": "string"
},
"termsAndConditions": {
"description": "Is terms & conditions accepted?",
"title": "Termsandconditions",
"type": "boolean"
},
"termsAndConditionsLink": {
"description": "Link to the campaign's terms and conditions.",
"title": "TermsAndConditionsLink",
"type": "string"
},
"updatedAt": {
"description": "Date and time that the brand was last updated at.",
"type": "string"
},
"usecase": {
"description": "Campaign usecase. Must be of defined valid types. Use `/10dlc/enum/usecase` operation to retrieve usecases available for given brand.",
"title": "Usecase",
"type": "string"
},
"webhookFailoverURL": {
"description": "Failover webhook to which campaign status updates are sent.",
"title": "WebhookFailoverURL",
"type": "string"
},
"webhookURL": {
"description": "Webhook to which campaign status updates are sent.",
"title": "WebhookURL",
"type": "string"
}
},
"required": [
"tcrBrandId",
"tcrCampaignId"
],
"type": "object"
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/telnyx-telnyx-downstream-campaign"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.