curl --request POST \
--url https://api.checkfu.com/v1/computers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'checkfu-version: <checkfu-version>' \
--data '
{
"name": "<string>",
"idle_policy": {
"sleep_after_seconds": 302430
},
"metadata": {}
}
'import requests
url = "https://api.checkfu.com/v1/computers/{id}"
payload = {
"name": "<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>', idle_policy: {sleep_after_seconds: 302430}, metadata: {}})
};
fetch('https://api.checkfu.com/v1/computers/{id}', 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/{id}",
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>',
'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/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\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/{id}")
.header("checkfu-version", "<checkfu-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\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/{id}")
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 \"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": "2cpu_4gb",
"disk_gb": 255,
"desktop": {
"enabled": true,
"resolution": "<string>"
}
},
"idle_policy": {
"sleep_after_seconds": 302430
},
"metadata": {},
"created_at": "<string>",
"updated_at": "<string>",
"archived_at": "<string>"
}{
"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"
}
}Update a Computer
Renames a Computer, changes its idle policy, or patches its metadata (a null value removes a key).
curl --request POST \
--url https://api.checkfu.com/v1/computers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'checkfu-version: <checkfu-version>' \
--data '
{
"name": "<string>",
"idle_policy": {
"sleep_after_seconds": 302430
},
"metadata": {}
}
'import requests
url = "https://api.checkfu.com/v1/computers/{id}"
payload = {
"name": "<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>', idle_policy: {sleep_after_seconds: 302430}, metadata: {}})
};
fetch('https://api.checkfu.com/v1/computers/{id}', 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/{id}",
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>',
'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/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\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/{id}")
.header("checkfu-version", "<checkfu-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\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/{id}")
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 \"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": "2cpu_4gb",
"disk_gb": 255,
"desktop": {
"enabled": true,
"resolution": "<string>"
}
},
"idle_policy": {
"sleep_after_seconds": 302430
},
"metadata": {},
"created_at": "<string>",
"updated_at": "<string>",
"archived_at": "<string>"
}{
"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 255Path Parameters
^comp_[0-9a-f]{32}$Body
Rename a Computer, change its idle policy, or patch its metadata. The machine shape is immutable.
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