curl --request GET \
--url https://core.cyberun.cloud/api/v1/r/tasks/{taskId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://core.cyberun.cloud/api/v1/r/tasks/{taskId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://core.cyberun.cloud/api/v1/r/tasks/{taskId}', 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://core.cyberun.cloud/api/v1/r/tasks/{taskId}",
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: Bearer <token>"
],
]);
$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://core.cyberun.cloud/api/v1/r/tasks/{taskId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://core.cyberun.cloud/api/v1/r/tasks/{taskId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.cyberun.cloud/api/v1/r/tasks/{taskId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "019abc12-9012-7890-abcd-ef1234567896",
"workflow_id": "019abc12-8901-7890-abcd-ef1234567895",
"task_source": "jwt",
"task_status": "pending",
"created_at": "2025-02-10T14:00:00Z",
"task_error": "",
"retry_count": 0,
"started_at": "2025-02-10T14:00:05Z",
"completed_at": "2025-02-10T14:01:30Z",
"agent_id": "agent-gpu-01",
"agent_labels": [
"gpu",
"a100"
],
"gateway_id": "gw-a1b2c3d4",
"gpu_type": "NVIDIA GeForce RTX 4090",
"dispatch_target": "agent",
"target_pool": "team",
"tool_type": "comfyui"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}Get task status
Retrieve the current status and metadata of a task.
Use this to poll for task completion.
Accepts JWT Bearer, sk- integration credential, or dk- device credential.
curl --request GET \
--url https://core.cyberun.cloud/api/v1/r/tasks/{taskId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://core.cyberun.cloud/api/v1/r/tasks/{taskId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://core.cyberun.cloud/api/v1/r/tasks/{taskId}', 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://core.cyberun.cloud/api/v1/r/tasks/{taskId}",
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: Bearer <token>"
],
]);
$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://core.cyberun.cloud/api/v1/r/tasks/{taskId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://core.cyberun.cloud/api/v1/r/tasks/{taskId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.cyberun.cloud/api/v1/r/tasks/{taskId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "019abc12-9012-7890-abcd-ef1234567896",
"workflow_id": "019abc12-8901-7890-abcd-ef1234567895",
"task_source": "jwt",
"task_status": "pending",
"created_at": "2025-02-10T14:00:00Z",
"task_error": "",
"retry_count": 0,
"started_at": "2025-02-10T14:00:05Z",
"completed_at": "2025-02-10T14:01:30Z",
"agent_id": "agent-gpu-01",
"agent_labels": [
"gpu",
"a100"
],
"gateway_id": "gw-a1b2c3d4",
"gpu_type": "NVIDIA GeForce RTX 4090",
"dispatch_target": "agent",
"target_pool": "team",
"tool_type": "comfyui"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}Authorizations
User session JWT (Bearer ). Must be paired with the X-Team-ID
request header on team-scoped endpoints so the server knows which
team's resources to operate on.
Headers
UUID of the team to scope the request to. Used by dual-auth endpoints (runtime + scoped management):
- JWT callers MUST send it — a user may belong to multiple teams and the runtime cannot otherwise know which one to operate on. Missing header → 400.
- Credential callers (
sk-,dk-) can omit it because the team is derived from the credential row itself. Any value sent is ignored.
"019abc12-4567-7890-abcd-ef1234567891"
Path Parameters
UUID of the task.
"019abc12-9012-7890-abcd-ef1234567896"
Response
Task details
Task status and metadata. Use GET /r/tasks/{taskId}/result for output data and download URLs.
Unique task identifier (returned by runWorkflow / runWorkflowBySlug).
"019abc12-9012-7890-abcd-ef1234567896"
ID of the workflow template this task was created from.
"019abc12-8901-7890-abcd-ef1234567895"
How the task was created:
jwt: User executed a workflow via the web UI (JWT auth).api_key: Executed programmatically via API Key (Bearer sk-xxx).
jwt, api_key Current state of the task:
pending: Task created, waiting to be picked up by the scheduler.waiting: The scheduler received the task, waiting for an available agent with matching labels.queued: Task assigned to an agent, waiting for ACK.running: Agent is executing the ComfyUI workflow.completed: Execution finished successfully, output is available.failed: Execution failed, check the error field for details.cancelled: Task was cancelled before completion.
pending, waiting, queued, running, completed, failed, cancelled When the task was submitted (ISO 8601).
"2025-02-10T14:00:00Z"
Error message if the task failed. Empty string for non-failed tasks.
""
Number of times this task has been retried. 0 for the original attempt. Increments on each automatic retry up to the workflow's max_retries.
0
When the agent started executing the task. null if not yet started.
"2025-02-10T14:00:05Z"
When the task reached a terminal state (completed, failed, or cancelled). null if still running.
"2025-02-10T14:01:30Z"
ID of the agent that processed this task. null if not yet assigned.
"agent-gpu-01"
Labels of the agent at the time of assignment. null if not yet assigned.
["gpu", "a100"]
ID of the gateway that dispatched this task. null if not yet dispatched.
"gw-a1b2c3d4"
GPU model that executed (or is executing) this task (e.g. "NVIDIA GeForce RTX 4090"). Available for all task sources.
"NVIDIA GeForce RTX 4090"
Where the task was executed:
agent: Executed on a BYOC (Bring Your Own Compute) agent.comfy_cloud: Executed on ComfyUI Cloud.
agent, comfy_cloud "agent"
Dispatch pool. Echoed back from the run request (P2.2). For
agent-fulfilled tasks, this records which pool the task was
routed through — useful for audit and accounting. Always
present; defaults to team on legacy rows.
team, community "team"
Tool runtime used by this workflow:
comfyui: ComfyUI API workflow JSON (default, backward compatible).nerfstudio: Nerfstudio 3DGS pipeline spec.
comfyui, nerfstudio "comfyui"
