Telnyx Reputation Phone Numbers API

Associate phone numbers with an enterprise for reputation monitoring and retrieve reputation scores

OpenAPI Specification

telnyx-reputation-phone-numbers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: support@telnyx.com
  description: Telnyx provides global communications and connectivity APIs for developers — including SIP trunking, programmable voice, SMS, MMS, WhatsApp Business Messaging, Call Control, Fax, Wireless (IoT & eSIM), Phone Numbers (DID provisioning & porting), Emergency Services, and Network APIs for private interconnects and edge connectivity. Build, scale, and manage voice, messaging, and data networks with Telnyx's carrier-grade global infrastructure and API-first platform.
  title: Telnyx Access Tokens Reputation Phone Numbers API
  version: 2.0.0
  x-endpoint-cost: light
servers:
- description: Version 2.0.0 of the Telnyx API
  url: https://api.telnyx.com/v2
security:
- bearerAuth: []
tags:
- description: Associate phone numbers with an enterprise for reputation monitoring and retrieve reputation scores
  name: Reputation Phone Numbers
paths:
  /enterprises/{enterprise_id}/reputation/numbers:
    get:
      description: 'List all phone numbers associated with an enterprise for Number Reputation monitoring.


        Returns phone numbers with their cached reputation data (if available). Supports pagination and filtering by phone number.'
      operationId: ListReputationNumbers
      parameters:
      - $ref: '#/components/parameters/EnterpriseId'
      - description: Page number (1-indexed)
        in: query
        name: page[number]
        schema:
          default: 1
          minimum: 1
          type: integer
      - description: Number of items per page
        in: query
        name: page[size]
        schema:
          default: 10
          maximum: 100
          minimum: 1
          type: integer
      - description: Filter by specific phone number (E.164 format)
        in: query
        name: phone_number
        schema:
          example: '+16035551234'
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReputationPhoneNumberListWithReputation'
          description: List of phone numbers with reputation data
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: List reputation phone numbers
      tags:
      - Reputation Phone Numbers
      x-latency-category: responsive
    post:
      description: 'Associate one or more phone numbers with an enterprise for Number Reputation monitoring.


        **Validations:**

        - Phone numbers must be in E.164 format (e.g., `+16035551234`)

        - Phone numbers must be in-service and belong to your account (verified via Warehouse)

        - Phone numbers must be US local numbers

        - Phone numbers cannot already be associated with any enterprise


        **Note:** This operation is atomic — if any number fails validation, the entire request fails.


        **Maximum:** 100 phone numbers per request.'
      operationId: AssociateReputationNumbers
      parameters:
      - $ref: '#/components/parameters/EnterpriseId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReputationPhoneNumberCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReputationPhoneNumberList'
          description: Phone numbers associated successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: Associate phone numbers for reputation
      tags:
      - Reputation Phone Numbers
      x-latency-category: responsive
  /enterprises/{enterprise_id}/reputation/numbers/{phone_number}:
    delete:
      description: 'Remove a phone number from Number Reputation monitoring for an enterprise.


        The number will no longer be tracked and reputation data will no longer be refreshed.'
      operationId: DisassociateReputationNumber
      parameters:
      - $ref: '#/components/parameters/EnterpriseId'
      - $ref: '#/components/parameters/PhoneNumber'
      responses:
        '204':
          description: Phone number disassociated successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: Disassociate a phone number
      tags:
      - Reputation Phone Numbers
      x-latency-category: responsive
    get:
      description: 'Get detailed reputation data for a specific phone number associated with an enterprise.


        **Query Parameters:**

        - `fresh` (default: `false`): When `true`, fetches fresh reputation data (incurs API cost). When `false`, returns cached data. If no cached data exists, fresh data is automatically fetched.


        **Returns:**

        - `spam_risk`: Overall spam risk level (`low`, `medium`, `high`)

        - `spam_category`: Spam category classification

        - `maturity_score`: Maturity metric (0–100)

        - `connection_score`: Connection quality metric (0–100)

        - `engagement_score`: Engagement metric (0–100)

        - `sentiment_score`: Sentiment metric (0–100)

        - `last_refreshed_at`: Timestamp of last data refresh'
      operationId: GetPhoneNumberReputation
      parameters:
      - $ref: '#/components/parameters/EnterpriseId'
      - $ref: '#/components/parameters/PhoneNumber'
      - description: When true, fetches fresh reputation data (incurs API cost). When false, returns cached data.
        in: query
        name: fresh
        schema:
          default: false
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReputationPhoneNumberWithReputation'
          description: Phone number reputation data
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/branded-calling_ErrorResponse'
          description: Enterprise is not approved for reputation tracking
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/branded-calling_ErrorResponse'
          description: Phone number is not associated with this enterprise
      summary: Get reputation data for a phone number
      tags:
      - Reputation Phone Numbers
      x-latency-category: responsive
  /reputation/numbers:
    get:
      description: 'List all phone numbers enrolled in Number Reputation monitoring for your account. This is a simplified endpoint that does not require an `enterprise_id` — it returns numbers across all your enterprises.


        Supports pagination and filtering by phone number.'
      operationId: ListReputationNumbersSimplified
      parameters:
      - description: Page number (1-indexed)
        in: query
        name: page[number]
        schema:
          default: 1
          minimum: 1
          type: integer
      - description: Number of items per page
        in: query
        name: page[size]
        schema:
          default: 10
          maximum: 100
          minimum: 1
          type: integer
      - description: Filter by specific phone number (E.164 format)
        in: query
        name: phone_number
        schema:
          example: '+16035551234'
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReputationPhoneNumberListWithReputation'
          description: List of phone numbers with reputation data
        '401':
          $ref: '#/components/responses/Unauthorized'
      summary: List reputation phone numbers (simplified)
      tags:
      - Reputation Phone Numbers
      x-latency-category: responsive
  /reputation/numbers/{phone_number}:
    delete:
      description: Remove a phone number from Number Reputation monitoring without requiring an `enterprise_id`.
      operationId: DisassociateReputationNumberSimplified
      parameters:
      - $ref: '#/components/parameters/PhoneNumber'
      responses:
        '204':
          description: Phone number disassociated successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: Disassociate a phone number (simplified)
      tags:
      - Reputation Phone Numbers
      x-latency-category: responsive
    get:
      description: 'Get reputation data for a specific phone number without requiring an `enterprise_id`.


        Same response as the enterprise-scoped endpoint. Uses cached data by default.'
      operationId: GetPhoneNumberReputationSimplified
      parameters:
      - $ref: '#/components/parameters/PhoneNumber'
      - description: When true, fetches fresh reputation data (incurs API cost). When false, returns cached data.
        in: query
        name: fresh
        schema:
          default: false
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReputationPhoneNumberWithReputation'
          description: Phone number reputation data
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: Get reputation data for a phone number (simplified)
      tags:
      - Reputation Phone Numbers
      x-latency-category: responsive
components:
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/branded-calling_ErrorResponse'
      description: Bad request — invalid input or validation error
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/branded-calling_ErrorResponse'
      description: Unauthorized — missing or invalid API key
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/branded-calling_ErrorResponse'
      description: Resource not found
  parameters:
    EnterpriseId:
      description: Unique identifier of the enterprise (UUID)
      in: path
      name: enterprise_id
      required: true
      schema:
        example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
        format: uuid
        type: string
    PhoneNumber:
      description: Phone number in E.164 format
      in: path
      name: phone_number
      required: true
      schema:
        example: '+16035551234'
        type: string
  schemas:
    ReputationPhoneNumberWithReputation:
      properties:
        data:
          $ref: '#/components/schemas/ReputationPhoneNumberWithReputationData'
      type: object
    MetaInfo:
      properties:
        page_number:
          description: Current page number
          type: integer
        page_size:
          description: Items per page
          type: integer
        total_pages:
          description: Total number of pages
          type: integer
        total_results:
          description: Total number of results
          type: integer
      type: object
    branded-calling_ErrorResponse:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/TelnyxError'
          type: array
      type: object
    ReputationPhoneNumberListWithReputation:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ReputationPhoneNumberWithReputationData'
          type: array
        meta:
          $ref: '#/components/schemas/MetaInfo'
      type: object
    ReputationPhoneNumberList:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ReputationPhoneNumberPublic'
          type: array
        meta:
          $ref: '#/components/schemas/MetaInfo'
      type: object
    ReputationPhoneNumberCreate:
      properties:
        phone_numbers:
          description: List of phone numbers to associate for reputation monitoring (max 100)
          items:
            description: Phone number in E.164 format
            example: '+16035551234'
            type: string
          maxItems: 100
          minItems: 1
          type: array
      required:
      - phone_numbers
      type: object
    ReputationPhoneNumberPublic:
      properties:
        created_at:
          description: When the number was associated
          format: date-time
          type: string
        enterprise_id:
          description: ID of the associated enterprise
          format: uuid
          type: string
        id:
          description: Unique identifier
          format: uuid
          type: string
        phone_number:
          description: Phone number in E.164 format
          example: '+16035551234'
          type: string
        updated_at:
          description: When the record was last updated
          format: date-time
          type: string
      type: object
    TelnyxError:
      properties:
        code:
          description: Telnyx error code
          example: '10015'
          type: string
        detail:
          description: Human-readable error detail
          example: User has already agreed to Terms of Service version v1.0.0
          type: string
        meta:
          properties:
            url:
              description: Link to error documentation
              format: uri
              type: string
          type: object
        source:
          description: Reference to the field that caused the error
          properties:
            pointer:
              description: JSON pointer (RFC6901) to the field that caused the error
              example: /body/organization_type
              type: string
          type: object
        title:
          description: Short error title
          example: Bad Request
          type: string
      required:
      - code
      - title
      type: object
    ReputationPhoneNumberWithReputationData:
      allOf:
      - $ref: '#/components/schemas/ReputationPhoneNumberPublic'
      - properties:
          reputation_data:
            description: Reputation metrics (null if not yet fetched)
            oneOf:
            - $ref: '#/components/schemas/ReputationData'
            - nullable: true
              type: object
        type: object
    ReputationData:
      description: Reputation metrics
      properties:
        connection_score:
          description: Connection quality metric (0–100)
          maximum: 100
          minimum: 0
          nullable: true
          type: integer
        engagement_score:
          description: Engagement metric (0–100). Higher = more positive engagement
          maximum: 100
          minimum: 0
          nullable: true
          type: integer
        last_refreshed_at:
          description: Timestamp of the last reputation data refresh
          format: date-time
          nullable: true
          type: string
        maturity_score:
          description: Maturity metric (0–100). Higher = more established number
          maximum: 100
          minimum: 0
          nullable: true
          type: integer
        sentiment_score:
          description: Sentiment metric (0–100). Higher = more positive sentiment
          maximum: 100
          minimum: 0
          nullable: true
          type: integer
        spam_category:
          description: Spam category classification (e.g., Telemarketing, Debt Collector)
          nullable: true
          type: string
        spam_risk:
          description: Overall spam risk level
          enum:
          - low
          - medium
          - high
          nullable: true
          type: string
      type: object
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    branded-calling_bearerAuth:
      description: API key passed as a Bearer token in the Authorization header
      scheme: bearer
      type: http
    oauthClientAuth:
      description: OAuth 2.0 authentication for Telnyx API and MCP integrations
      flows:
        authorizationCode:
          authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
          refreshUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
        clientCredentials:
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
      type: oauth2
    outbound-voice-profiles_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
    pronunciation-dicts_bearerAuth:
      description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
      scheme: bearer
      type: http
    stored-payment-transactions_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http