Import a number (SIP)

Bring a number you already own from another provider, connected over SIP. Not charged. The SIP credentials are stored for outbound calling and are never returned.

POST https://api.centerfy.ai/webhooks/inbound/phone-numbers/import

Headers

HeaderRequiredValueDescription
x-api-keyYesyour sub-account API key (cfy_…)Authenticates the request; or use Authorization: Bearer <key>.

Body parameters

NameTypeRequiredDefaultDescription
phone_numberstringYes—The number in E.164 format, e.g. +14155550123.
termination_uristringYes—Your SIP termination URI; 1–255 characters.
usernamestringYes—SIP username; 1–255 characters.
passwordstringYes—SIP password; 1–255 characters.
trunk_namestringNo—Label for the SIP trunk; max 100 characters. Defaults to Imported-<timestamp>.

Request body

{
  "phone_number": "+14155550142",
  "termination_uri": "sip.example.com",
  "username": "example-user",
  "password": "example-password",
  "trunk_name": "Main office line"
}

Example

curl -X POST "https://api.centerfy.ai/webhooks/inbound/phone-numbers/import" \
  -H "x-api-key: $CENTERFY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "phone_number": "+14155550142",
  "termination_uri": "sip.example.com",
  "username": "example-user",
  "password": "example-password",
  "trunk_name": "Main office line"
}'
import { CenterfyClient } from "@centerfy/sdk";

const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });

const result = await centerfy.phoneProvisioning.import({
  "phone_number": "+14155550142",
  "termination_uri": "sip.example.com",
  "username": "example-user",
  "password": "example-password",
  "trunk_name": "Main office line"
});
console.log(result);
centerfy phoneProvisioning import '{"phone_number":"+14155550142","termination_uri":"sip.example.com","username":"example-user","password":"example-password","trunk_name":"Main office line"}'

MCP tool: centerfy_phone_numbers_import (see MCP server)

Response

{
  "status": "success",
  "imported": true,
  "phone_number": {
    "id": "8e7d6c5b-4a39-4281-9706-5f4e3d2c1b0a",
    "phone_number": "+14155550142",
    "purchased": false,
    "agent_id": null,
    "is_active": true,
    "purchased_at": null,
    "next_billing_date": null
  }
}

Errors

  • 400 — if phone_number is not E.164 or the import request is invalid.
  • 403 — with current and max if the sub-account’s phone number limit is reached.
  • 409 — if the number already exists on the platform.
  • 502 — if the import failed.

Notes

Returns 201.

© 2026 Centerfy AI. All rights reserved.