Link Related Issue
curl --request POST \
--url https://api.bland.ai/v1/triage/issues/{id}/relations \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"related_issue_id": "<string>",
"relation_type": "<string>"
}
'import requests
url = "https://api.bland.ai/v1/triage/issues/{id}/relations"
payload = {
"related_issue_id": "<string>",
"relation_type": "<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({related_issue_id: '<string>', relation_type: '<string>'})
};
fetch('https://api.bland.ai/v1/triage/issues/{id}/relations', 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}/relations",
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([
'related_issue_id' => '<string>',
'relation_type' => '<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}/relations"
payload := strings.NewReader("{\n \"related_issue_id\": \"<string>\",\n \"relation_type\": \"<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}/relations")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"related_issue_id\": \"<string>\",\n \"relation_type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/triage/issues/{id}/relations")
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 \"related_issue_id\": \"<string>\",\n \"relation_type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "172c839b-130d-4712-a09c-b767a78542ea",
"org_id": "f5b40b9e-bc05-4b8a-9af1-d8f6a8a3a201",
"issue_id": "9bbe5547-d5b1-4b83-9f80-87c4af7c6b34",
"related_issue_id": "849ee9ce-be6b-4f9c-8e55-2736aeeb579f",
"related_triage_id": "T-1004",
"related_title": "Caller transferred to wrong queue",
"relation_type": "duplicate_of",
"created_by_id": "75c5c7da-a5d6-4e26-a51e-1ae8ef2bfa4a",
"created_at": "2026-05-07T05:28:29.358Z",
"direction": "outgoing"
},
"errors": null
}
Relations
Link Related Issue
Link an issue to another issue.
POST
/
v1
/
triage
/
issues
/
{id}
/
relations
Link Related Issue
curl --request POST \
--url https://api.bland.ai/v1/triage/issues/{id}/relations \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"related_issue_id": "<string>",
"relation_type": "<string>"
}
'import requests
url = "https://api.bland.ai/v1/triage/issues/{id}/relations"
payload = {
"related_issue_id": "<string>",
"relation_type": "<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({related_issue_id: '<string>', relation_type: '<string>'})
};
fetch('https://api.bland.ai/v1/triage/issues/{id}/relations', 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}/relations",
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([
'related_issue_id' => '<string>',
'relation_type' => '<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}/relations"
payload := strings.NewReader("{\n \"related_issue_id\": \"<string>\",\n \"relation_type\": \"<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}/relations")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"related_issue_id\": \"<string>\",\n \"relation_type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/triage/issues/{id}/relations")
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 \"related_issue_id\": \"<string>\",\n \"relation_type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "172c839b-130d-4712-a09c-b767a78542ea",
"org_id": "f5b40b9e-bc05-4b8a-9af1-d8f6a8a3a201",
"issue_id": "9bbe5547-d5b1-4b83-9f80-87c4af7c6b34",
"related_issue_id": "849ee9ce-be6b-4f9c-8e55-2736aeeb579f",
"related_triage_id": "T-1004",
"related_title": "Caller transferred to wrong queue",
"relation_type": "duplicate_of",
"created_by_id": "75c5c7da-a5d6-4e26-a51e-1ae8ef2bfa4a",
"created_at": "2026-05-07T05:28:29.358Z",
"direction": "outgoing"
},
"errors": null
}
Overview
Creates a typed link from one issue to another. Relations are directed: stored on the source issue ({id}) and outgoing to related_issue_id. The same relation appears with direction: "incoming" when listed from the target issue.
Headers
Your API key for authentication.
Path Parameters
Internal UUID of the source issue.
Body Parameters
Internal UUID of the target issue.
Relationship type. Must be one of:
related_toblocksduplicate_of
Response
Returns201 Created with the new relation.
Show Relation fields
Show Relation fields
Internal UUID of the relation.
Source issue UUID.
Target issue UUID.
Short identifier of the target issue (e.g.
T-1004), denormalized for display.Title of the target issue, denormalized for display.
related_to, blocks, or duplicate_of.Always
outgoing on creation, since the relation lives on the source issue.User ID of the caller that created the relation.
null on success. Returns 404 if either issue does not exist or is not in your org.{
"data": {
"id": "172c839b-130d-4712-a09c-b767a78542ea",
"org_id": "f5b40b9e-bc05-4b8a-9af1-d8f6a8a3a201",
"issue_id": "9bbe5547-d5b1-4b83-9f80-87c4af7c6b34",
"related_issue_id": "849ee9ce-be6b-4f9c-8e55-2736aeeb579f",
"related_triage_id": "T-1004",
"related_title": "Caller transferred to wrong queue",
"relation_type": "duplicate_of",
"created_by_id": "75c5c7da-a5d6-4e26-a51e-1ae8ef2bfa4a",
"created_at": "2026-05-07T05:28:29.358Z",
"direction": "outgoing"
},
"errors": null
}
Docs for agents: llms.txt
Was this page helpful?
⌘I