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