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

# Submit phone numbers for reputation remediation

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

Submit a batch of phone numbers belonging to this enterprise for reputation remediation. The request is accepted asynchronously: this endpoint returns `202` with the persisted request id, then the request transitions through processing states until completion. Use the GET endpoints to poll status and per-number results.

Each phone number must be in E.164 format and belong to this enterprise. A number that already has an in-flight remediation request is rejected.

## Path parameters

- `enterprise_id` string, uuid, required

## Request body

- RemediationRequestCreate
  - `phone_numbers` string[], required — Phone numbers in E.164 format. Each must belong to this enterprise. Maximum 2,000 per request.
  - `call_purpose` string, required — How the numbers are used (free text).
  - `contact_email` string, email — Optional contact email for this remediation request.
  - `webhook_url` string, uri — Optional https:// URL for status notifications.

## Response `202`

Remediation request accepted and persisted.

- RemediationRequestWrapped
  - `data` RemediationRequest, required — Full detail of a remediation request, returned on submit and GET by id.
    - `id` string, uuid, required
    - `status` 'pending' | 'in_progress' | 'completed' | 'failed' | 'cancelled', required — Customer-facing status of a remediation request.
    - `phone_numbers_count` integer, required — Total phone numbers in this batch, including any later cancelled. May exceed the sum of the per-category result buckets, which omit cancelled numbers.
    - `phone_numbers_submitted` integer, required — Numbers accepted for remediation, i.e. not rejected as ineligible. Counts numbers still queued (pending) as well as processed ones.
    - `phone_numbers_ineligible` integer, required — Numbers rejected before submission (e.g. cooldown).
    - `call_purpose` string, required
    - `contact_email` string, email, nullable
    - `webhook_url` string, uri, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `tier1_completed_at` string, date-time, nullable
    - `tier2_completed_at` string, date-time, nullable
    - `results` RemediationPerNumberResults — Per-category buckets of phone numbers, populated once results are available. Empty lists are kept (not omitted) so consumers can iterate without null-checking each key.
      - `remediated` string[]
      - `not_flagged` string[]
      - `requires_review` string[]
      - `ineligible` string[]
      - `refused` string[]

## 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.
- `409` — An error occurred. The response carries the standard Telnyx error envelope.
- `422` — An error occurred. The response carries the standard Telnyx error envelope.

---

[API](https://skmtc.net/team-telnyx/apis/telnyx-api.md) · [All operations](https://skmtc.net/team-telnyx/apis/telnyx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api/revisions/e32d46c5945b/schema)
