Skip to main content
GET
/
v1
/
owners
List Owners
curl --request GET \
  --url https://api.signa.so/v1/owners \
  --header 'Authorization: Bearer <token>'
{
  "object": "list",
  "data": [
    {
      "id": "own_R3jK9mN2",
      "object": "owner",
      "name": "Apple Inc.",
      "canonical_name": "APPLE INC",
      "country_code": "US",
      "entity_type": "corporation",
      "trademark_count": 1847
    },
    {
      "id": "own_Yk8mN2pQ",
      "object": "owner",
      "name": "Alphabet Inc.",
      "canonical_name": "ALPHABET INC",
      "country_code": "US",
      "entity_type": "corporation",
      "trademark_count": 1521
    }
  ],
  "has_more": true,
  "pagination": {
    "cursor": "eyJpZCI6Im93bl9SM2pLOW1OMiIsInNvcnQiOjE4NDd9"
  },
  "request_id": "req_xyz789"
}

Overview

Returns a paginated, summary-tier list of trademark owners. Supports fuzzy name search, country and entity-type filters, and three “virtual” filters that join the public_companies table to find owners enriched with SEC ticker, GLEIF LEI, or any public-company linkage. Suppressed owners (placeholder records, frozen entities) are always excluded.

Query Parameters

q
string
Fuzzy name search via PostgreSQL pg_trgm. Tolerant of typos and word reordering.
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, partnership).
ticker
string
Virtual filter: matches owners linked to a public company with the given stock ticker (e.g. AAPL).
lei
string
Virtual filter: matches owners linked to a GLEIF Legal Entity Identifier.
has_public_company
boolean
Virtual filter: if true, returns only owners with at least one matched public company. If false, returns only owners without one. Strict true/false only.
sort
string
Sort field with optional - prefix for descending. One of -trademark_count, trademark_count, -name, name. Default: -trademark_count.
limit
integer
default:"20"
Page size, between 1 and 50.
cursor
string
Opaque cursor returned in the previous response’s pagination.cursor.

Response

object
string
Always list.
data
object[]
has_more
boolean
Whether more owners are available.
pagination
object
Cursor for the next page.
request_id
string
Unique request identifier for support and debugging.
{
  "object": "list",
  "data": [
    {
      "id": "own_R3jK9mN2",
      "object": "owner",
      "name": "Apple Inc.",
      "canonical_name": "APPLE INC",
      "country_code": "US",
      "entity_type": "corporation",
      "trademark_count": 1847
    },
    {
      "id": "own_Yk8mN2pQ",
      "object": "owner",
      "name": "Alphabet Inc.",
      "canonical_name": "ALPHABET INC",
      "country_code": "US",
      "entity_type": "corporation",
      "trademark_count": 1521
    }
  ],
  "has_more": true,
  "pagination": {
    "cursor": "eyJpZCI6Im93bl9SM2pLOW1OMiIsInNvcnQiOjE4NDd9"
  },
  "request_id": "req_xyz789"
}

Code Examples

curl -G "https://api.signa.so/v1/owners" \
  -H "Authorization: Bearer sig_YOUR_KEY_HERE" \
  --data-urlencode "country_code=US" \
  --data-urlencode "has_public_company=true" \
  --data-urlencode "sort=-trademark_count" \
  --data-urlencode "limit=20"

Errors

StatusTypeDescription
400validation_errorInvalid sort, unknown filter value, or non-strict boolean for has_public_company
401unauthorizedMissing or invalid API key
403forbiddenAPI key lacks the trademarks:read scope
429rate_limitedRate limit exceeded