USPTO Trademark Search Scraper avatar

USPTO Trademark Search Scraper

Pricing

from $6.80 / 1,000 results

Go to Apify Store
USPTO Trademark Search Scraper

USPTO Trademark Search Scraper

Scrape US trademark records with mark text, serial and registration number, owner name and address, status, filing and registration dates, goods and services and international classes. Search by wordmark, owner, goods, serial or registration number. Export to JSON, CSV or Excel.

Pricing

from $6.80 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

USPTO Trademark Search Scraper

USPTO Trademark Search Scraper

Here is one real result, with every field the actor returns:

{
"serialNumber": "75840730",
"registrationNumber": "2498971",
"wordmark": "COFFEE",
"markType": "TRADEMARK",
"markDescription": ["The design consists of a stylized rendering of the upper torso of a man who is carrying a sack of coffee beans on his back."],
"disclaimer": "\"COFFEE\"",
"alive": false,
"registered": false,
"statusCode": 710,
"statusDescription": "CANCELLED - SECTION 8",
"filedDate": "1999-11-04T00:00:00",
"registrationDate": "2001-10-16",
"abandonDate": null,
"cancelDate": "2008-07-18",
"renewalDate": null,
"publishForOppositionDate": "2000-06-06",
"firstUseAnyDate": "1999-12-17",
"firstUseCommerceDate": "1999-12-17",
"ownerName": ["PREMIER INTERNATIONAL, INC. (CORPORATION; OREGON, USA)"],
"ownerCity": ["Portland"],
"ownerStateCountry": ["OREGON 972195275, UNITED STATES"],
"ownerEntity": ["CORPORATION"],
"ownerType": ["ORIGINAL REGISTRANT"],
"ownerCitizenship": ["OREGON, USA"],
"ownerDBA": null,
"attorney": "Kassim M. Ferris",
"goodsAndServices": ["(CANCELLED) IC 030: [ Coffee, ground coffee and coffee beans ]."],
"internationalClass": ["IC 030"],
"usClass": ["046."],
"currentBasis": ["1a"],
"drawingCodeDescription": "(3) DESIGN PLUS WORDS, LETTERS, AND/OR NUMBERS",
"designCodeDescription": [
"05.07.03 - Coffee beans",
"19.07.11 - Bags, burlap; Bags, paper; Bags, shopping; Grocery bags; Sacks; Sacks filled with grain; Shopping bags",
"26.01.01 - Circles as carriers or as single line borders"
],
"standardCharacterClaim": false,
"tsdrUrl": "https://tsdr.uspto.gov/#caseNumber=75840730&caseType=SERIAL_NO&searchType=statusSearch",
"source": "USPTO Trademarks",
"observedAt": "2026-08-10T14:31:58.737Z"
}

The most complete USPTO trademark scraper available. It returns every field the USPTO trademark record exposes for each mark, including full prosecution dates, owner details, goods and services, international and US classes, and design codes, and gives you five searchable fields plus a live-marks filter to target exactly the trademarks you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches the USPTO trademark database by mark text, owner name, goods and services keyword, or serial or registration number, and writes one normalized record per matching trademark to the run's dataset. Each record carries the full prosecution history (filed, published, registered, abandoned, cancelled and renewal dates), the owner block (name, city, state or country, entity type, citizenship), the goods and services with international and US classes, the design and drawing codes, and derived flags (alive, registered). Missing source values are returned as null.

Data covers US federal trademarks (registrations and applications).

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 10 trademarks whose mark text matches "coffee".

{
"maxTrademarks": 10,
"searchQuery": "coffee",
"searchField": "wordmark",
"aliveOnly": false
}

Change searchField to owner to search by owner name, or to serialNumber / registrationNumber to look up one mark. Set aliveOnly to true to hide dead, abandoned or cancelled marks.

Input reference

FieldTypeRequiredDefaultDescription
searchQuerystringnocoffeeWhat to search for: a mark text, owner name, goods and services keyword, or a serial or registration number, for example coffee, Nike Inc, 88888888.
searchFieldenumnowordmarkWhich field to match against: wordmark, owner, goodsServices, serialNumber, registrationNumber, or all.
aliveOnlybooleannofalseReturn only live (active) trademarks and hide dead, abandoned or cancelled ones.
maxTrademarksintegerno10Maximum trademark records to collect. Free Apify plans are capped at 10 per run.

Output reference

One dataset item per trademark. Types: string, integer, boolean, string[], or null when the source value is absent.

FieldTypeDescription
serialNumberstringUSPTO serial number (application number).
registrationNumberstringUSPTO registration number, or null if not registered.
wordmarkstringThe mark text.
markTypestringMark type, for example TRADEMARK, SERVICE MARK.
markDescriptionstring[]Description of the mark design.
disclaimerstringDisclaimed wording, or null.
alivebooleantrue if the mark is live (active).
registeredbooleantrue if the mark is currently registered.
statusCodeintegerUSPTO status code.
statusDescriptionstringHuman-readable status, for example CANCELLED - SECTION 8, REGISTERED.
filedDatestringApplication filed date.
registrationDatestringRegistration date (YYYY-MM-DD), or null.
abandonDatestringAbandonment date, or null.
cancelDatestringCancellation date, or null.
renewalDatestringRenewal date, or null.
publishForOppositionDatestringPublication for opposition date, or null.
firstUseAnyDatestringFirst use anywhere date, or null.
firstUseCommerceDatestringFirst use in commerce date, or null.
ownerNamestring[]Owner names with entity and citizenship.
ownerCitystring[]Owner cities.
ownerStateCountrystring[]Owner state or country.
ownerEntitystring[]Owner entity types, for example CORPORATION.
ownerTypestring[]Owner role, for example ORIGINAL REGISTRANT.
ownerCitizenshipstring[]Owner citizenship.
ownerDBAstringOwner doing-business-as name, or null.
attorneystringAttorney of record, or null.
goodsAndServicesstring[]Goods and services descriptions by class.
internationalClassstring[]International class codes, for example IC 030.
usClassstring[]US class codes.
currentBasisstring[]Filing basis codes, for example 1a.
drawingCodeDescriptionstringDrawing code description.
designCodeDescriptionstring[]Design search code descriptions.
standardCharacterClaimbooleanWhether a standard character claim was made.
tsdrUrlstringDirect URL to the mark's USPTO TSDR status page.
sourcestringAlways USPTO Trademarks.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringWritten only on a failed run: a single item with a populated error field is emitted instead of results.

Example output record

Real record from a live run (input {"searchQuery": "coffee", "searchField": "wordmark", "maxTrademarks": 10}):

{
"serialNumber": "75840730",
"registrationNumber": "2498971",
"wordmark": "COFFEE",
"markType": "TRADEMARK",
"alive": false,
"registered": false,
"statusCode": 710,
"statusDescription": "CANCELLED - SECTION 8",
"filedDate": "1999-11-04T00:00:00",
"registrationDate": "2001-10-16",
"cancelDate": "2008-07-18",
"ownerName": ["PREMIER INTERNATIONAL, INC. (CORPORATION; OREGON, USA)"],
"ownerCity": ["Portland"],
"ownerStateCountry": ["OREGON 972195275, UNITED STATES"],
"attorney": "Kassim M. Ferris",
"goodsAndServices": ["(CANCELLED) IC 030: [ Coffee, ground coffee and coffee beans ]."],
"internationalClass": ["IC 030"],
"usClass": ["046."],
"standardCharacterClaim": false,
"tsdrUrl": "https://tsdr.uspto.gov/#caseNumber=75840730&caseType=SERIAL_NO&searchType=statusSearch",
"source": "USPTO Trademarks",
"observedAt": "2026-08-10T14:31:58.737Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~uspto-trademarks-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQuery":"Nike Inc","searchField":"owner","aliveOnly":true,"maxTrademarks":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~uspto-trademarks-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQuery":"88888888","searchField":"serialNumber"}'

Apify CLI:

apify call scrapers_lat/uspto-trademarks-scraper \
--input '{"searchQuery":"coffee","searchField":"goodsServices","maxTrademarks":10}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per trademark record returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxTrademarks.

FAQ and troubleshooting

A run returned 0 records. Why? No trademark matched your searchQuery in the chosen searchField. Try a broader term, switch searchField to all, or turn off aliveOnly. Zero-result runs are not charged.

How do I look up one specific mark? Set searchField to serialNumber or registrationNumber and put the number in searchQuery.

How do I find only active brands? Set aliveOnly to true to hide dead, abandoned and cancelled marks.

Why is registrationNumber or a date null? The mark is not registered yet, or the USPTO record does not carry that date. Missing source values are returned as null, never invented.

Is this an official USPTO tool? No. This actor is independent and has no affiliation with the USPTO. It reads only data that is publicly available through the USPTO trademark system. Use it in accordance with the USPTO terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the USPTO. Accesses only publicly available USPTO trademark data. Use in accordance with the USPTO terms.