curl --request GET \
--url https://core.cyberun.cloud/api/v1/r/workflows/slug/{workflowSlug} \
--header 'Authorization: Bearer <token>'import requests
url = "https://core.cyberun.cloud/api/v1/r/workflows/slug/{workflowSlug}"
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/workflows/slug/{workflowSlug}', 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/workflows/slug/{workflowSlug}",
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/workflows/slug/{workflowSlug}"
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/workflows/slug/{workflowSlug}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.cyberun.cloud/api/v1/r/workflows/slug/{workflowSlug}")
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-8901-7890-abcd-ef1234567895",
"workflow_slug": "sd-portrait-v2",
"display_name": "SD 1.5 Portrait Generator",
"version": 3,
"workflow_status": "active",
"created_at": "2025-01-20T10:00:00Z",
"updated_at": "2025-02-15T14:30:00Z",
"description": "<string>",
"workflow_json": {},
"parameters": [
{
"key": "prompt",
"type": "string",
"label": "Positive Prompt",
"node_id": "6",
"field": "text",
"target_path": "train.max_num_iterations",
"description": "<string>",
"required": true,
"default": "<unknown>",
"min": 123,
"max": 123,
"options": [
"<string>"
],
"accept": [
"<string>"
],
"source_key": "input_image"
}
],
"required_labels": [
"gpu",
"sd15"
],
"task_timeout": 300,
"max_retries": 2,
"preferred_gpu": "RTX_4090",
"default_dispatch_target": "agent",
"min_vram_gb": 24,
"required_models": [
"checkpoints/sdxl-base.safetensors"
],
"tool_type": "comfyui"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}Get workflow details by slug or slug@version (runtime)
Returns the full workflow template using its human-readable slug instead of UUID.
Identical to GET by ID but allows lookup by the globally unique slug.
Pass slug@version (for example, text-to-image@2) to inspect the workflow
JSON and parameter definitions saved for a previous version snapshot.
Use the parameters array to discover configurable inputs for RunWorkflowBySlug.
Accepts JWT Bearer, sk- integration credential, or dk- device credential.
curl --request GET \
--url https://core.cyberun.cloud/api/v1/r/workflows/slug/{workflowSlug} \
--header 'Authorization: Bearer <token>'import requests
url = "https://core.cyberun.cloud/api/v1/r/workflows/slug/{workflowSlug}"
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/workflows/slug/{workflowSlug}', 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/workflows/slug/{workflowSlug}",
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/workflows/slug/{workflowSlug}"
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/workflows/slug/{workflowSlug}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.cyberun.cloud/api/v1/r/workflows/slug/{workflowSlug}")
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-8901-7890-abcd-ef1234567895",
"workflow_slug": "sd-portrait-v2",
"display_name": "SD 1.5 Portrait Generator",
"version": 3,
"workflow_status": "active",
"created_at": "2025-01-20T10:00:00Z",
"updated_at": "2025-02-15T14:30:00Z",
"description": "<string>",
"workflow_json": {},
"parameters": [
{
"key": "prompt",
"type": "string",
"label": "Positive Prompt",
"node_id": "6",
"field": "text",
"target_path": "train.max_num_iterations",
"description": "<string>",
"required": true,
"default": "<unknown>",
"min": 123,
"max": 123,
"options": [
"<string>"
],
"accept": [
"<string>"
],
"source_key": "input_image"
}
],
"required_labels": [
"gpu",
"sd15"
],
"task_timeout": 300,
"max_retries": 2,
"preferred_gpu": "RTX_4090",
"default_dispatch_target": "agent",
"min_vram_gb": 24,
"required_models": [
"checkpoints/sdxl-base.safetensors"
],
"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
Workflow slug for runtime lookup. Use slug for the latest version or
slug@version to reference an immutable workflow snapshot, e.g. text-to-image@2.
128^[a-z0-9]+(?:-[a-z0-9]+)*(?:@[1-9][0-9]*)?$"text-to-image@2"
Response
Workflow details
Full workflow template details including the workflow JSON and parameter definitions. Note: workflow_json is not returned for API-Key authenticated requests.
UUID of the workflow.
"019abc12-8901-7890-abcd-ef1234567895"
Globally unique URL-friendly slug for the workflow.
"sd-portrait-v2"
Workflow name.
"SD 1.5 Portrait Generator"
Auto-incrementing version number. Increases by 1 on each update.
3
Current workflow status:
active: Workflow can accept new task submissions.disabled: New task submissions are rejected.
active, disabled "active"
When the workflow was created (ISO 8601).
"2025-01-20T10:00:00Z"
When the workflow was last updated (ISO 8601).
"2025-02-15T14:30:00Z"
Workflow description.
Complete tool-specific workflow definition. Not returned for API-Key authenticated requests.
Configurable parameter definitions.
Show child attributes
Show child attributes
Labels required for agent matching.
["gpu", "sd15"]
Maximum execution time in seconds after agent ACK. 0 means no timeout.
300
Maximum number of automatic retries on failure. 0 means no retry.
2
Preferred GPU type for agent matching.
"RTX_4090"
Default compute source for tasks created from this workflow.
agent, comfy_cloud "agent"
Minimum GPU VRAM required (decimal GB). 0 means no requirement.
24
Model paths the workflow needs in an agent's cache.
["checkpoints/sdxl-base.safetensors"]
Tool runtime used by this workflow:
comfyui: ComfyUI API workflow JSON (default, backward compatible).nerfstudio: Nerfstudio 3DGS pipeline spec.
comfyui, nerfstudio "comfyui"
