# Start a carrier registration

Starts a carrier registration.

```http
POST https://api.pozy.ai/v1/sms/registrations
```

- Area: Messaging / SMS
- Auth: Authorization: Bearer pz_live_...
- Not available yet: calls return 403 feature_not_available

## Request body

Content type: `application/json`

- `registrationType`, string, required: One of `standard_10dlc`, `sole_prop_10dlc`, `toll_free`
- `phoneNumbers`, array of string
- `brand`, object
  - `entityType`, string, required: One of `PRIVATE_PROFIT`, `PUBLIC_PROFIT`, `NON_PROFIT`, `GOVERNMENT`, `SOLE_PROPRIETOR`
  - `displayName`, string, required
  - `companyName`, string
  - `ein`, string
  - `phone`, string
  - `mobilePhone`, string
  - `street`, string, required
  - `city`, string, required
  - `state`, string, required
  - `postalCode`, string, required
  - `country`, string, required: 2 to 2 characters
  - `email`, string (email)
  - `website`, string, required
  - `vertical`, string, required: One of `AGRICULTURE`, `COMMUNICATION`, `CONSTRUCTION`, `EDUCATION`, `ENERGY`, `ENTERTAINMENT`, `FINANCIAL`, `GAMBLING`, `GOVERNMENT`, `HEALTHCARE`, `HOSPITALITY`, `HUMAN_RESOURCES`, `INSURANCE`, `LEGAL`, `MANUFACTURING`, `NGO`, `POLITICAL`, `POSTAL`, `PROFESSIONAL`, `REAL_ESTATE`, `RETAIL`, `TECHNOLOGY`, `TRANSPORTATION`
  - `stockSymbol`, string
- `campaign`, object
  - `usecase`, string, required
  - `subUsecases`, array of string: At least 2 items. Up to 5 items. Each item: one of `2FA`, `ACCOUNT_NOTIFICATION`, `CUSTOMER_CARE`, `DELIVERY_NOTIFICATION`, `FRAUD_ALERT`, `HIGHER_EDUCATION`, `MARKETING`, `POLLING_VOTING`, `PUBLIC_SERVICE_ANNOUNCEMENT`, `SECURITY_ALERT`
  - `description`, string, required: 40 to 4096 characters
  - `messageFlow`, string, required: 40 to 2048 characters
  - `sample1`, string, required: At least 20 characters
  - `sample2`, string, required: At least 20 characters
  - `helpMessage`, string: 20 to 320 characters
  - `optinKeywords`, string, required
  - `optinMessage`, string: 20 to 320 characters
  - `optoutKeywords`, string, required
  - `optoutMessage`, string: 20 to 320 characters
  - `helpKeywords`, string, required
  - `embeddedLink`, boolean
  - `embeddedPhone`, boolean
  - `numberPool`, boolean
  - `ageGated`, boolean
  - `directLending`, boolean
  - `privacyPolicyLink`, string
  - `termsAndConditionsLink`, string
- `messagingBrandName`, string: 2 to 60 characters
- `wizardValues`, map of string
- `resubmitRequestId`, string
- `tollFree`, object
  - `businessName`, string, required
  - `corporateWebsite`, string (URL), required
  - `phoneNumbers`, array of string, required: At least 1 item
  - `useCase`, string, required
  - `useCaseSummary`, string, required
  - `productionMessageContent`, string, required
  - `optInWorkflow`, string, required: Up to 500 characters
  - `optInWorkflowImageUrls`, array of string (URL), required: At least 1 item
  - `messageVolume`, string, required: One of `10`, `100`, `1,000`, `10,000`, `100,000`, `250,000`, `500,000`, `750,000`, `1,000,000`, `5,000,000`, `10,000,000+`
  - `additionalInformation`, string, required
  - `businessAddr1`, string, required
  - `businessAddr2`, string
  - `businessCity`, string, required
  - `businessState`, string, required
  - `businessZip`, string, required
  - `businessContactFirstName`, string, required
  - `businessContactLastName`, string, required
  - `businessContactEmail`, string (email), required
  - `businessContactPhone`, string, required
  - `businessRegistrationNumber`, string, required
  - `businessRegistrationType`, string, required
  - `businessRegistrationCountry`, string, required

## Example request

```bash
curl -X POST "https://api.pozy.ai/v1/sms/registrations" \
  -H "Authorization: Bearer $POZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "registrationType": "standard_10dlc"
}'
```

```ts
const res = await fetch("https://api.pozy.ai/v1/sms/registrations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.POZY_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    registrationType: "standard_10dlc"
  }),
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);
```

```python
import os
import requests

resp = requests.post(
    "https://api.pozy.ai/v1/sms/registrations",
    headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
    json={
        "registrationType": "standard_10dlc",
    },
    timeout=30,
)
resp.raise_for_status()
print(resp.json())
```

## Response 200

- `registrationId`, string
- `status`, string: One of `pending`
- `awaitingOtp`, boolean

```json
{
  "registrationId": "63860e5807731168163e54f0",
  "status": "pending",
  "awaitingOtp": true
}
```
