curl --request GET \
--url https://api.valar.space/operations/state-vectors/latest \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.valar.space/operations/state-vectors/latest"
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/state-vectors/latest', 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/state-vectors/latest",
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/state-vectors/latest"
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/state-vectors/latest")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valar.space/operations/state-vectors/latest")
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{
"id": "SV-123",
"spacecraftId": "550e8400-e29b-41d4-a716-446655440000",
"spacecraftName": "GS002",
"epoch": "2024-06-15T12:00:00Z",
"position": [
42164,
0,
0
],
"velocity": [
0,
3.075,
0
],
"referenceFrame": "EME2000",
"mass": 1500,
"originator": "VALAR",
"creationDate": "2024-06-15T12:30:00Z",
"sourceType": "OPM_IMPORT",
"orbitSolutionId": null,
"hasCovariance": false
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 400,
"error": "Bad Request",
"message": "Required parameter 'spacecraftId' is not present",
"path": "/operations/state-vectors/latest"
}{
"error": "invalid_token",
"error_description": "An error occurred while attempting to decode the Jwt"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 403,
"error": "ACCESS_ERROR",
"message": "Access denied",
"path": "/operations/state-vectors/latest"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 404,
"error": "Not Found",
"message": "No state vector found for spacecraft",
"path": "/operations/state-vectors/latest"
}{
"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 the latest state vector for a spacecraft
Retrieves the most recent state vector for a spacecraft. By default, only converged state vectors are returned (imports are always valid, OD results only if converged). Set includeNonConverged=true to include all state vectors.
curl --request GET \
--url https://api.valar.space/operations/state-vectors/latest \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.valar.space/operations/state-vectors/latest"
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/state-vectors/latest', 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/state-vectors/latest",
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/state-vectors/latest"
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/state-vectors/latest")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valar.space/operations/state-vectors/latest")
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{
"id": "SV-123",
"spacecraftId": "550e8400-e29b-41d4-a716-446655440000",
"spacecraftName": "GS002",
"epoch": "2024-06-15T12:00:00Z",
"position": [
42164,
0,
0
],
"velocity": [
0,
3.075,
0
],
"referenceFrame": "EME2000",
"mass": 1500,
"originator": "VALAR",
"creationDate": "2024-06-15T12:30:00Z",
"sourceType": "OPM_IMPORT",
"orbitSolutionId": null,
"hasCovariance": false
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 400,
"error": "Bad Request",
"message": "Required parameter 'spacecraftId' is not present",
"path": "/operations/state-vectors/latest"
}{
"error": "invalid_token",
"error_description": "An error occurred while attempting to decode the Jwt"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 403,
"error": "ACCESS_ERROR",
"message": "Access denied",
"path": "/operations/state-vectors/latest"
}{
"timestamp": "2025-01-15T10:30:00.000Z",
"status": 404,
"error": "Not Found",
"message": "No state vector found for spacecraft",
"path": "/operations/state-vectors/latest"
}{
"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_...)
Query Parameters
Spacecraft identifier
Include non-converged OD results (default: false)
Response
Successfully retrieved the latest state vector
State vector representation with position, velocity, and metadata
State covariance data including 6x6 matrix and standard deviations. Null if covariance is not available.
Show child attributes
Show child attributes
Creation timestamp when this state vector was created/imported in ISO-8601 format
"2024-01-15T12:30:00Z"
Epoch timestamp of the state vector in ISO-8601 format
"2024-01-15T12:00:00Z"
Whether covariance data is available for this state vector
true
Unique identifier for the state vector (format: SV-{sequence})
"SV-123"
Mean Keplerian orbital elements derived via DSST averaging of the osculating state. Null when the DSST conversion fails (e.g., highly perturbed orbits).
Show child attributes
Show child attributes
Spacecraft mass in kilograms
1500
Theory used to produce meanElements. 'DSST' on success, null when meanElements is null.
DSST "DSST"
Mean Keplerian orbital elements derived via DSST averaging of the osculating state. Null when the DSST conversion fails (e.g., highly perturbed orbits).
Show child attributes
Show child attributes
ID of the associated OrbitSolution if this state vector was produced by orbit determination. Null for imported state vectors.
"GS002-559"
Originator or source of this state vector data
"VALAR"
Position vector [x, y, z] in kilometers
Position vector [x, y, z] in kilometers
[42164, 0, 0]
Reference frame of the state vector (e.g., EME2000, GCRF, TEME)
"EME2000"
Source type indicating how this state vector was created. OPM_IMPORT for imported OPMs, ORBIT_DETERMINATION for OD results, MANUAL for manually entered.
OPM_IMPORT, ORBIT_DETERMINATION, MANUAL "OPM_IMPORT"
ID of the spacecraft this state vector belongs to
"spacecraft-abc-123"
Name of the spacecraft
"GS002"
Velocity vector [vx, vy, vz] in km/s
Velocity vector [vx, vy, vz] in km/s
[0, 3.075, 0]
Non-fatal validation warnings raised while importing this state vector. Empty when the import raised none. A perigee altitude below OrbitGeometryValidator.PERIGEE_WARN_ALTITUDE_M (120 km) is reported here rather than rejected — the state vector is persisted, but its propagations may be truncated at the 100 km in-flight floor.
Non-fatal validation warnings raised while importing this state vector. Empty when the import raised none. A perigee altitude below OrbitGeometryValidator.PERIGEE_WARN_ALTITUDE_M (120 km) is reported here rather than rejected — the state vector is persisted, but its propagations may be truncated at the 100 km in-flight floor.
[]
Was this page helpful?