Choosing GET or POST
The trademarks endpoint is exposed under bothGET /v1/trademarks and POST /v1/trademarks. Both methods call the same service and return the same response shape. Pick whichever fits your call site.
A few advanced options live only on
POST because they do not fit in a query string: options.aggregations and options.aggregations_only. Everything else (filters, strategies, pagination, highlights, include_total, sort) works identically on both.
For the full parameter reference, see List Trademarks. The sections below show concrete usage patterns you can copy into your own code.
Search Strategies
By default, every search runsexact and fuzzy strategies simultaneously and merges the results. For comprehensive clearance searches, use all four:
You can restrict which strategies are used by passing the
strategies array (on POST) or a comma-separated strategies= parameter (on GET):
strategies, exact and fuzzy are used. For comprehensive trademark clearance searches, pass all four strategies explicitly: exact,phonetic,fuzzy,prefix.
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. OnPOST, filters are nested under a filters object. On GET, they are flat query parameters using comma-separated values for arrays and flat underscore operators for date ranges.
Office codes are uppercase WIPO ST.3 two-letter codes:
US (USPTO), EM (EUIPO), WO (WIPO), CA, SG, SE, CH, FR, AU, NO. Legacy lowercase codes (uspto, euipo, …) are accepted on requests permanently, and EU is accepted as an alias for EM. Responses always use the ST.3 form. Office display acronyms (e.g. IPA, IGE-IPI, INPI) are not an accepted input vocabulary — acronyms are not unique across offices; use ST.3 or legacy codes.
You can use both together for a range:
"filing_date": { "gte": "2020-01-01", "lt": "2025-01-01" } (POST) or filing_date_gte=2020-01-01&filing_date_lt=2025-01-01 (GET).
Aggregations
Aggregations arePOST-only because they do not map cleanly to query strings. Available aggregation fields:
"aggregations_only": true to options.
Response Scoring
Search results include arelevance_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. If you specify an explicit sort, relevance scoring is disabled and relevance_score is null.