curl --request GET \
--url https://odyssey.asteroid.ai/agents/v2/executions/{executionId} \
--header 'X-Api-Key: <api-key>'import requests
url = "https://odyssey.asteroid.ai/agents/v2/executions/{executionId}"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://odyssey.asteroid.ai/agents/v2/executions/{executionId}', 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://odyssey.asteroid.ai/agents/v2/executions/{executionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-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://odyssey.asteroid.ai/agents/v2/executions/{executionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-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://odyssey.asteroid.ai/agents/v2/executions/{executionId}")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://odyssey.asteroid.ai/agents/v2/executions/{executionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentName": "<string>",
"comments": [
{
"content": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"executionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"public": true,
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"createdAt": "2023-11-07T05:31:56Z",
"hasBeenRerun": true,
"humanLabels": [
{
"color": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"workflowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflowName": "<string>",
"workflowVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentProfileId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentProfileName": "<string>",
"browserLiveViewUrl": "<string>",
"browserRecordingUrl": "<string>",
"duration": 123,
"executionOptions": {
"softTimeoutMins": 2,
"variantKey": "<string>"
},
"executionResult": {
"createdAt": "2023-11-07T05:31:56Z",
"executionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "<string>",
"reasoning": "<string>",
"result": "<unknown>"
},
"inputs": {},
"liveViewUrl": "<string>",
"metadata": {},
"parentExecutionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUrl": "<string>",
"profileId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"profileName": "<string>",
"purgedAt": "2023-11-07T05:31:56Z",
"recordingUrl": "<string>",
"scriptFailures": [
{
"occurredAt": "2023-11-07T05:31:56Z",
"actionId": "<string>",
"error": "<string>",
"failedLine": 123,
"nodeId": "<string>",
"nodeName": "<string>",
"scriptFilepath": "<string>",
"step": 123
}
],
"startedAt": "2023-11-07T05:31:56Z",
"terminalAt": "2023-11-07T05:31:56Z",
"triggerContext": {
"runner": {
"email": "<string>",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isAdmin": true
},
"source": "api",
"actor": {
"id": "<string>",
"kind": "person"
},
"apiKey": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
}
}{
"code": 400,
"message": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"parameter": "<string>"
}
],
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>"
}{
"code": 401,
"message": "<string>",
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>"
}{
"code": 403,
"message": "<string>",
"capability": "<string>",
"detail": "<string>",
"instance": "<string>",
"reason": "capability_required",
"status": 123,
"title": "<string>",
"type": "<string>"
}{
"code": 404,
"message": "<string>",
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>"
}{
"code": 500,
"message": "<string>",
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>"
}Get execution
Get a single execution by ID with all details
curl --request GET \
--url https://odyssey.asteroid.ai/agents/v2/executions/{executionId} \
--header 'X-Api-Key: <api-key>'import requests
url = "https://odyssey.asteroid.ai/agents/v2/executions/{executionId}"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://odyssey.asteroid.ai/agents/v2/executions/{executionId}', 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://odyssey.asteroid.ai/agents/v2/executions/{executionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-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://odyssey.asteroid.ai/agents/v2/executions/{executionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-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://odyssey.asteroid.ai/agents/v2/executions/{executionId}")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://odyssey.asteroid.ai/agents/v2/executions/{executionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentName": "<string>",
"comments": [
{
"content": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"executionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"public": true,
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"createdAt": "2023-11-07T05:31:56Z",
"hasBeenRerun": true,
"humanLabels": [
{
"color": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"workflowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflowName": "<string>",
"workflowVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentProfileId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentProfileName": "<string>",
"browserLiveViewUrl": "<string>",
"browserRecordingUrl": "<string>",
"duration": 123,
"executionOptions": {
"softTimeoutMins": 2,
"variantKey": "<string>"
},
"executionResult": {
"createdAt": "2023-11-07T05:31:56Z",
"executionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "<string>",
"reasoning": "<string>",
"result": "<unknown>"
},
"inputs": {},
"liveViewUrl": "<string>",
"metadata": {},
"parentExecutionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUrl": "<string>",
"profileId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"profileName": "<string>",
"purgedAt": "2023-11-07T05:31:56Z",
"recordingUrl": "<string>",
"scriptFailures": [
{
"occurredAt": "2023-11-07T05:31:56Z",
"actionId": "<string>",
"error": "<string>",
"failedLine": 123,
"nodeId": "<string>",
"nodeName": "<string>",
"scriptFilepath": "<string>",
"step": 123
}
],
"startedAt": "2023-11-07T05:31:56Z",
"terminalAt": "2023-11-07T05:31:56Z",
"triggerContext": {
"runner": {
"email": "<string>",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isAdmin": true
},
"source": "api",
"actor": {
"id": "<string>",
"kind": "person"
},
"apiKey": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
}
}{
"code": 400,
"message": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"parameter": "<string>"
}
],
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>"
}{
"code": 401,
"message": "<string>",
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>"
}{
"code": 403,
"message": "<string>",
"capability": "<string>",
"detail": "<string>",
"instance": "<string>",
"reason": "capability_required",
"status": 123,
"title": "<string>",
"type": "<string>"
}{
"code": 404,
"message": "<string>",
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>"
}{
"code": 500,
"message": "<string>",
"detail": "<string>",
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>"
}Authorizations
Path Parameters
Response
The request has succeeded.
Represents a single execution in a list view
Deprecated: use workflowId. The ID of the workflow that was executed
Deprecated: use workflowName. The workflow display name
Show child attributes
Show child attributes
Show child attributes
Show child attributes
queued, starting, running, paused, awaiting_confirmation, completed, cancelled, failed, paused_by_agent Deprecated: use profileId. The ID of the agent profile used for this execution (if any)
Deprecated: use profileName. The name of the agent profile used for this execution (if any)
Deprecated: Use 'liveViewUrl' instead.
Deprecated: Use 'recordingUrl' instead.
Execution duration in seconds (only present for terminal executions)
Per-execution runtime options (e.g. variant key)
Show child attributes
Show child attributes
Execution result containing outcome, reasoning, and result data
Show child attributes
Show child attributes
Live view URL for debugging (if an environment is active and execution is running)
ID of the execution this was rerun from, if applicable
Deep link to this execution in the Asteroid platform UI
When the retention purge removed this execution's data. Inputs, activities, files and recordings are gone; the row is a tombstone.
Recording URL for playback (if an environment was used and execution is terminal)
Script failures recorded for this execution (omitted when none occurred)
Show child attributes
Show child attributes
When the execution actually started running; absent while queued. createdAt means "enqueued at" for executions that waited in the queue.
Context about how and by whom this execution was triggered (discriminated by source)
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes

