---
title: "Register phone numbers for reputation monitoring"
method: POST
path: "/enterprises/{enterprise_id}/reputation/numbers"
tags: ["Reputation"]
---

# Register phone numbers for reputation monitoring

`POST /enterprises/{enterprise_id}/reputation/numbers`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers`
- Auth: HTTP bearer

Add up to 100 phone numbers to reputation monitoring on this enterprise. Each must be in E.164 format (`+1NPANXXXXXX` for US/CA). A number in your Telnyx phone-number inventory is accepted as `source: telnyx`; a number that is not is treated as hosted with another provider and must meet the requirements below.

**Prerequisite**: reputation must already be enabled on this enterprise (see `POST .../reputation`).

**Pricing:** This is a billable action. See https://telnyx.com/pricing/numbers for current pricing.

A phone number that is not in your Telnyx inventory is treated as a number hosted with another provider (`source: external`). It must be a US local number, and the enterprise's ownership proof must be approved first (`POST /enterprises/{enterprise_id}/reputation/external_verification`); otherwise the request fails with a 400 whose `detail` contains `external_verification_required`. Ownership of such numbers is checked every day.

## Path parameters

- `enterprise_id` string, uuid, required

## Request body

- ReputationPhoneNumberCreate
  - `phone_numbers` string[], required: 1–100 phone numbers in E.164 format with a leading `+`.

## Response `201`

Numbers registered.

- ReputationPhoneNumberList
  - `data` ReputationPhoneNumber[], required
    - `id` string, uuid
    - `enterprise_id` string, uuid
    - `phone_number` string: E.164 with leading `+`.
    - `source` 'telnyx' | 'external': Where the phone number is hosted. `telnyx`: in your Telnyx inventory. `external`: a number you own that is hosted with another provider.
    - `ownership_status` 'verified' | 'flagged' | 'pending_confirmation' | 'removed': Result of ongoing ownership checks. `verified`: the number is with the carrier on record. `pending_confirmation`: the number's carrier changed, or a periodic ownership re-verification is due; confirm you still own it before `confirm_by`. `flagged`: a periodic re-verification went unanswered; the number stays monitored and is not removed, but confirm ownership (`POST .../ownership_confirm`) to return it to `verified`. `removed`: the number is no longer monitored; returned by `POST .../ownership_confirm` with `still_own: false`, and when listing numbers with `filter[ownership_status]=removed`.
    - `flag_reason` string, nullable: Why the number's ownership was flagged. `carrier_changed` when an ownership check found the number with a different carrier.
    - `confirm_by` string, date-time, nullable: Deadline to confirm you still own the number. Set only while `ownership_status` is `pending_confirmation`.
    - `removed_at` string, date-time, nullable: When the number was removed. Set only for removed numbers.
    - `removal_reason` 'ported_away' | 'unconfirmed_ownership' | 'reassigned' | 'customer_reported' | 'customer_removed': Why a number was removed. `ported_away`: you confirmed the number left your control after a carrier change. `unconfirmed_ownership`: a carrier change was not confirmed before the deadline. `reassigned`: the number was reported as permanently disconnected. `customer_reported`: you reported that you no longer own the number. `customer_removed`: you removed the number.
    - `reputation_data` ReputationData: Reputation snapshot for a phone number. Each metric is a 0–100 score; `spam_risk` is a coarse bucket. Field set may grow over time - read by key.
      - `spam_risk` 'low' | 'medium' | 'high' | 'null', nullable: Overall spam-risk classification.
      - `spam_category` string, nullable: Category label from the reputation feed when the number is flagged.
      - `maturity_score` integer, nullable
      - `connection_score` integer, nullable
      - `engagement_score` integer, nullable
      - `sentiment_score` integer, nullable
      - `last_refreshed_at` string, date-time, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `meta` NumberReputationPaginationMeta, required: JSON:API pagination metadata returned with every paginated list response. Page numbering is 1-based. `page_size` reports the number of items actually returned in `data` for this page; the requested size is taken from the `page[size]` query parameter.
    - `total_pages` integer, required: Total number of pages available given the current `page_size`.
    - `total_results` integer, required: Total number of items across all pages (excludes soft-deleted rows).
    - `page_number` integer, required: 1-based index of this page. Echoes the `page[number]` query parameter (default `1`).
    - `page_size` integer, required: Number of items returned in this page's `data` array. Capped at 250.

## Other responses

- `400`: An error occurred. The response carries the standard Telnyx error envelope.
- `401`: An error occurred. The response carries the standard Telnyx error envelope.
- `404`: An error occurred. The response carries the standard Telnyx error envelope.
- `503`: An error occurred. The response carries the standard Telnyx error envelope.

## Changes

- **2026-10-15** `a72569d69430`: 1 breaking, 7 warning, 8 info
  - the `data/items/reputation_data` response's property type changed from `object` to no type for status `201`
  - removed the optional property `data/items/reputation_data/connection_score` from the response with the `201` status
  - removed the optional property `data/items/reputation_data/engagement_score` from the response with the `201` status
  - removed the optional property `data/items/reputation_data/last_refreshed_at` from the response with the `201` status
  - …12 more
- **2026-06-05** `8a8c40f458c5`: 37 info
  - api operation id `AssociateReputationNumbers` removed and replaced with `associateReputationNumbers`
  - api tag `Reputation` added
  - api tag `Reputation Phone Numbers` removed
  - added the optional property `data/items/reputation_data` to the response with the `201` status
  - …33 more

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api/changes/enterprises/:enterprise_id/reputation/numbers/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api/revisions/2804b761d067?raw)
