Teliax Messaging NNID Hold API

Per-SPID NNID hold policy, collision-safe backfill, and overwrite findings (#245)

Operations 7

PUT /v1/messaging/nnid-hold/policies/{spid} Set NNID hold policy #
POST /v1/messaging/nnid-hold/reclaim Reclaim TN(s) to the SPID's hold NNID #
POST /v1/messaging/nnid-hold/policies/{spid}/backfill Commit hold backfill #
POST /v1/messaging/nnid-hold/policies/{spid}/backfill/preview Preview hold backfill #
POST /v1/messaging/nnid-hold/findings/{id}/resolve Resolve an NNID overwrite finding #
GET /v1/messaging/nnid-hold/policies List NNID hold policies #
GET /v1/messaging/nnid-hold/findings List NNID overwrite findings #

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-nnid-hold-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-nnid-hold-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Teliax Messaging NNID Hold API
  version: v1
  contact:
    name: Ringer API Support
    url: https://ringer.tel
    email: api-support@ringer.tel
  description: 'Operations tagged Messaging NNID Hold 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 NNID Hold
  description: Per-SPID NNID hold policy, collision-safe backfill, and overwrite findings (#245)
paths:
  /v1/messaging/nnid-hold/policies/{spid}:
    put:
      tags:
      - Messaging NNID Hold
      summary: Set NNID hold policy
      description: Enable/disable the hold policy for a SPID and set its hold NNID (upserts)
      operationId: setPolicy
      parameters:
      - name: spid
        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/NnidHoldPolicyRequest'
        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/nnid-hold/reclaim:
    post:
      tags:
      - Messaging NNID Hold
      summary: Reclaim TN(s) to the SPID's hold NNID
      description: Single-entry SET_NNID push of the given TN(s) back to the caller's configured hold NNID via the existing durable nnSR pipeline (spec §C3). The current holder then has the standard 48h nnSR window to reject before it auto-approves.
      operationId: reclaim
      parameters:
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NnidHoldReclaimRequest'
      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/nnid-hold/policies/{spid}/backfill:
    post:
      tags:
      - Messaging NNID Hold
      summary: Commit hold backfill
      description: Push the eligible TNs to the hold NNID via the durable nnSR pipeline. Requires collisionRiskAcknowledged=true.
      operationId: commitBackfill
      parameters:
      - name: spid
        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/NnidHoldBackfillRequest'
      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/nnid-hold/policies/{spid}/backfill/preview:
    post:
      tags:
      - Messaging NNID Hold
      summary: Preview hold backfill
      description: Preview the TNs a hold backfill would touch, plus exclusions and collision warnings
      operationId: previewBackfill
      parameters:
      - name: spid
        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
  /v1/messaging/nnid-hold/findings/{id}/resolve:
    post:
      tags:
      - Messaging NNID Hold
      summary: Resolve an NNID overwrite finding
      description: Marks an OPEN finding RESOLVED (e.g. after manual review or action taken outside this queue). Does not itself push anything to nnSR — pair with the reclaim endpoint below when the resolution IS a reclaim.
      operationId: resolveFinding
      parameters:
      - name: id
        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/NnidFindingResolveRequest'
      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/nnid-hold/policies:
    get:
      tags:
      - Messaging NNID Hold
      summary: List NNID hold policies
      description: List all per-SPID NNID hold policies for the customer
      operationId: listPolicies
      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/nnid-hold/findings:
    get:
      tags:
      - Messaging NNID Hold
      summary: List NNID overwrite findings
      description: List backfill/enrichment overwrite findings for the customer, filtered by status
      operationId: listFindings
      parameters:
      - name: status
        in: query
        required: false
        schema:
          type: string
          default: OPEN
      - 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:
    NnidHoldReclaimRequest:
      type: object
      properties:
        tns:
          type: array
          items:
            type: string
    NnidFindingResolveRequest:
      type: object
      properties:
        note:
          type: string
    NnidHoldBackfillRequest:
      type: object
      properties:
        collisionRiskAcknowledged:
          type: boolean
    NnidHoldPolicyRequest:
      required:
      - holdNnid
      type: object
      properties:
        enabled:
          type: boolean
        holdNnid:
          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