Skip to main content
GET
List Goods & Services

Overview

Browse and search 96,000+ pre-approved goods & services descriptions from the Harmonised Database (HDB) and the USPTO ID Manual. Use this to power goods/services autocomplete in filing tools (pass class to scope results to a single Nice class), or to discover which classes accept a particular term (pass q without class for a cross-class search). For background on how office acceptance works and the data sources behind this endpoint, see the Classifications & Goods/Services guide.
At least one of q or class must be provided. For semantic class discovery from a natural-language business description (e.g. “SaaS tool for HR teams”), use Suggest Classifications. For a drafted goods/services specification with filing-ready wording per class, use Suggest Goods & Services.

Query Parameters

q
string
Substring search across term text (2-200 characters). Optional if class is set. Returns 400 validation_error if neither q nor class is provided.
class
integer
Nice class number (1-45). Optional if q is set. Returns 400 if outside the 1-45 range, or 404 if the class number is in range but not loaded in reference data.
language
string
default:"en"
Language code (e.g. en, de, fr, es, it, ja).
harmonised_only
boolean
default:"false"
When true, only return terms on the TMClass harmonised list.
limit
integer
default:"20"
Max results (1-100).
cursor
string
Pagination cursor from pagination.cursor of the previous page.

Response

This endpoint is publicly cacheable, so the response never includes request_id.
object
string
Always list.
data
object[]
Array of term records ordered by term key.
data[].term
string
The term text.
data[].term_key
string
Stable normalized key for the term.
data[].class_number
integer
Nice class this term is filed under (1-45). Present on every result so cross-class searches render without follow-up fetches.
data[].taxonomy_path
string | null
TMClass taxonomy path identifier, when available.
data[].is_harmonised
boolean
Whether the term is on the harmonised list.
data[].accepted_offices
string[]
Offices that accept this term (e.g. USPTO, EUIPO).
data[].source
string
Source catalog (e.g. tmclass, uspto_idm).
data[].language
string
Language code.
has_more
boolean
Whether more pages are available.
pagination
object

Code Examples

Scoped autocomplete (user already picked a class)

Cross-class discovery (which classes accept this term?)

Pass only q (omit class) and inspect class_number on each result to see which classes contain the wording.

Browse all terms in a class

Pass only class (omit q) to page through the full list of accepted wording for one class.
TypeScript

Errors