Teliax Messaging Brands API

10DLC brand registration and management

Operations 20

GET /v1/messaging/brands/{brandId} Get brand #
PUT /v1/messaging/brands/{brandId} Update brand #
DELETE /v1/messaging/brands/{brandId} Delete brand #
PUT /v1/messaging/brands/{brandId}/revet Resubmit brand for verification #
PUT /v1/messaging/brands/{brandId}/application Bind consumer application association (local only) #
GET /v1/messaging/brands List brands #
POST /v1/messaging/brands Create brand #
POST /v1/messaging/brands/{brandId}/vetting Request external vetting for a brand #
POST /v1/messaging/brands/{brandId}/vetting/{vettingId}/appeal Submit an appeal against an existing external vet #
POST /v1/messaging/brands/{brandId}/vetting/import Import an existing external vet #
POST /v1/messaging/brands/{brandId}/transfer Transfer (re-home) a brand to another customer #
POST /v1/messaging/brands/{brandId}/cnp-register Retry CNP registration #
POST /v1/messaging/brands/{brandId}/appeal Submit an appeal against brand identity status #
POST /v1/messaging/brands/{brandId}/appeal-evidence Upload an evidence file for future brand appeals #
POST /v1/messaging/brands/link Link existing TCR brand #
GET /v1/messaging/brands/vetting/providers List TCR external vetting providers (cached 24h) #
GET /v1/messaging/brands/lookup/{tcrBrandId} Lookup brand from TCR #
GET /v1/messaging/brands/appeal-categories/vet List TCR external-vet appeal categories (cached 24h) #
GET /v1/messaging/brands/appeal-categories/identity List TCR brand-identity appeal categories (cached 24h) #
DELETE /v1/messaging/brands/{brandId}/appeal-evidence/{attachmentId} Delete a previously-uploaded evidence file #

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-brands-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-brands-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Teliax Messaging Brands API
  version: v1
  contact:
    name: Ringer API Support
    url: https://ringer.tel
    email: api-support@ringer.tel
  description: 'Operations tagged Messaging Brands 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 Brands
  description: 10DLC brand registration and management
paths:
  /v1/messaging/brands/{brandId}:
    get:
      tags:
      - Messaging Brands
      summary: Get brand
      description: Get a specific 10DLC brand by ID
      operationId: getBrand
      parameters:
      - name: brandId
        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 Brands
      summary: Update brand
      description: Update an existing 10DLC brand
      operationId: updateBrand
      parameters:
      - name: brandId
        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/CreateBrandRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
    delete:
      tags:
      - Messaging Brands
      summary: Delete brand
      description: Delete a 10DLC brand (must have no campaigns)
      operationId: deleteBrand
      parameters:
      - name: brandId
        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/brands/{brandId}/revet:
    put:
      tags:
      - Messaging Brands
      summary: Resubmit brand for verification
      operationId: revet
      parameters:
      - name: brandId
        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/brands/{brandId}/application:
    put:
      tags:
      - Messaging Brands
      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 brand without rebuilding/forwarding a TCR update, unlike PUT /{brandId} which would push a destructive sparse update to TCR. For consumer (WARP) application binding during their link-table retirement backfill; see issue #371.'
      operationId: bindBrandApplication
      parameters:
      - name: brandId
        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/brands:
    get:
      tags:
      - Messaging Brands
      summary: List brands
      description: List all 10DLC brands for the authenticated customer. 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: listBrands
      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: 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 Brands
      summary: Create brand
      description: Register a new 10DLC brand with TCR
      operationId: createBrand
      parameters:
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBrandRequest'
        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/brands/{brandId}/vetting:
    post:
      tags:
      - Messaging Brands
      summary: Request external vetting for a brand
      operationId: submitVetting
      parameters:
      - name: brandId
        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/SubmitVettingRequest'
        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/brands/{brandId}/vetting/{vettingId}/appeal:
    post:
      tags:
      - Messaging Brands
      summary: Submit an appeal against an existing external vet
      operationId: appealVetting
      parameters:
      - name: brandId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: vettingId
        in: path
        required: true
        schema:
          type: string
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitVetAppealRequest'
        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/brands/{brandId}/vetting/import:
    post:
      tags:
      - Messaging Brands
      summary: Import an existing external vet
      operationId: importVetting
      parameters:
      - name: brandId
        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/ImportVettingRequest'
        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/brands/{brandId}/transfer:
    post:
      tags:
      - Messaging Brands
      summary: Transfer (re-home) a brand to another customer
      description: '#267: updates the owning customer_id on the brand AND all its campaigns in one transaction. TCR/CNP identifiers and approval state are untouched. Caller must be authorized for BOTH source and target customers.'
      operationId: transferBrand
      parameters:
      - name: brandId
        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/brands/{brandId}/cnp-register:
    post:
      tags:
      - Messaging Brands
      summary: Retry CNP registration
      description: Retry brand registration with the customer's connectivity partner (e.g., Sinch/Inteliquent)
      operationId: retryCnpRegistration_1
      parameters:
      - name: brandId
        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/brands/{brandId}/appeal:
    post:
      tags:
      - Messaging Brands
      summary: Submit an appeal against brand identity status
      operationId: appealIdentity
      parameters:
      - name: brandId
        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/SubmitIdentityAppealRequest'
        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/brands/{brandId}/appeal-evidence:
    post:
      tags:
      - Messaging Brands
      summary: Upload an evidence file for future brand appeals
      operationId: uploadEvidence
      parameters:
      - name: brandId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - file
              type: object
              properties:
                file:
                  type: string
                  format: binary
      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/brands/link:
    post:
      tags:
      - Messaging Brands
      summary: Link existing TCR brand
      description: Link an existing TCR brand to this customer's account
      operationId: linkBrand
      parameters:
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkBrandRequest'
        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/brands/vetting/providers:
    get:
      tags:
      - Messaging Brands
      summary: List TCR external vetting providers (cached 24h)
      operationId: listVettingProviders
      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/brands/lookup/{tcrBrandId}:
    get:
      tags:
      - Messaging Brands
      summary: Lookup brand from TCR
      description: Preview an existing TCR brand before linking
      operationId: lookupBrand
      parameters:
      - name: tcrBrandId
        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
  /v1/messaging/brands/appeal-categories/vet:
    get:
      tags:
      - Messaging Brands
      summary: List TCR external-vet appeal categories (cached 24h)
      operationId: listVetAppealCategories
      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/brands/appeal-categories/identity:
    get:
      tags:
      - Messaging Brands
      summary: List TCR brand-identity appeal categories (cached 24h)
      operationId: listIdentityAppealCategories
      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/brands/{brandId}/appeal-evidence/{attachmentId}:
    delete:
      tags:
      - Messaging Brands
      summary: Delete a previously-uploaded evidence file
      operationId: deleteEvidence
      parameters:
      - name: brandId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: attachmentId
        in: path
        required: true
        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
components:
  schemas:
    SubmitVettingRequest:
      required:
      - evpId
      - vettingClass
      type: object
      properties:
        evpId:
          type: string
        vettingClass:
          type: string
        additionalRequestPayload:
          type: string
    CreateBrandRequest:
      required:
      - displayName
      - entityType
      - legalName
      type: object
      properties:
        displayName:
          type: string
        legalName:
          type: string
        companyName:
          type: string
        entityType:
          type: string
        taxId:
          type: string
        vertical:
          type: string
        website:
          type: string
        brandRelationship:
          type: string
        country:
          type: string
        state:
          type: string
        city:
          type: string
        street:
          type: string
        postalCode:
          type: string
        primaryContactName:
          type: string
        primaryContactEmail:
          type: string
        primaryContactPhone:
          type: string
        stockExchange:
          type: string
        stockSymbol:
          type: string
        altBusinessId:
          type: string
        altBusinessIdType:
          type: string
        applicationId:
          type: string
        applicationMetadata:
          type: object
          additionalProperties:
            type: object
    LinkBrandRequest:
      required:
      - tcrBrandId
      type: object
      properties:
        tcrBrandId:
          type: string
    TransferRequest:
      type: object
      properties:
        toCustomerId:
          type: string
          format: uuid
    BindApplicationRequest:
      required:
      - applicationId
      type: object
      properties:
        applicationId:
          type: string
        applicationMetadata:
          type: object
          additionalProperties:
            type: object
    ImportVettingRequest:
      required:
      - evpId
      - vettingId
      type: object
      properties:
        evpId:
          type: string
        vettingId:
          type: string
        vettingToken:
          type: string
    SubmitIdentityAppealRequest:
      required:
      - appealCategories
      type: object
      properties:
        appealCategories:
          type: array
          items:
            type: string
        explanation:
          maxLength: 1024
          minLength: 0
          type: string
        attachmentUuids:
          type: array
          items:
            type: string
    SubmitVetAppealRequest:
      required:
      - appealCategories
      - evpId
      type: object
      properties:
        evpId:
          type: string
        appealCategories:
          type: array
          items:
            type: string
        explanation:
          maxLength: 1024
          minLength: 0
          type: string
        attachmentUuids:
          type: array
          items:
            type: string
  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