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",
"trademark_role": "contested",
"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"
}
Records
Trademark Proceedings
Oppositions, cancellations, appeals, and other contested proceedings involving a trademark
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",
"trademark_role": "contested",
"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"
}
Credits: 1 per page.
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.Which marks have proceedings
Proceedings are served only for offices whosecapabilities.proceedings is available on List Offices. For a mark from any other office this endpoint returns an empty list, charged as a normal read, and the mark’s proceedings_count on Retrieve Trademark is 0. Check the office’s capability before reading an empty list as “no disputes”.
Path Parameters
string
required
Trademark ID (
tm_...).Query Parameters
string
Which side this mark is on.
contested returns proceedings filed against it (it was opposed, petitioned for cancellation, or appealed). asserted returns proceedings in which its owner pleaded it as a prior right, typically oppositions this owner filed. Omit to get both.string
Filter by proceeding type. One of
opposition, cancellation, revocation, invalidity, appeal, non_use_removal, court_action, other.string
Filter by status. One of
pending, decided_granted, decided_rejected, withdrawn, settled, suspended, partial, other.integer
default:"20"
Page size (1-100).
string
Pagination cursor from a previous response.
Response
object[]
Array of proceeding records.
string
Proceeding ID (
prc_...).string
Type of proceeding.
string | null
Office-issued proceeding identifier when available.
string
contested when the proceeding targets this mark, asserted when this mark was pleaded by the opposer or petitioner.string | null
Current status, when available.
string | null
Normalized outcome from the challenger perspective, or
null when not available.| Value | Meaning |
|---|---|
challenger_won | The challenger prevailed, derived from decided_granted. |
challenger_lost | The challenger did not prevail, derived from decided_rejected. |
mixed | The decision was partial or text indicates an in-part disposition. |
settled | The proceeding status is settled. |
withdrawn | The proceeding status is withdrawn. |
default_judgment | The challenger won through a default or procedural failure signal. |
pending | The proceeding is still pending or suspended. |
other | The status is other or does not map to a more specific outcome. |
US (TTAB) dates.
filed_date is set on about 99% of US oppositions and cancellations, loaded from the USPTO TTAB bulk feed. Ex parte appeals do not carry a filing date yet. decision_date is set on only a small share of US rows, so duration_days is usually null for TTAB rows. Treat a null date as “not yet loaded”, not “unknown to the USPTO”.integer | null
Number of days between
filed_date and decision_date. null when either date is missing.string | null
ISO date the proceeding was initiated, when available.
string | null
ISO date of the decision when concluded, when available.
string | null
Outcome string when decided.
object[]
Array of parties to the proceeding. Each party has
owner_id, name, role (opponent, petitioner, respondent, intervener, other), and country_code. owner_id is the owner Signa linked the party to, reported as its current owner record (if that owner has since been merged into another, the surviving owner), or null when the party is not linked.integer[] | null
Nice classes contested in the proceeding, when known.
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",
"trademark_role": "contested",
"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"},
)
Related Endpoints
- Search Proceedings: search proceedings across all marks
- Retrieve Proceeding: full detail for a single proceeding
- Retrieve Trademark: parent trademark detail
- Opposition & Dispute Intelligence: workflow for profiling an opposer