Telnyx · Schema

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.

CommunicationsCPaaSVoiceSMSIoTTelecommunicationsMessagingArtificial IntelligenceMCPVoice AIPhone NumbersInferenceNumber VerificationPhone VerificationOTP2FALookupVerifyNumber LookupCNAMIdentityFraud Prevention

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.
View JSON Schema on GitHub

JSON Schema

telnyx-telnyx-downstream-campaign-schema.json Raw ↑
{
  "$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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/telnyx-telnyx-downstream-campaign"
All schemas
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.