Wait for a sandbox to become ready
curl --request GET \
--url https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait \
--header 'Authorization: <api-key>'import requests
url = "https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8443",
CURLOPT_URL => "https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait",
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: <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://api.thundercompute.com:8443/v1/sandboxes/{id}/wait"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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://api.thundercompute.com:8443/v1/sandboxes/{id}/wait")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"created_at": "<string>",
"id": "<string>",
"lifetime": {
"enforce_ttl": true,
"max_grace_seconds": 123,
"max_ttl_seconds": 123
},
"name": "<string>",
"network_policy": {
"internet_access": "closed",
"cidr_allowlist": [
"<string>"
],
"domain_allowlist": [
"<string>"
]
},
"spec": {
"cpu_count": 123,
"memory_gib": 123,
"storage_gib": 123,
"gpu_count": 123,
"gpu_type": "A6000"
},
"status": "created",
"expires_at": "<string>",
"failure": "<string>",
"failure_code": "<string>",
"logs": [
{
"event": "created",
"id": "<string>",
"sandbox_id": "<string>",
"timestamp": "<string>",
"data": {
"message": "<string>",
"node_name": "<string>",
"phase": "<string>"
}
}
],
"ssh": {
"host": "<string>",
"port": 123,
"user": "<string>"
},
"stopped_at": "<string>"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}Sandboxes
Wait for a sandbox to become ready
GET
/
sandboxes
/
{id}
/
wait
Wait for a sandbox to become ready
curl --request GET \
--url https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait \
--header 'Authorization: <api-key>'import requests
url = "https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8443",
CURLOPT_URL => "https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait",
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: <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://api.thundercompute.com:8443/v1/sandboxes/{id}/wait"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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://api.thundercompute.com:8443/v1/sandboxes/{id}/wait")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.thundercompute.com:8443/v1/sandboxes/{id}/wait")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"created_at": "<string>",
"id": "<string>",
"lifetime": {
"enforce_ttl": true,
"max_grace_seconds": 123,
"max_ttl_seconds": 123
},
"name": "<string>",
"network_policy": {
"internet_access": "closed",
"cidr_allowlist": [
"<string>"
],
"domain_allowlist": [
"<string>"
]
},
"spec": {
"cpu_count": 123,
"memory_gib": 123,
"storage_gib": 123,
"gpu_count": 123,
"gpu_type": "A6000"
},
"status": "created",
"expires_at": "<string>",
"failure": "<string>",
"failure_code": "<string>",
"logs": [
{
"event": "created",
"id": "<string>",
"sandbox_id": "<string>",
"timestamp": "<string>",
"data": {
"message": "<string>",
"node_name": "<string>",
"phase": "<string>"
}
}
],
"ssh": {
"host": "<string>",
"port": 123,
"user": "<string>"
},
"stopped_at": "<string>"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}{
"code": 400,
"error": "invalid_request",
"message": "The request is malformed"
}Authorizations
Bearer token authentication. Provide your API token prefixed with "Bearer ", e.g. "Bearer your-api-token".
Path Parameters
Sandbox ID
Query Parameters
Maximum wait in seconds (default 10, maximum 30)
Response
OK
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
created, ready, finished, failed FailureCode and Failure explain a failed sandbox. Without them a caller sees only "failed" and cannot tell a capacity refusal from a broken control plane, which are acted on very differently.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?