curl --request GET \
--url https://api.valar.space/operations/spacecraft/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.valar.space/operations/spacecraft/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.valar.space/operations/spacecraft/{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.valar.space/operations/spacecraft/{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 => [
"Authorization: Bearer <token>"
],
]);
$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://api.valar.space/operations/spacecraft/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.valar.space/operations/spacecraft/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valar.space/operations/spacecraft/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"absorption": 0.4,
"bodyShape": "BOX",
"boxX": 1.5,
"boxY": 1,
"boxZ": 2,
"catalogueNoradId": 123,
"color": "#FF5733",
"cosparId": "2024-001A",
"createdAt": "2023-11-07T05:31:56Z",
"dragArea": 5,
"dragCoefficient": 2.2,
"dryMass": 450,
"externalKey": "PARTNER-SAT-001",
"id": "550e8400-e29b-41d4-a716-446655440000",
"inertiaIxx": 1500,
"inertiaIyy": 1700,
"inertiaIzz": 2100,
"launchMass": 500,
"lifecycleStatus": "Active",
"maneuverCapabilities": {
"allowedWindows": [
{
"end": "2023-11-07T05:31:56Z",
"start": "2023-11-07T05:31:56Z"
}
],
"availableManeuverPowerWatts": 123,
"blackoutWindows": [
{
"end": "2023-11-07T05:31:56Z",
"start": "2023-11-07T05:31:56Z"
}
],
"minimumManeuverSeparationSeconds": 123,
"schemaVersion": 123,
"thrusters": [
{
"alignmentError": {
"xRadians": 123,
"yRadians": 123,
"zRadians": 123
},
"allowedDirections": [
"RADIAL_OUT"
],
"combinedSteeringAllowed": true,
"dutyCycleWindowSeconds": 123,
"eclipsePolicy": "SUNLIGHT_ONLY",
"maximumDutyCycle": 123,
"minimumBurnSeconds": 123,
"minimumImpulseNewtonSeconds": 123,
"overheadBurns": [
{
"anchor": "BEFORE_MAIN_BURN",
"direction": "RADIAL_OUT",
"durationSeconds": 123,
"offsetSeconds": 123,
"thrusterId": "<string>"
}
],
"requiredPowerWatts": 123,
"settlingSeconds": 123,
"thrusterId": "<string>"
}
]
},
"name": "Sentinel-1A",
"noradId": 43013,
"notYetCatalogued": true,
"organizationId": "VALAR",
"panels": [
{
"absorption": 0.3,
"derivedNormal": {
"x": 1,
"y": 0,
"z": 0
},
"doubleSided": true,
"lengthM": 2,
"mountAxisCustomX": 0,
"mountAxisCustomY": 0,
"mountAxisCustomZ": 5,
"mountAxisPreset": "PLUS_Z",
"mountPositionX": -1.5,
"mountPositionY": 0,
"mountPositionZ": 0.25,
"name": "Port array",
"panelIndex": 0,
"rotationDeg": 90,
"specularReflection": 0.2,
"widthM": 1
}
],
"prismAxis": "Z",
"prismComplementaryDiameter": 1,
"prismDiameter": 0.866025,
"prismDiameterMeasure": "INSCRIBED",
"prismEdgeM": 0.5,
"prismHeightM": 1,
"prismSides": 6,
"reflectivityCoefficient": 1,
"specularReflection": 0.3,
"srpArea": 5,
"updatedAt": "2023-11-07T05:31:56Z"
}{
"code": "import.tracking.tdm.parse_failed",
"correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"details": {},
"error": "Bad Request",
"fieldErrors": {},
"message": "Invalid spacecraft ID format",
"params": {},
"path": "/api/v1/stm/credentials",
"status": 400,
"timestamp": "2025-11-14T10:15:30.123Z"
}{}{}{
"code": "import.tracking.tdm.parse_failed",
"correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"details": {},
"error": "Bad Request",
"fieldErrors": {},
"message": "Invalid spacecraft ID format",
"params": {},
"path": "/api/v1/stm/credentials",
"status": 400,
"timestamp": "2025-11-14T10:15:30.123Z"
}Get spacecraft by UUID
Retrieves a spacecraft by its canonical UUID id. A non-UUID value (NORAD, COSPAR, or name) is rejected with 400 VALIDATION_ERROR before resolution. Returns 404 if no such spacecraft exists.
curl --request GET \
--url https://api.valar.space/operations/spacecraft/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.valar.space/operations/spacecraft/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.valar.space/operations/spacecraft/{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.valar.space/operations/spacecraft/{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 => [
"Authorization: Bearer <token>"
],
]);
$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://api.valar.space/operations/spacecraft/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.valar.space/operations/spacecraft/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valar.space/operations/spacecraft/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"absorption": 0.4,
"bodyShape": "BOX",
"boxX": 1.5,
"boxY": 1,
"boxZ": 2,
"catalogueNoradId": 123,
"color": "#FF5733",
"cosparId": "2024-001A",
"createdAt": "2023-11-07T05:31:56Z",
"dragArea": 5,
"dragCoefficient": 2.2,
"dryMass": 450,
"externalKey": "PARTNER-SAT-001",
"id": "550e8400-e29b-41d4-a716-446655440000",
"inertiaIxx": 1500,
"inertiaIyy": 1700,
"inertiaIzz": 2100,
"launchMass": 500,
"lifecycleStatus": "Active",
"maneuverCapabilities": {
"allowedWindows": [
{
"end": "2023-11-07T05:31:56Z",
"start": "2023-11-07T05:31:56Z"
}
],
"availableManeuverPowerWatts": 123,
"blackoutWindows": [
{
"end": "2023-11-07T05:31:56Z",
"start": "2023-11-07T05:31:56Z"
}
],
"minimumManeuverSeparationSeconds": 123,
"schemaVersion": 123,
"thrusters": [
{
"alignmentError": {
"xRadians": 123,
"yRadians": 123,
"zRadians": 123
},
"allowedDirections": [
"RADIAL_OUT"
],
"combinedSteeringAllowed": true,
"dutyCycleWindowSeconds": 123,
"eclipsePolicy": "SUNLIGHT_ONLY",
"maximumDutyCycle": 123,
"minimumBurnSeconds": 123,
"minimumImpulseNewtonSeconds": 123,
"overheadBurns": [
{
"anchor": "BEFORE_MAIN_BURN",
"direction": "RADIAL_OUT",
"durationSeconds": 123,
"offsetSeconds": 123,
"thrusterId": "<string>"
}
],
"requiredPowerWatts": 123,
"settlingSeconds": 123,
"thrusterId": "<string>"
}
]
},
"name": "Sentinel-1A",
"noradId": 43013,
"notYetCatalogued": true,
"organizationId": "VALAR",
"panels": [
{
"absorption": 0.3,
"derivedNormal": {
"x": 1,
"y": 0,
"z": 0
},
"doubleSided": true,
"lengthM": 2,
"mountAxisCustomX": 0,
"mountAxisCustomY": 0,
"mountAxisCustomZ": 5,
"mountAxisPreset": "PLUS_Z",
"mountPositionX": -1.5,
"mountPositionY": 0,
"mountPositionZ": 0.25,
"name": "Port array",
"panelIndex": 0,
"rotationDeg": 90,
"specularReflection": 0.2,
"widthM": 1
}
],
"prismAxis": "Z",
"prismComplementaryDiameter": 1,
"prismDiameter": 0.866025,
"prismDiameterMeasure": "INSCRIBED",
"prismEdgeM": 0.5,
"prismHeightM": 1,
"prismSides": 6,
"reflectivityCoefficient": 1,
"specularReflection": 0.3,
"srpArea": 5,
"updatedAt": "2023-11-07T05:31:56Z"
}{
"code": "import.tracking.tdm.parse_failed",
"correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"details": {},
"error": "Bad Request",
"fieldErrors": {},
"message": "Invalid spacecraft ID format",
"params": {},
"path": "/api/v1/stm/credentials",
"status": 400,
"timestamp": "2025-11-14T10:15:30.123Z"
}{}{}{
"code": "import.tracking.tdm.parse_failed",
"correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"details": {},
"error": "Bad Request",
"fieldErrors": {},
"message": "Invalid spacecraft ID format",
"params": {},
"path": "/api/v1/stm/credentials",
"status": 400,
"timestamp": "2025-11-14T10:15:30.123Z"
}Authorizations
API Key (format: vsp_sk_...)
Path Parameters
Spacecraft identifier (UUID)
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Response
Spacecraft retrieved successfully
Response containing spacecraft details
Optical absorption coefficient α (dimensionless). Range (0.0, 1.0].
0.4
Body geometry primitive (BOX or REGULAR_PRISM).
BOX, REGULAR_PRISM "BOX"
Spacecraft box/bus X dimension (width) in meters
1.5
Spacecraft box/bus Y dimension (height) in meters
1
Spacecraft box/bus Z dimension (length) in meters
2
Spacecraft color in hex format
"#FF5733"
COSPAR international designator
"2024-001A"
Timestamp when the spacecraft was created
Operator-typed drag cross-sectional area in m² (null for pre-migration spacecraft)
5
Drag coefficient
2.2
Mass without propellant in kg
450
Caller-assigned external reference key (unique within your organization; immutable once set). Null when no key has been assigned.
"PARTNER-SAT-001"
Unique identifier of the spacecraft
"550e8400-e29b-41d4-a716-446655440000"
Principal moment of inertia about the body's primary principal axis (kg·m²). Optional; null when inertia is not configured.
1500
Principal moment of inertia about the body's secondary principal axis (kg·m²). Optional; null when inertia is not configured.
1700
Principal moment of inertia about the body's tertiary principal axis (kg·m²). Optional; null when inertia is not configured.
2100
Total mass at launch in kg
500
Lifecycle status of the spacecraft
"Active"
Reusable declared maneuver capabilities; null means not configured, not unrestricted.
Show child attributes
Show child attributes
Name of the spacecraft
"Sentinel-1A"
NORAD catalog number
43013
Organization ID that owns this spacecraft
"VALAR"
Per-panel rows (0..8). Each entry carries dimensions, attachment face, and orientation angles.
Show child attributes
Show child attributes
Extrusion axis of the regular prism (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.
X, Y, Z "Z"
Cross-section diameter in the OTHER datum (the complement of prismDiameterMeasure), computed from edge + sides (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.
1
Cross-section diameter in the operator's chosen datum (prismDiameterMeasure), computed from edge + sides (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.
0.866025
Which diameter datum the operator used to size the cross-section (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.
INSCRIBED, CIRCUMSCRIBED "INSCRIBED"
Canonical regular-polygon edge length a in meters (DKR-1 §6) — the persisted source-of-truth cross-section dimension. Populated only when bodyShape=REGULAR_PRISM; null otherwise.
0.5
Regular-prism height L along the extrusion axis in meters. Populated only when bodyShape=REGULAR_PRISM; null otherwise.
1
Number of regular-polygon sides N (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.
6
Reflectivity coefficient
1
Optical specular-reflection coefficient ρs (dimensionless). Range [0.0, 1.0).
0.3
Operator-typed SRP cross-sectional area in m² (null for pre-migration spacecraft)
5
Timestamp when the spacecraft was last updated
Was this page helpful?