Trademark Search: USPTO, TMview, Madrid, IP Australia avatar

Trademark Search: USPTO, TMview, Madrid, IP Australia

Pricing

$6.00 / 1,000 trademark mark rows

Go to Apify Store
Trademark Search: USPTO, TMview, Madrid, IP Australia

Trademark Search: USPTO, TMview, Madrid, IP Australia

One row per trademark mark from USPTO, TMview, Madrid and IP Australia: mark text, owner, live/dead/pending status with the office's own wording kept, serial and registration numbers, Nice classes, goods and services text, dates, and per-source status flags.

Pricing

$6.00 / 1,000 trademark mark rows

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Trademark Search Actor: one row per mark across five public sources

This trademark search actor returns one row per mark from the public registers: mark text, owner, a live / dead / pending verdict with the office's own wording kept alongside it, serial and registration numbers, Nice classes, goods and services text, filing and expiry dates, territories of protection, opposition windows and, on US files, document, assignment and TTAB proceeding counts. Search by mark name across USPTO, TMview, WIPO Madrid, IP Australia and the WIPO Global Brand DB, or look up a serial, registration number or Madrid international registration number.

What you get

  • One dataset row per mark, so a brand sweep is billable only for what you actually received.
  • A normalised status_norm of live, dead or pending, plus status_raw carrying the office's own wording. USPTO rows keep the TM5 Common Status Descriptor (LIVE/REGISTRATION/Issued and Active, DEAD/APPLICATION/Refused/Dismissed or Invalidated), TMview and Brand DB rows keep Registered, Filed, Ended or Expired, IP Australia rows keep Registered: Registered/protected.
  • Serial number and registration number as separate fields, so a filed mark is still identifiable.
  • Nice class numbers as a clean integer list, plus the goods and services wording from the full record where the register will hand it over.
  • Application date, registration date and expiry date in ISO form, and the status date where the office prints one.
  • t_protection, the territories a mark is protected in.
  • mark_type, the office's own wording for word, figurative or combined marks.
  • opposition_period_start and opposition_period_end, where the register publishes the opposition window.
  • documents_count, assignments_count and proceedings_count for US files, with the TTAB proceeding descriptions in proceedings. The fastest way to tell a long prosecution from a short one, and an opposition or cancellation from a clean file.
  • seniority, the earlier-mark claims an EU record carries.
  • Per-source status flags (ok, not_found, rate_limited, blocked) so you can tell a mark that does not exist from a register that did not answer.
  • A deep link to the record in source_url.

Why scrape trademark registers

Marketplace integrity teams and e-commerce legal counsel run trademark search by name across their own catalogue, and the question they need answered is binary. A listing sells brand B, the US mark is dead and only a foreign registration in class 25 remains, so the listing goes down. A comparative metric, such as "92% of listings carry a registered mark", never forces a takedown.

Doing that check by hand means opening five registers, each with its own search form, its own status vocabulary and its own numbering scheme. USPTO speaks in TM5 descriptors, TMview and the Brand DB in Registered and Ended, Madrid Monitor in official actions, IP Australia in Registered/protected. A human can reconcile five vocabularies for one mark. Doing it for a thousand listings every week is not a job for a person with a browser.

Grey-import detection, class-conflict checks before a launch and watch sweeps over a competitor's portfolio all reduce to the same shape: a mark name in, and out comes the owner, the classes, the status and the dates.

Input

FieldRequiredWhat it does
markOne of mark or numberWord mark to search for, e.g. NIKE or CREATE-A-CUP.
numberOne of mark or numberExact identifier: a US application serial (78888801), a US registration number (3000000), or a Madrid international registration number (1000000).
number_kindNoauto works the type out from the shape of the number. The explicit options force it.
modeNolookup (default) resolves one mark by identifier. search runs a word-mark query. classes returns the Nice class headings instead of marks.
officesNoComma separated office codes: US, EM, WO, AU, GB, FR, DE, JP, CA, IN, BX, or any two-letter office code the indexes carry. Empty means every office.
nice_classesNoComma separated Nice classification numbers, 1 to 45. Empty means all classes. With mode: "classes" it selects which headings come back.
max_rowsNoUpper bound per source, 1 to 500. Default 50.
include_goods_servicesNoFetch the goods and services wording and the US file's document lists. On by default.

Give mark and number together and both a word search and an exact lookup run in the same call.

Output

{
"mark": "CREATE-A-CUP",
"owner": "Playtex Products, Inc.",
"status_norm": "dead",
"status_raw": "DEAD/APPLICATION/Refused/Dismissed or Invalidated",
"serial": "78888801",
"registration_number": null,
"office": "US",
"office_name": "United States (USPTO)",
"nice_classes": [21],
"goods_services": "Children's spill-proof drinking cup with removable insert for drawing/coloring by child",
"application_date": "2006-05-22",
"registration_date": null,
"expiry_date": null,
"t_protection": [],
"st13": null,
"source": "tsdr",
"source_url": "https://tsdr.uspto.gov/statusview/sn78888801",
"documents_count": 17,
"assignments_count": 1,
"proceedings_count": 0,
"proceedings": [],
"mark_type": "Trademark",
"status_date": "2007-10-23",
"publication_date": "2007-10-23",
"opposition_period_start": null,
"opposition_period_end": null,
"seniority": [],
"input": "78888801",
"source_status": {"tsdr": "ok", "tmview": "ok", "madrid": "skipped", "ipaustralia": "skipped", "branddb": "skipped"}
}

Absent facts stay absent. A null means the register did not say, and an empty list means nothing came back. Nothing is filled in from guesswork.

Use cases

Marketplace integrity and grey-import checks. Run a seller catalogue's brand names through one call and read status_norm per row. Rows that come back dead in the home market while another office still shows a live registration are the listings that need a second look. The source_status map keeps a blocked register from looking like a clean bill of health.

Class-conflict screening before a launch. Filter on nice_classes and read the classes and goods and services wording of what is already registered there. A mark live in class 25 and filed in class 35 is a different risk from one covering only class 35, and the wording tells you how wide the claim is. With mode: "classes" you can pull the official class headings first and decide which classes the screen should cover.

Portfolio watch sweeps. Look up a registration number and read documents_count, assignments_count, proceedings_count, expiry_date and status_raw together. A US file with a long document list and an expiry date inside the renewal window is being maintained. The same mark with DEAD/APPLICATION, two documents and an open TTAB proceeding is not.

Catalogue-wide brand protection reporting. Because each row is one mark with its own status, the aggregate is a count rather than an opinion. How many of the brands we sell hold a live US registration in the relevant class is a number, and a number is what an enforcement meeting works from.

Opposition and cancellation checks. proceedings_count and proceedings carry the TTAB docket entries of a US file, and opposition_period_end shows how long an EU mark stays open to opposition. A mark in its opposition window is a different conversation with a seller than one already registered.

How it compares

This actorjeeves/uspto-trademark-databasedltik/euipo-trademarksparseforge/ip-australia-trademarks
SourcesUSPTO, TMview, Madrid, IP Australia, WIPO Global Brand DBUSPTO onlyTMview (70+ offices)IP Australia only
Per 1k rows$6.00$2.00$10.00, $20.00 with detail$5.00
Goods and services textIn the rowNoSeparate paid detail callNo
TM5 status descriptor keptYesNoNoNo
Madrid IRN lookupYesNoVia the office filterNo
US documents, assignments, TTAB countsYesNoNoNo
Per-source status flagsYesNoNoNo

The closest competitor by scope is dltik/euipo-trademarks-scraper, at $10.00 per 1k result rows and a further $10.00 per 1k for the detail call carrying goods and services. This actor folds that detail into the row, so it sits 40% below their result-only rate and 70% below their full row. The cheapest per-item competitor is jeeves_is_my_copilot at $2.00 per 1k, USPTO alone. parseforge/ip-australia-trademarks-scraper covers Australia alone at $5.00 per 1k. What they have that we do not: the single-office actors are simpler if you only ever care about one register, and dltik offers tiered pricing that gets cheaper as you scale.

Pricing

All pricing is pay-per-event at $0.006 per trademark, one event per returned mark row. $6.00 per 1,000 rows. Rows that carry no mark facts, such as the placeholder returned when nothing matched, the Nice class headings and the rows naming a register that could not be read, are delivered but never charged. All pricing is pay-per-event, you only pay for results you receive. No actor-start fee, no per-compute-unit charges.

Limits and gotchas

  • USPTO publishes a ceiling near one request per two seconds on its status, document and list pages. The actor holds to it and backs off when the office asks for more space, so a US lookup takes a few seconds longer than one that never reaches the US file. retries is not the lever here; the pacing is.
  • The TMview search index caps a single query at 10,000 rows. A broad word search is partitioned by filing-date window rather than cut off at that ceiling, which is why a very common word costs more requests than a rare one.
  • The WIPO Global Brand DB is a word-mark door. It carries over 76 million marks across far more offices than any other source here, but it takes mark text only, so a serial or registration number lookup never reaches it.
  • max_rows bounds what comes back, not what is searched. Set it low for a quick check and high for a sweep.
  • include_goods_services adds one request per row for the goods wording, capped at 40 per run, and fetches the US document, assignment and proceeding lists. Turn it off when you only need status and classes.
  • Five national registers are closed to unattended callers: UK IPO (GB), INPI (FR), DPMA (DE), J-PlatPat (JP) and CIPO (CA). Their marks still arrive through the shared multi-office indexes, with the mark's own office on the row. Ask one of those offices explicitly when the indexes have nothing for it, and you get a row naming the office and the reason, with blocked in source_status, rather than silence.
  • Madrid Monitor is only reached when the input looks like an international registration number. Madrid has no unattended word-mark search, and the mark wording of an international registration is filled in from the shared index record of the same number.
  • A Madrid file lists one entry per official action, so status_raw is the action that determines the state of the registration rather than simply the newest row.
  • Run time follows how many sources fire and how many rows you ask for. A single-number lookup returns in seconds; a 50-row word search with goods and services takes around half a minute.

FAQ

Can I run a trademark search by name rather than by number? Yes. Put the name in mark and leave number empty. The word search runs against TMview, the WIPO Global Brand DB and IP Australia, up to max_rows rows per source.

Does this give me a trademark search for the European Union? Yes, through the EM office. TMview carries the EU register plus more than seventy others, and the Brand DB reaches further still. Narrow it with offices=EM for EU records only.

Can I do a trademark lookup Australia only? Yes. Set offices=AU and the run consults IP Australia plus the shared indexes filtered to AU, returning Registered: Registered/protected as status_raw and the registration number.

What happens when I search a brand that has no registration at all? One row with source: "none" and not_found per register consulted. Nothing is invented, and the row is not charged.

How do I check a Madrid international registration? Put the number in number with number_kind set to irn, or enter it and let auto classify it. You get the holder, the mark wording, the classes, the registration date and the official actions, and the status is derived from those actions.

Is merkenregister data included for the Dutch market? Yes. The Benelux register sits inside the EM search and is also reachable on its own as offices=BX, so a mark registered in the Netherlands comes back with its territories of protection listed.

Can I see whether a US mark is in an opposition or cancellation? Yes. proceedings_count and proceedings carry the TTAB docket entries, and assignments_count shows the assignment chain length. Both are on by default and cost nothing extra in row count.

Can I look up what Nice class 25 covers? Yes. Set mode to classes, optionally with nice_classes, and the run returns the official class headings. Those rows are reference data and are not charged.