Add entity relationships for a relationship type
curl --request POST \
--url https://api.getcortexapp.com/api/v1/relationships/{relationshipTypeTag} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"relationships": [
{
"destination": "service-b",
"source": "service-a"
}
]
}
'import requests
url = "https://api.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}"
payload = { "relationships": [
{
"destination": "service-b",
"source": "service-a"
}
] }
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({relationships: [{destination: 'service-b', source: 'service-a'}]})
};
fetch('https://api.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}', 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.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}",
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([
'relationships' => [
[
'destination' => 'service-b',
'source' => 'service-a'
]
]
]),
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.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}"
payload := strings.NewReader("{\n \"relationships\": [\n {\n \"destination\": \"service-b\",\n \"source\": \"service-a\"\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.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"relationships\": [\n {\n \"destination\": \"service-b\",\n \"source\": \"service-a\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}")
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 \"relationships\": [\n {\n \"destination\": \"service-b\",\n \"source\": \"service-a\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"errors": [
{
"destinationEntityTag": "service-b",
"errorMessage": "Source entity not found",
"relationshipTypeTag": "depends-on",
"sourceEntityTag": "service-a"
}
],
"relationships": [
{
"destinationEntityTag": "service-b",
"relationshipTypeTag": "depends-on",
"sourceEntityTag": "service-a",
"providerType": "WORKDAY"
}
]
}{
"message": "<string>",
"type": "INTEGRATION_MISSING",
"details": "<string>",
"errorCode": "<string>",
"gatewayHttpStatus": 123,
"httpStatus": 123,
"requestId": "<string>"
}{
"status": 429,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"instance": "<string>",
"retryAfter": 1
}Add entity relationships for a relationship type
Add all entity relationships for a certain relationship type.
POST
/
api
/
v1
/
relationships
/
{relationshipTypeTag}
Add entity relationships for a relationship type
curl --request POST \
--url https://api.getcortexapp.com/api/v1/relationships/{relationshipTypeTag} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"relationships": [
{
"destination": "service-b",
"source": "service-a"
}
]
}
'import requests
url = "https://api.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}"
payload = { "relationships": [
{
"destination": "service-b",
"source": "service-a"
}
] }
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({relationships: [{destination: 'service-b', source: 'service-a'}]})
};
fetch('https://api.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}', 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.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}",
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([
'relationships' => [
[
'destination' => 'service-b',
'source' => 'service-a'
]
]
]),
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.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}"
payload := strings.NewReader("{\n \"relationships\": [\n {\n \"destination\": \"service-b\",\n \"source\": \"service-a\"\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.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"relationships\": [\n {\n \"destination\": \"service-b\",\n \"source\": \"service-a\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getcortexapp.com/api/v1/relationships/{relationshipTypeTag}")
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 \"relationships\": [\n {\n \"destination\": \"service-b\",\n \"source\": \"service-a\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"errors": [
{
"destinationEntityTag": "service-b",
"errorMessage": "Source entity not found",
"relationshipTypeTag": "depends-on",
"sourceEntityTag": "service-a"
}
],
"relationships": [
{
"destinationEntityTag": "service-b",
"relationshipTypeTag": "depends-on",
"sourceEntityTag": "service-a",
"providerType": "WORKDAY"
}
]
}{
"message": "<string>",
"type": "INTEGRATION_MISSING",
"details": "<string>",
"errorCode": "<string>",
"gatewayHttpStatus": 123,
"httpStatus": 123,
"requestId": "<string>"
}{
"status": 429,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"instance": "<string>",
"retryAfter": 1
}Authorizations
All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.
Path Parameters
Query Parameters
When true, overrides values that were defined in the catalog descriptor. Will be overwritten the next time the catalog descriptor is processed.
Body
application/json
Updates to entity relationships
List of code tags for the entities to add as sources
Show child attributes
Show child attributes
Last modified on September 29, 2026