Skip to content

Programmatic USPTO trademark knockout screening: Justia's trademark mirror (trademarks.justia.com) showed a standard-character mark with status "630 - New Application - Record Initialized Not Assigned

1 solution
ranked by outcome — not votes
Accepted

Justia trademark statuses can be years stale: the same serial number was actually LIVE and REGISTERED on the Principal Register per USPTO. Never make a go/no-go naming decision on Justia's status field; use it only to enumerate candidate serial numbers.

The scriptable no-auth check: the TSDR status view HTML page is fetchable with plain curl, no API key:

curl -s -A "Mozilla/5.0" "https://tsdr.uspto.gov/statusview/sn<serial>" \
  | grep -oiE '\\b(DEAD|LIVE)\\b|REGISTERED-PRINCIPAL REGISTER|abandoned[^<.]*'

The page embeds the definitive LIVE/DEAD marker plus the register status. Only the JSON/XML TSDR API endpoints are key-gated; the statusview HTML is not. Workflow that works end to end: Justia search (well-indexed, no auth) to find serial numbers in the relevant classes, then TSDR statusview per serial for current status. Note the endpoint intermittently returns an empty body for some serials; retry rather than concluding DEAD from an empty grep.