Owner Related Entities
curl --request GET \
--url https://api.signa.so/v1/owners/{id}/related \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/owners/{id}/related"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signa.so/v1/owners/{id}/related', 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.signa.so/v1/owners/{id}/related",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.signa.so/v1/owners/{id}/related"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.signa.so/v1/owners/{id}/related")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/owners/{id}/related")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"related_owner_id": "own_Tk5nM7pQ",
"name": "Aurora Holdings Corp.",
"country_code": "US",
"relationship_type": "IS_DIRECTLY_CONSOLIDATED_BY",
"relationship_status": "ACTIVE",
"ownership_pct": null,
"period_start": "2020-01-15",
"period_end": null,
"direction": "parent",
"source": "gleif_level2"
},
{
"related_owner_id": "own_Vm8pN3qR",
"name": "Aurora Digital GmbH",
"country_code": "DE",
"relationship_type": "IS_DIRECTLY_CONSOLIDATED_BY",
"relationship_status": "ACTIVE",
"ownership_pct": null,
"period_start": "2018-06-01",
"period_end": null,
"direction": "child",
"source": "gleif_level2"
}
],
"has_more": false,
"pagination": {
"cursor": null
},
"request_id": "req_gZ6qR2sT"
}
Owners
Owner Related Entities
Find entities related to an owner through corporate structure
GET
/
v1
/
owners
/
{id}
/
related
Owner Related Entities
curl --request GET \
--url https://api.signa.so/v1/owners/{id}/related \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/owners/{id}/related"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signa.so/v1/owners/{id}/related', 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.signa.so/v1/owners/{id}/related",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.signa.so/v1/owners/{id}/related"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.signa.so/v1/owners/{id}/related")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/owners/{id}/related")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"related_owner_id": "own_Tk5nM7pQ",
"name": "Aurora Holdings Corp.",
"country_code": "US",
"relationship_type": "IS_DIRECTLY_CONSOLIDATED_BY",
"relationship_status": "ACTIVE",
"ownership_pct": null,
"period_start": "2020-01-15",
"period_end": null,
"direction": "parent",
"source": "gleif_level2"
},
{
"related_owner_id": "own_Vm8pN3qR",
"name": "Aurora Digital GmbH",
"country_code": "DE",
"relationship_type": "IS_DIRECTLY_CONSOLIDATED_BY",
"relationship_status": "ACTIVE",
"ownership_pct": null,
"period_start": "2018-06-01",
"period_end": null,
"direction": "child",
"source": "gleif_level2"
}
],
"has_more": false,
"pagination": {
"cursor": null
},
"request_id": "req_gZ6qR2sT"
}
Overview
Returns entities related to the specified owner. Relationships are primarily sourced from GLEIF Level 2 corporate parent/subsidiary data. Use this for M&A due diligence, corporate family mapping, and understanding ownership structures behind trademark portfolios.Path Parameters
Owner ID (e.g.,
own_Rj3kL9mN)Query Parameters
Filter by relationship direction:
parent or child. Omit to return both.Items per page (max 100)
Pagination cursor from previous response
Response
Show Related entity object (flat structure)
Show Related entity object (flat structure)
Owner ID of the related entity (
own_*)Name of the related entity
ISO country code
GLEIF relationship type (e.g.,
IS_DIRECTLY_CONSOLIDATED_BY)Relationship status (e.g.,
ACTIVE)Ownership percentage (may be null)
ISO date when the relationship started
ISO date when the relationship ended (null if current)
parent or childData source (e.g.,
gleif_level2){
"object": "list",
"data": [
{
"related_owner_id": "own_Tk5nM7pQ",
"name": "Aurora Holdings Corp.",
"country_code": "US",
"relationship_type": "IS_DIRECTLY_CONSOLIDATED_BY",
"relationship_status": "ACTIVE",
"ownership_pct": null,
"period_start": "2020-01-15",
"period_end": null,
"direction": "parent",
"source": "gleif_level2"
},
{
"related_owner_id": "own_Vm8pN3qR",
"name": "Aurora Digital GmbH",
"country_code": "DE",
"relationship_type": "IS_DIRECTLY_CONSOLIDATED_BY",
"relationship_status": "ACTIVE",
"ownership_pct": null,
"period_start": "2018-06-01",
"period_end": null,
"direction": "child",
"source": "gleif_level2"
}
],
"has_more": false,
"pagination": {
"cursor": null
},
"request_id": "req_gZ6qR2sT"
}
Code Examples
curl "https://api.signa.so/v1/owners/own_Rj3kL9mN/related?direction=parent" \
-H "Authorization: Bearer sig_YOUR_KEY"
import { Signa } from "@signa-so/sdk";
const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });
const related = await signa.owners.related("own_Rj3kL9mN");
Errors
| Status | Type | Description |
|---|---|---|
| 400 | validation_error | Invalid direction value |
| 401 | unauthorized | Missing or invalid API key |
| 403 | forbidden | API key lacks the trademarks:read scope |
| 404 | not_found | Owner ID does not exist |
| 429 | rate_limited | Too many requests |
Related Endpoints
- Get Owner: owner profile and stats
- Owner Trademarks: marks owned by this owner
- Get Trademark: individual trademark detail
⌘I