Aurelix

Tools › Business

USPTO Trademark API

Search US trademarks by mark, owner or number and watch new USPTO filings, with owner, attorney and goods, for $1.00 per 1,000 records, no login.

For trademark attorneys, brand-protection teams and sellers. Straight from USPTO's public Trademark Search; a daily watch returns only new filings and status changes.

$1.00 per 1,000 records ($0.80 on paid Apify plans)

At a glance

What the USPTO Trademark API does

Source
USPTO's public Trademark Search (tmsearch.uspto.gov), the register behind the official search site: about 13 million US applications and registrations, new filings about one day after filing
Search by
Mark words, exact mark, similar spelling or sound, owner name, serial or registration number or TSDR link; up to 100 searches per run
Filters
Nice classes 1 to 45, live or dead, filed in the last N days or a date range, words in the goods and services
Output
48 fields per record incl. owner, address, attorney, goods and services, all key dates, image and TSDR links; JSON, CSV, Excel, API
Automate
Only new or changed since last run (trademark watch), Slack/webhook digest, schedules, Zapier, Make, n8n, MCP for AI agents

Who it is for

  • Trademark attorneys and paralegals running clearance searches and watching clients' marks for confusingly similar new filings
  • Brand-protection teams tracking a competitor's new applications and abandoned marks by owner name
  • Print-on-demand and Amazon sellers checking whether a phrase is a live trademark in their class before listing
  • Law-firm business development reviewing new filings in a class, with the owner and whether an attorney is listed
  • AI agents and apps that need structured US trademark records by name, owner or number

Output

What you get

  • search, search_type (mark, owner, serial, registration, filings), match_found, change_type (watch: initial on the first run, then new or status_changed)
  • serial_number, registration_number, mark, mark_type, drawing_type, standard_characters, register
  • status (live or dead), status_code, status_description, registered
  • filing_date, registration_date, published_for_opposition_date, abandoned_date, cancelled_date, renewal_date, first_use_date, first_use_in_commerce_date, priority_date
  • international_classes, goods_and_services (per class, as USPTO shows it), filing_basis, disclaimer, translation, mark_description, design_codes
  • owner_name, owner_legal_form, owner_place_of_organization, owner_entity_type, owner_citizenship, owner_city, owner_address, owner_dba, owner_role, previous_owners, attorney, assignment_recorded
  • image_url (mark image), tsdr_url (USPTO status page), uspto_updated_at, source_url, scraped_at

Example

Input and output

Input

{
  "marks": [
    "star wars"
  ],
  "classes": [
    "25"
  ],
  "status": "live",
  "maxResultsPerSearch": 100
}

One output record

{
  "search": "star wars",
  "search_type": "mark",
  "match_found": true,
  "serial_number": "85170658",
  "registration_number": "4286500",
  "mark": "STAR WARS",
  "mark_type": "TRADEMARK",
  "drawing_type": "STANDARD CHARACTER MARK",
  "standard_characters": true,
  "status": "dead",
  "status_code": 710,
  "status_description": "CANCELLED - SECTION 8",
  "registered": false,
  "filing_date": "2010-11-05",
  "registration_date": "2013-02-05",
  "published_for_opposition_date": "2011-03-29",
  "abandoned_date": null,
  "cancelled_date": "2023-08-18",
  "renewal_date": null,
  "first_use_date": "2012-02-28",
  "first_use_in_commerce_date": "2012-02-28",
  "priority_date": null,
  "international_classes": [
    "032"
  ],
  "goods_and_services": [
    "(CANCELLED) IC 032: [ Soft drinks, colas, sports drinks, sports drinks, namely, energy drinks ]."
  ],
  "owner_name": "Lucasfilm LTD. LLC",
  "owner_legal_form": "LIMITED LIABILITY COMPANY",
  "owner_place_of_organization": "CALIFORNIA, USA",
  "owner_entity_type": "LIMITED LIABILITY COMPANY",
  "owner_citizenship": "CALIFORNIA, USA",
  "owner_city": "San Francisco",
  "owner_address": "IP Department - Trademark Group, One Letterman Drive, Bldg. B, San Francisco, CALIFORNIA 94129, UNITED STATES",
  "owner_dba": null,
  "owner_role": "SUBSEQUENT OWNER AFTER REGISTRATION",
  "previous_owners": [
    "Lucasfilm Ltd."
  ],
  "attorney": "Charles Steinberg",
  "filing_basis": [
    "1a"
  ],
  "register": "PRINCIPAL",
  "disclaimer": null,
  "translation": null,
  "mark_description": null,
  "design_codes": [],
  "assignment_recorded": false,
  "image_url": "https://tsdr.uspto.gov/img/85170658/large",
  "tsdr_url": "https://tsdr.uspto.gov/#caseNumber=85170658&caseType=SERIAL_NO&searchType=statusSearch",
  "uspto_updated_at": "2025-11-07T22:18:43Z",
  "change_type": null,
  "source_url": "https://tsdr.uspto.gov/#caseNumber=85170658&caseType=SERIAL_NO&searchType=statusSearch",
  "scraped_at": "2026-11-07T17:02:39Z"
}

From a real run of this tool; long text and lists shortened here.

How to use it

Three steps

  1. Type marks, owner names or serial/registration numbers, one per line; optionally pick Nice classes, live or dead, a filing-date window and how marks match (all words, exact or similar).
  2. For a trademark watch, turn on 'Only new or changed since last run', set 'Filed in the last N days' (e.g. 7) and add a Slack or webhook URL; leave the searches empty to get every new filing in your classes.
  3. Click Start, then download JSON, CSV or Excel, or schedule it daily and send new filings to Slack, Google Sheets, your docketing tool, Zapier, Make or n8n.

API

Call it from Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("aurelix/uspto-trademark-search").call(run_input={'marks': ['star wars'],
 'classes': ['25'],
 'status': 'live',
 'maxResultsPerSearch': 100})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

pip install apify-client. The same input works from the Apify console, a schedule, Make, n8n, Zapier or an AI agent through the Apify MCP server.

Pricing

Pay per result

Per 1,000 records, free plan$1.00
Per 1,000 records, paid plans$0.80
Start fee per run$0.003

Live prices from the Apify Store; no subscription and no platform usage billed on top. See the Store page.

Honest limits

What it does not do

  • US federal trademarks only (USPTO); no state registrations, common-law marks or other countries' registers.
  • At most 10,000 records per search (USPTO's own search limit) and 100 searches per run; split bigger jobs into several runs or by class or filing date.
  • Speed is set by USPTO's per-IP limit: a run sends at most about 60 requests per 5 minutes (10 at once, then one every 5 seconds). One request answers up to 20 mark or owner searches with their first 100 records each, all number lookups, or a page of 500 records, so 100 searches take seconds and 10,000 new filings about 90 seconds. If USPTO still refuses or keeps failing, the run stops at once, keeps what it saved and says so.
  • Similar matching is spelling and USPTO sound-alike text, not a legal likelihood-of-confusion analysis, and it does not compare logos.
  • New filings appear about one day after filing; a status change appears when USPTO reloads the record.
  • Prosecution history, office actions, documents and assignment details are not included (they need USPTO's TSDR API key); tsdr_url links to them.
  • The source is USPTO's public search service, which has no published API contract; if USPTO changes it, runs stop with a clear message until the Actor is updated.

FAQ

Questions buyers ask

What does this USPTO trademark search return?

Marks with owner, attorney, goods and services, plus owner and number lookups, for $1.00 per 1,000 records ($0.80 on paid plans) plus $0.003 per run.

Can I get new trademark filings every day?

Yes. Leave the searches empty (or add marks or owners), pick classes, set 'Filed in the last N days' and turn on 'Only new or changed since last run'; schedule it daily and each run returns only filings not seen before.

Can I send USPTO trademark results to Google Sheets, n8n or an AI agent?

Yes: use Apify's Google Sheets integration, the n8n Apify node or HTTP request, Zapier or Make, or call it from an AI agent through Apify's MCP server.

How much does the USPTO Trademark API cost?

$1.00 per 1,000 records ($0.80 on paid Apify plans), billed through your Apify account; you pay only for results. Apify's free plan includes $5 of credit a month, enough for about 5,000 records.

What is charged?

One trademark-result ($1.00 per 1,000 on the free plan, $0.80 on paid plans) per record returned, plus a $0.003 start fee per run. A record is one application or registration. The optional no-match row for a search that found nothing is charged like a record. The prefilled search (20 records) costs about 2 cents.

Do I need a USPTO API key?

No. It reads USPTO's public Trademark Search, which needs no login or key. USPTO's separate TSDR and bulk-data APIs need a registered key; this Actor does not use them.

How do I check if a name is available as a trademark?

Search the name in 'Marks' with 'Status' = Live only and your Nice classes, and turn on 'Add a row for searches with no match'. A live mark with the same or similar words in your class is a red flag; no match is a good first sign. Try 'Similar spelling and sound' too. This is a search, not legal advice: a full clearance also looks at state marks, common-law use and design marks, ideally with an attorney.

How do I set up a trademark watch?

Put your marks in 'Marks' with 'Mark match' = Similar spelling and sound, pick your classes, turn on 'Only new or changed since last run' and schedule a daily run. The first run returns today's matches and sets the baseline; each later run returns only applications USPTO added since then and status changes of marks it returned before, so a quiet day costs just the $0.003 start fee. Matches older than the first run's results are never returned as new, even if a cap cut it short. Add a Slack webhook for a morning digest.

How fresh is the data?

USPTO adds new applications to its search about one day after filing; in our tests yesterday's filings were in by mid-morning US Eastern. Status changes appear when USPTO reloads a record (uspto_updated_at). Schedule watches for the afternoon UTC so the previous day is in.

What is the difference between a serial number and a registration number?

Every application gets an 8-digit serial number when it is filed; only registered marks also get a registration number (up to 7 digits). Paste either into 'Serial or registration numbers', with or without commas, or paste a TSDR link.

Why does a mark have no name in the 'mark' field?

Design marks (logos with no words) have no word mark; mark_description and design_codes describe them, and image_url shows the drawing.

Is this legal?

It reads only public data any logged-out visitor can see: the US trademark register that the USPTO publishes on its public Trademark Search, with no login, no API key and no CAPTCHA. Owner names and addresses are returned as USPTO publishes them; some owners are individuals. To have a record removed from future runs, open an issue on this Actor's Issues tab. You are responsible for using the data lawfully; this is not legal advice.

What happens when USPTO is down or slow?

Each request is tried up to 3 times, a few seconds apart. If it still fails, or USPTO's firewall refuses it, the run stops at once; the searches it could not finish are named in the status and not charged; records already saved stay saved and are charged. If USPTO changes how its search answers, the run stops cleanly with a message saying so, keeps what it saved, and our daily check flags it for a fix.

How fast is it?

A few marks, owners or numbers take a few seconds. USPTO blocks IPs that send too many requests, so a run sends at most about 60 requests per 5 minutes; one request answers up to 20 mark or owner searches (with their first 100 records each), all number lookups, or a page of 500 records. 100 searches take seconds; 10,000 new filings about 90 seconds.

What happens when a run reaches its limits?

Each search stops at 'Max records per search' and the run at 'Max records in total' or the maximum charge you set; the status message says which, and nothing past it is read or charged.

Can I use it from an AI assistant?

Yes: through Apify's MCP server, Claude, ChatGPT and other agents can call it with a mark, owner or number and get JSON back (see the AI agents section).

Does it cover state trademarks or other countries?

No. Only US federal applications and registrations at the USPTO, including international registrations extended to the US (filing basis 66a).

Guides

Tutorials using this tool

Related

Related tools

Try the USPTO Trademark API

Open it on the Apify Store, paste the example input above and click Start. Results download as CSV, Excel or JSON.