USPTO Patent & Trademark Scraper avatar

USPTO Patent & Trademark Scraper

Pricing

from $4.00 / 1,000 patent records

Go to Apify Store
USPTO Patent & Trademark Scraper

USPTO Patent & Trademark Scraper

[๐Ÿ’ฐ $3.50 / 1K] Search and extract US patent and trademark records from the USPTO. Look up by keyword, inventor, assignee, or classification, or pull specific patent and trademark numbers โ€” get titles, abstracts, owners, inventors, dates, status, and classifications.

Pricing

from $4.00 / 1,000 patent records

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Pull live US patent and federal trademark records straight from the United States Patent and Trademark Office โ€” granted patents, published applications, and the full federal trademark register, all in one run. Search by keyword, inventor, owner, or classification, look up exact patent and trademark numbers, and get clean structured records with inventors, classification codes, owners, status, and ready-to-open USPTO links. Built for patent attorneys, IP and competitive-intelligence analysts, and brand-protection teams who need official USPTO data without manual TSDR lookups, page-by-page searching, or chasing API keys.

Why This Scraper?

  • Two USPTO databases in one run โ€” pull granted US patents, pre-grant published applications, and the entire federal trademark register of millions of marks together, or pick just patents or just trademarks with a single dropdown. No sampling, no demo data.
  • Patent search across six dimensions โ€” full-text keyword, inventor name, owner/assignee, CPC classification, granted-vs-published status, and a date range, combined into one query. Search an inventor and every row comes back with the patent's complete inventor list, so the person you searched for is visible even when they are the fifth name on the document.
  • Full-text keyword search, not title-only โ€” your keywords are matched against every word of the patent document: title, abstract, claims and the detailed description. That surfaces patents that never say your term in the title, which title-only tools miss entirely.
  • CPC routing done right โ€” search a full subgroup like H04L9/06 or a whole class like H04L; the scraper picks the correct USPTO classification index for each so you get the matching corpus, not zero results.
  • Direct number lookup, no search needed โ€” paste exact patent numbers, or trademark serial or registration numbers, and pull those records straight out, bypassing keyword search entirely. US10,123,456 B2, 10123456 and US10123456B2 all resolve to the same record.
  • Trademark status in plain words, not just Live/Dead โ€” every mark also carries USPTO's own status code and its wording, so you can tell REGISTERED AND RENEWED from CANCELLED - SECTION 8 or ABANDONED - NO STATEMENT OF USE FILED without a single TSDR lookup.
  • Grants and applications never get confused โ€” USPTO publishes most applications about 18 months after filing, so any honest patent search returns a mix. Every row here is labelled Granted patent or Published application, only granted rows carry a grantDate, and one dropdown limits a whole run to grants alone.
  • Rich patent records โ€” patent or publication number, title, owner, inventors, publication, grant and filing dates, CPC classification codes, forward-citation count, design/plant/utility type, and a ready Google Patents link on every row.
  • Full abstracts on demand โ€” flip one switch and every patent row carries USPTO's complete abstract text (700+ characters on a typical record), so you can screen results by what the invention actually does instead of guessing from the title.

Use Cases

IP & Competitive Intelligence

  • Map a competitor's entire patent portfolio by searching their company name as the owner
  • Track new grants in a CPC technology area to watch a field as it develops
  • Build inventor profiles by pulling every patent listing a named inventor
  • Benchmark filing activity across rivals with grant-date-range searches

Legal & Patent Prosecution

  • Pull exact patents by number for prior-art review and freedom-to-operate analysis
  • Gather forward-citation counts to gauge the influence of a reference
  • Assemble classification-based prior-art sets before drafting claims
  • Verify grant and filing dates for docketing and deadline calculations

Brand Protection & Trademark Clearance

  • Look up a trademark by serial or registration number to confirm live/dead status
  • Pull goods & services and international class for clearance and watch reports
  • Search the federal register by wordmark to spot confusingly similar marks
  • Monitor owner names to track a brand's mark portfolio

Market & Technology Research

  • Quantify innovation in a sector by counting grants in target CPC classes
  • Identify emerging assignees entering a technology space
  • Feed patent and trademark records into trend dashboards and analytics tools
  • Track date-ranged grant volume as an indicator of R&D output

Academic & Data Analysis

  • Build structured patent datasets for bibliometric and citation studies
  • Compile trademark datasets by class for brand and marketing research
  • Export clean, normalized records for statistical analysis and visualization

Getting Started

Just keywords and a result cap:

{
"dataType": "patents",
"searchQuery": "machine learning",
"maxResults": 50
}

Filtered search for granted patents only

Combine an owner, a CPC class, and a grant-date window, and exclude pre-grant applications so every row is a real grant:

{
"dataType": "patents",
"searchQuery": "neural network",
"assignee": "NVIDIA",
"cpcClass": "H04L",
"patentStatus": "granted",
"dateFrom": "2022-01-01",
"dateTo": "2023-12-31",
"maxResults": 200
}

Look up specific numbers

Pull exact patents and trademarks by number โ€” no search runs:

{
"dataType": "both",
"patentNumbers": ["10123456", "US9876543B2"],
"trademarkNumbers": ["78787878", "2345678"]
}

Patents and trademarks together

Search both databases in one run:

{
"dataType": "both",
"searchQuery": "coffee",
"maxResults": 100
}

Input Reference

What to Collect

ParameterTypeDefaultDescription
dataTypeselectPatents onlyWhich records to collect: Patents only, Trademarks only, or Patents and trademarks. Patents and trademarks come back as separate record types.
searchQuerystring"machine learning"Words to match anywhere in the full text of a patent document โ€” title, abstract, claims and the detailed description (e.g. "solar panel coating"), returned newest publication first. For trademarks, matches the mark wording (e.g. "Nike"), returned newest filing first. Leave empty when looking up specific numbers.
patentNumbersstring[][]Look up specific patents or published applications by number (e.g. "10123456" or "US10123456B2" for a grant, "20230123456" for a published application). One per line. Overrides the keyword search.
trademarkNumbersstring[][]Look up specific trademarks by serial number (e.g. "78787878") or registration number (e.g. "2345678"). One per line. Overrides the keyword search.

Patent Filters

Filters apply to patent keyword searches only and are ignored when you look up specific numbers.

ParameterTypeDefaultDescription
inventorstringโ€”Only return patents listing this inventor (e.g. "Jane Smith").
assigneestringโ€”Only return patents owned by or assigned to this company or person (e.g. "Apple Inc").
cpcClassstringโ€”Only return patents in this Cooperative Patent Classification code. Use a subgroup like "H04L9/06" or a class like "H04L".
patentStatusselectGranted patents and published applicationsWhich kind of patent document to return: both, Granted patents only, or Published applications only. Every row also states its own kind in documentType.
dateFromstringโ€”Only include patent documents published on or after this date โ€” the grant date for a granted patent, the publication date for a published application. Format: YYYY-MM-DD. Pair with patentStatus: "granted" for a clean grant-date window.
dateTostringโ€”Only include patent documents published on or before this date โ€” the grant date for a granted patent, the publication date for a published application. Format: YYYY-MM-DD.

Extra Detail

ParameterTypeDefaultDescription
includeAbstractsbooleanfalseAdd the full abstract text to every patent record. USPTO serves abstracts one patent at a time, so this adds roughly a second per patent โ€” leave it off for the fastest runs. No effect on trademarks.
includeAllInventorsbooleanfalseList every inventor on each patent instead of the first one plus an "et al." marker. Adds roughly a second per patent. Not needed for inventor-name searches โ€” those always return the complete list.

Results

ParameterTypeDefaultDescription
maxResultsinteger100Maximum records to return per search. Set to 0 to collect every match โ€” broad searches can have hundreds of thousands of results, so set a number to cap. Start with 10โ€“50 to test, then increase. On patent searches the cap keeps the most recently published patents and on trademark searches the most recently filed marks, and the run says so when it stops short of the full match count.

Output

Patents and trademarks are returned as two record types, distinguished by the recordType field. Each is shown below.

Patent record

{
"recordType": "patent",
"documentType": "Granted patent",
"patentNumber": "11500000",
"applicationNumber": "16987654",
"title": "Neural network accelerator with configurable dataflow",
"assignee": "NVIDIA Corporation",
"inventors": ["Jane Smith", "Robert Chen", "Maria Lopez"],
"publicationDate": "2022-11-15",
"grantDate": "2022-11-15",
"filingDate": "2020-08-07",
"cpcClasses": ["G06N3/063", "G06F9/3001"],
"patentType": "Utility (granted)",
"citedByCount": 14,
"url": "https://patents.google.com/patent/US11500000B2"
}
FieldTypeDescription
recordTypestringAlways "patent".
documentTypestring"Granted patent" or "Published application" โ€” on every row, so you always know which you are looking at.
patentNumberstringThe document's USPTO number: the granted patent number when documentType is "Granted patent", or the pre-grant publication number (an 11-digit number such as 20230123456) when it is "Published application".
applicationNumberstringApplication number.
titlestringPatent title.
abstractstringFull abstract text. Present on every patent row when includeAbstracts is turned on; omitted when it is off.
assigneestringOwner / assignee (organization or person).
inventorsstring[]Every inventor named on the patent whenever the full list was retrieved โ€” that is, on every inventor-name search, and on any run with includeAllInventors or includeAbstracts turned on. On other runs it holds the first-named inventor, followed by "et al." when the patent has more.
publicationDatestringThe date USPTO published this document (YYYY-MM-DD). On every row, and the date the dateFrom / dateTo window filters on.
grantDatestringGrant date (YYYY-MM-DD). Present only on granted patents โ€” a published application has not been granted, so the field is left out rather than filled with its publication date.
filingDatestringFiling date (YYYY-MM-DD).
cpcClassesstring[]CPC classification codes.
patentTypestringThe document's patent family: "Utility (granted)", "Utility (published application)", "Design", or "Plant". Design and plant rows carry the bare family name, so read documentType โ€” present on every row โ€” for the granted vs. published application answer.
citedByCountintegerNumber of forward citations, when available.
urlstringReady-to-open Google Patents link.

Sort or filter on grantDate and you get grants only, by definition. Use publicationDate when you want one complete date column across every row. Patent search results arrive newest publication first, so a capped run returns the recent end of the match set rather than a spread across it; widen maxResults, or set dateFrom and dateTo, to work back through older patents. Turn on includeAbstracts to add the abstract field to every patent row โ€” it is left out by default because USPTO serves abstracts one record at a time. The full inventor list arrives the same way, which is why it is automatic on inventor-name searches and opt-in elsewhere.

Trademark record

{
"recordType": "trademark",
"serialNumber": "97868352",
"registrationNumber": "2345678",
"markText": "BLUE BOTTLE",
"owner": "Blue Bottle Coffee, LLC",
"status": "Live",
"statusCode": 700,
"statusDescription": "REGISTERED",
"filingDate": "2023-04-01",
"registrationDate": "2024-02-06",
"goodsAndServices": ["Coffee; coffee beverages", "Cafe and coffee shop services"],
"internationalClass": ["030", "043"],
"url": "https://tsdr.uspto.gov/#caseNumber=97868352&caseType=SERIAL_NO&searchType=statusSearch"
}
FieldTypeDescription
recordTypestringAlways "trademark".
serialNumberstringApplication serial number.
registrationNumberstringRegistration number, when the mark is registered.
markTextstringMark wording / literal element.
ownerstringCurrent owner name.
statusstringFederal-register status โ€” "Live" or "Dead".
statusCodeintegerUSPTO's own status code, e.g. 700 registered, 606 abandoned, 710 cancelled.
statusDescriptionstringWhat that code means in words, e.g. "REGISTERED AND RENEWED", "CANCELLED - SECTION 8".
filingDatestringApplication filing date (YYYY-MM-DD).
registrationDatestringRegistration date, when registered (YYYY-MM-DD).
goodsAndServicesstring[]Goods and services descriptions by class.
internationalClassstring[]International class numbers.
urlstringDirect USPTO TSDR status link.

Pending marks omit registrationNumber and registrationDate. statusCode and statusDescription are on every trademark row. Trademark search results arrive newest filing first, so a capped run returns the most recently filed marks of the match set; sort your rows on filingDate or registrationDate to work back through the older, registered ones.

Tips for Best Results

  • Start small, then scale โ€” set maxResults to 10โ€“50 on your first run to confirm the records match what you need, then raise the cap. Setting it to 0 pulls everything, which on a broad search can be hundreds of thousands of records โ€” prefer a finite cap unless you truly want the full set.
  • Match CPC granularity to intent โ€” a subgroup like H04L9/06 returns a tight, on-point set, while a class like H04L sweeps a whole technology area (often over a million patents). Pick the level that fits your study before raising the result cap.
  • A capped portfolio sweep is the newest slice, not a sample โ€” patents come back newest publication first, so assignee: "Apple" at maxResults: 150 returns about a fortnight of grant Tuesdays out of a 43,000-patent portfolio, not a cross-section of it. The run tells you when this happens. To study a period rather than the present, set dateFrom and dateTo and let the cap fill that window; to study the whole portfolio, raise the cap.
  • Use number lookup for known records โ€” when you already have patent numbers or trademark serial/registration numbers, paste them into patentNumbers or trademarkNumbers rather than searching; it goes straight to the exact records and ignores the filters.
  • Set patentStatus to match the question you are asking โ€” counting issued grants or building a grant-date timeline? Choose Granted patents only, and the date window then means grant dates exactly. Watching what rivals are about to secure? Choose Published applications only and you see filings 18 months ahead of any grant. Leave it on both for the widest view of a technology.
  • Keep mark wording short โ€” for trademark searches, a concise term like "coffee" or a brand name matches the register far better than a long phrase.
  • Raise the cap before you call a trademark field open โ€” mark results come newest filing first, so a capped search on a common word like "pickleball" hands back the last few months of applications, most of which are still pending. Marks filed years ago are the registered ones that would actually block you, and they sit further down the match count. For a clearance read, either set maxResults to 0 on a narrow term or use a more specific mark term so the whole match set fits under your cap.
  • Screen on status codes, not just Live/Dead โ€” a mark reading 710 / CANCELLED - SECTION 8 lapsed on a missed maintenance filing and may be free to claim, while 700 / REGISTERED is actively defended. Filter on statusCode to separate the two in seconds.
  • Turn abstracts on for keyword runs, off for bulk pulls โ€” a keyword search matches the whole patent document, so abstracts are what let you tell a real hit from a passing mention. For a broad portfolio sweep by owner or classification, leave them off and the run finishes far faster. The same trade applies to includeAllInventors: switch it on when you are mapping who works with whom, off when you just need volume.

Pricing

From $3.50 per 1,000 results โ€” that is the Gold-tier rate for trademark records; patent records are $4.00 per 1,000 at the same tier. Official USPTO data at a flat per-record rate, with no charge for compute or run time. Bronze, Silver, and Gold subscribers pay progressively less; the tables below show total cost at each discount tier.

Results are billed as two events โ€” patent records and trademark records โ€” so your invoice shows the split between them, and the discount tiers apply to both.

Patent records ($4.00 per 1,000 at the Gold tier):

ResultsNo discountBronzeSilverGold
100$0.48$0.45$0.43$0.40
1,000$4.80$4.52$4.28$4.00
10,000$48.00$45.20$42.80$40.00
100,000$480.00$452.00$428.00$400.00

Trademark records ($3.50 per 1,000 at the Gold tier):

ResultsNo discountBronzeSilverGold
100$0.42$0.40$0.38$0.35
1,000$4.20$3.95$3.75$3.50
10,000$42.00$39.50$37.50$35.00
100,000$420.00$395.00$375.00$350.00

No compute or time-based charges โ€” you pay per result, plus a fixed $0.005 start fee per run.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n โ€” Workflow automation
  • Google Sheets โ€” Direct spreadsheet export
  • Slack / Email โ€” Notifications on new results
  • Webhooks โ€” Trigger custom APIs on run completion
  • Apify API โ€” Full programmatic access

USPTO patent and trademark records are public US government data. This actor is designed for legitimate IP research, prior-art review, brand protection, and market analysis. Users are responsible for complying with applicable laws and the USPTO's terms of use, and for using the data responsibly. Do not use extracted data for spam, harassment, or any unlawful purpose.