Skip to main content
GET
/
v1
/
proceedings
List Proceedings
curl --request GET \
  --url https://api.example.com/v1/proceedings
{
  "object": "list",
  "data": [
    {
      "id": "prc_8nM3pQ",
      "proceeding_type": "opposition",
      "proceeding_number": "91265432",
      "status": "pending",
      "filed_date": "2025-11-04",
      "decision_date": null,
      "decision_outcome": null,
      "parties": [
        { "owner_id": "own_AcmeOpp", "name": "Acme Holdings Ltd.", "role": "opponent", "country_code": "GB" }
      ],
      "contested_classes": [9, 42],
      "description": null
    }
  ],
  "has_more": true,
  "pagination": { "cursor": "eyJpZCI6..." },
  "livemode": true,
  "request_id": "req_xyz"
}

Overview

Returns a paginated list of proceedings across all trademarks in Signa. At least one filter is required — there is no unfiltered global feed. Use this for opposition tracking, cancellation watch, dispute analytics, or building competitor litigation timelines.

Query Parameters

At least one of the following must be supplied: contested_class, trademark_id, proceeding_type, status, q, party_owner_id, party_role, office_code, filed_date_gte, filed_date_lt, decision_date_gte, decision_date_lt.
contested_class
integer
Nice class involved in the dispute (1-45).
trademark_id
string
Restrict to proceedings on a specific trademark (tm_...).
proceeding_type
string
Type of proceeding. One of opposition, cancellation, appeal, interference, concurrent_use, expungement, section_8, section_71, other.
status
string
Status. One of pending, decided_granted, decided_rejected, withdrawn, settled, suspended, partial, other.
q
string
Search opponent / party name.
party_owner_id
string
Filter by a party owner ID (own_...).
party_role
string
Filter by party role. One of opponent, petitioner, respondent, intervener, other.
office_code
string
Lowercase office code (e.g. uspto, euipo).
filed_date_gte
string
Filed date >= (YYYY-MM-DD).
filed_date_lt
string
Filed date < (YYYY-MM-DD). Must be after filed_date_gte.
decision_date_gte
string
Decision date >= (YYYY-MM-DD).
decision_date_lt
string
Decision date < (YYYY-MM-DD). Must be after decision_date_gte.
sort
string
default:"-filed_date"
Sort order. One of -filed_date, filed_date, -decided_date, decided_date.
limit
integer
default:"20"
Page size (1-100).
cursor
string
Pagination cursor from a previous response.

Response

data
object[]
Array of proceeding summary records.
Each item carries id (prc_...), proceeding_type, proceeding_number, status, filed_date, decision_date, decision_outcome, parties[], contested_classes, and description. See Get Proceeding for the full field list.
{
  "object": "list",
  "data": [
    {
      "id": "prc_8nM3pQ",
      "proceeding_type": "opposition",
      "proceeding_number": "91265432",
      "status": "pending",
      "filed_date": "2025-11-04",
      "decision_date": null,
      "decision_outcome": null,
      "parties": [
        { "owner_id": "own_AcmeOpp", "name": "Acme Holdings Ltd.", "role": "opponent", "country_code": "GB" }
      ],
      "contested_classes": [9, 42],
      "description": null
    }
  ],
  "has_more": true,
  "pagination": { "cursor": "eyJpZCI6..." },
  "livemode": true,
  "request_id": "req_xyz"
}

Code Examples

curl "https://api.signa.so/v1/proceedings?proceeding_type=opposition&status=pending&office_code=uspto&filed_date_gte=2025-01-01&limit=20" \
  -H "Authorization: Bearer sig_live_YOUR_KEY_HERE"

Errors

StatusTypeDescription
400validation_errorNo filter supplied, invalid date range, or unsupported parameter value
401unauthorizedMissing or invalid API key
429rate_limitedToo many requests