Import Phone Number
curl --request POST \
--url https://api.ravan.ai/api/v1/phone-numbers/import/ \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"phone": "<string>",
"type": "<string>",
"name": "<string>",
"termination_uri": "<string>",
"sip_username": "<string>",
"sip_password": "<string>"
}
'import requests
url = "https://api.ravan.ai/api/v1/phone-numbers/import/"
payload = {
"phone": "<string>",
"type": "<string>",
"name": "<string>",
"termination_uri": "<string>",
"sip_username": "<string>",
"sip_password": "<string>"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
type: '<string>',
name: '<string>',
termination_uri: '<string>',
sip_username: '<string>',
sip_password: '<string>'
})
};
fetch('https://api.ravan.ai/api/v1/phone-numbers/import/', 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://api.ravan.ai/api/v1/phone-numbers/import/",
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([
'phone' => '<string>',
'type' => '<string>',
'name' => '<string>',
'termination_uri' => '<string>',
'sip_username' => '<string>',
'sip_password' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <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://api.ravan.ai/api/v1/phone-numbers/import/"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"type\": \"<string>\",\n \"name\": \"<string>\",\n \"termination_uri\": \"<string>\",\n \"sip_username\": \"<string>\",\n \"sip_password\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ravan.ai/api/v1/phone-numbers/import/")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"type\": \"<string>\",\n \"name\": \"<string>\",\n \"termination_uri\": \"<string>\",\n \"sip_username\": \"<string>\",\n \"sip_password\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/phone-numbers/import/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"type\": \"<string>\",\n \"name\": \"<string>\",\n \"termination_uri\": \"<string>\",\n \"sip_username\": \"<string>\",\n \"sip_password\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Request completed successfully",
"data": {
"id": "id_123",
"phone": "+14155550100",
"type": "twilio",
"name": "Support Bot",
"termination_uri": "sip:example@provider.com",
"sip_username": "sip-user",
"sip_password": "secret-password",
"status": "active",
"created_at": "2026-03-14T12:00:00Z"
}
}
Phone Number & Telephony API
Import Phone Number
Import Phone Number.
POST
/
api
/
v1
/
phone-numbers
/
import
/
Import Phone Number
curl --request POST \
--url https://api.ravan.ai/api/v1/phone-numbers/import/ \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"phone": "<string>",
"type": "<string>",
"name": "<string>",
"termination_uri": "<string>",
"sip_username": "<string>",
"sip_password": "<string>"
}
'import requests
url = "https://api.ravan.ai/api/v1/phone-numbers/import/"
payload = {
"phone": "<string>",
"type": "<string>",
"name": "<string>",
"termination_uri": "<string>",
"sip_username": "<string>",
"sip_password": "<string>"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
type: '<string>',
name: '<string>',
termination_uri: '<string>',
sip_username: '<string>',
sip_password: '<string>'
})
};
fetch('https://api.ravan.ai/api/v1/phone-numbers/import/', 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://api.ravan.ai/api/v1/phone-numbers/import/",
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([
'phone' => '<string>',
'type' => '<string>',
'name' => '<string>',
'termination_uri' => '<string>',
'sip_username' => '<string>',
'sip_password' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <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://api.ravan.ai/api/v1/phone-numbers/import/"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"type\": \"<string>\",\n \"name\": \"<string>\",\n \"termination_uri\": \"<string>\",\n \"sip_username\": \"<string>\",\n \"sip_password\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ravan.ai/api/v1/phone-numbers/import/")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"type\": \"<string>\",\n \"name\": \"<string>\",\n \"termination_uri\": \"<string>\",\n \"sip_username\": \"<string>\",\n \"sip_password\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/phone-numbers/import/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"type\": \"<string>\",\n \"name\": \"<string>\",\n \"termination_uri\": \"<string>\",\n \"sip_username\": \"<string>\",\n \"sip_password\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Request completed successfully",
"data": {
"id": "id_123",
"phone": "+14155550100",
"type": "twilio",
"name": "Support Bot",
"termination_uri": "sip:example@provider.com",
"sip_username": "sip-user",
"sip_password": "secret-password",
"status": "active",
"created_at": "2026-03-14T12:00:00Z"
}
}
Authorizations
string
required
Your Agni API key used to authenticate the request. Pass it in the
X-Api-Key header. Find or rotate it from your Ravan AI account settings.Body
string
The contact phone number in E.164 format. Example:
+14157774444.string
The imported number type. Use the value supported by your SIP or telephony setup.
string
The internal name of the resource. Use a clear name that your team can recognize in the dashboard and API responses.
string
The SIP termination URI for routing calls to the imported number.
string
The SIP username for the imported number.
string
The SIP password for the imported number. Treat this value as sensitive.
Response
boolean
Whether the request succeeded.
string
Human-readable status message.
object
{
"success": true,
"message": "Request completed successfully",
"data": {
"id": "id_123",
"phone": "+14155550100",
"type": "twilio",
"name": "Support Bot",
"termination_uri": "sip:example@provider.com",
"sip_username": "sip-user",
"sip_password": "secret-password",
"status": "active",
"created_at": "2026-03-14T12:00:00Z"
}
}
Authorizations
Body
application/json
⌘I

