{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/telnyx/main/json-schema/telnyx-campaign-request-schema.json",
  "title": "CampaignRequest",
  "description": "CampaignRequest object describes the campaign to be submitted via '/campaignBuilder/brand/{brandId}/usecase/{usecase}' operation. It is also used in operations for retrieving status of campaign request and for updating a pending request.",
  "x-generated": "2026-10-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/telnyx-campaign-api-openapi.yml#/components/schemas/CampaignRequest",
  "properties": {
    "ageGated": {
      "description": "Age gated message content in campaign.",
      "title": "Agegated",
      "type": "boolean"
    },
    "autoRenewal": {
      "description": "Campaign subscription auto-renewal option. If set to true, then campaign will automatically renewal at end of billing cycle.",
      "title": "Autorenewal",
      "type": "boolean"
    },
    "brandId": {
      "description": "Alphanumeric identifier of the brand associated with this campaign.",
      "title": "Brandid",
      "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"
    },
    "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"
    },
    "messageFlow": {
      "description": "Message flow description.",
      "title": "Messageflow",
      "type": "string"
    },
    "mnoIds": {
      "description": "Submit campaign to given list of MNOs by MNO's network ID. Default is all MNOs if no value provided.",
      "items": {
        "type": "integer"
      },
      "title": "Mnoids",
      "type": "array",
      "uniqueItems": true
    },
    "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"
    },
    "referenceId": {
      "description": "Caller supplied campaign reference ID. If supplied, the value must be unique across all submitted campaigns. Can be used to prevent duplicate campaign registrations.",
      "title": "Referenceid",
      "type": "string"
    },
    "resellerId": {
      "description": "Alphanumeric identifier of the reseller that you want to associate with this campaign.",
      "title": "Resellerid",
      "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
    },
    "subscriberHelp": {
      "description": "Does campaign responds to help keyword(s)?",
      "title": "Subscriberhelp",
      "type": "boolean"
    },
    "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"
    },
    "tag": {
      "description": "Tags to be set on the Campaign.",
      "items": {
        "type": "string"
      },
      "title": "Tag",
      "type": "array",
      "uniqueItems": true
    },
    "termsAndConditions": {
      "description": "Is terms and conditions accepted?",
      "title": "Termsandconditions",
      "type": "boolean"
    },
    "termsAndConditionsLink": {
      "description": "Link to the campaign's terms and conditions.",
      "title": "TermsAndConditionsLink",
      "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": [
    "brandId",
    "description",
    "usecase"
  ],
  "type": "object"
}