Documentation Index
Fetch the complete documentation index at: https://docs.signa.so/llms.txt
Use this file to discover all available pages before exploring further.
Signa includes a rule-based deadline engine that computes upcoming maintenance deadlines for every registered trademark. The engine has rules defined for 21 jurisdictions (3 offices in production, 18 planned), producing actionable deadline objects with status, urgency, and consequence information.
How Deadlines Are Computed
The engine is a pure function: given a trademark’s date fields and jurisdiction, it returns an array of ComputedDeadline objects. No database access, no side effects.
computeDeadlines(mark, asOfDate?, options?) -> ComputedDeadline[]
Each computed deadline includes:
| Field | Description |
|---|
type | renewal, declaration_of_use, combined_renewal_and_use, declaration_of_incontestability, restoration, international_renewal |
name | Human-readable label (e.g., “Section 8 — Declaration of Use”) |
due_date | The date the deadline falls |
window_opens | Earliest date you can file |
grace_expiry | Last day of grace period (if applicable) |
status | future, window_open, due_soon, in_grace, missed |
urgency | routine, upcoming, critical, in_grace, overdue, missed |
days_until_due | Signed integer (negative = overdue) |
consequence_if_missed | What happens if you miss it entirely |
Trigger Dates
Each jurisdiction defines a trigger field — the date from which deadlines are calculated. This varies by jurisdiction:
| Trigger | Jurisdictions |
|---|
registration_date | US (domestic), CA, PH |
filing_date | EU, DE, FR, CH, BX, GB, AU, PL |
protection_grant_date | US (Madrid) |
intl_registration_date | WIPO |
Some jurisdictions changed their trigger field on a specific date. For example, Sweden switched from registration_date to filing_date on 2019-01-01. The engine handles this automatically based on the mark’s filing date.
US Trademark Deadlines
The United States has the most complex deadline structure of any jurisdiction, because it requires proof of continued use in addition to renewal.
US Domestic Marks
Section 8 — Declaration of Use (years 5-6)
- Due: 6 years after registration
- Window opens: 1 year before (year 5)
- Grace period: 6 months (with surcharge)
- Consequence if missed: Cancellation
- Required for all US domestic registrations
Section 15 — Declaration of Incontestability (years 5-6)
- Due: Eligible from year 5, commonly filed with Section 8 by year 6
- Optional: No penalty for missing it
- Benefit: Makes the registration conclusive evidence of validity
- No grace period
Section 8+9 — Combined Renewal and Declaration of Use (every 10 years)
- Due: 10 years after registration, then every 10 years
- Window opens: 1 year before
- Grace period: 6 months (with surcharge)
- Consequence if missed: Cancellation and expiration
US Madrid Marks
Madrid Protocol registrations designating the US use Section 71 (the Madrid equivalent of Section 8) instead of Section 8. The trigger date is protection_grant_date instead of registration_date. Renewal is handled at WIPO, not at the USPTO.
| Deadline | Trigger | Due | Grace |
|---|
| Section 71 (first) | protection_grant_date | Year 6 | 6 months |
| Section 15 | protection_grant_date | Year 6 | None (optional) |
| Section 71 (at renewal) | protection_grant_date | Every 10 years | 6 months |
# Get deadlines for a specific trademark
curl -s https://api.signa.so/v1/trademarks/tm_abc123 \
-H "Authorization: Bearer sig_xxx" | jq '.deadlines'
EU Trademark Deadlines
The European Union has a simpler structure. No proof of use is required at renewal.
| Field | Value |
|---|
| Trigger | filing_date |
| Renewal cycle | Every 10 years |
| Window opens | 6 months before due date |
| Grace period | 6 months after due date |
| Consequence | Cancellation |
| Proof of use | Not required at renewal |
Jurisdiction Quirks
Germany (DPMA) — End-of-Month Rule
For marks filed before 2019-01-14, the expiry date is the last day of the month in which the anniversary falls, not the exact anniversary date. For example, a mark filed on 2015-03-15 expires on 2025-03-31, not 2025-03-15.
Marks filed on or after 2019-01-14 use the exact anniversary (standard behavior).
Canada (CIPO) — Legacy 15-Year Terms
Canada changed its trademark law on 2019-06-17:
- Before 2019-06-17: Initial term of 15 years, renewal every 15 years
- On or after 2019-06-17: Initial term of 10 years, renewal every 10 years
Signa applies the correct term based on the mark’s registration date.
Nordic Countries — Trigger Field Change
Sweden, Denmark, and Finland changed their trigger field from registration_date to filing_date around 2019. Norway made the same change earlier, on 2010-07-01. Signa resolves the correct trigger based on when the mark was filed.
Mexico — Post-Anniversary Windows
Mexico has a unique Declaration of Use requirement:
- Due: 3 years after grant
- Window opens: The day after the 3rd anniversary (not before)
- Window duration: 3 months
This differs from most jurisdictions where the filing window opens before the due date.
Philippines — Mixed Trigger DAUs
The Philippines requires Declarations of Actual Use at years 3 and 5 after filing, each with different extension rules. The year-3 DAU has a 6-month extension option.
UK and Iceland — Restoration Periods
After the grace period expires, these jurisdictions offer an additional restoration window (6 months for UK, variable for Iceland) during which a lapsed registration can be re-established.
Covered Jurisdictions
| Code | Office | Renewal Cycle | Trigger | Proof of Use |
|---|
| US | USPTO (domestic) | 10 years | registration_date | Yes (Sections 8, 8+9) |
| US | USPTO (Madrid) | 10 years | protection_grant_date | Yes (Section 71) |
| EU | EUIPO | 10 years | filing_date | No |
| DE | DPMA | 10 years | filing_date | No |
| GB | UKIPO | 10 years | filing_date | No |
| CH | IGE/IPI | 10 years | filing_date | No |
| FR | INPI | 10 years | filing_date | No |
| BX | BOIP | 10 years | filing_date | No |
| SE | PRV | 10 years | filing_date* | No |
| CA | CIPO | 10 years | registration_date | No |
| AU | IP Australia | 10 years | filing_date | No |
| NO | NIPO | 10 years | filing_date* | No |
| DK | DKPTO | 10 years | filing_date* | No |
| FI | PRH | 10 years | filing_date* | No |
| IS | ISIPO | 10 years | filing_date | No |
| PL | UPRP | 10 years | filing_date | No |
| TH | DIP | 10 years | filing_date | No |
| VN | IP Vietnam | 10 years | filing_date | No |
| PH | IPOPHL | 10 years | registration_date | Yes (DAU at years 3, 5) |
| BR | INPI Brazil | 10 years | grant_date | No |
| MX | IMPI | 10 years | grant_date | Yes (DU at year 3) |
| WIPO | WIPO | 10 years | intl_registration_date | No |
* Changed from registration_date — SE, DK, FI around 2019; NO on 2010-07-01
Filtering by Deadlines
Use the next_deadline_before filter to find marks with upcoming deadlines:
# All marks with a deadline in the next 90 days
curl -s "https://api.signa.so/v1/trademarks?next_deadline_before=2026-06-22" \
-H "Authorization: Bearer sig_xxx"
You can also filter by renewal_due_date range for renewal-specific views:
curl -s "https://api.signa.so/v1/trademarks?renewal_due_date_gte=2026-01-01&renewal_due_date_lt=2027-01-01" \
-H "Authorization: Bearer sig_xxx"