curl --request GET \
--url https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id} \
--header 'cc-key: <api-key>'import requests
url = "https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}"
headers = {"cc-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'cc-key': '<api-key>'}};
fetch('https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_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.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"cc-key: <api-key>"
],
]);
$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://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cc-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}")
.header("cc-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cc-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"session_id": "e5f6a7b8-9abc-4def-0123-56789abcdef0",
"node_id": "9f8e7d6c-5b4a-4321-9edc-ba9876543210",
"page_snapshot_url": "https://storage.example.com/page_snapshots/workspace/workflow/node/session.html?token=...",
"screenshots": [
{
"screenshot_id": "aabbccdd-eeff-4001-8899-112233445566",
"signed_screenshot_url": "https://storage.example.com/screenshots/workspace/session/screenshot.jpeg?token=...",
"node_display_name": "Click Login Button",
"node_id": "9f8e7d6c-5b4a-4321-9edc-ba9876543210",
"timestamp": "2026-02-27T07:16:20.083Z",
"signed_screenshot_url_expires": "2026-02-27T08:16:20.083Z",
"error_screenshot": false
}
]
}Get debug snapshots
Retrieves debug snapshots for a specific node in a workflow run. This endpoint is only available for runs started with debug: true. It returns:
- An HTML page snapshot captured at the time the node was executed
- Any screenshots taken at that node
The HTML snapshot contains the full DOM state of the page, including inlined iframe content. Signed URLs follow the workspace’s Signed File URL Expiration setting (default 7 days); signed_screenshot_url_expires gives each screenshot URL’s exact expiry.
curl --request GET \
--url https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id} \
--header 'cc-key: <api-key>'import requests
url = "https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}"
headers = {"cc-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'cc-key': '<api-key>'}};
fetch('https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_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.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"cc-key: <api-key>"
],
]);
$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://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cc-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}")
.header("cc-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudcruise.com/run/{session_id}/debug-snapshots/{node_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cc-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"session_id": "e5f6a7b8-9abc-4def-0123-56789abcdef0",
"node_id": "9f8e7d6c-5b4a-4321-9edc-ba9876543210",
"page_snapshot_url": "https://storage.example.com/page_snapshots/workspace/workflow/node/session.html?token=...",
"screenshots": [
{
"screenshot_id": "aabbccdd-eeff-4001-8899-112233445566",
"signed_screenshot_url": "https://storage.example.com/screenshots/workspace/session/screenshot.jpeg?token=...",
"node_display_name": "Click Login Button",
"node_id": "9f8e7d6c-5b4a-4321-9edc-ba9876543210",
"timestamp": "2026-02-27T07:16:20.083Z",
"signed_screenshot_url_expires": "2026-02-27T08:16:20.083Z",
"error_screenshot": false
}
]
}Authorizations
API key-based authentication. Provide your CloudCruise API key in the cc-key header.
Path Parameters
Unique identifier for the workflow execution session
Unique identifier for the workflow node
Response
Debug snapshots successfully retrieved
Debug snapshot data for a specific node in a workflow run
Unique identifier for the workflow execution session
"e5f6a7b8-9abc-4def-0123-56789abcdef0"
Unique identifier for the workflow node
"9f8e7d6c-5b4a-4321-9edc-ba9876543210"
Signed URL to the HTML page snapshot captured when this node was executed. Contains the full DOM state including inlined iframe content. Valid for the workspace's Signed File URL Expiration. Null if no snapshot was captured.
"https://storage.example.com/page_snapshots/workspace/workflow/node/session.html?token=..."
Screenshots taken at this node during execution. Empty if none were taken.
Show child attributes
Show child attributes
Was this page helpful?

