curl --request GET \
--url https://three.arcprize.org/api/scorecard/{card_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://three.arcprize.org/api/scorecard/{card_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://three.arcprize.org/api/scorecard/{card_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://three.arcprize.org/api/scorecard/{card_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://three.arcprize.org/api/scorecard/{card_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://three.arcprize.org/api/scorecard/{card_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://three.arcprize.org/api/scorecard/{card_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"card_id": "8ae52f21-b40c-457b-9f4e-65bd8381e67f",
"score": 100,
"source_url": "https://sandbox.internal.arc-prize.com",
"tags": [
"human"
],
"user_name": "distracted_poincare",
"user_id": "102214435702678430912@google",
"open_at": "2026-01-26T23:34:18.213873Z",
"last_update": "2026-01-26T23:34:53.229182Z",
"total_environments_completed": 1,
"total_environments": 1,
"total_levels_completed": 5,
"total_levels": 5,
"total_actions": 136,
"environments": [],
"tags_scores": []
}Retrieve scorecard
Returns the current (or final) statistics for the specified
scorecard.
This works for both open and already-closed scorecards, making it
useful for polling progress or fetching archived results.
curl --request GET \
--url https://three.arcprize.org/api/scorecard/{card_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://three.arcprize.org/api/scorecard/{card_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://three.arcprize.org/api/scorecard/{card_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://three.arcprize.org/api/scorecard/{card_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://three.arcprize.org/api/scorecard/{card_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://three.arcprize.org/api/scorecard/{card_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://three.arcprize.org/api/scorecard/{card_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"card_id": "8ae52f21-b40c-457b-9f4e-65bd8381e67f",
"score": 100,
"source_url": "https://sandbox.internal.arc-prize.com",
"tags": [
"human"
],
"user_name": "distracted_poincare",
"user_id": "102214435702678430912@google",
"open_at": "2026-01-26T23:34:18.213873Z",
"last_update": "2026-01-26T23:34:53.229182Z",
"total_environments_completed": 1,
"total_environments": 1,
"total_levels_completed": 5,
"total_levels": 5,
"total_actions": 136,
"environments": [],
"tags_scores": []
}Authorizations
Path Parameters
Identifier returned by /scorecard/open.
Response
scorecard found; summary returned.
Aggregate results for an entire scorecard run.
Returned when closing a scorecard or when retrieving a scorecard (open or closed).
Includes cumulative totals, optional metadata echoed from the open request
(e.g. source_url, tags, opaque), user identity (user_name, user_id),
timestamps (open_at, last_update, published_at), and a per-environment
breakdown in environments. The tags_scores array provides per-tag aggregates
for runs that were tagged.
The scorecard ID returned by OpenScorecardResponse.
Average of the best per-environment scores in this scorecard.
Per-environment breakdown; each entry is one game/environment with its runs.
Show child attributes
Show child attributes
Number of environments with at least one run that reached WIN.
Total number of environments in this scorecard.
Sum of the highest completed-level count for each environment.
Total number of levels across all environments.
Number of actions taken across all recorded runs.
Link originally supplied in the OpenScorecardRequest.
Arbitrary labels echoed back from the open request.
Display name of the user who opened/ran this scorecard.
Stable identifier of the user (e.g. provider subject id).
When the scorecard was closed/published (absent if still open).
JSON value (≤ 16 KB) exactly as provided when the scorecard was opened. Absent if none was supplied.
Per-tag aggregate statistics for runs that were tagged.
Show child attributes
Show child attributes
Whether competition restrictions apply to this scorecard.
When the scorecard was opened.
When the scorecard was last updated (e.g. last action or close).
Was this page helpful?

