cURL
curl --request GET \
--url https://api.zudu.ai/api/phone-numbers \
--header 'X-API-KEY: <api-key>' \
--header 'X-API-SECRET: <api-key>'import requests
url = "https://api.zudu.ai/api/phone-numbers"
headers = {
"X-API-KEY": "<api-key>",
"X-API-SECRET": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<api-key>', 'X-API-SECRET': '<api-key>'}
};
fetch('https://api.zudu.ai/api/phone-numbers', 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.zudu.ai/api/phone-numbers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>",
"X-API-SECRET: <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"
"net/http"
"io"
)
func main() {
url := "https://api.zudu.ai/api/phone-numbers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-API-SECRET", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zudu.ai/api/phone-numbers")
.header("X-API-KEY", "<api-key>")
.header("X-API-SECRET", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zudu.ai/api/phone-numbers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-API-SECRET"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "Phone numbers retrieved successfully",
"status": "success",
"error": null,
"data": {
"organization_id": "org_123",
"phone_numbers": [
{
"phone_number": "+14157774444",
"phone_number_pretty": "+1 (415) 777-4444",
"area_code": 415,
"nickname": "Customer Service Line",
"phone_number_type": "zudu-twilio",
"inbound_agent_id": "agent_abc123",
"outbound_agent_id": "agent_xyz789",
"number_provider": "twilio",
"outbound_trunk_id": "ST_4Xo2mZgQsfyQ",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
],
"returned_count": 1,
"pagination": {
"page": 0,
"limit": 50,
"total_pages": 1,
"total_count": 1,
"has_next": false,
"has_previous": false
},
"sort_order": "descending",
"sort_by": "updated_at",
"applied_filters": {
"area_code": 415
}
}
}Phone Numbers
List phone numbers
Lists phone numbers (current behavior).
GET
/
api
/
phone-numbers
cURL
curl --request GET \
--url https://api.zudu.ai/api/phone-numbers \
--header 'X-API-KEY: <api-key>' \
--header 'X-API-SECRET: <api-key>'import requests
url = "https://api.zudu.ai/api/phone-numbers"
headers = {
"X-API-KEY": "<api-key>",
"X-API-SECRET": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<api-key>', 'X-API-SECRET': '<api-key>'}
};
fetch('https://api.zudu.ai/api/phone-numbers', 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.zudu.ai/api/phone-numbers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>",
"X-API-SECRET: <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"
"net/http"
"io"
)
func main() {
url := "https://api.zudu.ai/api/phone-numbers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-API-SECRET", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zudu.ai/api/phone-numbers")
.header("X-API-KEY", "<api-key>")
.header("X-API-SECRET", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zudu.ai/api/phone-numbers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-API-SECRET"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "Phone numbers retrieved successfully",
"status": "success",
"error": null,
"data": {
"organization_id": "org_123",
"phone_numbers": [
{
"phone_number": "+14157774444",
"phone_number_pretty": "+1 (415) 777-4444",
"area_code": 415,
"nickname": "Customer Service Line",
"phone_number_type": "zudu-twilio",
"inbound_agent_id": "agent_abc123",
"outbound_agent_id": "agent_xyz789",
"number_provider": "twilio",
"outbound_trunk_id": "ST_4Xo2mZgQsfyQ",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
],
"returned_count": 1,
"pagination": {
"page": 0,
"limit": 50,
"total_pages": 1,
"total_count": 1,
"has_next": false,
"has_previous": false
},
"sort_order": "descending",
"sort_by": "updated_at",
"applied_filters": {
"area_code": 415
}
}
}Notes
- Simple listing with optional filters and pagination
Authorizations
API Key for MCP server and external service authentication
API Secret for MCP server and external service authentication
Query Parameters
Number of results per page
Page number (0-based)
Sort field (phone_number, nickname, area_code, updated_at)
Sort direction (ascending, descending)
Filter by nickname (partial match)
Filter by area code
Filter by agent ID (inbound or outbound)
⌘I