Skip to main content
POST
/
v1
/
deadlines
/
compute
Compute Deadlines
curl --request POST \
  --url https://api.signa.so/v1/deadlines/compute \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "items": [
    {
      "jurisdiction": "<string>",
      "filing_route": "<string>",
      "status": "<string>",
      "filing_date": {},
      "registration_date": {},
      "grant_date": {},
      "expiry_date": {},
      "renewal_due_date": {},
      "designation_date": {},
      "protection_grant_date": {},
      "international_registration_date": {}
    }
  ],
  "as_of_date": "<string>",
  "horizon_years": 123,
  "include_optional": true,
  "include_missed": true
}
'
{
  "object": "list",
  "data": [
    {
      "object": "deadline_computation",
      "jurisdiction_code": "US",
      "filing_route": "national",
      "supported": true,
      "unsupported_reason": null,
      "deadlines": [
        {
          "type": "declaration_of_use",
          "name": "Section 8 Declaration of Use",
          "jurisdiction_code": "US",
          "trigger_date": "2020-03-10",
          "trigger_field": "registration_date",
          "window_opens": "2025-03-10",
          "due_date": "2026-03-10",
          "grace_expiry": "2026-09-10",
          "status": "window_open",
          "days_until_due": 248,
          "days_until_grace_expiry": 432,
          "urgency": "routine",
          "consequence_if_missed": "cancellation",
          "recurring": false,
          "optional": false
        }
      ]
    }
  ],
  "has_more": false,
  "pagination": { "cursor": null },
  "request_id": "req_bT9kM3nP"
}

Overview

Compute maintenance deadlines for one or more trademark records without first storing them in Signa. Docketing/IPMS vendors, corporate IP teams, and filing-service buyers can run their book through Signa’s 21-jurisdiction deadline engine instead of building and maintaining their own rules engine. A missed renewal can mean a lost registration and a malpractice event, so the endpoint returns filing windows, grace periods, urgency, and consequences from the same rule corpus used by Signa trademark detail pages. Use the companion List Deadline Rules endpoint when you need to inspect the underlying jurisdiction rules, citations, and renewal cycles that power these computations.

Request Body

items
object[]
required
Marks to compute, max 1,000 items. Results are returned in the same order, with one deadline_computation per input item.
as_of_date
string
Calendar date to compute relative to, as YYYY-MM-DD. Defaults to today.
horizon_years
integer
How many years ahead to include. Minimum 1, maximum 15, default 5.
include_optional
boolean
Include optional deadlines such as US Section 15 incontestability. Defaults to true.
include_missed
boolean
Include deadlines already past their grace period. Defaults to false.

Response

A standard list response with data: DeadlineComputation[]. Pagination is not used; data[i] corresponds to items[i].
object
string
Always list.
data
object[]
has_more
boolean
Always false.
pagination
object
Always { "cursor": null }.
request_id
string
Unique request identifier for support and debugging.
Unsupported jurisdictions return supported: false with an empty deadlines array. Dead statuses such as cancelled, expired, or abandoned return supported: true with an empty deadlines array when the jurisdiction is supported.
{
  "object": "list",
  "data": [
    {
      "object": "deadline_computation",
      "jurisdiction_code": "US",
      "filing_route": "national",
      "supported": true,
      "unsupported_reason": null,
      "deadlines": [
        {
          "type": "declaration_of_use",
          "name": "Section 8 Declaration of Use",
          "jurisdiction_code": "US",
          "trigger_date": "2020-03-10",
          "trigger_field": "registration_date",
          "window_opens": "2025-03-10",
          "due_date": "2026-03-10",
          "grace_expiry": "2026-09-10",
          "status": "window_open",
          "days_until_due": 248,
          "days_until_grace_expiry": 432,
          "urgency": "routine",
          "consequence_if_missed": "cancellation",
          "recurring": false,
          "optional": false
        }
      ]
    }
  ],
  "has_more": false,
  "pagination": { "cursor": null },
  "request_id": "req_bT9kM3nP"
}

Code Examples

curl "https://api.signa.so/v1/deadlines/compute" \
  -H "Authorization: Bearer sig_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "jurisdiction": "US",
        "filing_date": "2019-01-15",
        "registration_date": "2020-03-10"
      }
    ],
    "as_of_date": "2025-07-05"
  }'

Errors

StatusTypeDescription
400validation_errorMalformed body, missing items, invalid date format, invalid enum value, or horizon_years outside 1..15
401unauthorizedMissing or invalid API key
403forbiddenAPI key missing the trademarks:read scope
422batch_too_largeMore than 1,000 items. The error carries item_count and item_count_limit
429rate_limitedToo many requests