Set preferred phone (bulk)
curl --request POST \
--url https://api.stardex.ai/v1/persons/preferred-phone \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"updates": [
{
"person_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone": "<string>"
}
]
}
'import requests
url = "https://api.stardex.ai/v1/persons/preferred-phone"
payload = { "updates": [
{
"person_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone": "<string>"
}
] }
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({
updates: [{person_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', phone: '<string>'}]
})
};
fetch('https://api.stardex.ai/v1/persons/preferred-phone', 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.stardex.ai/v1/persons/preferred-phone",
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([
'updates' => [
[
'person_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'phone' => '<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://api.stardex.ai/v1/persons/preferred-phone"
payload := strings.NewReader("{\n \"updates\": [\n {\n \"person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": \"<string>\"\n }\n ]\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.stardex.ai/v1/persons/preferred-phone")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"updates\": [\n {\n \"person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/persons/preferred-phone")
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 \"updates\": [\n {\n \"person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"updated": [
{
"person_id": "123e4567-e89b-12d3-a456-426614174000",
"preferred_phone": "+1-555-0123"
}
],
"failed": [
{
"person_id": "00000000-0000-0000-0000-000000000001",
"error": "Person not found"
}
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Persons
Set preferred phone (bulk)
Star a stored phone number as preferred for one or many persons.
The phone number must already exist on each person — this endpoint does not add new numbers. Formatting differences are accepted when the digits match. Invalid rows fail individually and do not block other rows in the same request. When the same person_id appears twice, the last entry wins.
For a single person that should return the updated person record, use POST /v1/persons/{id}/preferred-phone.
POST
/
v1
/
persons
/
preferred-phone
Set preferred phone (bulk)
curl --request POST \
--url https://api.stardex.ai/v1/persons/preferred-phone \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"updates": [
{
"person_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone": "<string>"
}
]
}
'import requests
url = "https://api.stardex.ai/v1/persons/preferred-phone"
payload = { "updates": [
{
"person_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone": "<string>"
}
] }
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({
updates: [{person_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', phone: '<string>'}]
})
};
fetch('https://api.stardex.ai/v1/persons/preferred-phone', 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.stardex.ai/v1/persons/preferred-phone",
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([
'updates' => [
[
'person_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'phone' => '<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://api.stardex.ai/v1/persons/preferred-phone"
payload := strings.NewReader("{\n \"updates\": [\n {\n \"person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": \"<string>\"\n }\n ]\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.stardex.ai/v1/persons/preferred-phone")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"updates\": [\n {\n \"person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/persons/preferred-phone")
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 \"updates\": [\n {\n \"person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"updated": [
{
"person_id": "123e4567-e89b-12d3-a456-426614174000",
"preferred_phone": "+1-555-0123"
}
],
"failed": [
{
"person_id": "00000000-0000-0000-0000-000000000001",
"error": "Person not found"
}
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Authenticate with a Bearer token: API key, OAuth token, or session token.
Body
application/json
Persons to update (1–100). Invalid rows fail individually and do not block other rows. When the same person_id appears twice, the last entry wins.
Required array length:
1 - 100 elementsShow child attributes
Show child attributes
Was this page helpful?