List task runs
curl --request GET \
--url https://api.komos.ai/public/v1/tasks/{taskId}/runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.komos.ai/public/v1/tasks/{taskId}/runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.komos.ai/public/v1/tasks/{taskId}/runs', 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.komos.ai/public/v1/tasks/{taskId}/runs",
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://api.komos.ai/public/v1/tasks/{taskId}/runs"
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://api.komos.ai/public/v1/tasks/{taskId}/runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.komos.ai/public/v1/tasks/{taskId}/runs")
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{
"runs": [
{
"id": "220a501c-82f4-43e2-8107-3d8e0c0f4c1b",
"taskId": "79c6b1aa-24d1-45b3-8c94-9a2e2a2f55bc",
"status": "COMPLETED",
"triggerType": "api",
"timestamps": {
"createdAt": "2025-10-13T15:02:44.812Z",
"startedAt": "2025-10-13T15:02:47.001Z",
"finishedAt": "2025-10-13T15:03:28.559Z"
},
"progress": {
"currentStep": 5,
"stepsTotal": 5
},
"inputs": {
"url": "https://example.com/orders/48190"
},
"outputs": {
"summary": "Completed order checkout scrape"
},
"logsUrl": "https://api.komos.ai/public/v1/task-runs/220a501c-82f4-43e2-8107-3d8e0c0f4c1b/logs",
"error": null,
"cancelReason": null
},
{
"id": "9c77d908-7bf4-4e7f-9a20-2c5e7fdf2e94",
"taskId": "79c6b1aa-24d1-45b3-8c94-9a2e2a2f55bc",
"status": "PENDING",
"triggerType": "api",
"timestamps": {
"createdAt": "2025-10-14T18:21:52.123Z",
"startedAt": null,
"finishedAt": null
},
"progress": null,
"inputs": {
"url": "https://example.com/orders/48219",
"runHeadless": true
},
"outputs": {},
"logsUrl": "https://api.komos.ai/public/v1/task-runs/9c77d908-7bf4-4e7f-9a20-2c5e7fdf2e94/logs",
"error": null,
"cancelReason": null
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Task runs
List Task Runs
Fetch the most recent runs for a task.
GET
/
public
/
v1
/
tasks
/
{taskId}
/
runs
List task runs
curl --request GET \
--url https://api.komos.ai/public/v1/tasks/{taskId}/runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.komos.ai/public/v1/tasks/{taskId}/runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.komos.ai/public/v1/tasks/{taskId}/runs', 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.komos.ai/public/v1/tasks/{taskId}/runs",
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://api.komos.ai/public/v1/tasks/{taskId}/runs"
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://api.komos.ai/public/v1/tasks/{taskId}/runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.komos.ai/public/v1/tasks/{taskId}/runs")
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{
"runs": [
{
"id": "220a501c-82f4-43e2-8107-3d8e0c0f4c1b",
"taskId": "79c6b1aa-24d1-45b3-8c94-9a2e2a2f55bc",
"status": "COMPLETED",
"triggerType": "api",
"timestamps": {
"createdAt": "2025-10-13T15:02:44.812Z",
"startedAt": "2025-10-13T15:02:47.001Z",
"finishedAt": "2025-10-13T15:03:28.559Z"
},
"progress": {
"currentStep": 5,
"stepsTotal": 5
},
"inputs": {
"url": "https://example.com/orders/48190"
},
"outputs": {
"summary": "Completed order checkout scrape"
},
"logsUrl": "https://api.komos.ai/public/v1/task-runs/220a501c-82f4-43e2-8107-3d8e0c0f4c1b/logs",
"error": null,
"cancelReason": null
},
{
"id": "9c77d908-7bf4-4e7f-9a20-2c5e7fdf2e94",
"taskId": "79c6b1aa-24d1-45b3-8c94-9a2e2a2f55bc",
"status": "PENDING",
"triggerType": "api",
"timestamps": {
"createdAt": "2025-10-14T18:21:52.123Z",
"startedAt": null,
"finishedAt": null
},
"progress": null,
"inputs": {
"url": "https://example.com/orders/48219",
"runHeadless": true
},
"outputs": {},
"logsUrl": "https://api.komos.ai/public/v1/task-runs/9c77d908-7bf4-4e7f-9a20-2c5e7fdf2e94/logs",
"error": null,
"cancelReason": null
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Returns the 50 most recent runs for the given task, ordered from newest to oldest. Use this to
build dashboards or confirm the run ID returned by the queue endpoint.
Request
Path parameters
taskId— UUID for the task whose history you need.
Example
curl -X GET \
https://api.komos.ai/public/v1/tasks/4df7d6f9-56be-4f77-9b18-25ad908a20b7/runs \
-H 'Authorization: Bearer sk_live_example'
Responses
200 OK— Returns{ "runs": Run[] }with at most 50 entries.400 Bad Request— Invalid task ID.401 Unauthorized— Missing or malformed API key.404 Not Found— The task is not visible to your organization.
logsUrl field to fetch execution logs for any run in the list.Was this page helpful?