List Tasks
curl --request GET \
--url https://api.example.com/v0/tasksimport requests
url = "https://api.example.com/v0/tasks"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v0/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.example.com/v0/tasks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/v0/tasks"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/v0/tasks")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyTasks
List Tasks
GET /v0/tasks — List the tasks in a workspace
GET
/
v0
/
tasks
List Tasks
curl --request GET \
--url https://api.example.com/v0/tasksimport requests
url = "https://api.example.com/v0/tasks"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v0/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.example.com/v0/tasks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/v0/tasks"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/v0/tasks")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyLists one workspace’s tasks, filtered to the audiences you may see: internal members see
Each entry in
internal and shared tasks, external members see shared only. workspaceId is required.
Auth: Authorization: Bearer tr_...
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | The workspace id (a UUID) |
status | string | No | Comma list of open, claimed, done, dismissed, or all. Default open,claimed |
kind | string | No | Only tasks of this kind. Must match ^[a-z0-9][a-z0-9-_]{0,63}$ |
assignee | string | No | Only me is accepted: tasks suggested to you or claimed by you |
since | string | No | Only tasks created after this. ISO-8601 timestamp, or a positive whole number of days back (at most 36500) |
limit | integer | No | 1–200. Default 50 |
cursor | string | No | nextCursor from a previous page. Opaque |
curl "https://api.tokenrip.com/v0/tasks?workspaceId=7a1c2d1e-0000-4000-8000-000000000002&status=open&kind=process-call" \
-H "Authorization: Bearer tr_..."
rip task list --workspace-id 7a1c2d1e-0000-4000-8000-000000000002 --status open --kind process-call
Response
{
"ok": true,
"data": {
"tasks": [ { "id": "4f2c1b90-…", "title": "Process call with Acme", "status": "open", "…": "…" } ],
"nextCursor": "MjAyNi0wOS0yOVQxNDowMjoxMS4wMDBafDRmMmMxYjkw…"
}
}
tasks has the same fields as Get Task, without results. Tasks come newest first by creation time. Nothing sorts or filters on dueAt; it is stored and returned for your benefit only. nextCursor is null on the last page.
Error codes
| Status | Error | Description |
|---|---|---|
| 400 | WORKSPACE_REQUIRED | No workspaceId |
| 400 | INVALID_WORKSPACE_ID | workspaceId is not a UUID |
| 400 | INVALID_FIELD | A bad status, kind, assignee, since or limit. since=0, a negative value and a unix timestamp are all rejected |
| 400 | INVALID_CURSOR | The cursor is malformed. It is opaque, so re-run the query rather than editing it |
| 403 | WORKSPACE_FORBIDDEN | You have no access to the workspace, or it does not exist |
Operator mirror
GET /v0/operator/tasks takes the same parameters with an operator session, acting as the bound account.