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 '
{
"scope": {
"type": "principal",
"principal_id": "<string>"
},
"profile_id": "<string>",
"profile_revision_number": 1,
"requested_at": "<string>",
"deadline": "<string>"
}
'import requests
url = "https://api.checkfu.com/v1/computers"
payload = {
"scope": {
"type": "principal",
"principal_id": "<string>"
},
"profile_id": "<string>",
"profile_revision_number": 1,
"requested_at": "<string>",
"deadline": "<string>"
}
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({
scope: {type: 'principal', principal_id: '<string>'},
profile_id: '<string>',
profile_revision_number: 1,
requested_at: '<string>',
deadline: '<string>'
})
};
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([
'scope' => [
'type' => 'principal',
'principal_id' => '<string>'
],
'profile_id' => '<string>',
'profile_revision_number' => 1,
'requested_at' => '<string>',
'deadline' => '<string>'
]),
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 \"scope\": {\n \"type\": \"principal\",\n \"principal_id\": \"<string>\"\n },\n \"profile_id\": \"<string>\",\n \"profile_revision_number\": 1,\n \"requested_at\": \"<string>\",\n \"deadline\": \"<string>\"\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 \"scope\": {\n \"type\": \"principal\",\n \"principal_id\": \"<string>\"\n },\n \"profile_id\": \"<string>\",\n \"profile_revision_number\": 1,\n \"requested_at\": \"<string>\",\n \"deadline\": \"<string>\"\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 \"scope\": {\n \"type\": \"principal\",\n \"principal_id\": \"<string>\"\n },\n \"profile_id\": \"<string>\",\n \"profile_revision_number\": 1,\n \"requested_at\": \"<string>\",\n \"deadline\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"workspace_id": "<string>",
"scope": {
"type": "principal",
"principal_id": "<string>"
},
"profile_id": "<string>",
"profile_revision_number": 1,
"state": "sleeping",
"generation": 1,
"current_snapshot_id": "<string>",
"recovery_grade": "none",
"resource_version": 1,
"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"
}
}Create a Computer
Creates one sleeping provider-neutral Computer from an active immutable ComputerProfileRevision after checking the declared Principal or Session scope. This operation allocates no provider resource and returns no lease or private provider coordinates. Send Idempotency-Key so an interrupted create resolves to the same Computer and controller command.
Checkfu support posture: alpha; hosted. No release evidence journey applies to this operation.
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 '
{
"scope": {
"type": "principal",
"principal_id": "<string>"
},
"profile_id": "<string>",
"profile_revision_number": 1,
"requested_at": "<string>",
"deadline": "<string>"
}
'import requests
url = "https://api.checkfu.com/v1/computers"
payload = {
"scope": {
"type": "principal",
"principal_id": "<string>"
},
"profile_id": "<string>",
"profile_revision_number": 1,
"requested_at": "<string>",
"deadline": "<string>"
}
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({
scope: {type: 'principal', principal_id: '<string>'},
profile_id: '<string>',
profile_revision_number: 1,
requested_at: '<string>',
deadline: '<string>'
})
};
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([
'scope' => [
'type' => 'principal',
'principal_id' => '<string>'
],
'profile_id' => '<string>',
'profile_revision_number' => 1,
'requested_at' => '<string>',
'deadline' => '<string>'
]),
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 \"scope\": {\n \"type\": \"principal\",\n \"principal_id\": \"<string>\"\n },\n \"profile_id\": \"<string>\",\n \"profile_revision_number\": 1,\n \"requested_at\": \"<string>\",\n \"deadline\": \"<string>\"\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 \"scope\": {\n \"type\": \"principal\",\n \"principal_id\": \"<string>\"\n },\n \"profile_id\": \"<string>\",\n \"profile_revision_number\": 1,\n \"requested_at\": \"<string>\",\n \"deadline\": \"<string>\"\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 \"scope\": {\n \"type\": \"principal\",\n \"principal_id\": \"<string>\"\n },\n \"profile_id\": \"<string>\",\n \"profile_revision_number\": 1,\n \"requested_at\": \"<string>\",\n \"deadline\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"workspace_id": "<string>",
"scope": {
"type": "principal",
"principal_id": "<string>"
},
"profile_id": "<string>",
"profile_revision_number": 1,
"state": "sleeping",
"generation": 1,
"current_snapshot_id": "<string>",
"recovery_grade": "none",
"resource_version": 1,
"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-27 255Body
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
^cprof_[0-9a-f]{32}$x > 0A canonical UTC ISO-8601 timestamp with millisecond precision.
24^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$A canonical UTC ISO-8601 timestamp with millisecond precision.
24^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$Response
coherent timestamps, archive state, and snapshot-backed recovery grade
^comp_[0-9a-f]{32}$^wrkspc_[0-9a-f]{32}$- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
^cprof_[0-9a-f]{32}$x > 0sleeping, waking, ready, recovering, needs_recovery, disabling, disabled, archiving, archived x >= 0^csnp_[0-9a-f]{32}$none, filesystem, browser_profile, full_instance x > 0A canonical UTC ISO-8601 timestamp with millisecond precision.
24^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$A canonical UTC ISO-8601 timestamp with millisecond precision.
24^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$A canonical UTC ISO-8601 timestamp with millisecond precision.
24^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$