Skip to main content
POST
/
v1
/
classifications
/
suggest
Suggest Classifications
curl --request POST \
  --url https://api.signa.so/v1/classifications/suggest \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "description": "<string>",
  "jurisdiction_code": "<string>"
}
'
{
  "object": "classification_suggestion",
  "query": "e-commerce company selling sneakers",
  "classifier_version": "classify-v1.0",
  "classes": [
    {
      "class_number": 25,
      "title": "Clothing, footwear, headwear",
      "confidence": "high",
      "rank": 1,
      "recommendation_type": "core",
      "conditional_on": null,
      "rationale": "Sneakers are athletic footwear, squarely in class 25.",
      "accepted_terms": [
        {
          "term": "Sneakers",
          "source": "uspto_idm",
          "accepted_offices": ["USPTO", "EUIPO", "JPO", "KIPO", "CNIPA"],
          "harmonised": true
        },
        {
          "term": "Athletic shoes",
          "source": "uspto_idm",
          "accepted_offices": ["USPTO", "EUIPO", "JPO", "KIPO", "CNIPA"],
          "harmonised": true
        }
      ]
    },
    {
      "class_number": 35,
      "title": "Advertising, business, retail services",
      "confidence": "medium",
      "rank": 2,
      "recommendation_type": "conditional",
      "conditional_on": "brand used for the storefront, not only the products",
      "rationale": "Operating an online store is retail services.",
      "accepted_terms": []
    }
  ],
  "ambiguous": false,
  "clarification_question": null,
  "request_id": "req_abc123"
}

Overview

Turn a description of goods, services, or a business into ranked Nice classification classes, each with paste-ready goods/services terms drawn from the Harmonised Database and USPTO ID Manual. Works for company descriptions (“SaaS tool for HR teams”), product listings (“men’s athletic running shoes, cushioned sole”), service offerings (“on-site SEO audits”), and anything in between. Ambiguous inputs like “coffee company” come back with an ambiguous flag, a clarifying question, and classes for every plausible interpretation, so you can surface the question to your user and re-submit. For background on Nice classes and office acceptance, see the Classifications and Goods/Services guide.

Body Parameters

description
string
required
Description of the goods, services, or business (3-500 characters). Natural-language, no special format.
jurisdiction_code
string
Optional ISO-3166-1 alpha-2 jurisdiction code (e.g. US, EU, GB). Biases retail-vs-product interpretation toward local practice.

Response

object
string
Always classification_suggestion.
query
string
The description you submitted, echoed back.
classifier_version
string
Version tag of the classifier that produced this response.
classes
object[]
Ranked suggested classes. Each class contains the fields below.
classes[].class_number
integer
Nice class number (1-45).
classes[].title
string
Canonical class title.
classes[].confidence
string
One of high, medium, or low.
classes[].rank
integer
1-indexed position in the returned ordering.
classes[].recommendation_type
string
One of core, conditional, or adjacent.
classes[].conditional_on
string
When recommendation_type is conditional, the condition under which this class applies. May be null.
classes[].rationale
string
Short explanation of why this class was suggested.
classes[].accepted_terms
object[]
Paste-ready goods/services terms for this class.
ambiguous
boolean
true when the description has two or more materially different filing strategies.
clarification_question
string
When ambiguous is true, a question to ask the user. May be null.
Each item in accepted_terms has this shape:
FieldTypeDescription
termstringThe canonical term text.
sourcestringSource catalog (tmclass, uspto_idm, manual).
accepted_officesstring[]Office codes that accept this term.
harmonisedbooleanWhether the term is on the TMClass harmonised list.
{
  "object": "classification_suggestion",
  "query": "e-commerce company selling sneakers",
  "classifier_version": "classify-v1.0",
  "classes": [
    {
      "class_number": 25,
      "title": "Clothing, footwear, headwear",
      "confidence": "high",
      "rank": 1,
      "recommendation_type": "core",
      "conditional_on": null,
      "rationale": "Sneakers are athletic footwear, squarely in class 25.",
      "accepted_terms": [
        {
          "term": "Sneakers",
          "source": "uspto_idm",
          "accepted_offices": ["USPTO", "EUIPO", "JPO", "KIPO", "CNIPA"],
          "harmonised": true
        },
        {
          "term": "Athletic shoes",
          "source": "uspto_idm",
          "accepted_offices": ["USPTO", "EUIPO", "JPO", "KIPO", "CNIPA"],
          "harmonised": true
        }
      ]
    },
    {
      "class_number": 35,
      "title": "Advertising, business, retail services",
      "confidence": "medium",
      "rank": 2,
      "recommendation_type": "conditional",
      "conditional_on": "brand used for the storefront, not only the products",
      "rationale": "Operating an online store is retail services.",
      "accepted_terms": []
    }
  ],
  "ambiguous": false,
  "clarification_question": null,
  "request_id": "req_abc123"
}

Code Examples

curl -X POST "https://api.signa.so/v1/classifications/suggest" \
  -H "Authorization: Bearer sig_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "e-commerce company selling sneakers",
    "jurisdiction_code": "US"
  }'

Errors

StatusTypeDescription
400validation_errordescription missing, shorter than 3, or longer than 500 chars
401unauthorizedMissing or invalid API key
403forbiddenAPI key lacks trademarks:read scope