Skip to main content
POST
/
v1
/
trademarks
/
search
Search Trademarks
curl --request POST \
  --url https://api.example.com/v1/trademarks/search \
  --header 'Content-Type: application/json' \
  --data '
{
  "query": "<string>",
  "strategies": [
    "<string>"
  ],
  "filters": {
    "offices": [
      "<string>"
    ],
    "nice_classes": [
      123
    ],
    "status_stage": "<string>",
    "filing_date": {},
    "registration_date": {},
    "filing_route": "<string>",
    "mark_feature_type": "<string>",
    "mark_legal_category": "<string>"
  },
  "options": {
    "aggregations": [
      "<string>"
    ]
  },
  "limit": 123,
  "cursor": "<string>"
}
'
{
  "object": "list",
  "data": [
    {
      "id": "tm_abc123",
      "object": "trademark",
      "mark_text": "SIGNA",
      "relevance_score": 93,
      "status": { "stage": "registered" },
      "office_code": "uspto",
      "filing_date": "2024-06-15",
      "nice_classes": [9, 42],
      "owner_name": "Signa Technologies Inc."
    }
  ],
  "aggregations": {
    "office_code": { "uspto": 847, "euipo": 312 },
    "nice_classes": { "9": 423, "42": 298 }
  },
  "has_more": true,
  "pagination": {
    "cursor": "eyJpZCI6ImFiYyJ9"
  },
  "livemode": true,
  "request_id": "req_xyz789"
}

Request Body

query
string
required
Search query text
strategies
string[]
Search strategies to apply. Any combination of: exact, phonetic, fuzzy, prefix. Defaults to all four.
filters
object
options
object
limit
integer
default:"20"
Results per page (max 100)
cursor
string
Pagination cursor from previous response

Response

Returns search results with normalized relevance scores (0-100) and optional aggregations.
{
  "object": "list",
  "data": [
    {
      "id": "tm_abc123",
      "object": "trademark",
      "mark_text": "SIGNA",
      "relevance_score": 93,
      "status": { "stage": "registered" },
      "office_code": "uspto",
      "filing_date": "2024-06-15",
      "nice_classes": [9, 42],
      "owner_name": "Signa Technologies Inc."
    }
  ],
  "aggregations": {
    "office_code": { "uspto": 847, "euipo": 312 },
    "nice_classes": { "9": 423, "42": 298 }
  },
  "has_more": true,
  "pagination": {
    "cursor": "eyJpZCI6ImFiYyJ9"
  },
  "livemode": true,
  "request_id": "req_xyz789"
}

Code Examples

curl -X POST https://api.signa.so/v1/trademarks/search \
  -H "Authorization: Bearer sig_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "signa",
    "strategies": ["exact", "phonetic"],
    "filters": {
      "offices": ["uspto", "euipo"],
      "nice_classes": [9, 42],
      "filing_date": { "gte": "2020-01-01" }
    },
    "options": {
      "aggregations": ["office_code", "nice_classes"]
    },
    "limit": 20
  }'
There is no user-controllable fuzziness parameter. When the fuzzy strategy is included, fuzziness is always AUTO internally (adjusts edit distance based on term length).