Skip to main content
This guide walks you through two tiers. The first gets you a search result in 5 minutes. The second adds the TypeScript SDK, filters, pagination, and the enriched owner view.

Tier 1: Your first search (5 minutes)

1

Get an API key

Sign up at app.signa.so and create an API key from the dashboard. Your key will look like this:
All keys use the format sig_{48 hex chars}. For development or CI, create a separate test organization in the dashboard with its own key so it stays isolated from production usage and billing.
2

Set your API key as an environment variable

3

Search for a trademark

Pass q for the query and comma-separated values for array filters.
For complex filter combinations or aggregations, use POST with a JSON body. See the Search guide for details.
4

Inspect the response

Search endpoints return a list with data array, has_more for paging, and request_id for debugging.
Switch to POST and add "options": { "aggregations": ["office_code", "status_stage", "nice_classes"] } to the request body to get faceted counts alongside results. This is useful for building filter UIs. Aggregations are POST-only because they don’t fit cleanly in a query string.

Tier 2: SDK, filters, and pagination (15 minutes)

1

Install the TypeScript SDK

Initialize the client:
2

Search with filters

Narrow results by office, Nice class, status, filing date, and filing route. By default, exact and fuzzy strategies run simultaneously. You can restrict or expand strategies with the strategies array.
The response includes aggregation counts you can use to build filter UIs:
Search strategies: exact for full-text matches, phonetic to catch sound-alikes like “NOVA” / “KNOVA” / “NOWA”, fuzzy for typo tolerance (fuzziness is always AUTO internally), and prefix for starts-with matching. Omit strategies to use the default (exact and fuzzy). For comprehensive clearance searches, use all four: exact,phonetic,fuzzy,prefix.
3

Handle pagination

Results are cursor-based. Pass the cursor from one response as a query parameter or body field in the next request.
4

Get full trademark details

Retrieve a single trademark by ID to get the full record.
The detail level varies by endpoint: GET /v1/trademarks/{id} returns the full record, list endpoints return a slimmer shape with the fields most useful for result cards, and suggest endpoints return a minimal shape for autocomplete.
5

Look up an owner

Every trademark detail response includes an owners[] array. Use the owner ID to get the full owner profile, including entity resolution data and filing statistics.

What’s next

Search guide

Phonetic matching, fuzzy search, aggregations, and filtering strategies for trademark clearance.

Entity resolution

How Signa normalizes owner names, links corporate parents, and resolves aliases across offices.

Deadline rules

Jurisdiction-aware renewal and declaration deadlines with rules for 21 jurisdictions.

API Reference

Complete documentation for all endpoints with interactive playground.