> For a complete page index, fetch https://docs.synthflow.ai/llms.txt. For full documentation content, fetch https://docs.synthflow.ai/llms-full.txt.

# Import phone number

POST https://api.synthflow.ai/v2/custom-numbers
Content-Type: application/json

Imports a custom phone number into your workspace. This is useful for direct SIP dialing scenarios where your telephony provider does not offer elastic SIP trunking. Set `uac_enabled` to true when your carrier or PBX requires outbound SIP REGISTER traffic, and optionally set `uac_register_expires` (60 to 3600 seconds, default 300). For IP-authenticated providers such as `zoom`, `ringcx`, `five9`, and `8x8`, `termination_uri` is filled automatically. For `8x8`, omit `phone_number` to have Synthflow generate the 12-digit identifier required for SIP routing.

Reference: https://docs.synthflow.ai/api-reference/platform-api/phone-numbers/create-custom-number

## Authentication

- `Authorization` header (bearer token, required)

## Servers

- `https://api.synthflow.ai/v2` (Global, default)
- `https://api.us.synthflow.ai/v2` (United States)
- `https://api.eu.synthflow.ai/v2` (European Union)

## Request

### Body (application/json)

- `workspace_id` (string, required) — The workspace ID to associate the phone number with.
- `phone_number` (string, optional) — The phone number to import. Required for most providers. For `provider_name=8x8`, omit this field to auto-generate the required 12-digit identifier (0-9 only). If supplied, it must contain only digits and be at least 12 digits long.
- `friendly_name` (string, optional) — A human-readable name for the phone number.
- `provider_name` (enum, optional) — Phone number provider. Use `8x8` for 8x8 Contact Center (SIP domain `sip.8x8.com`), `zoom` for Zoom, `ringcx` for RingCX, `five9` for Five9, or omit/`custom` for a generic SIP trunk.
  - Allowed values: `twilio`, `telnyx`, `vonage`, `ring_central`, `ringcx`, `custom`, `zoom`, `five9`, `8x8`
- `trunk_username` (string, optional) — Optional SIP trunk username for authentication. Required when `uac_enabled` is true. Not used for `five9`, `ringcx`, or `zoom`.
- `trunk_pwd` (string, optional) — Optional SIP trunk password for authentication. Required when `uac_enabled` is true. Not used for `five9`, `ringcx`, or `zoom`.
- `termination_uri` (string, optional) — SIP domain or termination URI used for outbound calls (maps to `sip_term_uri`). Not required for `zoom`, `ringcx`, `five9`, or `8x8`, which set the SIP domain automatically.
- `sip_outbound_proxy` (string, optional) — Optional outbound proxy used for outbound calls and SIP REGISTER requests. For `five9`, Synthflow sets the regional TLS proxy automatically when omitted.
- `sip_auth_username` (string, optional) — Optional auth username used for SIP REGISTER requests when it differs from `trunk_username`.
- `uac_enabled` (boolean, optional, default: false) — When true, Synthflow sends outbound SIP REGISTER traffic to your carrier or PBX so it can authenticate outbound calls. Requires `trunk_username` and `trunk_pwd`. Defaults to false.
- `uac_register_expires` (integer, optional, default: 300) — SIP registration refresh interval in seconds. Only used when `uac_enabled` is true (or for providers that register implicitly, such as RingCentral). Whole numbers only, between 60 and 3600. Defaults to 300.

## Response

### 200

200

- `status` (string, optional) — Whether the request was successful.
- `response` (object, optional)
  - `key` (string, optional) — Unique identifier for the custom phone number.
  - `phone_number` (string, optional) — The imported phone number.

## Examples

### Import Custom Number

**Request**

```json
{
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "+33782990580",
  "friendly_name": "My Custom Number",
  "provider_name": "custom",
  "termination_uri": "sip.example.com"
}
```

**Response**

```json
{
  "status": "ok",
  "response": {
    "key": "787f0c0e-fc83-41b1-bfbe-266727f611a4",
    "phone_number": "+33782990580"
  }
}
```

**SDK Code**

```python Import Custom Number
import requests

url = "https://api.synthflow.ai/v2/custom-numbers"

payload = {
    "workspace_id": "1710107690998x536152705164378100",
    "phone_number": "+33782990580",
    "friendly_name": "My Custom Number",
    "provider_name": "custom",
    "termination_uri": "sip.example.com"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```go Import Custom Number
package main

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

func main() {

	url := "https://api.synthflow.ai/v2/custom-numbers"

	payload := strings.NewReader("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+33782990580\",\n  \"friendly_name\": \"My Custom Number\",\n  \"provider_name\": \"custom\",\n  \"termination_uri\": \"sip.example.com\"\n}")

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

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Import Custom Number
require 'uri'
require 'net/http'

url = URI("https://api.synthflow.ai/v2/custom-numbers")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+33782990580\",\n  \"friendly_name\": \"My Custom Number\",\n  \"provider_name\": \"custom\",\n  \"termination_uri\": \"sip.example.com\"\n}"

response = http.request(request)
puts response.read_body
```

```java Import Custom Number
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.synthflow.ai/v2/custom-numbers")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+33782990580\",\n  \"friendly_name\": \"My Custom Number\",\n  \"provider_name\": \"custom\",\n  \"termination_uri\": \"sip.example.com\"\n}")
  .asString();
```

```csharp Import Custom Number
using RestSharp;

var client = new RestClient("https://api.synthflow.ai/v2/custom-numbers");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+33782990580\",\n  \"friendly_name\": \"My Custom Number\",\n  \"provider_name\": \"custom\",\n  \"termination_uri\": \"sip.example.com\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Import Custom Number
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "+33782990580",
  "friendly_name": "My Custom Number",
  "provider_name": "custom",
  "termination_uri": "sip.example.com"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.synthflow.ai/v2/custom-numbers")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Import Twilio Number

**Request**

```json
{
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "+14155550123",
  "friendly_name": "Twilio SIP",
  "provider_name": "twilio",
  "termination_uri": "your-trunk.pstn.twilio.com"
}
```

**Response**

```json
{
  "status": "ok",
  "response": {
    "key": "787f0c0e-fc83-41b1-bfbe-266727f611a4",
    "phone_number": "+14155550123"
  }
}
```

**SDK Code**

```python Import Twilio Number
import requests

url = "https://api.synthflow.ai/v2/custom-numbers"

payload = {
    "workspace_id": "1710107690998x536152705164378100",
    "phone_number": "+14155550123",
    "friendly_name": "Twilio SIP",
    "provider_name": "twilio",
    "termination_uri": "your-trunk.pstn.twilio.com"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```go Import Twilio Number
package main

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

func main() {

	url := "https://api.synthflow.ai/v2/custom-numbers"

	payload := strings.NewReader("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+14155550123\",\n  \"friendly_name\": \"Twilio SIP\",\n  \"provider_name\": \"twilio\",\n  \"termination_uri\": \"your-trunk.pstn.twilio.com\"\n}")

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

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Import Twilio Number
require 'uri'
require 'net/http'

url = URI("https://api.synthflow.ai/v2/custom-numbers")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+14155550123\",\n  \"friendly_name\": \"Twilio SIP\",\n  \"provider_name\": \"twilio\",\n  \"termination_uri\": \"your-trunk.pstn.twilio.com\"\n}"

response = http.request(request)
puts response.read_body
```

```java Import Twilio Number
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.synthflow.ai/v2/custom-numbers")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+14155550123\",\n  \"friendly_name\": \"Twilio SIP\",\n  \"provider_name\": \"twilio\",\n  \"termination_uri\": \"your-trunk.pstn.twilio.com\"\n}")
  .asString();
```

```csharp Import Twilio Number
using RestSharp;

var client = new RestClient("https://api.synthflow.ai/v2/custom-numbers");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+14155550123\",\n  \"friendly_name\": \"Twilio SIP\",\n  \"provider_name\": \"twilio\",\n  \"termination_uri\": \"your-trunk.pstn.twilio.com\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Import Twilio Number
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "+14155550123",
  "friendly_name": "Twilio SIP",
  "provider_name": "twilio",
  "termination_uri": "your-trunk.pstn.twilio.com"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.synthflow.ai/v2/custom-numbers")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Import RingCX Number

**Request**

```json
{
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "+15206414405",
  "friendly_name": "RingCX",
  "provider_name": "ringcx"
}
```

**Response**

```json
{
  "status": "ok",
  "response": {
    "key": "787f0c0e-fc83-41b1-bfbe-266727f611a4",
    "phone_number": "+15206414405"
  }
}
```

**SDK Code**

```python Import RingCX Number
import requests

url = "https://api.synthflow.ai/v2/custom-numbers"

payload = {
    "workspace_id": "1710107690998x536152705164378100",
    "phone_number": "+15206414405",
    "friendly_name": "RingCX",
    "provider_name": "ringcx"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```go Import RingCX Number
package main

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

func main() {

	url := "https://api.synthflow.ai/v2/custom-numbers"

	payload := strings.NewReader("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+15206414405\",\n  \"friendly_name\": \"RingCX\",\n  \"provider_name\": \"ringcx\"\n}")

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

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Import RingCX Number
require 'uri'
require 'net/http'

url = URI("https://api.synthflow.ai/v2/custom-numbers")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+15206414405\",\n  \"friendly_name\": \"RingCX\",\n  \"provider_name\": \"ringcx\"\n}"

response = http.request(request)
puts response.read_body
```

```java Import RingCX Number
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.synthflow.ai/v2/custom-numbers")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+15206414405\",\n  \"friendly_name\": \"RingCX\",\n  \"provider_name\": \"ringcx\"\n}")
  .asString();
```

```csharp Import RingCX Number
using RestSharp;

var client = new RestClient("https://api.synthflow.ai/v2/custom-numbers");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+15206414405\",\n  \"friendly_name\": \"RingCX\",\n  \"provider_name\": \"ringcx\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Import RingCX Number
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "+15206414405",
  "friendly_name": "RingCX",
  "provider_name": "ringcx"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.synthflow.ai/v2/custom-numbers")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Import Five9 Number

**Request**

```json
{
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "12015550123",
  "friendly_name": "Five9",
  "provider_name": "five9"
}
```

**Response**

```json
{
  "status": "ok",
  "response": {
    "key": "787f0c0e-fc83-41b1-bfbe-266727f611a4",
    "phone_number": "12015550123"
  }
}
```

**SDK Code**

```python Import Five9 Number
import requests

url = "https://api.synthflow.ai/v2/custom-numbers"

payload = {
    "workspace_id": "1710107690998x536152705164378100",
    "phone_number": "12015550123",
    "friendly_name": "Five9",
    "provider_name": "five9"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```go Import Five9 Number
package main

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

func main() {

	url := "https://api.synthflow.ai/v2/custom-numbers"

	payload := strings.NewReader("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"12015550123\",\n  \"friendly_name\": \"Five9\",\n  \"provider_name\": \"five9\"\n}")

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

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Import Five9 Number
require 'uri'
require 'net/http'

url = URI("https://api.synthflow.ai/v2/custom-numbers")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"12015550123\",\n  \"friendly_name\": \"Five9\",\n  \"provider_name\": \"five9\"\n}"

response = http.request(request)
puts response.read_body
```

```java Import Five9 Number
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.synthflow.ai/v2/custom-numbers")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"12015550123\",\n  \"friendly_name\": \"Five9\",\n  \"provider_name\": \"five9\"\n}")
  .asString();
```

```csharp Import Five9 Number
using RestSharp;

var client = new RestClient("https://api.synthflow.ai/v2/custom-numbers");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"12015550123\",\n  \"friendly_name\": \"Five9\",\n  \"provider_name\": \"five9\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Import Five9 Number
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "12015550123",
  "friendly_name": "Five9",
  "provider_name": "five9"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.synthflow.ai/v2/custom-numbers")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Import Custom Number with SIP registration

**Request**

```json
{
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "+12015550123",
  "friendly_name": "My Custom Trunk",
  "provider_name": "custom",
  "trunk_username": "user123",
  "trunk_pwd": "secret",
  "termination_uri": "sip.example.com",
  "sip_outbound_proxy": "proxy.provider.com:5060",
  "sip_auth_username": "auth-user123",
  "uac_enabled": true,
  "uac_register_expires": 300
}
```

**Response**

```json
{
  "status": "ok",
  "response": {
    "key": "787f0c0e-fc83-41b1-bfbe-266727f611a4",
    "phone_number": "+12015550123"
  }
}
```

**SDK Code**

```python Import Custom Number with SIP registration
import requests

url = "https://api.synthflow.ai/v2/custom-numbers"

payload = {
    "workspace_id": "1710107690998x536152705164378100",
    "phone_number": "+12015550123",
    "friendly_name": "My Custom Trunk",
    "provider_name": "custom",
    "trunk_username": "user123",
    "trunk_pwd": "secret",
    "termination_uri": "sip.example.com",
    "sip_outbound_proxy": "proxy.provider.com:5060",
    "sip_auth_username": "auth-user123",
    "uac_enabled": True,
    "uac_register_expires": 300
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```go Import Custom Number with SIP registration
package main

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

func main() {

	url := "https://api.synthflow.ai/v2/custom-numbers"

	payload := strings.NewReader("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+12015550123\",\n  \"friendly_name\": \"My Custom Trunk\",\n  \"provider_name\": \"custom\",\n  \"trunk_username\": \"user123\",\n  \"trunk_pwd\": \"secret\",\n  \"termination_uri\": \"sip.example.com\",\n  \"sip_outbound_proxy\": \"proxy.provider.com:5060\",\n  \"sip_auth_username\": \"auth-user123\",\n  \"uac_enabled\": true,\n  \"uac_register_expires\": 300\n}")

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

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Import Custom Number with SIP registration
require 'uri'
require 'net/http'

url = URI("https://api.synthflow.ai/v2/custom-numbers")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+12015550123\",\n  \"friendly_name\": \"My Custom Trunk\",\n  \"provider_name\": \"custom\",\n  \"trunk_username\": \"user123\",\n  \"trunk_pwd\": \"secret\",\n  \"termination_uri\": \"sip.example.com\",\n  \"sip_outbound_proxy\": \"proxy.provider.com:5060\",\n  \"sip_auth_username\": \"auth-user123\",\n  \"uac_enabled\": true,\n  \"uac_register_expires\": 300\n}"

response = http.request(request)
puts response.read_body
```

```java Import Custom Number with SIP registration
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.synthflow.ai/v2/custom-numbers")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+12015550123\",\n  \"friendly_name\": \"My Custom Trunk\",\n  \"provider_name\": \"custom\",\n  \"trunk_username\": \"user123\",\n  \"trunk_pwd\": \"secret\",\n  \"termination_uri\": \"sip.example.com\",\n  \"sip_outbound_proxy\": \"proxy.provider.com:5060\",\n  \"sip_auth_username\": \"auth-user123\",\n  \"uac_enabled\": true,\n  \"uac_register_expires\": 300\n}")
  .asString();
```

```csharp Import Custom Number with SIP registration
using RestSharp;

var client = new RestClient("https://api.synthflow.ai/v2/custom-numbers");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"phone_number\": \"+12015550123\",\n  \"friendly_name\": \"My Custom Trunk\",\n  \"provider_name\": \"custom\",\n  \"trunk_username\": \"user123\",\n  \"trunk_pwd\": \"secret\",\n  \"termination_uri\": \"sip.example.com\",\n  \"sip_outbound_proxy\": \"proxy.provider.com:5060\",\n  \"sip_auth_username\": \"auth-user123\",\n  \"uac_enabled\": true,\n  \"uac_register_expires\": 300\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Import Custom Number with SIP registration
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "workspace_id": "1710107690998x536152705164378100",
  "phone_number": "+12015550123",
  "friendly_name": "My Custom Trunk",
  "provider_name": "custom",
  "trunk_username": "user123",
  "trunk_pwd": "secret",
  "termination_uri": "sip.example.com",
  "sip_outbound_proxy": "proxy.provider.com:5060",
  "sip_auth_username": "auth-user123",
  "uac_enabled": true,
  "uac_register_expires": 300
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.synthflow.ai/v2/custom-numbers")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Import 8x8 Contact Center number

**Request**

```json
{
  "workspace_id": "1710107690998x536152705164378100",
  "friendly_name": "8x8 Contact Center",
  "provider_name": "8x8"
}
```

**Response**

```json
{
  "status": "ok",
  "response": {
    "key": "787f0c0e-fc83-41b1-bfbe-266727f611a4",
    "phone_number": "482917364058"
  }
}
```

**SDK Code**

```python Import 8x8 Contact Center number
import requests

url = "https://api.synthflow.ai/v2/custom-numbers"

payload = {
    "workspace_id": "1710107690998x536152705164378100",
    "friendly_name": "8x8 Contact Center",
    "provider_name": "8x8"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```go Import 8x8 Contact Center number
package main

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

func main() {

	url := "https://api.synthflow.ai/v2/custom-numbers"

	payload := strings.NewReader("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"friendly_name\": \"8x8 Contact Center\",\n  \"provider_name\": \"8x8\"\n}")

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

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Import 8x8 Contact Center number
require 'uri'
require 'net/http'

url = URI("https://api.synthflow.ai/v2/custom-numbers")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"friendly_name\": \"8x8 Contact Center\",\n  \"provider_name\": \"8x8\"\n}"

response = http.request(request)
puts response.read_body
```

```java Import 8x8 Contact Center number
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.synthflow.ai/v2/custom-numbers")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"friendly_name\": \"8x8 Contact Center\",\n  \"provider_name\": \"8x8\"\n}")
  .asString();
```

```csharp Import 8x8 Contact Center number
using RestSharp;

var client = new RestClient("https://api.synthflow.ai/v2/custom-numbers");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"workspace_id\": \"1710107690998x536152705164378100\",\n  \"friendly_name\": \"8x8 Contact Center\",\n  \"provider_name\": \"8x8\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Import 8x8 Contact Center number
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "workspace_id": "1710107690998x536152705164378100",
  "friendly_name": "8x8 Contact Center",
  "provider_name": "8x8"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.synthflow.ai/v2/custom-numbers")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```