---
title: "Retry a campaign's number"
description: "Bring back the failed local number of an approved 10DLC campaign whose monthly fee is already committed: free, nothing new is bought. `POST /api/v1/sms/registrations/{id}/number`"
url: https://www.unitpost.com/docs/sms/post-sms-registrations-id-number
section: "SMS API reference"
updated: 2026-11-11
---
# Retry a campaign's number

`POST /api/v1/sms/registrations/{id}/number`

Bring back the failed local number of an approved 10DLC campaign whose monthly fee is already committed: free, nothing new is bought. A number nothing pays for yet is a purchase: `409 quote_required` ([Create an SMS purchase quote](https://www.unitpost.com/docs/sms/post-sms-quotes), product `ten_dlc_number`). A campaign whose number is live answers it (`created: false`). Takes an `Idempotency-Key`. Requires the `sms:manage` capability.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | — |
| `Idempotency-Key` | header | string | no | Any unique string (1–256 characters, e.g. a UUID). Retrying with the same key and the same body within 24 hours returns the first result instead of sending again; the same key with a different body is `409 invalid_idempotent_request`, and one still in flight is `409 concurrent_idempotent_requests`. |

## Response fields (200)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | string | yes | — |
| `registration_id` | string | yes | The 10DLC campaign (`sreg_…`). |
| `number_id` | string | yes | The number (`snum_…`): read its state on GET /sms/numbers. It leases within minutes. |
| `created` | boolean | yes | False when the campaign's number was already live: nothing was requested. |
| `retried` | boolean | yes | A failed number was brought back (the same row, the same committed fee). |

## Responses

| Status | Description |
| --- | --- |
| 200 | The campaign's live number (nothing requested). |
| 201 | The number was requested again. |
| 400 | The body isn't JSON. |
| 401 | Missing or invalid API key. |
| 403 | Insufficient scope, SMS isn't on this plan, the card is failing, or the account is under review. |
| 404 | Campaign registration not found, or SMS is not enabled. |
| 409 | The campaign isn't approved, or the number isn't paid for (`quote_required`). |
| 422 | An unknown key. |
| 429 | Too many carrier submissions; retry after the wait. |
| 502 | The provisioning service didn't answer; try again. |

## Example request

```bash
curl -X POST 'https://www.unitpost.com/api/v1/sms/registrations/123/number' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'User-Agent: my-app/1.0' \
  -H 'Content-Type: application/json' \
  -d '{ }'
```

## Example response (200)

```json
{
  "object": "sms_number_request",
  "registration_id": "registration_123",
  "number_id": "number_123",
  "created": false,
  "retried": false
}
```

## Links

- HTML reference (with Node.js, Python, Ruby, PHP, Laravel, Go, Java, Rust, .NET and CLI examples): https://www.unitpost.com/docs/sms/post-sms-registrations-id-number
- OpenAPI 3.1 (full schemas): https://www.unitpost.com/api/v1/openapi.json
