List tasks
curl --request GET \
--url https://api.komos.ai/public/v1/tasks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.komos.ai/public/v1/tasks"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.komos.ai/public/v1/tasks")
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{
"tasks": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "DRAFT",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"inputs": [
{}
],
"outputs": [
{}
],
"runCount": 123,
"lists": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"description": "<string>",
"owner": {
"name": "<string>"
},
"createdBy": {
"name": "<string>"
},
"schedule": {
"isActive": true,
"cadenceType": "<string>",
"cronExpression": "<string>",
"timezone": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"lastRunAt": "2023-11-07T05:31:56Z"
},
"lastRunAt": "2023-11-07T05:31:56Z"
}
],
"total": 123,
"limit": 123,
"offset": 123
}{
"detail": "<string>"
}Tasks
List Tasks
Retrieve a paginated list of tasks in your organization.
GET
/
public
/
v1
/
tasks
List tasks
curl --request GET \
--url https://api.komos.ai/public/v1/tasks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.komos.ai/public/v1/tasks"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.komos.ai/public/v1/tasks")
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{
"tasks": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "DRAFT",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"inputs": [
{}
],
"outputs": [
{}
],
"runCount": 123,
"lists": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"description": "<string>",
"owner": {
"name": "<string>"
},
"createdBy": {
"name": "<string>"
},
"schedule": {
"isActive": true,
"cadenceType": "<string>",
"cronExpression": "<string>",
"timezone": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"lastRunAt": "2023-11-07T05:31:56Z"
},
"lastRunAt": "2023-11-07T05:31:56Z"
}
],
"total": 123,
"limit": 123,
"offset": 123
}{
"detail": "<string>"
}Returns a paginated list of tasks visible to the authenticated organization. Each task includes
its current status, owner, schedule summary, and run statistics so you can build dashboards or
sync task inventories to external systems without additional calls.
Request
Query parameters
limit(integer, optional) — Number of tasks to return per page. Min 1, max 100, default 20.offset(integer, optional) — Number of tasks to skip for pagination. Default 0.search(string, optional) — Filter tasks by name (case-insensitive substring match).status(string, optional) — Filter by task status:DRAFT,PROCESSING,NEEDS_REVIEW,READY,ERROR.
Example
curl -X GET \
'https://api.komos.ai/public/v1/tasks?limit=50&status=READY' \
-H 'Authorization: Bearer sk_live_example'
Responses
200 OK— Returns{ "tasks": Task[], "total": int, "limit": int, "offset": int }.401 Unauthorized— Missing or malformed API key.
Task object
Each item in thetasks array contains:
id(UUID) — Unique task identifier.name(string) — Task name.description(string) — Task description (empty string if not set).status(string) — Current status:DRAFT,PROCESSING,READY, orERROR.createdAt(string) — ISO 8601 creation timestamp.updatedAt(string) — ISO 8601 last-updated timestamp.owner(object | null) —{ "name": "..." }if an owner is assigned.createdBy(object | null) —{ "name": "..." }for the task creator.inputs(array) — Declared input schema for the task.outputs(array) — Declared output schema for the task.schedule(object | null) — Embedded schedule summary (see below), ornullif no schedule.runCount(integer) — Total number of runs for this task.lastRunAt(string | null) — ISO 8601 timestamp of the most recent run.
Schedule summary
When a task has a schedule, theschedule field contains:
isActive(boolean) — Whether the schedule is currently active.cadenceType(string) — Schedule cadence type (e.g.,cron).cronExpression(string) — Cron expression for the schedule.timezone(string) — IANA timezone for the schedule.nextRunAt(string | null) — Next scheduled execution time.lastRunAt(string | null) — Last scheduled execution time.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Number of tasks per page (1-100, default 20).
Required range:
1 <= x <= 100Number of tasks to skip.
Required range:
x >= 0Filter tasks by name (case-insensitive substring match).
Filter by task status.
Available options:
DRAFT, PROCESSING, NEEDS_REVIEW, READY, ERROR Was this page helpful?