Teliax Messaging Campaigns API

10DLC campaign management and phone number assignment

Operations 24

GET /v1/messaging/campaigns/{campaignId} Get campaign #
PUT /v1/messaging/campaigns/{campaignId} Update campaign #
PUT /v1/messaging/campaigns/{campaignId}/resubmit Resubmit campaign #
PUT /v1/messaging/campaigns/{campaignId}/application Bind consumer application association (local only) #
POST /v1/messaging/cnp-backfill Backfill CNP registration #
GET /v1/messaging/campaigns List campaigns #
POST /v1/messaging/campaigns Create campaign #
POST /v1/messaging/campaigns/{campaignId}/transfer Transfer (re-home) a campaign to another customer #
GET /v1/messaging/campaigns/{campaignId}/numbers List assigned numbers #
POST /v1/messaging/campaigns/{campaignId}/numbers Assign numbers to campaign #
DELETE /v1/messaging/campaigns/{campaignId}/numbers Remove numbers from campaign #
POST /v1/messaging/campaigns/{campaignId}/nudge Nudge CNP #
POST /v1/messaging/campaigns/{campaignId}/cnp Elect CNP #
POST /v1/messaging/campaigns/{campaignId}/cnp-register Retry CNP registration #
POST /v1/messaging/campaigns/{campaignId}/cnp-provision-numbers Provision campaign TNs with the CNP #
GET /v1/messaging/campaigns/{campaignId}/cnp-migration Get CNP migration status #
POST /v1/messaging/campaigns/{campaignId}/cnp-migration Initiate CNP migration #
DELETE /v1/messaging/campaigns/{campaignId}/cnp-migration Cancel CNP migration #
POST /v1/messaging/campaigns/link Link existing TCR campaign #
GET /v1/messaging/overview Messaging overview #
GET /v1/messaging/campaigns/{campaignId}/sharing Get sharing status #
GET /v1/messaging/campaigns/{campaignId}/numbers/status List assigned numbers with CNP provisioning status #
GET /v1/messaging/campaigns/{campaignId}/mno-status Get MNO status #
GET /v1/messaging/campaigns/lookup/{tcrCampaignId} Lookup campaign from TCR #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-identity-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-query-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-cpr-dump-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-dno-lookup-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-complex-query-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-tandem-query-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-port-project-detail-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-port-project-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-port-project-detail-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-soa-query-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-toll-free-ptr-operation-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-auto-activation-settings-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-github-com-ringer-warp-api-gateway-internal-models-trunk-group-with-ips-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-github-com-ringer-warp-api-gateway-internal-models-assignment-with-usages-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-internal-handlers-trunk-update-result-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-github-com-ringer-warp-api-gateway-internal-models-trunk-group-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-github-com-ringer-warp-api-gateway-internal-models-assignment-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/teliax/refs/heads/main/json-schema/teliax-internal-handlers-bulk-assign-request-schema.json

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/teliax:teliax-messaging-campaigns-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

OpenAPI Specification

teliax-messaging-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Teliax Messaging Campaigns API
  version: v1
  contact:
    name: Ringer API Support
    url: https://ringer.tel
    email: api-support@ringer.tel
  description: 'Operations tagged Messaging Campaigns across 2 of this provider''s published API definitions: teliax-tniq-openapi.json, teliax-tniq-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.tniq.ringer.tel
  description: Production
- url: https://tniq-api.ringer.tel
  description: Production (legacy alias)
- url: https://staging-api.ringer.tel
  description: Staging
tags:
- name: Messaging Campaigns
  description: 10DLC campaign management and phone number assignment
paths:
  /v1/messaging/campaigns/{campaignId}:
    get:
      tags:
      - Messaging Campaigns
      summary: Get campaign
      operationId: getCampaign
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    put:
      tags:
      - Messaging Campaigns
      summary: Update campaign
      operationId: updateCampaign
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCampaignRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/resubmit:
    put:
      tags:
      - Messaging Campaigns
      summary: Resubmit campaign
      description: Resubmit campaign to specified MNOs
      operationId: resubmitCampaign
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/application:
    put:
      tags:
      - Messaging Campaigns
      summary: Bind consumer application association (local only)
      description: 'Local binding only — never contacts The Campaign Registry. Stamps applicationId/applicationMetadata (#267''s consumer-association key) onto an EXISTING campaign without rebuilding/forwarding a TCR update, unlike PUT /campaigns/{campaignId} which would push a destructive sparse update to TCR. For consumer (WARP) application binding during their link-table retirement backfill; see issue #371.'
      operationId: bindCampaignApplication
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BindApplicationRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/cnp-backfill:
    post:
      tags:
      - Messaging Campaigns
      summary: Backfill CNP registration
      description: Register all unregistered brands and campaigns with the customer's CNP. Used to push existing records after CNP integration is enabled.
      operationId: backfillCnpRegistration
      parameters:
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns:
    get:
      tags:
      - Messaging Campaigns
      summary: List campaigns
      description: List all 10DLC campaigns, optionally filtered by brand. Results are constrained to the resolved customer (the token's customer, or `customerId` when the caller is authorized for it). `applicationId` filters within that customer by the consumer-association key (#267).
      operationId: listCampaigns
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      - name: size
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 25
      - name: brandId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: applicationId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    post:
      tags:
      - Messaging Campaigns
      summary: Create campaign
      description: Register a new 10DLC campaign with TCR
      operationId: createCampaign
      parameters:
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCampaignRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/transfer:
    post:
      tags:
      - Messaging Campaigns
      summary: Transfer (re-home) a campaign to another customer
      description: '#267: updates the owning customer_id on the campaign. Allowed ONLY when the campaign''s brand already belongs to the target customer (409 BRAND_MISMATCH otherwise — a campaign''s TCR identity is permanently bound to its brand, so transfer the brand instead, which cascades its campaigns). TCR/CNP identifiers and approval state are untouched. Caller must be authorized for BOTH source and target customers.'
      operationId: transferCampaign
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/numbers:
    get:
      tags:
      - Messaging Campaigns
      summary: List assigned numbers
      operationId: listAssignedNumbers
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      - name: size
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 50
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    post:
      tags:
      - Messaging Campaigns
      summary: Assign numbers to campaign
      operationId: assignNumbers
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignNumbersRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    delete:
      tags:
      - Messaging Campaigns
      summary: Remove numbers from campaign
      operationId: removeNumbers
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignNumbersRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/nudge:
    post:
      tags:
      - Messaging Campaigns
      summary: Nudge CNP
      description: Send a nudge to the CNP to review or appeal a campaign
      operationId: nudgeCampaign
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: string
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/cnp:
    post:
      tags:
      - Messaging Campaigns
      summary: Elect CNP
      description: Elect a Connectivity Partner for a campaign
      operationId: electCnp
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: string
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/cnp-register:
    post:
      tags:
      - Messaging Campaigns
      summary: Retry CNP registration
      description: Retry campaign registration with the customer's connectivity partner (e.g., Sinch/Inteliquent)
      operationId: retryCnpRegistration
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/cnp-provision-numbers:
    post:
      tags:
      - Messaging Campaigns
      summary: Provision campaign TNs with the CNP
      description: Enqueue a durable push (or, with remove=true, withdrawal) of a batch of TNs to the campaign's elected connectivity partner (e.g., Sinch) so the DCA routes MO/MT. Defaults to the campaign's currently-assigned numbers when phoneNumbers is omitted. Returns the push reference; completion is async via webhook/reconcile.
      operationId: provisionCnpNumbers
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/cnp-migration:
    get:
      tags:
      - Messaging Campaigns
      summary: Get CNP migration status
      description: Get the current CNP migration status for a campaign
      operationId: getCnpMigrationStatus
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    post:
      tags:
      - Messaging Campaigns
      summary: Initiate CNP migration
      description: Begin migrating a campaign to a new upstream connectivity partner
      operationId: initiateCnpMigration
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: string
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    delete:
      tags:
      - Messaging Campaigns
      summary: Cancel CNP migration
      description: Cancel an in-progress CNP migration for a campaign
      operationId: cancelCnpMigration
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: explanation
        in: query
        required: false
        schema:
          type: string
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/link:
    post:
      tags:
      - Messaging Campaigns
      summary: Link existing TCR campaign
      description: Link an existing TCR campaign (own or partner) to this customer
      operationId: linkCampaign
      parameters:
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkCampaignRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/overview:
    get:
      tags:
      - Messaging Campaigns
      summary: Messaging overview
      description: Get summary statistics for messaging/10DLC
      operationId: getOverview
      parameters:
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/sharing:
    get:
      tags:
      - Messaging Campaigns
      summary: Get sharing status
      description: Get campaign sharing/CNP status from TCR
      operationId: getCampaignSharing
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/numbers/status:
    get:
      tags:
      - Messaging Campaigns
      summary: List assigned numbers with CNP provisioning status
      description: Returns each active assigned TN enriched with per-TN messaging/CNP provisioning status (smsStatus, cnpProvisioningStatus, cnpCarrierCode, cnpProvisioningError) from number_inventory.
      operationId: listAssignedNumberStatuses
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/{campaignId}/mno-status:
    get:
      tags:
      - Messaging Campaigns
      summary: Get MNO status
      operationId: getMnoStatus
      parameters:
      - name: campaignId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
  /v1/messaging/campaigns/lookup/{tcrCampaignId}:
    get:
      tags:
      - Messaging Campaigns
      summary: Lookup campaign from TCR
      description: Preview a TCR campaign before linking (tries own, then partner)
      operationId: lookupCampaign
      parameters:
      - name: tcrCampaignId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    servers:
    - url: https://api.tniq.ringer.tel
      description: Production
    - url: https://tniq-api.ringer.tel
      description: Production (legacy alias)
    - url: https://staging-api.ringer.tel
      description: Staging
components:
  schemas:
    LinkCampaignRequest:
      required:
      - tcrCampaignId
      type: object
      properties:
        tcrCampaignId:
          type: string
    TransferRequest:
      type: object
      properties:
        toCustomerId:
          type: string
          format: uuid
    CreateCampaignRequest:
      required:
      - brandId
      - description
      - messageFlow
      - sampleMessages
      - useCase
      type: object
      properties:
        brandId:
          type: string
          format: uuid
        useCase:
          type: string
        description:
          maxLength: 2147483647
          minLength: 40
          type: string
        messageFlow:
          maxLength: 2147483647
          minLength: 40
          type: string
        sampleMessages:
          maxItems: 5
          minItems: 1
          type: array
          items:
            type: string
        subUseCases:
          type: array
          items:
            type: string
        resellerId:
          type: string
        subscriberOptin:
          type: boolean
        subscriberOptout:
          type: boolean
        subscriberHelp:
          type: boolean
        optinKeywords:
          type: string
        optinMessage:
          type: string
        optoutKeywords:
          type: string
        optoutMessage:
          type: string
        helpKeywords:
          type: string
        helpMessage:
          type: string
        embeddedLink:
          type: boolean
        embeddedPhone:
          type: boolean
        numberPool:
          type: boolean
        ageGated:
          type: boolean
        directLending:
          type: boolean
        affiliateMarketing:
          type: boolean
        privacyPolicyUrl:
          type: string
        termsUrl:
          type: string
        autoRenewal:
          type: boolean
        applicationId:
          type: string
        applicationMetadata:
          type: object
          additionalProperties:
            type: object
    AssignNumbersRequest:
      required:
      - phoneNumbers
      type: object
      properties:
        phoneNumbers:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            type: string
        source:
          type: string
          description: Origin of the assignment request. If 'bulk_csv', triggers a customer notification email.
          example: bulk_csv
    BindApplicationRequest:
      required:
      - applicationId
      type: object
      properties:
        applicationId:
          type: string
        applicationMetadata:
          type: object
          additionalProperties:
            type: object
  securitySchemes:
    bearerAuth:
      type: http
      description: 'Bearer token authentication. Pass your API token or user JWT in the Authorization header: Authorization: Bearer YOUR_TOKEN'
      scheme: bearer
      bearerFormat: JWT
x-refined-from:
- teliax-tniq-openapi.json
- teliax-tniq-openapi.yml