curl --request PATCH \
--url https://api.stardex.ai/v1/scorecards/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"overall_rating": 5,
"overall_comment": "<string>",
"is_starred": true,
"visible_in_client_share_link": true,
"team_member_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"criterion_ratings": [
{
"criterion_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rating": 5,
"comment": "<string>"
}
]
}
'import requests
url = "https://api.stardex.ai/v1/scorecards/{id}"
payload = {
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"overall_rating": 5,
"overall_comment": "<string>",
"is_starred": True,
"visible_in_client_share_link": True,
"team_member_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"criterion_ratings": [
{
"criterion_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rating": 5,
"comment": "<string>"
}
]
}
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({
job_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
overall_rating: 5,
overall_comment: '<string>',
is_starred: true,
visible_in_client_share_link: true,
team_member_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
criterion_ratings: [
{
criterion_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
rating: 5,
comment: '<string>'
}
]
})
};
fetch('https://api.stardex.ai/v1/scorecards/{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/scorecards/{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([
'job_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'overall_rating' => 5,
'overall_comment' => '<string>',
'is_starred' => true,
'visible_in_client_share_link' => true,
'team_member_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'criterion_ratings' => [
[
'criterion_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'rating' => 5,
'comment' => '<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/scorecards/{id}"
payload := strings.NewReader("{\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"overall_rating\": 5,\n \"overall_comment\": \"<string>\",\n \"is_starred\": true,\n \"visible_in_client_share_link\": true,\n \"team_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"criterion_ratings\": [\n {\n \"criterion_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rating\": 5,\n \"comment\": \"<string>\"\n }\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/scorecards/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"overall_rating\": 5,\n \"overall_comment\": \"<string>\",\n \"is_starred\": true,\n \"visible_in_client_share_link\": true,\n \"team_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"criterion_ratings\": [\n {\n \"criterion_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rating\": 5,\n \"comment\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/scorecards/{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 \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"overall_rating\": 5,\n \"overall_comment\": \"<string>\",\n \"is_starred\": true,\n \"visible_in_client_share_link\": true,\n \"team_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"criterion_ratings\": [\n {\n \"criterion_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rating\": 5,\n \"comment\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "ddddeeee-1111-2222-3333-444444444444",
"person_id": "123e4567-e89b-12d3-a456-426614174000",
"job_id": "456e7890-e12b-34d5-a678-901234567890",
"candidate_id": "eeeeffff-1111-2222-3333-444444444444",
"assessment_template_id": "aaaa1111-2222-3333-4444-555555555555",
"template": {
"id": "aaaa1111-2222-3333-4444-555555555555",
"name": "Senior Backend Engineer Scorecard",
"rating_scale": 5
},
"job": {
"id": "456e7890-e12b-34d5-a678-901234567890",
"title": "Senior Backend Engineer",
"company_name": "Acme Inc."
},
"created_by": {
"id": "567e8901-e23c-45d6-e789-012345678901",
"first_name": "Jane",
"last_name": "Smith"
},
"overall_rating": 4.5,
"overall_comment": "Strong systems-design depth and excellent async collaboration. Recommend moving forward.",
"is_starred": true,
"visible_in_client_share_link": false,
"criterion_ratings": [
{
"id": "cc11aa22-3333-4444-5555-666666666666",
"criterion_id": "bbbb1111-2222-3333-4444-555555555555",
"criterion_name": "System design depth",
"importance": "must_have",
"position": 1,
"rating": 5,
"comment": "Designed a multi-region payments service with clear failure-mode reasoning."
},
{
"id": "cc11aa22-3333-4444-5555-777777777777",
"criterion_id": "cccc1111-2222-3333-4444-555555555555",
"criterion_name": "Async collaboration",
"importance": "nice_to_have",
"position": 2,
"rating": 4,
"comment": "Strong written communication; decision log was thorough."
}
],
"created_at": "2026-06-01T10:00:00Z",
"updated_at": "2026-06-01T10:00:00Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Update scorecard
Update an existing scorecard. Only provided fields are modified.
Criterion ratings: when criterion_ratings is provided, all existing criterion ratings on this scorecard are replaced. Pass an empty array to clear them.
Team member assignment: last_updated_by defaults to the calling team member. Pass team_member_id to override.
curl --request PATCH \
--url https://api.stardex.ai/v1/scorecards/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"overall_rating": 5,
"overall_comment": "<string>",
"is_starred": true,
"visible_in_client_share_link": true,
"team_member_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"criterion_ratings": [
{
"criterion_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rating": 5,
"comment": "<string>"
}
]
}
'import requests
url = "https://api.stardex.ai/v1/scorecards/{id}"
payload = {
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"overall_rating": 5,
"overall_comment": "<string>",
"is_starred": True,
"visible_in_client_share_link": True,
"team_member_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"criterion_ratings": [
{
"criterion_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rating": 5,
"comment": "<string>"
}
]
}
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({
job_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
overall_rating: 5,
overall_comment: '<string>',
is_starred: true,
visible_in_client_share_link: true,
team_member_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
criterion_ratings: [
{
criterion_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
rating: 5,
comment: '<string>'
}
]
})
};
fetch('https://api.stardex.ai/v1/scorecards/{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/scorecards/{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([
'job_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'overall_rating' => 5,
'overall_comment' => '<string>',
'is_starred' => true,
'visible_in_client_share_link' => true,
'team_member_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'criterion_ratings' => [
[
'criterion_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'rating' => 5,
'comment' => '<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/scorecards/{id}"
payload := strings.NewReader("{\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"overall_rating\": 5,\n \"overall_comment\": \"<string>\",\n \"is_starred\": true,\n \"visible_in_client_share_link\": true,\n \"team_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"criterion_ratings\": [\n {\n \"criterion_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rating\": 5,\n \"comment\": \"<string>\"\n }\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/scorecards/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"overall_rating\": 5,\n \"overall_comment\": \"<string>\",\n \"is_starred\": true,\n \"visible_in_client_share_link\": true,\n \"team_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"criterion_ratings\": [\n {\n \"criterion_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rating\": 5,\n \"comment\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stardex.ai/v1/scorecards/{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 \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"overall_rating\": 5,\n \"overall_comment\": \"<string>\",\n \"is_starred\": true,\n \"visible_in_client_share_link\": true,\n \"team_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"criterion_ratings\": [\n {\n \"criterion_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rating\": 5,\n \"comment\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "ddddeeee-1111-2222-3333-444444444444",
"person_id": "123e4567-e89b-12d3-a456-426614174000",
"job_id": "456e7890-e12b-34d5-a678-901234567890",
"candidate_id": "eeeeffff-1111-2222-3333-444444444444",
"assessment_template_id": "aaaa1111-2222-3333-4444-555555555555",
"template": {
"id": "aaaa1111-2222-3333-4444-555555555555",
"name": "Senior Backend Engineer Scorecard",
"rating_scale": 5
},
"job": {
"id": "456e7890-e12b-34d5-a678-901234567890",
"title": "Senior Backend Engineer",
"company_name": "Acme Inc."
},
"created_by": {
"id": "567e8901-e23c-45d6-e789-012345678901",
"first_name": "Jane",
"last_name": "Smith"
},
"overall_rating": 4.5,
"overall_comment": "Strong systems-design depth and excellent async collaboration. Recommend moving forward.",
"is_starred": true,
"visible_in_client_share_link": false,
"criterion_ratings": [
{
"id": "cc11aa22-3333-4444-5555-666666666666",
"criterion_id": "bbbb1111-2222-3333-4444-555555555555",
"criterion_name": "System design depth",
"importance": "must_have",
"position": 1,
"rating": 5,
"comment": "Designed a multi-region payments service with clear failure-mode reasoning."
},
{
"id": "cc11aa22-3333-4444-5555-777777777777",
"criterion_id": "cccc1111-2222-3333-4444-555555555555",
"criterion_name": "Async collaboration",
"importance": "nice_to_have",
"position": 2,
"rating": 4,
"comment": "Strong written communication; decision log was thorough."
}
],
"created_at": "2026-06-01T10:00:00Z",
"updated_at": "2026-06-01T10:00: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
Scorecard ID
Body
Job UUID to scope this scorecard to. Pass null to clear. When changed, candidate_id is auto-resolved from the new (person_id, job_id) pair.
Overall score (0 to template rating_scale). Pass null to clear.
0 <= x <= 10Plain-text overall summary note. Pass null to clear.
Toggle the starred flag.
Toggle client share link visibility. Only effective when a job_id is set on the scorecard.
Team member UUID to record as last_updated_by. Defaults to the caller.
When provided, REPLACES all criterion ratings on this scorecard. Pass an empty array to clear all criterion ratings.
Show child attributes
Show child attributes
Was this page helpful?