Skip to main content
POST
/
phone
/
create
Create Phone
curl --request POST \
  --url https://server.sellagent.ai/api/phone/create \
  --header 'Content-Type: <content-type>' \
  --header 'x-api-key: <x-api-key>' \
  --data '
{
  "phoneNumber": "<string>",
  "terminationUri": "<string>",
  "nickName": "<string>",
  "trunkUsername": "<string>",
  "trunkPassword": "<string>"
}
'
import requests

url = "https://server.sellagent.ai/api/phone/create"

payload = {
"phoneNumber": "<string>",
"terminationUri": "<string>",
"nickName": "<string>",
"trunkUsername": "<string>",
"trunkPassword": "<string>"
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "<content-type>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
phoneNumber: '<string>',
terminationUri: '<string>',
nickName: '<string>',
trunkUsername: '<string>',
trunkPassword: '<string>'
})
};

fetch('https://server.sellagent.ai/api/phone/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://server.sellagent.ai/api/phone/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '<string>',
'terminationUri' => '<string>',
'nickName' => '<string>',
'trunkUsername' => '<string>',
'trunkPassword' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: <content-type>",
"x-api-key: <x-api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://server.sellagent.ai/api/phone/create"

payload := strings.NewReader("{\n \"phoneNumber\": \"<string>\",\n \"terminationUri\": \"<string>\",\n \"nickName\": \"<string>\",\n \"trunkUsername\": \"<string>\",\n \"trunkPassword\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "<content-type>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://server.sellagent.ai/api/phone/create")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "<content-type>")
.body("{\n \"phoneNumber\": \"<string>\",\n \"terminationUri\": \"<string>\",\n \"nickName\": \"<string>\",\n \"trunkUsername\": \"<string>\",\n \"trunkPassword\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://server.sellagent.ai/api/phone/create")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"phoneNumber\": \"<string>\",\n \"terminationUri\": \"<string>\",\n \"nickName\": \"<string>\",\n \"trunkUsername\": \"<string>\",\n \"trunkPassword\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "_id": "685bb187dc7279fb63ed11d",
  "phoneNumber": "+17245868135",
  "userId": "6855d390cadc9740fe720a",
  "workspaceId": "685846b162e555e53cd3ae",
  "terminationUri": "sell-agent.pstn.twilio.com",
  "nickName": "production",
  "outboundTrunk": "ST_B7t6CbWDG6G",
  "inboundTrunk": "ST_2FKEA6i8392",
  "createdAt": "2025-06-25T08:21:27.806Z",
  "updatedAt": "2025-06-25T08:34:28.172Z",
  "__v": 0,
  "inboundAgentId": {
    "_id": "6855717a08af648abd4a69",
    "name": "SellAgent Cold Calling Agent",
    "type": "Single Prompt"
  },
  "outboundAgentId": {
    "_id": "6855717a08af648abd4a6964",
    "name": "SellAgent Cold Calling Agent",
    "type": "Single Prompt"
  }
}
{
"status": "error",
"message": "Invalid request format, please check API reference."
}
{
"status": "error",
"message": "API key is missing or invalid."
}
{
"status": "error",
"message": "An unexpected server error occurred."
}

Headers

x-api-key
string
required

Your API key for authentication

Content-Type
enum<string>
required

Must be application/json

Available options:
application/json
x-workspace-id
string

Optional workspace ID (defaults to user's current workspace)

Body

application/json
phoneNumber
string
required

The phone number to register

terminationUri
string
required

The SIP termination URI

nickName
string

A custom label for the number

trunkUsername
string

Optional SIP username for the trunk

trunkPassword
string

Optional SIP password for the trunk

Response

Phone number successfully created

_id
string
required

Unique ID of the phone record

Example:

"685bb187dc7279fb63ed11d"

phoneNumber
string
required

The actual phone number

Example:

"+17245868135"

userId
string

ID of the user who owns the phone

Example:

"6855d390cadc9740fe720a"

workspaceId
string

Workspace associated with this phone number

Example:

"685846b162e555e53cd3ae"

terminationUri
string

SIP termination URI

Example:

"sell-agent.pstn.twilio.com"

nickName
string

Nickname for the phone number

Example:

"production"

outboundTrunk
string

Outbound trunk identifier

Example:

"ST_B7t6CbWDG6G"

inboundTrunk
string

Inbound trunk identifier

Example:

"ST_2FKEA6i8392"

createdAt
string<date-time>

Date and time when the phone record was created

Example:

"2025-06-25T08:21:27.806Z"

updatedAt
string<date-time>

Date and time when the phone record was last updated

Example:

"2025-06-25T08:34:28.172Z"

__v
integer

Document version key

Example:

0

inboundAgentId
object

Inbound agent details

outboundAgentId
object

Outbound agent details