List workflow references
curl --request GET \
--url https://odyssey.asteroid.ai/agents/v2/agents/{agentId}/workflows \
--header 'X-Asteroid-Agents-Api-Key: <api-key>'import requests
url = "https://odyssey.asteroid.ai/agents/v2/agents/{agentId}/workflows"
headers = {"X-Asteroid-Agents-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Asteroid-Agents-Api-Key': '<api-key>'}};
fetch('https://odyssey.asteroid.ai/agents/v2/agents/{agentId}/workflows', 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/agents/{agentId}/workflows",
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-Asteroid-Agents-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/agents/{agentId}/workflows"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Asteroid-Agents-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/agents/{agentId}/workflows")
.header("X-Asteroid-Agents-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://odyssey.asteroid.ai/agents/v2/agents/{agentId}/workflows")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Asteroid-Agents-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"createdAt": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isDeletable": true,
"isPublished": true,
"version": 123,
"author": "<string>",
"parentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]{
"code": 400,
"message": "<string>"
}{
"code": 401,
"message": "<string>"
}{
"code": 403,
"message": "<string>"
}{
"code": 404,
"message": "<string>"
}{
"code": 500,
"message": "<string>"
}Workflows
List workflow references
List all workflows for an agent with lightweight metadata (IDs, parents, versions)
GET
/
agents
/
{agentId}
/
workflows
List workflow references
curl --request GET \
--url https://odyssey.asteroid.ai/agents/v2/agents/{agentId}/workflows \
--header 'X-Asteroid-Agents-Api-Key: <api-key>'import requests
url = "https://odyssey.asteroid.ai/agents/v2/agents/{agentId}/workflows"
headers = {"X-Asteroid-Agents-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Asteroid-Agents-Api-Key': '<api-key>'}};
fetch('https://odyssey.asteroid.ai/agents/v2/agents/{agentId}/workflows', 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/agents/{agentId}/workflows",
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-Asteroid-Agents-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/agents/{agentId}/workflows"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Asteroid-Agents-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/agents/{agentId}/workflows")
.header("X-Asteroid-Agents-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://odyssey.asteroid.ai/agents/v2/agents/{agentId}/workflows")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Asteroid-Agents-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"createdAt": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isDeletable": true,
"isPublished": true,
"version": 123,
"author": "<string>",
"parentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]{
"code": 400,
"message": "<string>"
}{
"code": 401,
"message": "<string>"
}{
"code": 403,
"message": "<string>"
}{
"code": 404,
"message": "<string>"
}{
"code": 500,
"message": "<string>"
}Authorizations
Path Parameters
The ID of the agent
Response
The request has succeeded.
When this workflow was created
The unique ID of this workflow
Whether this snapshot can be deleted (not published and never executed)
Whether this snapshot is the agent's published version (the API default). At most one snapshot per agent is published.
The monotonic per-agent snapshot version number.
The email of the user who created this workflow.
The ID of the parent workflow this was derived from (for lineage tracking)
⌘I

