curl --request PATCH \
--url https://api.stardex.ai/v1/client-contacts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"client_contact_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"owner_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.stardex.ai/v1/client-contacts/{id}"
payload = {
"client_contact_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"owner_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
client_contact_status_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
owner_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
})
};
fetch('https://api.stardex.ai/v1/client-contacts/{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.stardex.ai/v1/client-contacts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'client_contact_status_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'owner_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
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/client-contacts/{id}"
payload := strings.NewReader("{\n \"client_contact_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"owner_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.stardex.ai/v1/client-contacts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"client_contact_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"owner_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/client-contacts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"client_contact_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"owner_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "ab12cd34-ef56-7890-ab12-cd34ef567890",
"client_contact_status_id": "890e1234-f56a-78b9-c012-345678901234",
"owner_ids": [
"ddd44444-eeee-ffff-0000-111111114444",
"eee55555-ffff-0000-1111-222222225555"
],
"message": "Client contact updated successfully"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Update client contact
Update a client contact’s status, owners, or both. Omitted fields remain unchanged; at least one of client_contact_status_id or owner_ids is required.
ID: Accepts a client contact UUID or a person UUID — if a person UUID is provided, the associated client contact is resolved automatically.
Status: Pass a valid status UUID to change the status, or null to clear it. Use GET /v1/client-contacts/statuses to discover available status IDs.
Owners: Pass owner_ids to set the client contact owners. The list replaces all current owners; pass an empty array to remove every owner. Get team member IDs from GET /v1/team-members.
curl --request PATCH \
--url https://api.stardex.ai/v1/client-contacts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"client_contact_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"owner_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.stardex.ai/v1/client-contacts/{id}"
payload = {
"client_contact_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"owner_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
client_contact_status_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
owner_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
})
};
fetch('https://api.stardex.ai/v1/client-contacts/{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.stardex.ai/v1/client-contacts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'client_contact_status_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'owner_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
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/client-contacts/{id}"
payload := strings.NewReader("{\n \"client_contact_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"owner_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.stardex.ai/v1/client-contacts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"client_contact_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"owner_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/client-contacts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"client_contact_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"owner_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "ab12cd34-ef56-7890-ab12-cd34ef567890",
"client_contact_status_id": "890e1234-f56a-78b9-c012-345678901234",
"owner_ids": [
"ddd44444-eeee-ffff-0000-111111114444",
"eee55555-ffff-0000-1111-222222225555"
],
"message": "Client contact updated successfully"
}
}{
"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.
Path Parameters
Client contact UUID or person UUID.
Body
Client contact status UUID, or null to clear the status. Omit to leave the status unchanged. Use GET /v1/client-contacts/statuses to get available status IDs.
Team member UUIDs to set as the client contact owners. Replaces all current owners. Pass an empty array to remove all owners. Omit to leave owners unchanged. Get IDs from GET /v1/team-members.
Was this page helpful?