Search Entities
curl --request GET \
--url https://api.signa.so/v1/entities \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/entities"
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/entities', 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/entities",
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/entities"
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/entities")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/entities")
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": [
{
"id": "ent_R3jK9mN2",
"object": "entity",
"name": "Apple Inc.",
"country_code": "US",
"legal_form": "corporation",
"publicly_traded": true,
"ticker": "AAPL",
"lei": "HWUPKR0MPOU8FGXBT394",
"trademark_count": 2314,
"active_count": 1988,
"member_count": 3
}
],
"has_more": false,
"pagination": { "cursor": null },
"request_id": "req_xyz789"
}
Entities
Search Entities
Search resolved entities, the cross-office identity over per-office owner records
GET
/
v1
/
entities
Search Entities
curl --request GET \
--url https://api.signa.so/v1/entities \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/entities"
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/entities', 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/entities",
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/entities"
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/entities")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/entities")
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": [
{
"id": "ent_R3jK9mN2",
"object": "entity",
"name": "Apple Inc.",
"country_code": "US",
"legal_form": "corporation",
"publicly_traded": true,
"ticker": "AAPL",
"lei": "HWUPKR0MPOU8FGXBT394",
"trademark_count": 2314,
"active_count": 1988,
"member_count": 3
}
],
"has_more": false,
"pagination": { "cursor": null },
"request_id": "req_xyz789"
}
Credits: 10 per page.
Overview
Returns a paginated, summary-tier list of resolved entities. An entity is one real-world company linked across offices:Apple Inc (USPTO), Apple Inc (EUIPO), and Apple Inc (CIPO) are one entity, not three owners. Use this to find a company once instead of reconciling per-office owner fragments yourself.
The publicly_traded, ticker, and has_lei filters match on the entity’s aggregated public-company facts (the union of its members’ SEC/GLEIF links), so they catch a company even when only one of its office records carries the ticker.
Entities or owners, which one do I use? Entities are resolved real-world organizations (one company, linked across every office). Start here for company-level questions like “everything this company owns, everywhere.” Owners are the raw office-level record parties, where the same company appears once per office and per name variant. Reach for owners when you need provenance or want to display the exact record as an office filed it.
This list returns materialized (cross-office) entities only. An owner that isn’t linked to an entity doesn’t appear here and has
entity_id: null; find it via Search Owners. If search is temporarily unavailable, the endpoint returns 503 with no fallback list.Query Parameters
string
Name typeahead / relevance search. When present, results default to relevance order.
string
Filter by ISO 3166-1 alpha-2 country code (e.g.
US, GB).string
Filter by
legal_form, the kind of legal person (e.g. corporation, individual). The old entity_type parameter is a 400 that names legal_form.boolean
true returns entities that are publicly listed: either a member owner is matched to an active SEC company with a ticker, or the entity is itself listed or a subsidiary of a listed company. false means no confirmed listing, not confirmed private. Strict true/false only.string
Exact stock ticker (uppercased server-side). Subsidiary-inclusive: matches the entity’s direct tickers (member SEC companies and its own listing) and inherited tickers. An entity inherits the ticker of the nearest listed company up its GLEIF direct-parent chain, or else of its GLEIF ultimate parent. A subsidiary with no parent reported to GLEIF is not matched. Ultimate-parent inheritance takes effect after the weekly GLEIF refresh.
boolean
true returns entities with a GLEIF LEI. Strict true/false only.string
Exact GLEIF Legal Entity Identifier.
string
Sort field with optional
- prefix. One of -trademark_count, trademark_count, -name, name, -member_count, member_count. Default: -trademark_count (-relevance when q is set).boolean
default:"false"
When
true, includes a total count in pagination.total_count. The count is exact only up to 10,000; beyond that pagination.total_count_approximate is true.integer
default:"20"
Page size, between 1 and 100.
string
Opaque cursor returned in the previous response’s
pagination.cursor.Response
string
Always
list.object[]
Show Entity summary object
Show Entity summary object
string
Entity ID prefixed with
ent_.string
Always
entity.string
The entity’s display name, chosen from its member records.
string | null
ISO 3166-1 alpha-2 country code.
string | null
The kind of legal person (e.g.
corporation).boolean
Whether the aggregated company set includes an active SEC company with a ticker.
string | null
First SEC ticker across the entity’s members.
string | null
The entity’s LEI, uppercased: its own LEI when set, else the first GLEIF LEI across the entity’s members.
null when none.integer
Distinct trademarks across all member owners (co-owned marks counted once).
integer
Count of active trademarks (registered + pending). Always present; 0 when stats not yet computed.
integer
Number of member owners.
boolean
Whether more entities are available.
object
Cursor for the next page (signed).
string
Unique request identifier for support and debugging.
{
"object": "list",
"data": [
{
"id": "ent_R3jK9mN2",
"object": "entity",
"name": "Apple Inc.",
"country_code": "US",
"legal_form": "corporation",
"publicly_traded": true,
"ticker": "AAPL",
"lei": "HWUPKR0MPOU8FGXBT394",
"trademark_count": 2314,
"active_count": 1988,
"member_count": 3
}
],
"has_more": false,
"pagination": { "cursor": null },
"request_id": "req_xyz789"
}
Code Examples
curl -G "https://api.signa.so/v1/entities" \
-H "Authorization: Bearer sig_YOUR_KEY" \
--data-urlencode "q=apple" \
--data-urlencode "publicly_traded=true" \
--data-urlencode "limit=20"
import { Signa } from "@signa-so/sdk";
const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });
const entities = await signa.entities.list({
q: "apple",
publicly_traded: true,
limit: 20,
});
for await (const entity of entities) {
console.log(entity.name, entity.ticker, entity.trademark_count);
}
Related Endpoints
- Retrieve Entity: full entity detail with members
- Entity Trademarks: marks across all member owners
- Entity Family: GLEIF corporate parent and subsidiaries