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
string
required
Your API key for authentication.
Path Parameters
string
required
Internal UUID of the source issue.
Body Parameters
string
required
Internal UUID of the target issue.
string
required
Relationship type. Must be one of:
related_toblocksduplicate_of
Response
Returns201 Created with the new relation.
object
Show Relation fields
Show Relation fields
string
Internal UUID of the relation.
string
string
Source issue UUID.
string
Target issue UUID.
string
Short identifier of the target issue (e.g.
T-1004), denormalized for display.string
Title of the target issue, denormalized for display.
string
related_to, blocks, or duplicate_of.string
Always
outgoing on creation, since the relation lives on the source issue.string | null
User ID of the caller that created the relation.
string
null | array
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