Task assessments
Answer the questions Mist asked about the work
Requires a user session with multiplayer_tasks.update or the existing application_themes.update permission, and Cowork enabled for the company. The answers are added to the task’s request under the heading “Answers for Mist”, one line per question in the order Mist asked, through the same edit as rewriting the request; that edit schedules Mist’s next read, so the task comes back with its confidence on its way again. Only the questions of the read of the task’s current content can be answered. Blank answers are left out; at least one is required.
POST
/
api
/
v202604
/
multiplayer
/
tasks
/
{task_id}
/
assessments
/
{assessment_id}
/
answers
Answer the questions Mist asked about the work
curl --request POST \
--url https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"answers": {
"q1": "All apparel",
"q2": "In a spreadsheet"
},
"expected_version": 3
}
'import requests
url = "https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers"
payload = {
"answers": {
"q1": "All apparel",
"q2": "In a spreadsheet"
},
"expected_version": 3
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({answers: {q1: 'All apparel', q2: 'In a spreadsheet'}, expected_version: 3})
};
fetch('https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers', 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/{task_id}/assessments/{assessment_id}/answers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'answers' => [
'q1' => 'All apparel',
'q2' => 'In a spreadsheet'
],
'expected_version' => 3
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers"
payload := strings.NewReader("{\n \"answers\": {\n \"q1\": \"All apparel\",\n \"q2\": \"In a spreadsheet\"\n },\n \"expected_version\": 3\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"answers\": {\n \"q1\": \"All apparel\",\n \"q2\": \"In a spreadsheet\"\n },\n \"expected_version\": 3\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"answers\": {\n \"q1\": \"All apparel\",\n \"q2\": \"In a spreadsheet\"\n },\n \"expected_version\": 3\n}"
response = http.request(request)
puts response.read_body{
"task": {
"id": "9271f7b9-237c-5dbe-ab78-f866652d747a",
"agency": null,
"assignee": null,
"assigner": null,
"attachment_count": 1,
"board_position": null,
"board_position_at_ms": null,
"category": null,
"client_id": "acme-videos",
"company_id": 96778814,
"created_at": "2026-11-12T17:50:31Z",
"creator_id": 433400890,
"description": "Use videos from the media library\n\nAnswers for Mist\n- Which products? All apparel",
"due_on": null,
"kind": null,
"lock_version": 1,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "out_of_date",
"assessment_id": "01a1d0e4-4a0e-7db9-9a72-f1af72a05951",
"score": 2,
"band": "red",
"summary": "Too unclear to act on.",
"concerns": [
"No sizes"
],
"raise_by": [],
"assessed_at": "2026-11-12T17:53:04.525Z",
"suggested_kind": "feature",
"category": "eng",
"difficulty": "medium",
"hours_low": 2,
"hours_high": 6,
"questions": [
{
"id": "q1",
"prompt": "Which products?",
"options": [
"All apparel",
"Shoes"
]
}
]
},
"plan": null,
"priority": null,
"run_id": null,
"run_thread_id": null,
"source_threads": [],
"status": "open",
"tags": [],
"title": "Add customer videos",
"updated_at": "2026-11-12T17:53:04Z"
},
"status": 200,
"meta": {
"request_uuid": null,
"timestamp": "2026-11-12T17:53:04Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"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.
Path Parameters
The task UUID.
The read that asked the questions, from mist_confidence.assessment_id.
Body
application/json
⌘I
Answer the questions Mist asked about the work
curl --request POST \
--url https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"answers": {
"q1": "All apparel",
"q2": "In a spreadsheet"
},
"expected_version": 3
}
'import requests
url = "https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers"
payload = {
"answers": {
"q1": "All apparel",
"q2": "In a spreadsheet"
},
"expected_version": 3
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({answers: {q1: 'All apparel', q2: 'In a spreadsheet'}, expected_version: 3})
};
fetch('https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers', 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/{task_id}/assessments/{assessment_id}/answers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'answers' => [
'q1' => 'All apparel',
'q2' => 'In a spreadsheet'
],
'expected_version' => 3
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers"
payload := strings.NewReader("{\n \"answers\": {\n \"q1\": \"All apparel\",\n \"q2\": \"In a spreadsheet\"\n },\n \"expected_version\": 3\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"answers\": {\n \"q1\": \"All apparel\",\n \"q2\": \"In a spreadsheet\"\n },\n \"expected_version\": 3\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments/{assessment_id}/answers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"answers\": {\n \"q1\": \"All apparel\",\n \"q2\": \"In a spreadsheet\"\n },\n \"expected_version\": 3\n}"
response = http.request(request)
puts response.read_body{
"task": {
"id": "9271f7b9-237c-5dbe-ab78-f866652d747a",
"agency": null,
"assignee": null,
"assigner": null,
"attachment_count": 1,
"board_position": null,
"board_position_at_ms": null,
"category": null,
"client_id": "acme-videos",
"company_id": 96778814,
"created_at": "2026-11-12T17:50:31Z",
"creator_id": 433400890,
"description": "Use videos from the media library\n\nAnswers for Mist\n- Which products? All apparel",
"due_on": null,
"kind": null,
"lock_version": 1,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "out_of_date",
"assessment_id": "01a1d0e4-4a0e-7db9-9a72-f1af72a05951",
"score": 2,
"band": "red",
"summary": "Too unclear to act on.",
"concerns": [
"No sizes"
],
"raise_by": [],
"assessed_at": "2026-11-12T17:53:04.525Z",
"suggested_kind": "feature",
"category": "eng",
"difficulty": "medium",
"hours_low": 2,
"hours_high": 6,
"questions": [
{
"id": "q1",
"prompt": "Which products?",
"options": [
"All apparel",
"Shoes"
]
}
]
},
"plan": null,
"priority": null,
"run_id": null,
"run_thread_id": null,
"source_threads": [],
"status": "open",
"tags": [],
"title": "Add customer videos",
"updated_at": "2026-11-12T17:53:04Z"
},
"status": 200,
"meta": {
"request_uuid": null,
"timestamp": "2026-11-12T17:53:04Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}