curl --request POST \
--url https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/launch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"access_mode": "virtual-machine",
"network_mode": "public",
"ssh_key_ids": [
"88888888-8888-4888-8888-888888888888"
],
"request_id": "launch-2026-10-15-a"
}
'{
"nodes": [
{
"node_id": "33333333-3333-4333-8333-333333333333",
"reservation_id": "11111111-1111-4111-8111-111111111111",
"controller_id": null,
"status": "bare-metal",
"hostname": "gpu-host-01",
"ip": "203.0.113.10",
"port": 22,
"username": "tenant",
"ssh_endpoint": "tenant@203.0.113.10",
"gpu_type": "H100",
"gpu_count": 8,
"authorized_key_fingerprints": [],
"authorized_key_metadata": [],
"keys_pushed_at": null,
"reboot": null,
"health_readiness": {
"ready": true,
"status": "ready",
"reasons": [],
"advisory_reasons": []
}
}
]
}Launch VM or Bare Metal access
Starts SSH access on an owned VM or Bare Metal reservation. If the reservation already has machines (for example after activation), launch sends the selected SSH keys to them and returns 202 with the current nodes. Otherwise launch selects nodes for the reservation, starts provisioning, and returns 201. Either response is acceptance, not readiness: poll the reservation’s VMs or the node until SSH is ready. Repeating launch after machines exist does not reprovision them; it sends the keys again. Without ssh_key_ids, launch uses the keys already selected for the reservation, or every active SSH key in your organization. There is no VM size option: each VM receives its reserved GPUs and a matching share of the host’s vCPUs, memory, and local disk, with at most 2 TiB of RAM. Launch does not attach storage volumes. Use Kubernetes or Slurm cluster routes for those access modes.
curl --request POST \
--url https://api.ornn.com/v1/orchestrator/nodes/reservations/{reservation_id}/launch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"access_mode": "virtual-machine",
"network_mode": "public",
"ssh_key_ids": [
"88888888-8888-4888-8888-888888888888"
],
"request_id": "launch-2026-10-15-a"
}
'{
"nodes": [
{
"node_id": "33333333-3333-4333-8333-333333333333",
"reservation_id": "11111111-1111-4111-8111-111111111111",
"controller_id": null,
"status": "bare-metal",
"hostname": "gpu-host-01",
"ip": "203.0.113.10",
"port": 22,
"username": "tenant",
"ssh_endpoint": "tenant@203.0.113.10",
"gpu_type": "H100",
"gpu_count": 8,
"authorized_key_fingerprints": [],
"authorized_key_metadata": [],
"keys_pushed_at": null,
"reboot": null,
"health_readiness": {
"ready": true,
"status": "ready",
"reasons": [],
"advisory_reasons": []
}
}
]
}ornn launch <reservation-id> --mode vm --key <key-id> (or --mode bare-metal). Add --wait to wait for SSH. Walkthroughs: VM and Bare Metal.Authorizations
Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.
Path Parameters
An owned reservation ID (reservationId in reservation responses).
Body
Send an empty object to use the reservation's defaults.
Defaults to the reservation's access mode. Use the mode your reservation was booked with.
virtual-machine, bare-metal VM only. Overrides the reservation's saved disk for VMs this request creates. When omitted, the saved disk is used; a VM launch with no disk available fails with disk_required. Must be omitted for Bare Metal.
public exposes SSH on the host's public address. private connects the machine to your organization's private network.
public, private Private networking only. An existing private network in your organization. Omit it to use the organization's shared network. This does not create a network.
How many of the reservation's nodes to provision when launch starts provisioning. Defaults to every reserved node and cannot exceed it. Ignored when the reservation already has machines.
x >= 1Active SSH keys in your organization to authorize. The keys are also attached to the reservation. Omit to use the reservation's current keys, or every active organization key when none are selected.
Optional client token for this request. Reuse it when you retry the same launch so Ornn can recognize repeated commands.
Response
Provisioning started on the returned nodes.
Show child attributes
Show child attributes
Was this page helpful?