Skip to main content
Changes that need action on your side are marked (breaking) and link to a migration guide. The full technical notes for every change up to October 11, 2026 are in the detailed archive.
Improvements

Grouped search sees every Madrid designation

The grouped view (international_registrations=grouped) now searches every designation of a Madrid international registration, not only the one coverage.territories[] shows. This arrives with the search index rebuild: until a response reports search_meta.index_generation: 5, requests behave as before.
  • Numbers find the family: a trademark number in q finds the registration through the number of any of its designations, so q=79412883 (the USPTO serial of a designation) returns the family row, listed first. Before, it returned no rows.
  • Number filters ignore punctuation: on one-row-per-record results, application_number and registration_number ignore spaces and punctuation in the value sent and in the stored number, so 88/123,456 matches 88123456.
  • Expiry for Madrid registrations: a registration whose own record states no expiry carries the latest expiry WIPO publishes for its designations, the expiry_date its detail already shows. expiry_date_* filters match it and sort=expiry_date orders it by that date.
  • One designation per filter: offices, office or filing_route combined with status_primary, status_stage or nice_classes must hold on one designation, and these requests now stay grouped instead of returning one row per record with an expanded_fallback warning, so row counts and total_count change. jurisdictions=US&nice_classes=9 no longer matches a registration that filed class 9 only for another country.
  • Attorney and firm filters hold on their own designation: on /v1/attorneys/{id}/trademarks and /v1/firms/{id}/trademarks, and with attorney_id or firm_id on search, a status filter matches a registration only when a designation that attorney or firm is on has that status, or the registration’s own record does and names them. An attorney whose only US designation is abandoned no longer gets the registration with status_primary=active because another country is live. For one large attorney, status_primary=active returned 904 registrations grouped against 449 records expanded; grouped now returns at most the registrations behind those 449 records.
  • Owner filters count the owner’s designations and the registration itself: on /v1/owners/{id}/trademarks and with owner_id on search, a status filter matches a Madrid registration when a designation the owner holds has that status, or when the international registration’s own record has it, as the expanded view already does (an IR’s holder is the holder of its designations). It no longer matches through another holder’s designation. For one large Madrid filer, status_primary=active on the grouped view goes from 1,037 registrations to about 1,050: 1,029 have a live designation of the owner, and the rest have a live international registration.
  • Attorney and firm filters with classes: attorney_id or firm_id combined with nice_classes match a registration only when a designation that attorney or firm is on has the class, or the registration’s own record does and names them. An attorney who is on the German designation (class 9) no longer gets the registration with nice_classes=25 because the US designation has class 25. Owner filters with nice_classes keep matching the whole family, as an IR’s holder holds every designation.
  • Entity filters count the entity’s designations: entity_id combined with a status or jurisdictions matches a Madrid registration when a designation held by an owner of that entity meets the filter, or the international registration’s own record does, the same rule as owner_id.
  • Party filters with offices stay grouped: owner_id, entity_id, attorney_id or firm_id combined with offices, office or filing_route now return one row per registration, with every filter held on the same record.
  • Renewal and expiry sorts: on the grouped view, sort=renewal_due_date and sort=expiry_date order rows by the dates the office reports, for every registration. A row with no office-reported date sorts last; before, a renewal date Signa derived set its place.
  • Classes on one-row-per-record results: with international_registrations=expanded, nice_classes lists each class once, in ascending order, and each class in classifications shows one text, picked English first as on grouped results (see Trademarks below), so the text no longer depends on the order the office sent them. A record with rows for classes 25, 9 and 25 lists [9, 25], where it listed [25, 9, 25].
  • Madrid deadline filters: a designation that stores its IR number with leading zeros (0921642, as USPTO, EUIPO and CIPO do) now counts its deadlines from its international registration’s date in search too, so renewal_due_date_* filters and sort=renewal_due_date agree with its detail.
  • Every designation counts: a designation the territory list does not show (a second record at the same office, or WIPO’s record next to the national one) now matches these filters, and coverage.matched_territories names the territories where one designation meets the whole filter. jurisdictions=WO matches registrations through their own WIPO record. status_primary=mixed and status_stage=mixed still describe the whole family.
  • Designations WIPO reports without a status: on the grouped view, a designation stored with status unknown but a known stage counts as that stage’s status, so status_primary=active&jurisdictions=NO matches a registration through its registered Norwegian designation. With international_registrations=expanded that designation’s record still has status_primary=unknown and does not match, so for these designations the two views can differ until their stored status is corrected.

Trademarks

  • English goods and services first: every item of classifications has goods_services_language, on search results, list rows and Retrieve Trademark. A search result shows one item per class: the English text when the office published one, otherwise the text in the language the mark was filed in, otherwise another language the office published; a grouped Madrid registration shows the English text when any of its designations has it. Detail keeps every text the office published, English first within each class, and language no longer drops a second item in the requested language. Signa does not translate goods and services. Detail, portfolio rows and grouped Madrid registrations in search results show this now; other search results show it with the index rebuild, and until then may show goods_services_language: null. See Language of goods and services.

Watches

  • No abbreviation list in the index: the rebuilt index drops the company-abbreviation list (corp for CORPORATION, intl for INTERNATIONAL and similar). Watches created before v3 (without similarity) already match the words of q as written since October 12, and keep doing so. No live watch used one of those abbreviations, so alerts do not change.
Bug fixes

Bug fixes

  • Screening and compare with jurisdictions: a Madrid designation whose status is unknown now counts as live for a requested country when its international registration’s family status is live (active, pending or mixed), because it may still be protected there. Such a mark could be left out of a country-scoped screen before.
  • MCP protocol version: a request to the MCP server with an MCP-Protocol-Version it does not support now gets 400 with the supported versions listed, instead of 404. Send initialize first to agree on a version.
ImprovementsBug fixes

Trademarks

  • Goods and services binding: each item of classifications on Retrieve Trademark has goods_services_binding. class means the text is that class’s own. record means the office states it for the record’s goods (or services) without naming a class, so the text is repeated on each of the record’s goods (or services) classes and may describe another one. null means the item has no text or the binding is unknown, as on every record but reprocessed Canadian ones for now. Many older Canadian filings work this way; they show record as Signa reprocesses them, and every one of their statements becomes searchable, including the ones that were missing before. See Goods and services on a record.
  • Retracted Madrid designations: a designation that the office or Signa retracted (is_retracted: true) no longer counts in its international registration’s family. It is left out of coverage (territories[], territory_count, by_primary, by_stage), the family status, owners, attorneys and classes, and the IR’s WIPO-published expiry. Retrieve Trademark still returns the record itself with is_retracted: true. Detail and the rows of search and portfolio results (coverage, owners, classes) show this now. Filters, sorts and facets follow as marks are reindexed. After that, a search for a retracted designation’s own number no longer returns its international registration.

Bug fixes

  • 3D marks without text: a three-dimensional mark with no mark text now shows mark_text: "[Design Mark]", like figurative marks, instead of null.
  • Proceedings: aggregations=outcome on GET /v1/proceedings scoped to office_code=US no longer times out with a 504.
  • USPTO office actions: office_action.issued now also fires for USPTO codes CFRC (subsequent final refusal written), PRIM (petition inquiry letter mailed), CNEA and SNEA (examiner’s amendments, no response due, including on a statement of use). GSSF, GSS1, SSFR, SSRR, GSPR, GSPS and SPRA (statement-of-use subsequent finals and priority actions), BSRF and BESF (reexamination and expungement subsequent finals) and INCS (office action on a statement of use) follow in a later update, together with the paper-mailed subsequent final (CFRC) and the PRIM and CNCF labels the USPTO also uses.
  • Mexico: IMPI suspended all its time limits on 29 September 2026, by a notice in the Diario Oficial de la Federación of 9 October 2026. Mexican opposition windows, renewals and declarations of use that fell on that day now move to 30 September 2026, and GET /v1/deadline-rules lists the notice among the Mexican sources.
  • Canada: an expired Canadian mark whose renewal at the end of a 15-year term was never made no longer shows the following renewal as window_open.
  • Deadline coverage on trademarks: derived.deadlines.supported and unsupported_rules are read as of as_of_date, like POST /v1/deadlines/compute and the deadline lists, so the three agree. A rule that does not apply yet on that day, such as Mexico’s third-year declaration of use, is no longer listed, and some expired or cancelled marks with no deadline left now read supported: true.
  • Reconcile: when a recorded renewal paid cycles that Signa cannot date without an office date the record lacks, computed on POST /v1/reconcile can now read supported: false with requires_office_date where it read supported: true with an empty schedule, and unsupported_rules can name more rules. Field verdicts are unchanged.
  • Madrid coverage: when a country has more than one national record for an IR, coverage.territories[] shows a registered designation first, then a pending one, then a dead one, and the most recent when several are equally live or all are dead. A country designated again after an earlier designation died now shows the live later designation when Signa holds the national office’s record of it; a later designation that only WIPO’s record shows still gives way to the earlier national record. protection_status and the coverage dates come from WIPO’s record of the designation shown, matched by date. When the country has one national record, WIPO’s record for that country is used even without a date match, unless one of the two says the designation is live and the other says it is dead. Otherwise they are null. Detail and the territory list on search rows show this now; search filters and an IR’s overall status follow as marks are reindexed.
  • Madrid family status: a designation whose current status WIPO’s data does not state, such as one under a recorded transfer (status.stage: unknown), no longer makes an IR family’s status read mixed when another territory is live. The family status then comes from the territories whose status is known. When every territory with a known status is dead, the family still reads mixed, because the designation whose status is unknown may be protected. A family reads unknown only when every territory is. A territory from WIPO’s data that states a stage but no status.primary now counts by its stage. This also applies inside one country: when WIPO’s record of a designation states a live stage but no status.primary and the national record says the designation is dead, the two now disagree, so protection_status and the coverage dates for that country no longer come from WIPO’s record and read null unless the national record has them. coverage.by_stage.unknown counts the unknown territories, and a national office’s record still takes precedence over WIPO’s for its territory. Detail shows this now; search rows and status filters follow as marks are reindexed. See Family status.
New releasesImprovementsBug fixes
SDK 0.22.0
Search ranks a list of spellings in one request, about 3 million Madrid designations get their renewal deadlines, and filters that used to match nothing now say so.

Search

  • A list in q (breaking): send up to 100 names, such as every spelling of a mark you are clearing, and each runs through the similarity channels in one ranked search. match.terms lists the names that found each mark. Lists over 10 names need similarity=identical,lookalike; for an exact filter over several spellings, use mark_text_is. match_explanation, matched_terms and search_meta.strategies_used are removed. See the migration guide.
  • Fewer false close matches: near_identical now means about the same length, so q=BRANDX labels BRANDX ACTIVEWEAR similar. Names written only in Cyrillic or Greek no longer return unrelated Latin look-alikes. Search cursors issued before this change need a fresh start.
  • Hints for long names: a search of several words that finds fewer than 5 marks carries an all_words_required warning with shorter phrases to try.
  • Party search: q on owners, attorneys and firms lists the real name first, so q=nike leads with NIKE, Inc.
  • Bigger request bodies: POST /v1/trademarks accepts bodies up to 64 KB, enough for 1,000 excluded trademark_ids.

Deadlines

  • Madrid designations without their own rules: designations of the EU, Russia, Ukraine, Austria and 93 more codes get their international renewal (madrid_designation_renewal). See Deadline rules.
  • Portugal: renewal rules for Portuguese marks (pt_renewal, pt_renewal_madrid).
  • Prosecution rules catalog: GET /v1/prosecution-rules and the MCP tool get_prosecution_rules list the USPTO and EUIPO office action, suspension inquiry and statement of use rules behind computed deadlines, with their quoted sources. A computed deadline’s rule.rule_id matches one rule.
  • Deadline rows name the mark: rows on GET /v1/deadlines, portfolio deadlines and the calendar file carry application_number, registration_number and ir_number. A due_before past the five-year horizon returns a horizon_truncated warning.
  • US corrections: Supplemental Register marks no longer show Section 15, extended response deadlines count from the issue date, and maximum dates move off weekends and federal holidays. WIPO records of US designations no longer carry Section 71 or 15 rows; use the USPTO record’s rows.

Validation

  • Filters that match nothing now say so: a filter an endpoint doesn’t support, an unknown code or an unknown event type returns 400 naming the right parameter, instead of an unfiltered or empty answer. EM, UK and WIPO are read as EU, GB and WO everywhere, and country filters match every spelling.

Parties

  • An attorney’s firms come from its filings: attorney detail gains firms, and a trademark’s attorney shows only the firm its filing names. Firm counts drop where a firm was credited with marks it never filed.
  • Tickers through the ultimate parent: an entity inherits a listed company’s ticker when GLEIF reports that company as its ultimate parent, so NIKE INNOVATE C.V. matches ticker=NKE.

Plans and MCP

  • Class and goods suggestions on every plan: Suggest Classifications, Suggest Goods and Services and Validate Goods and Services work on Free.
  • MCP: list_proceedings takes every proceedings filter, and tool results are compact JSON.

Bug fixes

  • Webhooks: office_action.issued fires only for USPTO examiner actions, not for your own filings or WIPO transactions.
  • Batch and reconcile: numbers written with separators (73/273,292, WO1874500) are found, and ir_number never has leading zeros. Reconcile no longer counts a field the office doesn’t publish as a mismatch.
  • Watches: previews apply every filter, and invalid classes or unknown party IDs return 400.
  • Counts: status buckets add up to the total, with a new unknown_count.
  • Deadlines: Madrid designations get no national restoration window, an expired mark owes nothing past its last renewal grace, and Madrid renewals anchor correctly for zero-padded IR numbers.
  • Usage: the usage summary lists rows for the same window as billing_period, and the deadline calendar names offices by their public code (US, EM).
  • Other: Swedish office_url is null while the office’s link is broken, and the redacted-applicant placeholder no longer leads the owner list.
New releasesImprovementsBug fixes
SDK 0.20.0

Term status and correction events

Every mark now says where its term stands, status corrections arrive as their own event, and USPTO post-registration office actions get a response deadline.

Deadlines

  • Where the term stands: new derived.term reads in_term, in_grace, in_restoration or renewal_not_on_record, and no renewal is projected past a term that has lapsed. See The term on record.
  • Post-registration office actions: a USPTO action on a Section 8, 71 or renewal filing adds a post_registration_oa_response deadline. See USPTO post-registration office actions.
  • Filings on record close deadlines: USPTO declarations and renewals already accepted no longer show as in_grace or missed.
  • Declined rules are named: expired and cancelled marks list the rules they still owe but lack a date for, and reconcile with verdict_detail: true returns unsupported_rules.
  • China from 2027: Madrid opposition windows published from January 1, 2027 close two months after the WIPO Gazette, following CNIPA’s draft measures.

Monitoring

  • Correction events: when Signa corrects a status it published, portfolio webhooks and the events feed receive trademark.corrected instead of a status change. Watches receive it when trigger_events lists it.

Search

  • Trademark numbers in q: a number returns the record it names, including US designations of international registrations.

Proceedings

  • Party filters work: party_owner_id and party_entity_id return proceedings whose parties are linked to that owner or entity. q and party_role must match the same party.
  • Office support is declared: offices carry capabilities.proceedings, and asking for an office without proceedings returns 422 instead of an empty list.
  • TTAB filing dates: about 99% of US oppositions and cancellations carry filed_date.

Trademarks and parties

  • Attorneys of record (breaking): USPTO attorneys of record have role: "representative", as at every other office. If you filter by correspondent, switch to representative.
  • Offices not live yet: records from offices still being onboarded are no longer returned until the office appears on GET /v1/offices.
  • Owner company facts: a linked owner’s ticker, LEI and publicly_traded come from its entity, and the owner list’s ticker and lei filters match what detail shows.
  • Jurisdictions: Australia, Norway, Sweden and Singapore show as covered, and Benelux, Malta and OAPI member states resolve.

MCP

  • Any API key connects: a tool the key lacks a scope for returns the same 403 as REST.
  • Search tools: date ranges, fields and include work as on REST, and errors use the REST error body.

Bug fixes

  • Status: a mark in its opposition window is no longer reported as opposed, and a live mark no longer loses its owners when an office update arrives without them.
  • Proceedings: TTAB interlocutory orders no longer count as decisions, and EUIPO, CIPO and IP Australia statuses follow the office’s own label.
  • Names: owner and entity names show accented characters instead of HTML codes such as Š.
  • Deadlines: a lapsed mark is no longer served a renewal ten years out; no Swiss or Polish opposition windows before those procedures existed; Philippine and Mexican office closures moved.
  • Assignments: USPTO assignments recorded February to April 2026 are complete.
New releasesImprovementsBug fixes
SDK 0.18.0

One search request model

Search gets one request model this week, with the old parameters supported until December 28.

Search

  • One search request model (breaking): q always ranks, similarity picks the matching channels, mark_text_* filters decide which marks qualify, and exclusions such as owner_id_not leave marks out. The old parameters keep working until December 28, 2026 and are reported in search_meta.deprecations. Search cursors issued before this release need a fresh start. See the migration guide.
  • How each hit matched: every result carries a match tier (identical, near_identical, similar or related) and the channels that found it.
  • Trademark numbers in q: paste an application, registration or international registration number and that record comes first.
  • Partial results on request: allow_partial=true returns the rows found so far when a search runs out of time.

Monitoring

  • New watches use the new matching: watches created from today take q, similarity and min_tier. Existing watches keep alerting exactly as before. See Watches.
  • Alerts show the match tier: match.tier is on alerts over REST and in webhooks.

Trademarks

  • Document details on media: document items in media[] gain document_kind, official_date and page_count.

Bug fixes

  • Media: primary_image_url always points at an image, never a PDF or sound file, and exactly one media[] item is primary.
  • Counts: owner, attorney and firm list counts match their detail pages.
  • Madrid: grouped rows show each designation’s own application and registration numbers, and family status.challenges lists the real challenges instead of mixed.
  • USPTO: attorney and owner addresses are split into street, city, region, postal code and country, so country_code=US finds US attorneys. TTAB proceedings carry their filing dates.
  • Entities: entity trademark lists return the same marks as the entity_id filter.
New releasesImprovementsBug fixes
SDK 0.14.0

The provenance release

Every value now says where it came from, proceedings show both sides of a case, and monitoring works on every plan.

Trademarks

  • The provenance release (breaking): top-level values are the office’s own, and everything Signa computes moves to derived on every row, search hits included. expiry_date is null on USPTO records, which publish none. Webhooks move to payload_version: 2. See the upgrade notes and List Status Codes.
  • Office text only: status and event labels for CIPO, EUIPO, IPOS and INPI carry only the office’s own wording.

Proceedings

  • Both sides of a case: a mark’s proceedings include cases where it was asserted as a prior right, not only those filed against it. Each row carries trademark_role. proceedings_count is now an object, { "contested": 1, "asserted": 40 } (breaking). See Trademark proceedings.

Plans

  • Monitoring and reconcile on every plan: watches, marks under management and reconcile now work on Free. Monitoring costs no credits during the beta.

Search

  • Holder counts: new entity_count and owner_count aggregations count the distinct holders in a result set.
  • Deeper pages: relevance search pages to 10,000 rows on every view, with no gaps or repeats.
  • Madrid stays grouped: offices and filing_route filters keep Madrid results as one row per international registration.
  • Cancelled searches stop: a search stops when your client disconnects.

Deadlines

  • Declined rules are listed: deadline responses list the rules Signa could not compute and the office date each one needs (unsupported_rules, unsupported_marks).
  • Mexican opposition overflow: close_adjustment gains month_end_overflow.

Bug fixes

  • Search: aggregation counts respect every filter (refresh any counts you cached); brackets, parentheses and single Chinese, Japanese and Korean characters are valid queries; mixed-alphabet and accented queries match the marks you would expect; a query too long to run returns a fixable 400 instead of a 503.
  • Owner, attorney and firm lists: a one-character q returns results.
  • Watches: preview applies the watch query, and one- and two-character CJK keywords are accepted.
  • Proceedings: US marks no longer show two rows for one TTAB opposition.
  • Deadlines: Canadian, Brazilian, EU and Australian dates roll off closed office days; Madrid renewal windows open six months before the due date in nine offices; older Nordic registrations without a filing date get deadlines; a deadline capped at its statutory maximum is never rolled past it.
New releasesImprovementsBug fixes

TTAB proceedings

US opposition data arrives this week: about 85,000 TTAB proceedings, refreshed daily.

Proceedings

  • TTAB proceedings: oppositions, cancellations, appeals and extensions of time from the USPTO’s Trademark Trial and Appeal Board, next to opposition records from EUIPO, CIPO, IP Australia, IPOS and the Spanish office. Search by party, type, status or class with GET /v1/proceedings. See Search Proceedings and the opposition tracking guide.

Docs

  • Alpha labels: screening, compare, listing checks and image search are labelled alpha. Email support@signa.so for early access.

Bug fixes

  • Renewals: renewed US Section 8 and 9 and Mexican registrations no longer show the paid renewal as due.
New releasesImprovements

Reconcile audits your docket

Reconcile can now check your docket field by field against the register.

Filing and docketing

  • Docket audit: send verdict_detail: true to POST /v1/reconcile and each field compares your value, the register and the computed schedule, with the rule behind the answer. docketed_deadlines[] checks the deadlines you have on file. Off by default; billing is unchanged. See Three-source verdicts.
  • Office codes on fees: fee endpoints accept USPTO, EUIPO, UKIPO and EU as well as ST.3 codes.
New releasesImprovementsBug fixes
SDK 0.12.0

Webhooks, examiner citations and prosecution deadlines

A big week for monitoring and deadlines: new webhooks, examiner citations, prosecution deadlines and five new deadline jurisdictions.
Re-check these dates on your docket. Before this week Signa served some dates later than the law allows: Swiss Madrid opposition closes (up to 30 days late), Vietnamese oppositions published since April 1, 2026 (two months late), EU restitutio (up to two weeks late), Norwegian renewal due dates, German renewals for applications pending on January 14, 2019, and Mexican Madrid renewals.

Webhooks and events

  • New webhook events: trademark.status_changed and office_action.issued report register changes on your portfolio marks. See Webhooks.
  • Events feed: GET /v1/events is documented and can replay from a checkpoint with sort=id&after=. Events carry the office’s source_date and your portfolio external_ref. See List Events.
  • New alert envelope (breaking): alert.created uses evt_ ids and nests the alert under data.alert, so reset stored idempotency keys. Alert diffs use public field names, and a portfolio_id on an endpoint now filters alerts too. See the field name table.

Examiner citations

  • Citations in both directions: see the prior marks an examiner cited against an application, and the applications a mark was cited against. citations_count tells a real zero from an office we don’t cover. Coverage today is USPTO §2(d) refusals. See Search Citations and Cited by.

Deadlines

  • Prosecution deadlines: POST /v1/deadlines/compute computes office-action response and statement-of-use deadlines from the facts you send, and every date cites its rule and source. See Compute Deadlines.
  • Five new jurisdictions: renewal and opposition deadlines for China, India, Japan, Korea and Türkiye, each citing its statute. See Deadline rules.
  • More Madrid opposition windows: Madrid designations of France, Finland, Poland, Germany and Norway get opposition windows. See Opposition Rules.
  • Stable rule ids: every deadline and opposition rule has a permanent rule_id. Branch on it rather than on display text such as consequence_if_missed.
  • Calendar checks you can see: due_date_adjustment and close_adjustment say whether a date was checked against an office calendar. Dates past a calendar’s last published notice report not_checked.
  • Computed data under derived (breaking): deadline rows carry dates, not countdowns.

Goods and services

  • Wording validation: POST /v1/goods-services/validate checks wording against the pre-approved catalogs for US, EM, JP, KR and CN, with same-class suggestions and warnings for indefinite wording. See Validate Goods and Services.

Portfolios

  • Portfolios are documented: nine operations, including JSON and iCalendar deadline views, with reference pages and a guide.

Other changes

  • Plan limits: a feature outside your plan returns 403 plan_gated instead of 429.
  • Search unavailable: party lists and suggest return 503 with Retry-After when search is down.
  • Saved searches removed (breaking): /v1/saved-searches returns 404. Store the search body yourself or create a watch.

Bug fixes

  • Mexico: dates roll off IMPI closed days; Madrid designations renew on the international registration; no opposition window before August 30, 2016; Brazilian and Mexican national registrations get renewal deadlines.
  • EU: dates roll on EUIPO closure days, and an office-stated February 29 expiry returns a schedule.
  • Europe: Swiss Madrid opposition windows close on time; German, French, Norwegian, Icelandic, Danish, Swedish and Benelux renewal dates corrected; Benelux, Finnish, Norwegian and Swedish opposition windows open on the publication day.
  • Asia-Pacific: Chinese publications from October 1, 2026 get the shorter window; Philippine declaration-of-use windows corrected; Australian grace periods roll to the next open day; Vietnamese opposition windows are three months since April 1, 2026.
  • Americas and Türkiye: Canada’s first renewal after June 17, 2019 opens from the start of the term; Turkish dates roll off holidays.
  • Office calendars: closure days corrected for ten offices, and a prosecution deadline outside calendar coverage returns a date instead of nothing.
ImprovementsBug fixes

Deadline status corrections

Deadline statuses now match the law on the last day you can still act.

Deadlines

  • Last day is actionable: on the due date a deadline reads due_soon, and on the last grace day it reads in_grace. missed starts the day after.
  • Refused and expired marks: refused applications return no maintenance schedule (Madrid-route marks excepted). Expired and cancelled marks return the late-renewal and restoration rows you can still act on.
  • Restoration is not optional: restoration rows have optional: false and are returned with include_optional=false.

Bug fixes

  • Deadlines: Danish, Mexican and Philippine anchor dates follow the statute, and Thai publications before July 28, 2016 get the 90-day opposition window.
Improvements

Country filters include regional rights

A country filter now finds every right that protects that country, including EU trade marks.

Search

  • Protection scope (breaking): jurisdictions=FR now also matches EU trade marks and other regional rights that protect France, so result counts grow. Pass territory_match=direct for the old behavior. Each hit shows why it matched in territory_matches[]. Cursors on jurisdiction-filtered searches issued before this release need a fresh start. See Search Trademarks.
  • Member-country codes: Benelux and OAPI member states such as BE and SN are valid jurisdictions values.
  • Watches unchanged: a watch scoped to a country still watches that country’s office only.

Screening

  • Honest verdicts: screening returns needs_review instead of clear when a requested territory’s register isn’t covered, with a coverage block explaining why. See Screen a Name.
New releases

Compare

Compare

  • Compare (alpha): POST /v1/compare scores one candidate against up to 10 conflicts you choose, with a TypeScript SDK resource. See Compare.