Add Flag
curl --request POST \
--url https://api.bland.ai/v1/triage/issues/{id}/flags \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"call_id": "<string>",
"type": "<string>",
"note": "<string>",
"node_id": "<string>",
"node_name": "<string>",
"message_index": 123,
"message_text": "<string>"
}
'import requests
url = "https://api.bland.ai/v1/triage/issues/{id}/flags"
payload = {
"call_id": "<string>",
"type": "<string>",
"note": "<string>",
"node_id": "<string>",
"node_name": "<string>",
"message_index": 123,
"message_text": "<string>"
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
call_id: '<string>',
type: '<string>',
note: '<string>',
node_id: '<string>',
node_name: '<string>',
message_index: 123,
message_text: '<string>'
})
};
fetch('https://api.bland.ai/v1/triage/issues/{id}/flags', 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.bland.ai/v1/triage/issues/{id}/flags",
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([
'call_id' => '<string>',
'type' => '<string>',
'note' => '<string>',
'node_id' => '<string>',
'node_name' => '<string>',
'message_index' => 123,
'message_text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <authorization>"
],
]);
$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.bland.ai/v1/triage/issues/{id}/flags"
payload := strings.NewReader("{\n \"call_id\": \"<string>\",\n \"type\": \"<string>\",\n \"note\": \"<string>\",\n \"node_id\": \"<string>\",\n \"node_name\": \"<string>\",\n \"message_index\": 123,\n \"message_text\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("authorization", "<authorization>")
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.bland.ai/v1/triage/issues/{id}/flags")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"call_id\": \"<string>\",\n \"type\": \"<string>\",\n \"note\": \"<string>\",\n \"node_id\": \"<string>\",\n \"node_name\": \"<string>\",\n \"message_index\": 123,\n \"message_text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/triage/issues/{id}/flags")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"call_id\": \"<string>\",\n \"type\": \"<string>\",\n \"note\": \"<string>\",\n \"node_id\": \"<string>\",\n \"node_name\": \"<string>\",\n \"message_index\": 123,\n \"message_text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "ad0931e4-b0e1-4bd6-a5b1-09e7c9123dba",
"org_id": "f5b40b9e-bc05-4b8a-9af1-d8f6a8a3a201",
"issue_id": "9bbe5547-d5b1-4b83-9f80-87c4af7c6b34",
"call_id": "3aefc79d-1870-4514-b32b-b9212ae32bc8",
"type": "missed_handoff",
"note": "Agent transferred without confirming the email.",
"node_id": null,
"node_name": null,
"message_index": 12,
"message_text": "OK, transferring you now.",
"author_id": "75c5c7da-a5d6-4e26-a51e-1ae8ef2bfa4a",
"created_at": "2026-05-07T05:26:11.327Z"
},
"errors": null
}
{
"data": null,
"errors": [
{ "error": "call_not_attached", "message": "Call must be attached to issue first" }
]
}
Flags
Add Flag
Flag a moment on an attached call.
POST
/
v1
/
triage
/
issues
/
{id}
/
flags
Add Flag
curl --request POST \
--url https://api.bland.ai/v1/triage/issues/{id}/flags \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"call_id": "<string>",
"type": "<string>",
"note": "<string>",
"node_id": "<string>",
"node_name": "<string>",
"message_index": 123,
"message_text": "<string>"
}
'import requests
url = "https://api.bland.ai/v1/triage/issues/{id}/flags"
payload = {
"call_id": "<string>",
"type": "<string>",
"note": "<string>",
"node_id": "<string>",
"node_name": "<string>",
"message_index": 123,
"message_text": "<string>"
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
call_id: '<string>',
type: '<string>',
note: '<string>',
node_id: '<string>',
node_name: '<string>',
message_index: 123,
message_text: '<string>'
})
};
fetch('https://api.bland.ai/v1/triage/issues/{id}/flags', 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.bland.ai/v1/triage/issues/{id}/flags",
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([
'call_id' => '<string>',
'type' => '<string>',
'note' => '<string>',
'node_id' => '<string>',
'node_name' => '<string>',
'message_index' => 123,
'message_text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <authorization>"
],
]);
$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.bland.ai/v1/triage/issues/{id}/flags"
payload := strings.NewReader("{\n \"call_id\": \"<string>\",\n \"type\": \"<string>\",\n \"note\": \"<string>\",\n \"node_id\": \"<string>\",\n \"node_name\": \"<string>\",\n \"message_index\": 123,\n \"message_text\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("authorization", "<authorization>")
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.bland.ai/v1/triage/issues/{id}/flags")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"call_id\": \"<string>\",\n \"type\": \"<string>\",\n \"note\": \"<string>\",\n \"node_id\": \"<string>\",\n \"node_name\": \"<string>\",\n \"message_index\": 123,\n \"message_text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/triage/issues/{id}/flags")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"call_id\": \"<string>\",\n \"type\": \"<string>\",\n \"note\": \"<string>\",\n \"node_id\": \"<string>\",\n \"node_name\": \"<string>\",\n \"message_index\": 123,\n \"message_text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "ad0931e4-b0e1-4bd6-a5b1-09e7c9123dba",
"org_id": "f5b40b9e-bc05-4b8a-9af1-d8f6a8a3a201",
"issue_id": "9bbe5547-d5b1-4b83-9f80-87c4af7c6b34",
"call_id": "3aefc79d-1870-4514-b32b-b9212ae32bc8",
"type": "missed_handoff",
"note": "Agent transferred without confirming the email.",
"node_id": null,
"node_name": null,
"message_index": 12,
"message_text": "OK, transferring you now.",
"author_id": "75c5c7da-a5d6-4e26-a51e-1ae8ef2bfa4a",
"created_at": "2026-05-07T05:26:11.327Z"
},
"errors": null
}
{
"data": null,
"errors": [
{ "error": "call_not_attached", "message": "Call must be attached to issue first" }
]
}
Overview
Flags pinpoint where on a call something went wrong. Thecall_id must already be attached as a resource on this issue, otherwise the request fails with 409 conflict and { error: "call_not_attached" }. Flag types accumulate into a reusable per-org catalog (see List Flag Types).
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
Internal UUID of the issue.
Body Parameters
string
required
ID of the attached call this flag points at. Must already be attached as a resource on this issue.
string
required
Flag type. Free-form, but normalized to lower_snake_case before storage. Reusing a type increments its
usage_count in List Flag Types.string
Free-text note explaining why this moment was flagged. 1-4000 characters.
string
ID of the pathway node the flag is attached to, if known.
string
Display name of the pathway node, captured at flag time so the dashboard can render the node name even if the pathway later changes.
integer
Zero-based index of the message turn in the call transcript that this flag points at.
string
Verbatim text of the flagged message, captured at flag time.
Response
Returns201 Created with the new flag.
object
null | array
null on success.{
"data": {
"id": "ad0931e4-b0e1-4bd6-a5b1-09e7c9123dba",
"org_id": "f5b40b9e-bc05-4b8a-9af1-d8f6a8a3a201",
"issue_id": "9bbe5547-d5b1-4b83-9f80-87c4af7c6b34",
"call_id": "3aefc79d-1870-4514-b32b-b9212ae32bc8",
"type": "missed_handoff",
"note": "Agent transferred without confirming the email.",
"node_id": null,
"node_name": null,
"message_index": 12,
"message_text": "OK, transferring you now.",
"author_id": "75c5c7da-a5d6-4e26-a51e-1ae8ef2bfa4a",
"created_at": "2026-05-07T05:26:11.327Z"
},
"errors": null
}
{
"data": null,
"errors": [
{ "error": "call_not_attached", "message": "Call must be attached to issue first" }
]
}
Docs for agents: llms.txt
Was this page helpful?
⌘I