curl --request POST \
--url https://api.checkfu.com/v1/computers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'checkfu-version: <checkfu-version>' \
--data '
{
"name": "<string>",
"environment_id": "<string>",
"config": {
"disk_gb": 252,
"desktop": {
"enabled": true,
"resolution": "<string>"
}
},
"idle_policy": {
"sleep_after_seconds": 302430
},
"metadata": {}
}
'import requests
url = "https://api.checkfu.com/v1/computers"
payload = {
"name": "<string>",
"environment_id": "<string>",
"config": {
"disk_gb": 252,
"desktop": {
"enabled": True,
"resolution": "<string>"
}
},
"idle_policy": { "sleep_after_seconds": 302430 },
"metadata": {}
}
headers = {
"checkfu-version": "<checkfu-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'checkfu-version': '<checkfu-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
environment_id: '<string>',
config: {disk_gb: 252, desktop: {enabled: true, resolution: '<string>'}},
idle_policy: {sleep_after_seconds: 302430},
metadata: {}
})
};
fetch('https://api.checkfu.com/v1/computers', 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.checkfu.com/v1/computers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'environment_id' => '<string>',
'config' => [
'disk_gb' => 252,
'desktop' => [
'enabled' => true,
'resolution' => '<string>'
]
],
'idle_policy' => [
'sleep_after_seconds' => 302430
],
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"checkfu-version: <checkfu-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.checkfu.com/v1/computers"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"environment_id\": \"<string>\",\n \"config\": {\n \"disk_gb\": 252,\n \"desktop\": {\n \"enabled\": true,\n \"resolution\": \"<string>\"\n }\n },\n \"idle_policy\": {\n \"sleep_after_seconds\": 302430\n },\n \"metadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("checkfu-version", "<checkfu-version>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.checkfu.com/v1/computers")
.header("checkfu-version", "<checkfu-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"environment_id\": \"<string>\",\n \"config\": {\n \"disk_gb\": 252,\n \"desktop\": {\n \"enabled\": true,\n \"resolution\": \"<string>\"\n }\n },\n \"idle_policy\": {\n \"sleep_after_seconds\": 302430\n },\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.checkfu.com/v1/computers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["checkfu-version"] = '<checkfu-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"environment_id\": \"<string>\",\n \"config\": {\n \"disk_gb\": 252,\n \"desktop\": {\n \"enabled\": true,\n \"resolution\": \"<string>\"\n }\n },\n \"idle_policy\": {\n \"sleep_after_seconds\": 302430\n },\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"type": "computer",
"id": "<string>",
"name": "<string>",
"environment_id": "<string>",
"status": "provisioning",
"config": {
"size": "1cpu_3gb",
"disk_gb": 252,
"desktop": {
"enabled": true,
"resolution": "<string>"
}
},
"idle_policy": {
"sleep_after_seconds": 302430
},
"metadata": {},
"created_at": "<string>",
"updated_at": "<string>",
"archived_at": "<string>",
"recovery_grade": "none"
}{
"error": {
"type": "validation.malformed",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-malformed"
}
}{
"error": {
"type": "auth.invalid_key",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#auth-invalid-key"
}
}{
"error": {
"type": "auth.disabled_tenancy",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#auth-disabled-tenancy"
}
}{
"error": {
"type": "validation.not_found",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-not-found"
}
}{
"error": {
"type": "validation.conflict",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-conflict"
}
}{
"error": {
"type": "budget.exceeded",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#budget-exceeded"
}
}{
"error": {
"type": "runtime.internal",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#runtime-internal"
}
}Create a Computer
Creates one persistent, Workspace-owned Computer from an Environment: it reuses that Environment’s packages and networking (frozen at creation), takes a…
curl --request POST \
--url https://api.checkfu.com/v1/computers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'checkfu-version: <checkfu-version>' \
--data '
{
"name": "<string>",
"environment_id": "<string>",
"config": {
"disk_gb": 252,
"desktop": {
"enabled": true,
"resolution": "<string>"
}
},
"idle_policy": {
"sleep_after_seconds": 302430
},
"metadata": {}
}
'import requests
url = "https://api.checkfu.com/v1/computers"
payload = {
"name": "<string>",
"environment_id": "<string>",
"config": {
"disk_gb": 252,
"desktop": {
"enabled": True,
"resolution": "<string>"
}
},
"idle_policy": { "sleep_after_seconds": 302430 },
"metadata": {}
}
headers = {
"checkfu-version": "<checkfu-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'checkfu-version': '<checkfu-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
environment_id: '<string>',
config: {disk_gb: 252, desktop: {enabled: true, resolution: '<string>'}},
idle_policy: {sleep_after_seconds: 302430},
metadata: {}
})
};
fetch('https://api.checkfu.com/v1/computers', 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.checkfu.com/v1/computers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'environment_id' => '<string>',
'config' => [
'disk_gb' => 252,
'desktop' => [
'enabled' => true,
'resolution' => '<string>'
]
],
'idle_policy' => [
'sleep_after_seconds' => 302430
],
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"checkfu-version: <checkfu-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.checkfu.com/v1/computers"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"environment_id\": \"<string>\",\n \"config\": {\n \"disk_gb\": 252,\n \"desktop\": {\n \"enabled\": true,\n \"resolution\": \"<string>\"\n }\n },\n \"idle_policy\": {\n \"sleep_after_seconds\": 302430\n },\n \"metadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("checkfu-version", "<checkfu-version>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.checkfu.com/v1/computers")
.header("checkfu-version", "<checkfu-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"environment_id\": \"<string>\",\n \"config\": {\n \"disk_gb\": 252,\n \"desktop\": {\n \"enabled\": true,\n \"resolution\": \"<string>\"\n }\n },\n \"idle_policy\": {\n \"sleep_after_seconds\": 302430\n },\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.checkfu.com/v1/computers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["checkfu-version"] = '<checkfu-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"environment_id\": \"<string>\",\n \"config\": {\n \"disk_gb\": 252,\n \"desktop\": {\n \"enabled\": true,\n \"resolution\": \"<string>\"\n }\n },\n \"idle_policy\": {\n \"sleep_after_seconds\": 302430\n },\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"type": "computer",
"id": "<string>",
"name": "<string>",
"environment_id": "<string>",
"status": "provisioning",
"config": {
"size": "1cpu_3gb",
"disk_gb": 252,
"desktop": {
"enabled": true,
"resolution": "<string>"
}
},
"idle_policy": {
"sleep_after_seconds": 302430
},
"metadata": {},
"created_at": "<string>",
"updated_at": "<string>",
"archived_at": "<string>",
"recovery_grade": "none"
}{
"error": {
"type": "validation.malformed",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-malformed"
}
}{
"error": {
"type": "auth.invalid_key",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#auth-invalid-key"
}
}{
"error": {
"type": "auth.disabled_tenancy",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#auth-disabled-tenancy"
}
}{
"error": {
"type": "validation.not_found",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-not-found"
}
}{
"error": {
"type": "validation.conflict",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-conflict"
}
}{
"error": {
"type": "budget.exceeded",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#budget-exceeded"
}
}{
"error": {
"type": "runtime.internal",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#runtime-internal"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
2026-08-31 255Body
Create one persistent Computer from an Environment.
1 - 256^env_[0-9a-f]{32}$Machine shape at creation. Omitted fields take their documented defaults.
Show child attributes
Show child attributes
Idle policy request. Omitted fields keep their current or default value.
Show child attributes
Show child attributes
at most 16 correlation pairs with keys of 1 to 64 characters
Show child attributes
Show child attributes
Response
A persistent, Workspace-owned instance of an Environment that Sessions attach through resources[].
A persistent, Workspace-owned instance of an Environment that Sessions attach through resources[].
computer ^comp_[0-9a-f]{32}$1 - 256^env_[0-9a-f]{32}$Public Computer lifecycle: provisioning, running, sleeping (disk retained, no compute), stopping, or archived.
provisioning, running, sleeping, stopping, archived The Computer's immutable machine shape.
Show child attributes
Show child attributes
Seconds without an attached Session or viewer before a running Computer sleeps; null never sleeps it automatically.
Show child attributes
Show child attributes
at most 16 correlation pairs with keys of 1 to 64 characters
Show child attributes
Show child attributes
Snapshot grade recorded by the Computer controller after accepted capture or restore. It does not establish snapshot availability, current wake success or process continuity. Omitted by legacy responses; absence is unknown, not none.
none, filesystem, browser_profile, full_instance