Assess Mist's confidence in the work again
Requires a user session with multiplayer_tasks.update or the existing application_themes.update permission, and Cowork enabled for the company. Mist assesses a task on its own when it is created and after its title, request or kind changes; this is Try again after the newest attempt failed, or Assess now when nothing is on its way, as for work written before assessment existed. The task’s current content is scored in the request with one billed call, and the task comes back with its new confidence, or with the failed state when the attempt saved no score. Content that already has a score or one on its way, work that has started, and an assessment of the same content still running are refused as conflicts, and nothing is called. Work in another company, deleted work, and an unknown id all answer the same not-found.
curl --request POST \
--url https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/{task_id}/assessments"
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"task": {
"id": "9271f7b9-237c-5dbe-ab78-f866652d747a",
"agency": null,
"assignee": null,
"assigner": null,
"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",
"due_on": null,
"kind": null,
"lock_version": 0,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "current",
"assessment_id": "01a1d0e2-2369-7d69-a562-2c758f728d23",
"score": 4,
"band": "green",
"summary": "A clear media change.",
"concerns": [
"Which page shows the videos"
],
"raise_by": [
"Name the page"
],
"assessed_at": "2026-11-12T17:50:43.560Z",
"suggested_kind": "feature",
"category": "eng",
"difficulty": "easy",
"hours_low": 1,
"hours_high": 2,
"questions": []
},
"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:50:31Z"
},
"status": 200,
"meta": {
"request_uuid": null,
"timestamp": "2026-11-12T17:50:43Z"
}
}{
"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.
curl --request POST \
--url https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/{task_id}/assessments"
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/multiplayer/tasks/{task_id}/assessments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"task": {
"id": "9271f7b9-237c-5dbe-ab78-f866652d747a",
"agency": null,
"assignee": null,
"assigner": null,
"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",
"due_on": null,
"kind": null,
"lock_version": 0,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "current",
"assessment_id": "01a1d0e2-2369-7d69-a562-2c758f728d23",
"score": 4,
"band": "green",
"summary": "A clear media change.",
"concerns": [
"Which page shows the videos"
],
"raise_by": [
"Name the page"
],
"assessed_at": "2026-11-12T17:50:43.560Z",
"suggested_kind": "feature",
"category": "eng",
"difficulty": "easy",
"hours_low": 1,
"hours_high": 2,
"questions": []
},
"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:50:31Z"
},
"status": 200,
"meta": {
"request_uuid": null,
"timestamp": "2026-11-12T17:50:43Z"
}
}{
"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"
}
}