Skip to main content
Signa’s search is powered by OpenSearch with custom analyzers for trademark-specific matching.

Search Strategies

By default, every search runs all four strategies simultaneously and merges the results:
StrategyWhat it does
exactCase-insensitive exact keyword match — the entire mark text must match the query exactly
phoneticCatches sound-alikes regardless of spelling (e.g., “SIGNA” / “CYGNA” / “SYNNA”)
fuzzyTolerates typos and minor character differences (fuzziness is always AUTO internally)
prefixMatches marks that start with the query text
You can restrict which strategies are used by passing the strategies array:
curl -X POST https://api.signa.so/v1/trademarks/search \
  -H "Authorization: Bearer $SIGNA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "signa",
    "strategies": ["exact", "phonetic"]
  }'
If you omit strategies, all four are used. This is the recommended default for trademark clearance searches since it gives the broadest coverage.
There is no user-controllable fuzziness parameter. Fuzzy matching always uses AUTO internally, which adjusts edit distance based on the length of the query term.

Filtering

Narrow results with filters. Date filters use object format with gte/lt operators:
curl -X POST https://api.signa.so/v1/trademarks/search \
  -H "Authorization: Bearer $SIGNA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "signa",
    "filters": {
      "offices": ["uspto", "euipo"],
      "nice_classes": [9, 42],
      "status_stage": "registered",
      "filing_date": { "gte": "2020-01-01" }
    }
  }'
Date filter operators:
OperatorMeaning
gteGreater than or equal (from date, inclusive)
ltLess than (to date, exclusive)
You can use both together for a range: "filing_date": { "gte": "2020-01-01", "lt": "2025-01-01" }.

Aggregations

Get faceted counts alongside results. Available aggregation fields:
FieldDescription
office_codeCounts by trademark office
nice_classesCounts by Nice classification
status_stageCounts by status stage
filing_yearCounts by filing year
mark_feature_typeCounts by mark type (word, figurative, etc.)
mark_legal_categoryCounts by legal category (trademark, certification, etc.)
filing_routeCounts by filing route (direct_national, madrid, etc.)
{
  "query": "signa",
  "options": {
    "aggregations": ["office_code", "status_stage", "nice_classes"]
  }
}

Response Scoring

Search results include a relevance_score field, which is a normalized score from 0 to 100 (higher is more relevant). Results are sorted by relevance score in descending order by default.

Suggest

For autocomplete and typeahead:
GET /v1/trademarks/suggest?q=sig&limit=10