curl --request GET \
--url https://api.cloudcruise.com/run/{session_id} \
--header 'cc-key: <api-key>'import requests
url = "https://api.cloudcruise.com/run/{session_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}', 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}",
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}"
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}")
.header("cc-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudcruise.com/run/{session_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",
"status": "execution.success",
"workflow_id": "d4e5f6a7-89ab-45cd-ef01-456789012abc",
"input_variables": {},
"vault_entries": {},
"encrypted_variables": [
"<string>"
],
"session_retries": 123,
"data": {
"your_defined_datamodel": "example_value"
},
"video_urls": [
{
"timestamp": "2024-01-01T00:00:00.000000+00:00",
"session_id": "e5f6a7b8-9abc-4def-0123-56789abcdef0",
"signed_screen_recording_url": "https://www.example.com/screen-recording.mp4",
"signed_screen_recording_url_expires": "2024-01-08T00:00:00.000000+00:00"
}
],
"file_urls": [
{
"signed_file_url": "https://www.example.com/file.csv",
"file_name": "file.csv",
"timestamp": "2025-06-04T20:45:11.669Z",
"signed_file_url_expires": "2025-06-11T20:45:11.669Z",
"metadata": {}
}
],
"screenshot_urls": [
{
"signed_screenshot_url": "https://www.example.com/screenshot.png",
"node_display_name": "Button",
"timestamp": "2024-01-01T00:00:00.000000+00:00",
"signed_screenshot_url_expires": "2024-01-01T00:00:00.000000+00:00",
"error_screenshot": false
}
],
"errors": [
{
"message": "Button not found",
"error_id": "7c8d9e0f-1a2b-4c3d-8e5f-6a7b8c9d0e1f",
"full_url": "https://www.example.com/current-page",
"llm_error_description": "The login button selector did not match any element.",
"created_at": "2024-01-01T00:00:00.000000+00:00",
"error_code": "ERR-0001",
"action_type": "CLICK",
"action_display_name": "Click on the confirm button",
"original_error": "Element not found: //button[@id='login-submit']",
"llm_error_category": "AUTHENTICATION_ERROR",
"llm_error_sub_type": "INVALID_CREDENTIALS",
"node_id": "9f8e7d6c-5b4a-4321-9edc-ba9876543210",
"input_recovery": {},
"password_update_recovery": {}
}
],
"was_recovered": true,
"recovered_error_ids": [
"<string>"
],
"adoptable_error_ids": [
"<string>"
]
}{
"statusCode": 429,
"message": "Too Many Requests",
"error": "Too Many Requests",
"limit": 500,
"remaining": 0,
"retryAfterSeconds": 1
}Retrieve run results
Retrieves comprehensive results and execution details for a specific browser agent run. This endpoint provides:
- Current execution status and overall outcome
- Detailed output data based on your defined data model
- Run artifacts including screenshots, error logs, and authentication/input variable records
curl --request GET \
--url https://api.cloudcruise.com/run/{session_id} \
--header 'cc-key: <api-key>'import requests
url = "https://api.cloudcruise.com/run/{session_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}', 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}",
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}"
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}")
.header("cc-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudcruise.com/run/{session_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",
"status": "execution.success",
"workflow_id": "d4e5f6a7-89ab-45cd-ef01-456789012abc",
"input_variables": {},
"vault_entries": {},
"encrypted_variables": [
"<string>"
],
"session_retries": 123,
"data": {
"your_defined_datamodel": "example_value"
},
"video_urls": [
{
"timestamp": "2024-01-01T00:00:00.000000+00:00",
"session_id": "e5f6a7b8-9abc-4def-0123-56789abcdef0",
"signed_screen_recording_url": "https://www.example.com/screen-recording.mp4",
"signed_screen_recording_url_expires": "2024-01-08T00:00:00.000000+00:00"
}
],
"file_urls": [
{
"signed_file_url": "https://www.example.com/file.csv",
"file_name": "file.csv",
"timestamp": "2025-06-04T20:45:11.669Z",
"signed_file_url_expires": "2025-06-11T20:45:11.669Z",
"metadata": {}
}
],
"screenshot_urls": [
{
"signed_screenshot_url": "https://www.example.com/screenshot.png",
"node_display_name": "Button",
"timestamp": "2024-01-01T00:00:00.000000+00:00",
"signed_screenshot_url_expires": "2024-01-01T00:00:00.000000+00:00",
"error_screenshot": false
}
],
"errors": [
{
"message": "Button not found",
"error_id": "7c8d9e0f-1a2b-4c3d-8e5f-6a7b8c9d0e1f",
"full_url": "https://www.example.com/current-page",
"llm_error_description": "The login button selector did not match any element.",
"created_at": "2024-01-01T00:00:00.000000+00:00",
"error_code": "ERR-0001",
"action_type": "CLICK",
"action_display_name": "Click on the confirm button",
"original_error": "Element not found: //button[@id='login-submit']",
"llm_error_category": "AUTHENTICATION_ERROR",
"llm_error_sub_type": "INVALID_CREDENTIALS",
"node_id": "9f8e7d6c-5b4a-4321-9edc-ba9876543210",
"input_recovery": {},
"password_update_recovery": {}
}
],
"was_recovered": true,
"recovered_error_ids": [
"<string>"
],
"adoptable_error_ids": [
"<string>"
]
}{
"statusCode": 429,
"message": "Too Many Requests",
"error": "Too Many Requests",
"limit": 500,
"remaining": 0,
"retryAfterSeconds": 1
}was_recovered—trueif any errors were successfully recovered by the Maintenance Agentrecovered_error_ids— array oferror_idvalues that were recovered, correlating to theerrorsarrayadoptable_error_ids— recovered popup error IDs that are eligible for Adopt fix with Builder Agent in run details
llm_error_sub_type (the specific sub‑classification) and llm_error_description (an AI‑generated explanation of the failure). See the error classification matrix for all possible category and sub‑type values.Authorizations
API key-based authentication. Provide your CloudCruise API key in the cc-key header.
Path Parameters
Unique identifier for the browser agent run session
Response
Run results successfully retrieved
Comprehensive response containing workflow execution results and artifacts
Unique identifier for the workflow execution session (UUIDv4)
"e5f6a7b8-9abc-4def-0123-56789abcdef0"
Current status of the workflow execution
execution.queued, execution.start, execution.failed, execution.success, execution.paused, execution.stopped, execution.requeued "execution.success"
Identifier for the workflow that was executed
"d4e5f6a7-89ab-45cd-ef01-456789012abc"
Variables provided at workflow execution start. Contains both workflow-specific inputs and vault entry references.
Vault entries are referenced by their permissioned_user_id, either as single strings or arrays for credential pooling.
Vault entry metadata for credentials used in this run. Keys are the credential aliases defined in the workflow's vault_schema. Values contain the user ID, alias, domain, and encrypted credentials.
Show child attributes
Show child attributes
List of input variable keys whose values are encrypted vault credentials. Use this to identify which input_variables contain sensitive data that should not be displayed in plaintext.
Number of times this run has been retried due to recoverable errors (e.g., service unavailable). Null if the run has not been retried.
Output data from the workflow execution, structured according to your defined data model
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
List of errors encountered during workflow execution
Show child attributes
Show child attributes
Whether any errors in this run were successfully recovered by the Maintenance Agent. True if at least one error was auto-recovered.
Array of error_id values from the errors array that were successfully auto-recovered by the Maintenance Agent.
Array of recovered popup error_id values that are eligible for Adopt fix with Builder Agent in run details.
Was this page helpful?

