Skip to main content
GET
/
v1
/
entities
List Entities
curl --request GET \
  --url https://api.signa.so/v1/entities \
  --header 'Authorization: Bearer <token>'
{
  "object": "list",
  "data": [
    {
      "id": "ent_R3jK9mN2",
      "object": "entity",
      "name": "8x8, Inc.",
      "country_code": "US",
      "entity_type": "corporation",
      "entity_id_type": "resolved",
      "publicly_traded": true,
      "ticker": "EGHT",
      "lei": "5493001KQHV5W2NMMW07",
      "trademark_count": 214,
      "member_count": 5
    }
  ],
  "has_more": false,
  "pagination": { "cursor": null },
  "request_id": "req_xyz789"
}

Overview

Returns a paginated, summary-tier list of resolved entities. An entity is one real-world company linked across offices: 8x8 Inc (USPTO), 8x8 Inc (EUIPO), and 8x8 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.
Entity search is OpenSearch-backed for both text and filter-only queries. If search is temporarily unavailable the endpoint returns 503 (there is no fallback — singleton entities are not enumerable in Postgres).

Query Parameters

q
string
Name typeahead / relevance search. When present, results default to relevance order.
country_code
string
Filter by ISO 3166-1 alpha-2 country code (e.g. US, GB).
entity_type
string
Filter by entity type (e.g. corporation, individual).
publicly_traded
boolean
true returns entities with an active SEC company and a ticker (aggregated across members). false means no confirmed match, not confirmed private. Strict true/false only.
ticker
string
Exact stock ticker (uppercased server-side), matched across the entity’s member companies.
has_lei
boolean
true returns entities with a GLEIF LEI. Strict true/false only.
lei
string
Exact GLEIF Legal Entity Identifier.
sort
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).
include_total
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.
limit
integer
default:"20"
Page size, between 1 and 100.
cursor
string
Opaque cursor returned in the previous response’s pagination.cursor.

Response

object
string
Always list.
data
object[]
has_more
boolean
Whether more entities are available.
pagination
object
Cursor for the next page (signed).
request_id
string
Unique request identifier for support and debugging.
{
  "object": "list",
  "data": [
    {
      "id": "ent_R3jK9mN2",
      "object": "entity",
      "name": "8x8, Inc.",
      "country_code": "US",
      "entity_type": "corporation",
      "entity_id_type": "resolved",
      "publicly_traded": true,
      "ticker": "EGHT",
      "lei": "5493001KQHV5W2NMMW07",
      "trademark_count": 214,
      "member_count": 5
    }
  ],
  "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_HERE" \
  --data-urlencode "q=8x8" \
  --data-urlencode "publicly_traded=true" \
  --data-urlencode "limit=20"

Errors

StatusTypeDescription
400validation_errorInvalid sort, unknown filter value, or non-strict boolean
401unauthorizedMissing or invalid API key
403forbiddenAPI key lacks the trademarks:read scope
429rate_limitedRate limit exceeded
503service_unavailableEntity search is temporarily unavailable