Skip to main content
GET
/
v1
/
trademarks
/
{id}
/
proceedings
curl "https://api.signa.so/v1/trademarks/tm_019f34d6-2000-7777-8888-000000000001/proceedings?proceeding_type=opposition&limit=20" \
  -H "Authorization: Bearer $SIGNA_API_KEY"
{
  "object": "list",
  "data": [
    {
      "id": "prc_019f34d6-aaaa-7777-8888-aaaaaaaaaaaa",
      "proceeding_type": "opposition",
      "proceeding_number": "91265432",
      "status": "decided_granted",
      "outcome": "challenger_won",
      "duration_days": 231,
      "filed_date": "2024-01-18",
      "decision_date": "2024-09-05",
      "decision_outcome": "Opposition Sustained",
      "parties": [
        {
          "owner_id": "own_019f34d6-1111-7777-8888-111111111111",
          "name": "Apex Outdoor Group LLC",
          "role": "opponent",
          "country_code": "US"
        },
        {
          "owner_id": "own_019f34d6-2222-7777-8888-222222222222",
          "name": "Meridian Labs Inc.",
          "role": "respondent",
          "country_code": "US"
        }
      ],
      "contested_classes": [9, 42],
      "description": "Opposition proceeding"
    }
  ],
  "has_more": false,
  "pagination": { "cursor": null },
  "request_id": "req_abc"
}

When To Use This

Use this endpoint when you are reviewing one trademark and need the dispute history attached to that mark. For example, a portfolio analyst can open a high-value mark and see every opposition or cancellation, who was involved, whether the challenger won, and how long decided cases took. For an end-to-end workflow, see Opposition & Dispute Intelligence.

Path Parameters

id
string
required
Trademark ID (tm_...).

Query Parameters

proceeding_type
string
Filter by proceeding type. One of opposition, cancellation, revocation, invalidity, appeal, non_use_removal, court_action, other.
status
string
Filter by status. One of pending, decided_granted, decided_rejected, withdrawn, settled, suspended, partial, other.
limit
integer
default:"20"
Page size (1-100).
cursor
string
Pagination cursor from a previous response.

Response

data
object[]
Array of proceeding records.
data[].id
string
Proceeding ID (prc_...).
data[].proceeding_type
string
Type of proceeding.
data[].proceeding_number
string | null
Office-issued proceeding identifier when available.
data[].status
string | null
Current status, when available.
data[].outcome
string | null
Normalized outcome from the challenger perspective, or null when not available.
ValueMeaning
challenger_wonThe challenger prevailed, derived from decided_granted.
challenger_lostThe challenger did not prevail, derived from decided_rejected.
mixedThe decision was partial or text indicates an in-part disposition.
settledThe proceeding status is settled.
withdrawnThe proceeding status is withdrawn.
default_judgmentThe challenger won through a default or procedural failure signal.
pendingThe proceeding is still pending or suspended.
otherThe status is other or does not map to a more specific outcome.
data[].duration_days
integer | null
Number of days between filed_date and decision_date. null when either date is missing.
data[].filed_date
string | null
ISO date the proceeding was initiated, when available.
data[].decision_date
string | null
ISO date of the decision when concluded, when available.
data[].decision_outcome
string | null
Outcome string when decided.
data[].parties
object[]
Array of parties to the proceeding. Each party has owner_id, name, role (opponent, petitioner, respondent, intervener, other), and country_code.
data[].contested_classes
integer[] | null
Nice classes contested in the proceeding, when known.
data[].description
string | null
Free-text summary, when provided by the office.

Example Request

curl "https://api.signa.so/v1/trademarks/tm_019f34d6-2000-7777-8888-000000000001/proceedings?proceeding_type=opposition&limit=20" \
  -H "Authorization: Bearer $SIGNA_API_KEY"

Example Response

{
  "object": "list",
  "data": [
    {
      "id": "prc_019f34d6-aaaa-7777-8888-aaaaaaaaaaaa",
      "proceeding_type": "opposition",
      "proceeding_number": "91265432",
      "status": "decided_granted",
      "outcome": "challenger_won",
      "duration_days": 231,
      "filed_date": "2024-01-18",
      "decision_date": "2024-09-05",
      "decision_outcome": "Opposition Sustained",
      "parties": [
        {
          "owner_id": "own_019f34d6-1111-7777-8888-111111111111",
          "name": "Apex Outdoor Group LLC",
          "role": "opponent",
          "country_code": "US"
        },
        {
          "owner_id": "own_019f34d6-2222-7777-8888-222222222222",
          "name": "Meridian Labs Inc.",
          "role": "respondent",
          "country_code": "US"
        }
      ],
      "contested_classes": [9, 42],
      "description": "Opposition proceeding"
    }
  ],
  "has_more": false,
  "pagination": { "cursor": null },
  "request_id": "req_abc"
}

Code Examples

curl "https://api.signa.so/v1/trademarks/tm_019f34d6-2000-7777-8888-000000000001/proceedings?proceeding_type=opposition&status=pending" \
  -H "Authorization: Bearer sig_YOUR_KEY_HERE"
import { Signa } from "@signa-so/sdk";

const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });

const proceedings = await signa.trademarks.proceedings("tm_019f34d6-2000-7777-8888-000000000001", {
  proceeding_type: "opposition",
  status: "pending",
});
import requests

resp = requests.get(
    "https://api.signa.so/v1/trademarks/tm_019f34d6-2000-7777-8888-000000000001/proceedings",
    headers={"Authorization": "Bearer sig_YOUR_KEY_HERE"},
    params={"proceeding_type": "opposition", "status": "pending"},
)

Errors

StatusTypeDescription
400validation_errorInvalid query parameter or trademark ID
401unauthorizedMissing or invalid API key
404not_foundTrademark not found
429rate_limitedToo many requests