---
title: "Ensure Carrier"
method: POST
path: "/v1/teams/{team_id}/phone/numbers/carrier"
tags: ["phone numbers"]
---

# Ensure Carrier

`POST /v1/teams/{team_id}/phone/numbers/carrier`

## Request

- Base URL: `https://api.stormy.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stormy.ai/v1/teams/{team_id}/phone/numbers/carrier`
- Auth: none declared

Attach this team's own carrier connection — no credentials in the ask.

Buying a number needed a carrier, and connecting a carrier had no verb, so a
fresh team dead-ended asking a human to paste an account id. Stormy owns the
carrier relationship; this lends it to the team, scoped by the caller's own
team access.

## Path parameters

- `team_id` string, uuid, required

## Query parameters

- `provider` 'telnyx', nullable

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

## Changes

> 70 revisions in range; 1 not diffed.

- **2026-09-15** `9db748966060`: 2 breaking
  - removed the enum value `telnyx` from the property `anyOf[subschema #1]/` of the `query` request parameter `provider`
  - removed the enum value `twilio` from the property `anyOf[subschema #1]/` of the `query` request parameter `provider`

[Operation history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/phone/numbers/carrier/post.md)

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/4d811ab18158?raw)
