List the company's work
Requires a user session with multiplayer_tasks.view or application_themes.view. Returns undeleted company work, most recently updated first or in board order, with stable cursor pagination.
curl --request GET \
--url https://api.fluid.app/api/v202604/multiplayer/tasks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202604/multiplayer/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.fluid.app/api/v202604/multiplayer/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.fluid.app/api/v202604/multiplayer/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.fluid.app/api/v202604/multiplayer/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.fluid.app/api/v202604/multiplayer/tasks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/multiplayer/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": "01a1d0e3-d906-7ee2-98f2-91e8419fd03d",
"agency": null,
"agency_join_request": null,
"agency_request": null,
"assignee": null,
"assigner": null,
"board_position": "Zz",
"board_position_at_ms": null,
"category": null,
"client_id": "late",
"company_id": 96778814,
"created_at": "2026-11-12T17:52:35Z",
"creator_id": 433400890,
"description": "",
"due_on": "2026-10-25",
"kind": null,
"lock_version": 0,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "not_assessed"
},
"plan": null,
"priority": null,
"run_id": null,
"run_thread_id": null,
"source_threads": [],
"status": "open",
"status_editable": true,
"tags": [],
"title": "late",
"updated_at": "2026-11-12T17:52:35Z"
},
{
"id": "01a1d0e3-d903-7b38-aa4e-e8f3795335e1",
"agency": null,
"agency_join_request": null,
"agency_request": null,
"assignee": null,
"assigner": null,
"board_position": "a0",
"board_position_at_ms": null,
"category": null,
"client_id": "undated",
"company_id": 96778814,
"created_at": "2026-11-12T17:52:35Z",
"creator_id": 433400890,
"description": "",
"due_on": null,
"kind": null,
"lock_version": 0,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "not_assessed"
},
"plan": null,
"priority": null,
"run_id": null,
"run_thread_id": null,
"source_threads": [],
"status": "open",
"status_editable": true,
"tags": [],
"title": "Undated",
"updated_at": "2026-11-12T17:52:35Z"
}
],
"status": 200,
"meta": {
"request_uuid": null,
"timestamp": "2026-11-12T17:52:35Z",
"pagination": {
"cursor": "eyJmIjp7IndvcmtfaXRlbXMuZHVlX29uIjoiMjAyNi0xMC0xOSIsIndvcmtfaXRlbXMuaWQiOiIwMWExZDBlMy1kOTBkLTcyNDItOWZmYi0xNWIxZWZlZjM0NGUifSwiZCI6Im5leHQiLCJjIjoxNzk0NTA1OTU1LCJjcyI6IjZhNTI0NTVkNjZlM2YyNjA1OTYxOTQ0YTMzOGY3YTZlIiwib3MiOiIzYjFjYmQwYjg3NmVkNzBmOWI0Y2QxOWJlOWU4NjVlMSIsInFzIjoiMTk1MTZjMjNlYmM5NDA3OTM0YmUzZDdjODMwMzY5YTQifQ==",
"limit": 2,
"prev_cursor": "eyJmIjp7IndvcmtfaXRlbXMuZHVlX29uIjoiMjAyNi0xMC0yNSIsIndvcmtfaXRlbXMuaWQiOiIwMWExZDBlMy1kOTA2LTdlZTItOThmMi05MWU4NDE5ZmQwM2QifSwiZCI6InByZXYiLCJjIjoxNzk0NTA1OTU1LCJjcyI6IjIxYWM0ZWJmMTk4MGUwM2U2ZDIwMjYyYTJlODBlOWYzIiwib3MiOiIzYjFjYmQwYjg3NmVkNzBmOWI0Y2QxOWJlOWU4NjVlMSIsInFzIjoiMTk1MTZjMjNlYmM5NDA3OTM0YmUzZDdjODMwMzY5YTQifQ==",
"next_cursor": "eyJmIjp7IndvcmtfaXRlbXMuZHVlX29uIjpudWxsLCJ3b3JrX2l0ZW1zLmlkIjoiMDFhMWQwZTMtZDkwMy03YjM4LWFhNGUtZThmMzc5NTMzNWUxIn0sImQiOiJuZXh0IiwiYyI6MTc5NDUwNTk1NSwiY3MiOiJmOTg1OGVhOTgzZWYxODAzNDc0MjNmM2JhNGJlNjdhYiIsIm9zIjoiM2IxY2JkMGI4NzZlZDcwZjliNGNkMTliZTllODY1ZTEiLCJxcyI6IjE5NTE2YzIzZWJjOTQwNzkzNGJlM2Q3YzgzMDM2OWE0In0="
}
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
updated (the default) returns the most recently updated work first. board returns work in the order boards draw a column: unplaced work first, then by board_position compared byte by byte, ties by id. due returns work by due date, earliest first, then work with no due date, ties by id.
updated, board, due Opaque cursor returned by the previous page.
4096Maximum records to return, defaulting to 25.
1 <= x <= 100Comma-separated statuses to keep, for example open,needs_info.
200^(open|kept|needs_info|in_progress|handed|review|skipped)( *, *(open|kept|needs_info|in_progress|handed|review|skipped))*$Comma-separated statuses to leave out, so a board can read the work whose status it has no column for. Refused together with filter[status].
200^(open|kept|needs_info|in_progress|handed|review|skipped)( *, *(open|kept|needs_info|in_progress|handed|review|skipped))*$Comma-separated priorities to keep, for example urgent,high. none keeps work with no priority. Values within the filter match any of them; the filter narrows with the other filters.
200^(urgent|high|medium|low|none)( *, *(urgent|high|medium|low|none))*$Comma-separated kinds to keep, for example bug,change. none keeps work with no kind. Values within the filter match any of them; the filter narrows with the other filters, and with filter[category] work must match both.
200^(bug|change|feature|design|support|none)( *, *(bug|change|feature|design|support|none))*$Comma-separated categories to keep, for example design,support: design keeps design work, support keeps support work and eng keeps bugs, changes and features. none keeps work with no kind, which belongs to no category. Values within the filter match any of them; the filter narrows with the other filters, and with filter[kind] work must match both.
200^(design|support|eng|none)( *, *(design|support|eng|none))*$Keep work assigned to nobody (unassigned, which includes work whose assigned user was deleted and so has no assignee), to Mist (agent), or to the person with this user id.
20^(unassigned|agent|[1-9][0-9]{0,18})$The retired fluid_studios tag, kept for older clients. No work carries it, so this keeps nothing. Use filter[agency] instead. Any other value answers 422.
fluid_studios The retired fluid_studios tag, kept for older clients. No work carries it, so this leaves the list as it is. Any other value answers 422.
fluid_studios Keep work sent to the agency with this key, any for work sent to an agency, or none for work sent to no agency. A key that names no agency keeps nothing. The filter narrows what the caller may already read and grants no access of its own.
64^[a-z0-9_]+$Keep work whose title contains this text, ignoring case. % and _ match themselves.
1 - 255Keep work due on or after this date, an inclusive calendar date the client computes in its own time zone. Work with no due date are not kept. May be combined with filter[due_to]; refused with filter[due], and when it is after filter[due_to].
^[0-9]{4}-[0-9]{2}-[0-9]{2}$Keep work due on or before this date, an inclusive calendar date the client computes in its own time zone. Work with no due date are not kept. May be combined with filter[due_from]; refused with filter[due].
^[0-9]{4}-[0-9]{2}-[0-9]{2}$none keeps work with no due date. Refused with filter[due_from] or filter[due_to].
none curl --request GET \
--url https://api.fluid.app/api/v202604/multiplayer/tasks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202604/multiplayer/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.fluid.app/api/v202604/multiplayer/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.fluid.app/api/v202604/multiplayer/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.fluid.app/api/v202604/multiplayer/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.fluid.app/api/v202604/multiplayer/tasks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/multiplayer/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": "01a1d0e3-d906-7ee2-98f2-91e8419fd03d",
"agency": null,
"agency_join_request": null,
"agency_request": null,
"assignee": null,
"assigner": null,
"board_position": "Zz",
"board_position_at_ms": null,
"category": null,
"client_id": "late",
"company_id": 96778814,
"created_at": "2026-11-12T17:52:35Z",
"creator_id": 433400890,
"description": "",
"due_on": "2026-10-25",
"kind": null,
"lock_version": 0,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "not_assessed"
},
"plan": null,
"priority": null,
"run_id": null,
"run_thread_id": null,
"source_threads": [],
"status": "open",
"status_editable": true,
"tags": [],
"title": "late",
"updated_at": "2026-11-12T17:52:35Z"
},
{
"id": "01a1d0e3-d903-7b38-aa4e-e8f3795335e1",
"agency": null,
"agency_join_request": null,
"agency_request": null,
"assignee": null,
"assigner": null,
"board_position": "a0",
"board_position_at_ms": null,
"category": null,
"client_id": "undated",
"company_id": 96778814,
"created_at": "2026-11-12T17:52:35Z",
"creator_id": 433400890,
"description": "",
"due_on": null,
"kind": null,
"lock_version": 0,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "not_assessed"
},
"plan": null,
"priority": null,
"run_id": null,
"run_thread_id": null,
"source_threads": [],
"status": "open",
"status_editable": true,
"tags": [],
"title": "Undated",
"updated_at": "2026-11-12T17:52:35Z"
}
],
"status": 200,
"meta": {
"request_uuid": null,
"timestamp": "2026-11-12T17:52:35Z",
"pagination": {
"cursor": "eyJmIjp7IndvcmtfaXRlbXMuZHVlX29uIjoiMjAyNi0xMC0xOSIsIndvcmtfaXRlbXMuaWQiOiIwMWExZDBlMy1kOTBkLTcyNDItOWZmYi0xNWIxZWZlZjM0NGUifSwiZCI6Im5leHQiLCJjIjoxNzk0NTA1OTU1LCJjcyI6IjZhNTI0NTVkNjZlM2YyNjA1OTYxOTQ0YTMzOGY3YTZlIiwib3MiOiIzYjFjYmQwYjg3NmVkNzBmOWI0Y2QxOWJlOWU4NjVlMSIsInFzIjoiMTk1MTZjMjNlYmM5NDA3OTM0YmUzZDdjODMwMzY5YTQifQ==",
"limit": 2,
"prev_cursor": "eyJmIjp7IndvcmtfaXRlbXMuZHVlX29uIjoiMjAyNi0xMC0yNSIsIndvcmtfaXRlbXMuaWQiOiIwMWExZDBlMy1kOTA2LTdlZTItOThmMi05MWU4NDE5ZmQwM2QifSwiZCI6InByZXYiLCJjIjoxNzk0NTA1OTU1LCJjcyI6IjIxYWM0ZWJmMTk4MGUwM2U2ZDIwMjYyYTJlODBlOWYzIiwib3MiOiIzYjFjYmQwYjg3NmVkNzBmOWI0Y2QxOWJlOWU4NjVlMSIsInFzIjoiMTk1MTZjMjNlYmM5NDA3OTM0YmUzZDdjODMwMzY5YTQifQ==",
"next_cursor": "eyJmIjp7IndvcmtfaXRlbXMuZHVlX29uIjpudWxsLCJ3b3JrX2l0ZW1zLmlkIjoiMDFhMWQwZTMtZDkwMy03YjM4LWFhNGUtZThmMzc5NTMzNWUxIn0sImQiOiJuZXh0IiwiYyI6MTc5NDUwNTk1NSwiY3MiOiJmOTg1OGVhOTgzZWYxODAzNDc0MjNmM2JhNGJlNjdhYiIsIm9zIjoiM2IxY2JkMGI4NzZlZDcwZjliNGNkMTliZTllODY1ZTEiLCJxcyI6IjE5NTE2YzIzZWJjOTQwNzkzNGJlM2Q3YzgzMDM2OWE0In0="
}
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}