curl --request POST \
--url https://api.stardex.ai/v1/persons/{id}/references \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"related_person_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reference_type": "<string>",
"note": "<string>",
"occurred_at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.stardex.ai/v1/persons/{id}/references"
payload = {
"related_person_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reference_type": "<string>",
"note": "<string>",
"occurred_at": "2023-11-07T05:31:56Z"
}
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({
related_person_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
reference_type: '<string>',
note: '<string>',
occurred_at: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.stardex.ai/v1/persons/{id}/references', 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/{id}/references",
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([
'related_person_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'reference_type' => '<string>',
'note' => '<string>',
'occurred_at' => '2023-11-07T05:31:56Z'
]),
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/{id}/references"
payload := strings.NewReader("{\n \"related_person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reference_type\": \"<string>\",\n \"note\": \"<string>\",\n \"occurred_at\": \"2023-11-07T05:31:56Z\"\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/{id}/references")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"related_person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reference_type\": \"<string>\",\n \"note\": \"<string>\",\n \"occurred_at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/persons/{id}/references")
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 \"related_person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reference_type\": \"<string>\",\n \"note\": \"<string>\",\n \"occurred_at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "3f2c8a1e-5b7d-4c9e-8a1f-2d3e4f5a6b7c",
"person_id": "123e4567-e89b-12d3-a456-426614174000",
"related_person": {
"id": "567e8901-e23c-45d6-e789-012345678901",
"name": "Jane Smith",
"current_job_title": "VP Engineering",
"current_company_name": "Tech Corp"
},
"reference_type": "previous_manager",
"reference_type_name": "Previous Manager",
"reference_strength": "high",
"direction": "outgoing",
"note": "Reference call on May 12.\nWould hire him again for any platform role.",
"note_html": "<p>Reference call on <strong>May 12</strong>.</p>\n<p>Would hire him again for any platform role.</p>",
"created_by": "890e1234-e56f-78a9-b012-345678901234",
"occurred_at": "2026-05-11T15:00:00Z",
"created_at": "2026-05-12T16:20:00Z",
"updated_at": "2026-05-12T16:20:00Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Create person reference
Add a reference for the person in the path: the person who gave it (related_person_id), how they know each other (reference_type), an optional strength and a formatted note. Set occurred_at to record when the reference actually happened; it defaults to created_at, the same as for person activities.
A reference reads from the person in the path to the related person: a previous_manager reference added on John with Jane as the related person shows in the app as “John · Previous Manager · Jane”. The reference appears on both people, including in their activity timelines (GET /v1/persons/{id}/activities, activity type person_reference).
curl --request POST \
--url https://api.stardex.ai/v1/persons/{id}/references \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"related_person_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reference_type": "<string>",
"note": "<string>",
"occurred_at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.stardex.ai/v1/persons/{id}/references"
payload = {
"related_person_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reference_type": "<string>",
"note": "<string>",
"occurred_at": "2023-11-07T05:31:56Z"
}
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({
related_person_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
reference_type: '<string>',
note: '<string>',
occurred_at: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.stardex.ai/v1/persons/{id}/references', 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/{id}/references",
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([
'related_person_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'reference_type' => '<string>',
'note' => '<string>',
'occurred_at' => '2023-11-07T05:31:56Z'
]),
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/{id}/references"
payload := strings.NewReader("{\n \"related_person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reference_type\": \"<string>\",\n \"note\": \"<string>\",\n \"occurred_at\": \"2023-11-07T05:31:56Z\"\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/{id}/references")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"related_person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reference_type\": \"<string>\",\n \"note\": \"<string>\",\n \"occurred_at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/persons/{id}/references")
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 \"related_person_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reference_type\": \"<string>\",\n \"note\": \"<string>\",\n \"occurred_at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "3f2c8a1e-5b7d-4c9e-8a1f-2d3e4f5a6b7c",
"person_id": "123e4567-e89b-12d3-a456-426614174000",
"related_person": {
"id": "567e8901-e23c-45d6-e789-012345678901",
"name": "Jane Smith",
"current_job_title": "VP Engineering",
"current_company_name": "Tech Corp"
},
"reference_type": "previous_manager",
"reference_type_name": "Previous Manager",
"reference_strength": "high",
"direction": "outgoing",
"note": "Reference call on May 12.\nWould hire him again for any platform role.",
"note_html": "<p>Reference call on <strong>May 12</strong>.</p>\n<p>Would hire him again for any platform role.</p>",
"created_by": "890e1234-e56f-78a9-b012-345678901234",
"occurred_at": "2026-05-11T15:00:00Z",
"created_at": "2026-05-12T16:20:00Z",
"updated_at": "2026-05-12T16:20:00Z"
}
}{
"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
Person UUID
Body
UUID of the other person in the reference. Must be a different person in your workspace.
Reference type key, such as "colleague" or "manager". List the keys for your workspace with GET /v1/persons/reference-types.
1How strong the relationship is: "low", "medium" or "high".
low, medium, high Note about the reference, such as what a reference said. Accepts plain text or HTML (bold, italics, lists, links and headings keep their formatting). Pass null to remove the note.
ISO 8601 timestamp for when the reference actually happened (e.g. "2024-01-10T14:00:00Z"). This is distinct from created_at, which is a system-managed timestamp for when the reference was written and cannot be set by the caller. Use occurred_at to backdate a reference taken earlier. If omitted, it defaults to created_at.
Was this page helpful?