Save a standalone Start result and finish its run atomically
Requires a user session with multiplayer_tasks.execute or application_themes.update. The result must be present; a reply is refused. The run must be owned by an accepted Start request without a live discussion. The plain result and the transition commit together: to review, or to needs_info when run.unfinished is true, which then also returns the work to whoever handed it over. An exact retry returns the saved result only when it repeats the original body, proof, and optional expected_version. The distinct route lets clients fail closed on a server that does not yet support required result storage. A deleted, other-company, or unknown task answers not-found; deletion after the task was read answers gone.
curl --request POST \
--url https://api.fluid.app/api/v202604/multiplayer/tasks/{id}/run/finish-result \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"run": {
"run_id": "evidence-run"
},
"result": {
"body": "Added the size guide link",
"evidence": [
{
"kind": "screenshot",
"label": "Home page",
"route": "/",
"before": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
},
"after": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
}
},
{
"kind": "screenshot",
"label": "/products/hoodie",
"route": "/products/hoodie",
"before": {
"missing": "Mist named this page when it finished."
},
"after": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
}
}
]
}
}
'import requests
url = "https://api.fluid.app/api/v202604/multiplayer/tasks/{id}/run/finish-result"
payload = {
"run": { "run_id": "evidence-run" },
"result": {
"body": "Added the size guide link",
"evidence": [
{
"kind": "screenshot",
"label": "Home page",
"route": "/",
"before": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
},
"after": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
}
},
{
"kind": "screenshot",
"label": "/products/hoodie",
"route": "/products/hoodie",
"before": { "missing": "Mist named this page when it finished." },
"after": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
}
}
]
}
}
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({
run: {run_id: 'evidence-run'},
result: {
body: JSON.stringify('Added the size guide link'),
evidence: [
{
kind: 'screenshot',
label: 'Home page',
route: '/',
before: {asset_id: 1050970312, width: 1408, height: 1168},
after: {asset_id: 1050970312, width: 1408, height: 1168}
},
{
kind: 'screenshot',
label: '/products/hoodie',
route: '/products/hoodie',
before: {missing: 'Mist named this page when it finished.'},
after: {asset_id: 1050970312, width: 1408, height: 1168}
}
]
}
})
};
fetch('https://api.fluid.app/api/v202604/multiplayer/tasks/{id}/run/finish-result', 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/{id}/run/finish-result",
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([
'run' => [
'run_id' => 'evidence-run'
],
'result' => [
'body' => 'Added the size guide link',
'evidence' => [
[
'kind' => 'screenshot',
'label' => 'Home page',
'route' => '/',
'before' => [
'asset_id' => 1050970312,
'width' => 1408,
'height' => 1168
],
'after' => [
'asset_id' => 1050970312,
'width' => 1408,
'height' => 1168
]
],
[
'kind' => 'screenshot',
'label' => '/products/hoodie',
'route' => '/products/hoodie',
'before' => [
'missing' => 'Mist named this page when it finished.'
],
'after' => [
'asset_id' => 1050970312,
'width' => 1408,
'height' => 1168
]
]
]
]
]),
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/{id}/run/finish-result"
payload := strings.NewReader("{\n \"run\": {\n \"run_id\": \"evidence-run\"\n },\n \"result\": {\n \"body\": \"Added the size guide link\",\n \"evidence\": [\n {\n \"kind\": \"screenshot\",\n \"label\": \"Home page\",\n \"route\": \"/\",\n \"before\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n },\n {\n \"kind\": \"screenshot\",\n \"label\": \"/products/hoodie\",\n \"route\": \"/products/hoodie\",\n \"before\": {\n \"missing\": \"Mist named this page when it finished.\"\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n }\n ]\n }\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/{id}/run/finish-result")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"run\": {\n \"run_id\": \"evidence-run\"\n },\n \"result\": {\n \"body\": \"Added the size guide link\",\n \"evidence\": [\n {\n \"kind\": \"screenshot\",\n \"label\": \"Home page\",\n \"route\": \"/\",\n \"before\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n },\n {\n \"kind\": \"screenshot\",\n \"label\": \"/products/hoodie\",\n \"route\": \"/products/hoodie\",\n \"before\": {\n \"missing\": \"Mist named this page when it finished.\"\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/multiplayer/tasks/{id}/run/finish-result")
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 \"run\": {\n \"run_id\": \"evidence-run\"\n },\n \"result\": {\n \"body\": \"Added the size guide link\",\n \"evidence\": [\n {\n \"kind\": \"screenshot\",\n \"label\": \"Home page\",\n \"route\": \"/\",\n \"before\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n },\n {\n \"kind\": \"screenshot\",\n \"label\": \"/products/hoodie\",\n \"route\": \"/products/hoodie\",\n \"before\": {\n \"missing\": \"Mist named this page when it finished.\"\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"task": {
"id": "9271f7b9-237c-5dbe-ab78-f866652d747a",
"agency": null,
"agency_join_request": null,
"agency_request": null,
"assignee": {
"id": "433400890",
"name": "Admin Acme",
"kind": "user"
},
"assigner": {
"id": "433400890",
"name": "Admin Acme",
"kind": "user"
},
"board_position": null,
"board_position_at_ms": null,
"category": null,
"client_id": "acme-videos",
"company_id": 96778814,
"conversation_id": null,
"created_at": "2026-11-12T17:50:31Z",
"creator_id": 433400890,
"description": "Use videos from the media library",
"due_on": null,
"kind": null,
"lock_version": 2,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "not_assessed"
},
"plan": null,
"priority": null,
"run_id": "f9d9ebd1-971e-4c71-a2e4-dfbf3a935f17",
"run_thread_id": null,
"source_threads": [],
"status": "needs_info",
"status_editable": true,
"tags": [],
"title": "Add customer videos",
"updated_at": "2026-11-12T17:51:07Z"
},
"status": 200,
"meta": {
"request_uuid": null,
"timestamp": "2026-11-12T17:51:07Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"details": {
"type": "conflict",
"merged_into": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>"
},
"task": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"client_id": "<string>",
"company_id": 123,
"creator_id": 123,
"title": "<string>",
"description": "<string>",
"status": "open",
"priority": "urgent",
"due_on": "2023-12-25",
"kind": "bug",
"category": "design",
"plan": [
{
"title": "<string>",
"outcome": "<string>"
}
],
"board_position": "<string>",
"board_position_at_ms": 123,
"lock_version": 1,
"run_id": "<string>",
"run_thread_id": 123,
"tags": [
"<string>"
],
"agency": {
"key": "example_agency",
"name": "Example agency"
},
"assignee": {
"id": "<string>",
"name": "<string>",
"kind": "user"
},
"assigner": {
"id": "<string>",
"name": "<string>",
"kind": "user"
},
"source_threads": [
{
"id": 123,
"theme_id": 123,
"client_id": "<string>",
"n": 123,
"page_url": "<string>",
"author_name": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"mist_confidence": {
"state": "current",
"score": 3,
"band": "red",
"summary": "<string>",
"concerns": [
"<string>"
],
"raise_by": [
"<string>"
],
"assessed_at": "2023-11-07T05:31:56Z",
"failure": "budget",
"assessment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"suggested_kind": "bug",
"category": "design",
"difficulty": "easy",
"hours_low": 80,
"hours_high": 80,
"questions": [
{
"id": "q1",
"prompt": "<string>",
"options": [
"<string>"
]
}
],
"duplicate_of": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"status": "open",
"reason": "<string>",
"merge_blocked": "agency"
}
},
"source": {
"provider": "linear",
"identifier": "<string>",
"url": "<string>"
},
"attachment_count": 1,
"agency_request": {
"agency": {
"key": "example_agency",
"name": "Example agency"
},
"owner": {
"id": "<string>",
"name": "<string>"
},
"access": [
{
"person": {
"id": "<string>",
"name": "<string>"
},
"role": {
"id": 123,
"name": "<string>"
}
}
],
"owner_has_access": true,
"state": "sent",
"stage": "requested",
"version": 1,
"sent_at": "2023-11-07T05:31:56Z",
"quote": {
"hours": 123,
"deliver_on": "2023-12-25",
"note": "<string>",
"quoted_at": "2023-11-07T05:31:56Z"
},
"revised_quote": {
"hours": 123,
"deliver_on": "2023-12-25",
"note": "<string>",
"quoted_at": "2023-11-07T05:31:56Z"
},
"changes_round": 1,
"reopenable_until": "2023-11-07T05:31:56Z",
"delivery_overdue": true,
"last_step": {
"kind": "<string>",
"at": "2023-11-07T05:31:56Z",
"note": "<string>"
}
},
"agency_join_request": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "pending",
"agency_name": "<string>",
"decline_reason": "<string>",
"requested_at": "2023-11-07T05:31:56Z",
"lock_version": 1
},
"merged_into": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"deleted": true
},
"merged_from": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"merged_at": "2023-11-07T05:31:56Z",
"version": 1
}
],
"conversation_id": 123,
"status_editable": true
}
}
},
"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 returned at creation or in a task page.
Body
curl --request POST \
--url https://api.fluid.app/api/v202604/multiplayer/tasks/{id}/run/finish-result \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"run": {
"run_id": "evidence-run"
},
"result": {
"body": "Added the size guide link",
"evidence": [
{
"kind": "screenshot",
"label": "Home page",
"route": "/",
"before": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
},
"after": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
}
},
{
"kind": "screenshot",
"label": "/products/hoodie",
"route": "/products/hoodie",
"before": {
"missing": "Mist named this page when it finished."
},
"after": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
}
}
]
}
}
'import requests
url = "https://api.fluid.app/api/v202604/multiplayer/tasks/{id}/run/finish-result"
payload = {
"run": { "run_id": "evidence-run" },
"result": {
"body": "Added the size guide link",
"evidence": [
{
"kind": "screenshot",
"label": "Home page",
"route": "/",
"before": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
},
"after": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
}
},
{
"kind": "screenshot",
"label": "/products/hoodie",
"route": "/products/hoodie",
"before": { "missing": "Mist named this page when it finished." },
"after": {
"asset_id": 1050970312,
"width": 1408,
"height": 1168
}
}
]
}
}
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({
run: {run_id: 'evidence-run'},
result: {
body: JSON.stringify('Added the size guide link'),
evidence: [
{
kind: 'screenshot',
label: 'Home page',
route: '/',
before: {asset_id: 1050970312, width: 1408, height: 1168},
after: {asset_id: 1050970312, width: 1408, height: 1168}
},
{
kind: 'screenshot',
label: '/products/hoodie',
route: '/products/hoodie',
before: {missing: 'Mist named this page when it finished.'},
after: {asset_id: 1050970312, width: 1408, height: 1168}
}
]
}
})
};
fetch('https://api.fluid.app/api/v202604/multiplayer/tasks/{id}/run/finish-result', 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/{id}/run/finish-result",
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([
'run' => [
'run_id' => 'evidence-run'
],
'result' => [
'body' => 'Added the size guide link',
'evidence' => [
[
'kind' => 'screenshot',
'label' => 'Home page',
'route' => '/',
'before' => [
'asset_id' => 1050970312,
'width' => 1408,
'height' => 1168
],
'after' => [
'asset_id' => 1050970312,
'width' => 1408,
'height' => 1168
]
],
[
'kind' => 'screenshot',
'label' => '/products/hoodie',
'route' => '/products/hoodie',
'before' => [
'missing' => 'Mist named this page when it finished.'
],
'after' => [
'asset_id' => 1050970312,
'width' => 1408,
'height' => 1168
]
]
]
]
]),
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/{id}/run/finish-result"
payload := strings.NewReader("{\n \"run\": {\n \"run_id\": \"evidence-run\"\n },\n \"result\": {\n \"body\": \"Added the size guide link\",\n \"evidence\": [\n {\n \"kind\": \"screenshot\",\n \"label\": \"Home page\",\n \"route\": \"/\",\n \"before\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n },\n {\n \"kind\": \"screenshot\",\n \"label\": \"/products/hoodie\",\n \"route\": \"/products/hoodie\",\n \"before\": {\n \"missing\": \"Mist named this page when it finished.\"\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n }\n ]\n }\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/{id}/run/finish-result")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"run\": {\n \"run_id\": \"evidence-run\"\n },\n \"result\": {\n \"body\": \"Added the size guide link\",\n \"evidence\": [\n {\n \"kind\": \"screenshot\",\n \"label\": \"Home page\",\n \"route\": \"/\",\n \"before\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n },\n {\n \"kind\": \"screenshot\",\n \"label\": \"/products/hoodie\",\n \"route\": \"/products/hoodie\",\n \"before\": {\n \"missing\": \"Mist named this page when it finished.\"\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/multiplayer/tasks/{id}/run/finish-result")
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 \"run\": {\n \"run_id\": \"evidence-run\"\n },\n \"result\": {\n \"body\": \"Added the size guide link\",\n \"evidence\": [\n {\n \"kind\": \"screenshot\",\n \"label\": \"Home page\",\n \"route\": \"/\",\n \"before\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n },\n {\n \"kind\": \"screenshot\",\n \"label\": \"/products/hoodie\",\n \"route\": \"/products/hoodie\",\n \"before\": {\n \"missing\": \"Mist named this page when it finished.\"\n },\n \"after\": {\n \"asset_id\": 1050970312,\n \"width\": 1408,\n \"height\": 1168\n }\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"task": {
"id": "9271f7b9-237c-5dbe-ab78-f866652d747a",
"agency": null,
"agency_join_request": null,
"agency_request": null,
"assignee": {
"id": "433400890",
"name": "Admin Acme",
"kind": "user"
},
"assigner": {
"id": "433400890",
"name": "Admin Acme",
"kind": "user"
},
"board_position": null,
"board_position_at_ms": null,
"category": null,
"client_id": "acme-videos",
"company_id": 96778814,
"conversation_id": null,
"created_at": "2026-11-12T17:50:31Z",
"creator_id": 433400890,
"description": "Use videos from the media library",
"due_on": null,
"kind": null,
"lock_version": 2,
"merged_from": [],
"merged_into": null,
"mist_confidence": {
"state": "not_assessed"
},
"plan": null,
"priority": null,
"run_id": "f9d9ebd1-971e-4c71-a2e4-dfbf3a935f17",
"run_thread_id": null,
"source_threads": [],
"status": "needs_info",
"status_editable": true,
"tags": [],
"title": "Add customer videos",
"updated_at": "2026-11-12T17:51:07Z"
},
"status": 200,
"meta": {
"request_uuid": null,
"timestamp": "2026-11-12T17:51:07Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_uuid": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"details": {
"type": "conflict",
"merged_into": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>"
},
"task": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"client_id": "<string>",
"company_id": 123,
"creator_id": 123,
"title": "<string>",
"description": "<string>",
"status": "open",
"priority": "urgent",
"due_on": "2023-12-25",
"kind": "bug",
"category": "design",
"plan": [
{
"title": "<string>",
"outcome": "<string>"
}
],
"board_position": "<string>",
"board_position_at_ms": 123,
"lock_version": 1,
"run_id": "<string>",
"run_thread_id": 123,
"tags": [
"<string>"
],
"agency": {
"key": "example_agency",
"name": "Example agency"
},
"assignee": {
"id": "<string>",
"name": "<string>",
"kind": "user"
},
"assigner": {
"id": "<string>",
"name": "<string>",
"kind": "user"
},
"source_threads": [
{
"id": 123,
"theme_id": 123,
"client_id": "<string>",
"n": 123,
"page_url": "<string>",
"author_name": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"mist_confidence": {
"state": "current",
"score": 3,
"band": "red",
"summary": "<string>",
"concerns": [
"<string>"
],
"raise_by": [
"<string>"
],
"assessed_at": "2023-11-07T05:31:56Z",
"failure": "budget",
"assessment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"suggested_kind": "bug",
"category": "design",
"difficulty": "easy",
"hours_low": 80,
"hours_high": 80,
"questions": [
{
"id": "q1",
"prompt": "<string>",
"options": [
"<string>"
]
}
],
"duplicate_of": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"status": "open",
"reason": "<string>",
"merge_blocked": "agency"
}
},
"source": {
"provider": "linear",
"identifier": "<string>",
"url": "<string>"
},
"attachment_count": 1,
"agency_request": {
"agency": {
"key": "example_agency",
"name": "Example agency"
},
"owner": {
"id": "<string>",
"name": "<string>"
},
"access": [
{
"person": {
"id": "<string>",
"name": "<string>"
},
"role": {
"id": 123,
"name": "<string>"
}
}
],
"owner_has_access": true,
"state": "sent",
"stage": "requested",
"version": 1,
"sent_at": "2023-11-07T05:31:56Z",
"quote": {
"hours": 123,
"deliver_on": "2023-12-25",
"note": "<string>",
"quoted_at": "2023-11-07T05:31:56Z"
},
"revised_quote": {
"hours": 123,
"deliver_on": "2023-12-25",
"note": "<string>",
"quoted_at": "2023-11-07T05:31:56Z"
},
"changes_round": 1,
"reopenable_until": "2023-11-07T05:31:56Z",
"delivery_overdue": true,
"last_step": {
"kind": "<string>",
"at": "2023-11-07T05:31:56Z",
"note": "<string>"
}
},
"agency_join_request": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "pending",
"agency_name": "<string>",
"decline_reason": "<string>",
"requested_at": "2023-11-07T05:31:56Z",
"lock_version": 1
},
"merged_into": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"deleted": true
},
"merged_from": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"merged_at": "2023-11-07T05:31:56Z",
"version": 1
}
],
"conversation_id": 123,
"status_editable": true
}
}
},
"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"
}
}