Update Phone Number
curl --request PUT \
--url https://app.famulor.de/api/user/phone-numbers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"nickname": "<string>"
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({nickname: '<string>'})
};
fetch('https://app.famulor.de/api/user/phone-numbers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.famulor.de/api/user/phone-numbers/{id}"
payload = { "nickname": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/phone-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([
'nickname' => '<string>'
]),
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://app.famulor.de/api/user/phone-numbers/{id}"
payload := strings.NewReader("{\n \"nickname\": \"<string>\"\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))
}{
"message": "Phone number updated successfully.",
"data": {
"id": 1,
"phone_number": "+14155551234",
"nickname": "Sales line",
"country_code": "US",
"type": "normal"
}
}
{
"error": "Phone number not found."
}
{
"message": "The nickname must not exceed 50 characters.",
"errors": {
"nickname": ["The nickname must not exceed 50 characters."]
}
}
Update Phone Number
Update a phone number’s nickname
PUT
/
api
/
user
/
phone-numbers
/
{id}
Update Phone Number
curl --request PUT \
--url https://app.famulor.de/api/user/phone-numbers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"nickname": "<string>"
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({nickname: '<string>'})
};
fetch('https://app.famulor.de/api/user/phone-numbers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.famulor.de/api/user/phone-numbers/{id}"
payload = { "nickname": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/phone-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([
'nickname' => '<string>'
]),
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://app.famulor.de/api/user/phone-numbers/{id}"
payload := strings.NewReader("{\n \"nickname\": \"<string>\"\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))
}{
"message": "Phone number updated successfully.",
"data": {
"id": 1,
"phone_number": "+14155551234",
"nickname": "Sales line",
"country_code": "US",
"type": "normal"
}
}
{
"error": "Phone number not found."
}
{
"message": "The nickname must not exceed 50 characters.",
"errors": {
"nickname": ["The nickname must not exceed 50 characters."]
}
}
This endpoint updates the editable attributes of a phone number you own. Currently this is the nickname — a short, human-friendly label (e.g. “Sales line”, “Support — US”) shown next to the number across the dashboard.
Only the owner of the number can update it. Numbers shared with you (granted) display the nickname but cannot be changed by you.
Path Parameters
integer
required
The unique identifier of the phone number to update
Body Parameters
string
A short label for the phone number. Maximum 50 characters. Send
null or an empty string to clear it.Response
string
Success message
object
{
"message": "Phone number updated successfully.",
"data": {
"id": 1,
"phone_number": "+14155551234",
"nickname": "Sales line",
"country_code": "US",
"type": "normal"
}
}
{
"error": "Phone number not found."
}
{
"message": "The nickname must not exceed 50 characters.",
"errors": {
"nickname": ["The nickname must not exceed 50 characters."]
}
}
The nickname is the same label you can set in the dashboard. It is returned by the phone number listing endpoints (
GET /user/phone-numbers/all, GET /user/phone-numbers/sip-trunks), so other resources that reference a number by phone_number_id can resolve its nickname from there.