Confirm or give up ownership of a phone number
Answer an ownership question about a phone number hosted with another provider.
Send still_own: true to confirm you still own a number whose ownership_status is pending_confirmation or flagged; its status returns to verified and, after a carrier change, the new carrier becomes the one on record.
Send still_own: false to report that you no longer own the number. It is removed from Number Reputation immediately, whatever its current status, and the response shows it with ownership_status: removed.
curl --request POST \
--url https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"still_own": true
}
'import requests
url = "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm"
payload = { "still_own": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({still_own: true})
};
fetch('https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm', 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.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm",
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([
'still_own' => true
]),
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.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm"
payload := strings.NewReader("{\n \"still_own\": true\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(string(body))
}HttpResponse<String> response = Unirest.post("https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"still_own\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm")
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 \"still_own\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "8a4b1f5e-2f12-4c0c-9a98-9b3a7d8b8e62",
"enterprise_id": "4a6192a4-573d-446d-b3ce-aff9117272a6",
"phone_number": "+19493253498",
"source": "external",
"ownership_status": "verified",
"flag_reason": "carrier_changed",
"confirm_by": "2026-10-08T07:00:00Z",
"removed_at": "2026-10-09T06:02:11Z",
"removal_reason": "unconfirmed_ownership",
"reputation_data": {
"spam_risk": "low",
"spam_category": null,
"maturity_score": 72,
"connection_score": 80,
"engagement_score": 64,
"sentiment_score": 75,
"last_refreshed_at": "2026-04-26T18:09:24.785211Z"
},
"created_at": "2026-04-26T18:06:51.940749Z",
"updated_at": "2026-04-26T18:09:24.785211Z"
}
}Authorizations
Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
Path Parameters
The enterprise id. Lowercase UUID.
"4a6192a4-573d-446d-b3ce-aff9117272a6"
Phone number in E.164 format (+1NPANXXXXXX for US/CA). The leading + MUST be URL-encoded as %2B (e.g. %2B19493253498).
"+19493253498"
Body
true confirms you still own the number. false reports that you no longer own it and removes it from Number Reputation.
true
Optional id of an uploaded document supporting the confirmation.
1 - 255"2a7e8337-e803-4057-a4ae-26c40eb0bc6c"
Response
The phone number after the confirmation, or the removed number.
Show child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"still_own": true
}
'import requests
url = "https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm"
payload = { "still_own": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({still_own: true})
};
fetch('https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm', 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.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm",
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([
'still_own' => true
]),
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.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm"
payload := strings.NewReader("{\n \"still_own\": true\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(string(body))
}HttpResponse<String> response = Unirest.post("https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"still_own\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telnyx.com/v2/enterprises/{enterprise_id}/reputation/numbers/{phone_number}/ownership_confirm")
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 \"still_own\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "8a4b1f5e-2f12-4c0c-9a98-9b3a7d8b8e62",
"enterprise_id": "4a6192a4-573d-446d-b3ce-aff9117272a6",
"phone_number": "+19493253498",
"source": "external",
"ownership_status": "verified",
"flag_reason": "carrier_changed",
"confirm_by": "2026-10-08T07:00:00Z",
"removed_at": "2026-10-09T06:02:11Z",
"removal_reason": "unconfirmed_ownership",
"reputation_data": {
"spam_risk": "low",
"spam_category": null,
"maturity_score": 72,
"connection_score": 80,
"engagement_score": 64,
"sentiment_score": 75,
"last_refreshed_at": "2026-04-26T18:09:24.785211Z"
},
"created_at": "2026-04-26T18:06:51.940749Z",
"updated_at": "2026-04-26T18:09:24.785211Z"
}
}