curl --request GET \
--url https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys', 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.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys",
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.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys"
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.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys")
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{
"ssh_keys": [
{
"id": "77777777-7777-4777-8777-777777777777",
"organization_id": "22222222-2222-4222-8222-222222222222",
"tenant_id": "22222222-2222-4222-8222-222222222222",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleKeyMaterialForDocsOnly0000000000 dev@example.com",
"fingerprint": "SHA256:ExampleFingerprintForDocumentationOnly000000",
"label": "laptop",
"status": "active",
"created_at": "2026-10-14T12:00:00Z",
"revoked_at": null
}
]
}{
"code": "<string>",
"detail": "<string>"
}{
"code": "<string>",
"detail": "<string>"
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "reservation_not_launchable",
"message": "This reservation cannot launch in its current state."
}
}{
"error": "rate_limited",
"retry_after": 42,
"detail": "Too many requests. Try again in 42 seconds."
}{
"code": "<string>",
"detail": "<string>"
}List a reservation's SSH keys
Returns the SSH keys that VM and Bare Metal machines in this reservation should accept. When anyone in your organization has assigned keys to the reservation, the list contains those active keys. When none are assigned, the reservation uses every active organization key and the list contains all of them. This is the desired key set, not proof of installation; check authorized_key_fingerprints on each node from GET /v1/orchestrator/nodes. Requires an approved organization and a reservation your organization holds.
curl --request GET \
--url https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys', 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.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys",
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.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys"
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.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys")
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{
"ssh_keys": [
{
"id": "77777777-7777-4777-8777-777777777777",
"organization_id": "22222222-2222-4222-8222-222222222222",
"tenant_id": "22222222-2222-4222-8222-222222222222",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleKeyMaterialForDocsOnly0000000000 dev@example.com",
"fingerprint": "SHA256:ExampleFingerprintForDocumentationOnly000000",
"label": "laptop",
"status": "active",
"created_at": "2026-10-14T12:00:00Z",
"revoked_at": null
}
]
}{
"code": "<string>",
"detail": "<string>"
}{
"code": "<string>",
"detail": "<string>"
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "reservation_not_launchable",
"message": "This reservation cannot launch in its current state."
}
}{
"error": "rate_limited",
"retry_after": 42,
"detail": "Too many requests. Try again in 42 seconds."
}{
"code": "<string>",
"detail": "<string>"
}authorized_key_fingerprints and authorized_key_metadata on the reservation’s nodes from List reserved GPU nodes.
CLI equivalents: ornn ssh-keys assignments list <reservation-id> and ornn ssh-keys assignments status <reservation-id>.Authorizations
Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.
Path Parameters
A reservation your organization holds. Keys are delivered to its VM and Bare Metal machines.
Response
The reservation's current key set.
Show child attributes
Show child attributes
Was this page helpful?