curl --request PUT \
--url https://api.orbit.devotel.io/api/v1/numbers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "Sales line — US East",
"tags": [
"sales",
"us-east"
],
"forwarding_number": "+14155550142",
"messaging_mps_cap": 10
}
'import requests
url = "https://api.orbit.devotel.io/api/v1/numbers/{id}"
payload = {
"label": "Sales line — US East",
"tags": ["sales", "us-east"],
"forwarding_number": "+14155550142",
"messaging_mps_cap": 10
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
label: 'Sales line — US East',
tags: ['sales', 'us-east'],
forwarding_number: '+14155550142',
messaging_mps_cap: 10
})
};
fetch('https://api.orbit.devotel.io/api/v1/numbers/{id}', 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.orbit.devotel.io/api/v1/numbers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'label' => 'Sales line — US East',
'tags' => [
'sales',
'us-east'
],
'forwarding_number' => '+14155550142',
'messaging_mps_cap' => 10
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.orbit.devotel.io/api/v1/numbers/{id}"
payload := strings.NewReader("{\n \"label\": \"Sales line — US East\",\n \"tags\": [\n \"sales\",\n \"us-east\"\n ],\n \"forwarding_number\": \"+14155550142\",\n \"messaging_mps_cap\": 10\n}")
req, _ := http.NewRequest("PUT", 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(string(body))
}HttpResponse<String> response = Unirest.put("https://api.orbit.devotel.io/api/v1/numbers/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"Sales line — US East\",\n \"tags\": [\n \"sales\",\n \"us-east\"\n ],\n \"forwarding_number\": \"+14155550142\",\n \"messaging_mps_cap\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbit.devotel.io/api/v1/numbers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"Sales line — US East\",\n \"tags\": [\n \"sales\",\n \"us-east\"\n ],\n \"forwarding_number\": \"+14155550142\",\n \"messaging_mps_cap\": 10\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"phone_number": "<string>",
"status": "pending_compliance",
"created_at": "2023-11-07T05:31:56Z",
"tenant_id": "<string>",
"country_code": "<string>",
"capabilities": [
"voice"
],
"type": "local",
"provider": "telnyx",
"provider_order_id": "<string>",
"voice_application_sid": "<string>",
"sms_application_sid": "<string>",
"monthly_cost_cents": 123,
"setup_cost_cents": 123,
"updated_at": "2023-11-07T05:31:56Z"
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"docs_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"status": 123,
"details": {}
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"docs_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"status": 123,
"details": {}
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"docs_url": "<string>"
}
}Update a phone number
Update an owned DID’s configuration. Only the fields you send are changed: operator label and tags, inbound webhook_url / forwarding_number / sms_forwarding, toggleable capabilities, the attached compliance_profile_id, and the per-number messaging_mps_cap and monthly_spend_cap_cents guardrails. Org-ownership is enforced; owner/admin/developer only.
curl --request PUT \
--url https://api.orbit.devotel.io/api/v1/numbers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "Sales line — US East",
"tags": [
"sales",
"us-east"
],
"forwarding_number": "+14155550142",
"messaging_mps_cap": 10
}
'import requests
url = "https://api.orbit.devotel.io/api/v1/numbers/{id}"
payload = {
"label": "Sales line — US East",
"tags": ["sales", "us-east"],
"forwarding_number": "+14155550142",
"messaging_mps_cap": 10
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
label: 'Sales line — US East',
tags: ['sales', 'us-east'],
forwarding_number: '+14155550142',
messaging_mps_cap: 10
})
};
fetch('https://api.orbit.devotel.io/api/v1/numbers/{id}', 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.orbit.devotel.io/api/v1/numbers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'label' => 'Sales line — US East',
'tags' => [
'sales',
'us-east'
],
'forwarding_number' => '+14155550142',
'messaging_mps_cap' => 10
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.orbit.devotel.io/api/v1/numbers/{id}"
payload := strings.NewReader("{\n \"label\": \"Sales line — US East\",\n \"tags\": [\n \"sales\",\n \"us-east\"\n ],\n \"forwarding_number\": \"+14155550142\",\n \"messaging_mps_cap\": 10\n}")
req, _ := http.NewRequest("PUT", 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(string(body))
}HttpResponse<String> response = Unirest.put("https://api.orbit.devotel.io/api/v1/numbers/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"Sales line — US East\",\n \"tags\": [\n \"sales\",\n \"us-east\"\n ],\n \"forwarding_number\": \"+14155550142\",\n \"messaging_mps_cap\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbit.devotel.io/api/v1/numbers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"Sales line — US East\",\n \"tags\": [\n \"sales\",\n \"us-east\"\n ],\n \"forwarding_number\": \"+14155550142\",\n \"messaging_mps_cap\": 10\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"phone_number": "<string>",
"status": "pending_compliance",
"created_at": "2023-11-07T05:31:56Z",
"tenant_id": "<string>",
"country_code": "<string>",
"capabilities": [
"voice"
],
"type": "local",
"provider": "telnyx",
"provider_order_id": "<string>",
"voice_application_sid": "<string>",
"sms_application_sid": "<string>",
"monthly_cost_cents": 123,
"setup_cost_cents": 123,
"updated_at": "2023-11-07T05:31:56Z"
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"docs_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"status": 123,
"details": {}
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"docs_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"status": 123,
"details": {}
},
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"docs_url": "<string>"
}
}Authorizations
Dashboard JWT token from Clerk
Path Parameters
The phone number record id.
Body
100active, inactive sms, mms, voice, fax E.164 number to forward inbound calls to, or an empty string to clear.
HTTPS inbound-event webhook for this DID, or null to clear.
E.164 number to forward inbound SMS to, or an empty string to clear.
Tenant compliance-profile id to attach, or an empty string / null to detach.
Per-DID outbound messages-per-second ceiling, or null to clear.
1 <= x <= 1000Per-DID monthly outbound SMS spend ceiling in US cents, or null to clear.
1 <= x <= 10000000010