Retrieve task run
curl --request GET \
--url https://api.komos.ai/public/v1/task-runs/{runId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.komos.ai/public/v1/task-runs/{runId}"
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/task-runs/{runId}', 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/task-runs/{runId}",
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/task-runs/{runId}"
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/task-runs/{runId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.komos.ai/public/v1/task-runs/{runId}")
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{
"run": {
"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
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Task runs
Retrieve Task Run
Look up the latest status for a run.
GET
/
public
/
v1
/
task-runs
/
{runId}
Retrieve task run
curl --request GET \
--url https://api.komos.ai/public/v1/task-runs/{runId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.komos.ai/public/v1/task-runs/{runId}"
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/task-runs/{runId}', 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/task-runs/{runId}",
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/task-runs/{runId}"
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/task-runs/{runId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.komos.ai/public/v1/task-runs/{runId}")
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{
"run": {
"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
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Poll this endpoint to follow a specific run until it reaches a terminal state (
COMPLETED,
FAILED, or CANCELLED). Responses include timestamps, inputs, outputs, and (when configured)
a logsUrl pointing to the latest execution logs.
Request
Path parameters
runId— UUID for the run to inspect.
Example
curl -X GET \
https://api.komos.ai/public/v1/task-runs/9c77d908-7bf4-4e7f-9a20-2c5e7fdf2e94 \
-H 'Authorization: Bearer sk_live_example'
Responses
200 OK— Returns{ "run": Run }with up-to-date status, progress, outputs, and timestamps.400 Bad Request— Invalid run ID.401 Unauthorized— Missing or malformed API key.404 Not Found— The run does not belong to the authenticated organization.
status to drive polling back-off and surface completion details.Was this page helpful?