Skip to main content
POST
Validate Goods & Services
listed means the wording appears in that office’s pre-approved catalog, exactly or after punctuation normalization (match.type says which). not_listed means we cannot show it there: it is an absence of evidence, not a refusal. These catalogs record positive membership only, so this endpoint cannot predict whether an office will allow wording that is absent. Catalog answers are available only for US, EM, JP, KR, and CN. Every other recognized office returns unsupported_office with reason no_catalog_data; the endpoint does not imply broader coverage.

Request

Send 1–100 items and 1–10 office codes. Only English (en) is available. Duplicate office aliases collapse and response office codes use ST.3.
string[]
required
Offices to report on. Catalog answers exist only for US, EM, JP, KR, and CN.
string
default:"en"
Catalog language. Only en is available in v1.
object[]
required
Wording to check, in response order. Each item requires term and may include class_number from 1–45.
Supplying class_number fixes the class used for candidate wording when the submitted term is not listed. Without one, the endpoint may match or infer a class and search that class; candidates are empty only when no class can be resolved or candidate search is not applicable. If the wording exists in another class, the item returns class_mismatch and class_matches names the class where the catalog wording actually lives. If no class is supplied and several classes match, the status is ambiguous_class and class_matches carries those rows. Idempotency-Key is optional. When supplied, it is honoured for replay; it is never required. Billing is per item. fee_impact is reserved and always null in v1.

Candidate relations

Candidates are advisory catalog wording from the supplied or resolved class:
  • contained_in_input means the wording appears as a contiguous run of words in what the customer wrote.
  • similar means a lexical neighbour. It also includes rows demoted by the word-boundary check: a trigram match can be close without being a phrase the customer typed.
  • template means the fixed wording of a USPTO drafting template appears in order. The placeholder and possible fill are in template.slots.
Every candidate has span and template; they are null when not applicable. Candidate wording is advisory, not a guarantee of acceptance.

Coverage of your wording

coverage describes how many whitespace-separated tokens are supported by an exact/normalized match or by returned whole-word candidates. uncovered preserves the remaining wording as maximal runs. Coverage is descriptive evidence, not an acceptance verdict; connector words between supported spans can count structurally, while similar and template candidates never count as verified coverage.

Template candidates

A template candidate is a drafting aid from the USPTO ID Manual. Fill its placeholders using template.slots; filled_with is null when the submitted wording cannot fill a slot unambiguously. Templates are never listed matches, even when their fixed wording appears in the input.

Inferred classes

When an unclassified miss can be mapped to one Nice class, class_source is inferred and class_inference reports the method and confidence. This is a suggestion, not a classification decision. Supply class_number on a later request to override it.

Warnings (indefinite wording)

warnings identifies wording covered by guidance for a requested office and cites the guideline in source. objection means the cited guidance calls the construction indefinite or unclear; caution means acceptability depends on context. A warning is guidance, not a prediction that an examiner will refuse the wording.

Catalog freshness (as_of)

Each summary.offices[].catalog_freshness[] entry pairs a catalogs id with as_of, the UTC date that source was last refreshed. It tells you how fresh the evidence is—and how stale an absence may be. null means freshness is unknown; it never means the catalog is current.

Candidate search completeness

Inspect candidate_search before interpreting candidates. complete means the search ran, so an empty array is a real absence of nearby wording in the held catalog. not_run means candidates were not applicable. truncated means the time budget expired before this item’s chunk was issued, and degraded means a database error prevented a reliable search; neither means that no candidate exists. candidate_search_reason explains every non-complete result. Summary counts roll up complete, truncated, and degraded items.

Statuses

Errors