Skip to main content
POST
/
v1
/
phone
/
provision
curl -X POST https://api.usenaive.ai/v1/phone/provision \
  -H "Authorization: Bearer nv_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "ein": "12-3456789", "area_code": "415", "label": "Support" }'
{
  "phone": {
    "id": "phone-uuid",
    "e164": "+14155551234",
    "type": "local",
    "capabilities": { "voice": false, "sms_inbound": true, "sms_outbound": false, "mms": false },
    "status": "active"
  },
  "campaign": { "id": "campaign-uuid", "status": "created", "eta": "1-2 business days" },
  "credits_used": 50,
  "credits_remaining": 950
}
Provisions a US phone number via Surge and registers the carrier (10DLC) campaign. Requires a completed LLC formation for the subject. Returns 202 — the number is live for inbound SMS immediately; outbound SMS unlocks when the campaign is approved.

Request Body

ParameterTypeRequiredDescription
einstringYes*Company EIN / tax id (9 digits, e.g. "12-3456789"). *Required when this is the account’s first number (registers the carrier brand).
area_codestringNoPreferred US area code (3 digits, e.g. "415")
typestringNolocal (default) or toll_free
labelstringNoFriendly label for the number
agent_idstringNoAgent UUID to connect to the number on creation
curl -X POST https://api.usenaive.ai/v1/phone/provision \
  -H "Authorization: Bearer nv_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "ein": "12-3456789", "area_code": "415", "label": "Support" }'
{
  "phone": {
    "id": "phone-uuid",
    "e164": "+14155551234",
    "type": "local",
    "capabilities": { "voice": false, "sms_inbound": true, "sms_outbound": false, "mms": false },
    "status": "active"
  },
  "campaign": { "id": "campaign-uuid", "status": "created", "eta": "1-2 business days" },
  "credits_used": 50,
  "credits_remaining": 950
}

CLI

naive phone provision --area-code 415 --label "Support"

MCP

Tool: naive_phone_provision
{ "ein": "12-3456789", "area_code": "415", "type": "local", "label": "Support" }
May require approval. If the user’s Account Kit gates phone.provision, an agent (API-key) call returns 202 { "status": "pending_approval", "approval_id" } instead of provisioning. A human approves it via Approvals; the number is then provisioned on replay. See Approvals.