USPTO Trademark Search: Bulk-Check If a Phrase Is Trademarked

Paste up to 10,000 phrases and get a verdict for each (registered-live, pending, dead-only or clear) with the matching marks, owners, classes and TSDR links.

Run on Apify →See pricing

What it does

If you sell print-on-demand T-shirts, mugs or stickers, using a slogan someone else has registered is a risk you want to catch before upload. Checking phrases one at a time in USPTO Trademark Search works, but not when you have a few hundred designs in the queue.

This actor checks each phrase against the official US trademark register (the same database behind USPTO Trademark Search) and returns one row per phrase with a clear verdict: registered-live, pending, dead-only or clear, plus live, registered, pending and dead match counts. Each row lists the matching marks with word mark, serial and registration number, status, filing and registration dates, owner name with state and country, attorney, international classes, goods and services, mark type and a direct TSDR link. Choose exact, contains or words matching and narrow by Nice class, for example 25 for clothing or 21 for mugs.

It is built for Merch by Amazon, Etsy and Redbubble sellers, brand namers and agencies screening many phrases at once. It is not legal advice. A clear result only means no matching mark text was on the USPTO register at check time; it does not cover common-law use, state or foreign registrations, design-only marks or similar-but-not-identical marks. Talk to a trademark attorney before relying on a result. The actor is not affiliated with the USPTO.

How it works

  1. You paste phrases (case and extra spaces do not matter, duplicates are removed) and choose a match mode and optional international classes.
  2. Each phrase is searched against the public backend of USPTO Trademark Search (tmsearch.uspto.gov) at no more than 2 requests per second, with back-off on rate limits.
  3. All matching marks are counted by status to produce the verdict; the class filter, if set, applies to the verdict as well.
  4. Up to maxResultsPerPhrase marks are listed per phrase (live first, then registered, newest first), filtered by statusFilter.
  5. Invalid phrases, duplicates and failed checks are never charged, and the run stops cleanly at your spend limit.

Input example

A typical run input (JSON). Every field is also available as a form in the Apify console.

{
  "phrases": [
    "Just Do It",
    "Mama Bear",
    "Coffee Before Talkie"
  ],
  "searchMode": "contains",
  "statusFilter": "live",
  "classes": [
    "25",
    "21"
  ],
  "maxResultsPerPhrase": 20
}
All input fields
FieldTypeRequiredDefaultWhat it does
phrasesarrayyesPhrases, slogans or brand names to check against the US trademark register (case and extra spaces do not matter; duplicates are removed). Up to 10,000 per run.
searchModestringno"exact"exact = the mark text is exactly the phrase (a trailing . or ! is ignored); contains = the phrase appears anywhere inside a mark (CAT LOVER also finds CRAZY CAT LOVERS); words = every word of the phrase appears in the…
statusFilterstringno"live"Which matching marks to list in matches. live = registered or pending marks only (the ones that can block you); all = live and dead; dead = abandoned, cancelled or expired only. The verdict and counts always cover…
classesarrayno[]Only consider marks in these Nice international classes, e.g. 25 (clothing), 21 (mugs, housewares), 16 (paper goods, stickers, posters), 18 (bags), 9 (phone cases, software). Leave empty to search all classes.
maxResultsPerPhraseintegerno20How many matching marks to list per phrase (live first, then registered marks, newest first). 0 = verdict and counts only. Does not change the price.

Output example

One row per phrase, with the verdict and match counts up front:

phraseverdictliveMatchCountregisteredLiveCountpendingCountdeadMatchCountmatches[0].ownermatches[0].internationalClasses
JUST DO ITregistered-live12759Nike, Inc.009, 010, 021, 025
MAMA BEARregistered-live88026Build-A-Bear Retail Management, Inc.028
WEBVANdead-only00013
COFFEE BEFORE TALKIEclear0000

Pricing

Pay per event: you are charged only for the results you receive, with no subscription. Set a maximum total charge on any run and it stops cleanly at the cap.

Charged forWhenPricePer 1,000Worked example
Phrase checkedCharged per phrase checked against the register and delivered (verdict, counts and up to 100 matching marks included)$0.03$301,000 phrases = $30.00
Actor Start (platform start fee)Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.00005—One run at up to 1 GB = $0.00005 (charged as one event)

Prices are read from the live Apify Store listing when this page is built. The listing is always authoritative.

Try USPTO Trademark Search on Apify. Pay only for the results you get.

Run on Apify →

Use cases

Screening print-on-demand designs

Before uploading a batch of T-shirt or mug designs, run all the slogans with classes 25 and 21 and set aside anything that comes back registered-live or pending. The TSDR link lets you open the official case file for anything borderline.

Naming a product or brand

Check a shortlist of candidate names in contains mode, which is the most cautious, to see which ones already appear inside live marks and who owns them.

Auditing an existing catalog

Export the titles or slogans from your shop and check them in bulk to find listings that may clash with a registered mark.

Agency or marketplace screening

Screen thousands of phrases for clients or sellers at once, about 7,000 phrases per hour, with owners and classes in the output for a quick human review.

How it compares

ActorForge USPTO Trademark SearchUSPTO Trademark Search websiteTrademark attorney clearance search
DataOfficial US registerOfficial US registerUS register plus wider sources
Bulk phrases in one goYes, up to 10,000 per runNo, one search at a timeUsually per mark
Verdict per phraseYesNo, you read the resultsYes, with a professional opinion
Common-law, state and foreign marksNoNoYes
Similar-sounding or design marksNoPartial, with manual searchingYes
Legal adviceNoNoYes
Cost$0.03 per phraseFreeProfessional fees

For a single important brand name, a trademark attorney's clearance search is the right call, and the free USPTO website is fine for occasional checks. This actor is a fast first-pass filter for large lists of phrases, not a substitute for legal advice.

Limits and honest notes

FAQ

How do I check if a phrase is trademarked in the US?

Add the phrase to phrases and run. The verdict tells you whether a live registered mark exists (registered-live), a live application is pending, only dead marks exist (dead-only) or nothing matches (clear), based on the USPTO register at the moment of the check.

Does a 'clear' result mean I can use the phrase?

No. Clear means no matching mark text was found on the USPTO register. It does not cover unregistered common-law rights, state or foreign registrations, design-only marks or confusingly similar marks such as different spellings. This is not legal advice; consult a trademark attorney before relying on it.

What is the difference between exact, contains and words matching?

exact matches marks whose whole text equals the phrase (a trailing . or ! is ignored). contains finds the phrase anywhere inside a mark, so CAT LOVER also finds CRAZY CAT LOVERS. words requires every word to appear in any order. When unsure, use contains, which is the most cautious.

Which trademark classes should I use for T-shirts and mugs?

Class 25 covers clothing and class 21 covers mugs and housewares; 16 is paper goods, stickers and posters, 18 bags and 9 phone cases and software. The class filter also changes the verdict, so a phrase registered only in class 9 comes back clear for classes 25 and 21.

Can a pending application still block me?

Yes. Pending means a live application is in examination and not yet registered, and it can still block you. The verdict and counts always cover every status, whatever you choose in statusFilter.

How much does it cost to check 1,000 phrases?

$30.00, at $0.03 per phrase checked, with the verdict, counts and up to 100 matching marks included. maxResultsPerPhrase does not change the price, and invalid phrases, duplicates and failed checks are free.

Use it from code

Run the actor through the Apify API with the input above.

cURL

curl -X POST "https://api.apify.com/v2/acts/actor-forge~uspto-trademark-search/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"phrases": ["Just Do It", "Mama Bear", "Coffee Before Talkie"], "searchMode": "contains", "statusFilter": "live", "classes": ["25", "21"], "maxResultsPerPhrase": 20}'

JavaScript (Node.js)

// Node.js 18+ (built-in fetch). Set APIFY_TOKEN in your environment.
const input = {
  "phrases": [
    "Just Do It",
    "Mama Bear",
    "Coffee Before Talkie"
  ],
  "searchMode": "contains",
  "statusFilter": "live",
  "classes": [
    "25",
    "21"
  ],
  "maxResultsPerPhrase": 20
};

const res = await fetch(
  "https://api.apify.com/v2/acts/actor-forge~uspto-trademark-search/run-sync-get-dataset-items",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.APIFY_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(input),
  }
);
const items = await res.json();
console.log(items.length, items[0]);

Python

# pip install apify-client   (set APIFY_TOKEN in your environment)
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run_input = {
    "phrases": [
        "Just Do It",
        "Mama Bear",
        "Coffee Before Talkie"
    ],
    "searchMode": "contains",
    "statusFilter": "live",
    "classes": [
        "25",
        "21"
    ],
    "maxResultsPerPhrase": 20
}

run = client.actor("actor-forge/uspto-trademark-search").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

The run-sync-get-dataset-items endpoint waits for the run (up to 5 minutes) and returns the dataset rows directly. For longer runs, start the run asynchronously and read the dataset when it finishes, as the Python example does. Replace APIFY_TOKEN with your own token from the Apify console.

Step-by-step guides

How to Check If a Phrase Is Trademarked (USPTO, in Bulk)

Run your phrases through USPTO Trademark Search in contains mode with the classes for your product (25 for clothing, 21 for mugs). Anything marked…

Related actors

Keyword Suggestions — Google, YouTube, Bing Autocomplete

Bulk keyword suggestions from Google, YouTube, Bing and Baidu autocomplete. Expand each seed with a-z, question words or prepositions for long-tail…

$0.30 per 1,000 · seed expanded

Shopify Store Scraper — Products, Prices, Store Info

Scrape any Shopify store's products from its public products.json: title, vendor, type, tags, price range, compare-at price, stock, variants and…

$0.30 per 1,000 · product result

Google Trends Scraper — Trending Now & Interest Over Time

Google Trends scraper and API: Trending Now searches for 125 countries from the official feed (traffic, start time, picture, news articles), plus…

$0.50 per 1,000 · trend result

Try USPTO Trademark Search on Apify. Pay only for the results you get.

Run on Apify →

More E-commerce & App Stores tools · All actors