USPTO Office Actions Scraper avatar

USPTO Office Actions Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
USPTO Office Actions Scraper

USPTO Office Actions Scraper

Export USPTO patent office actions. Search 19M+ examiner correspondence records by patent number, application number, examiner, art unit, filing date, or free-text. Pull body text, status, classification, dates.

Pricing

from $19.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

ParseForge Banner

⚖️ USPTO Office Actions Scraper

🚀 Export USPTO patent office actions in seconds. Search 19M+ examiner correspondence records by patent number, application number, examiner, art unit, filing date, or free-text query - no account required.

🕒 Last updated: 2026-05-21 · 📊 19 fields per record · 19M+ office actions · All USPTO technology centers

The USPTO Office Actions Scraper extracts examiner correspondence records from the United States Patent and Trademark Office public dataset API. Every record captures the full prosecution history document - invention title, filing and grant dates, examiner details, art unit classification, body text snippet, document code, and source system.

The dataset covers all patent office actions filed through the USPTO's OACS and OC systems, spanning utility patents, design patents, and continuation applications across all technology centers from 1700 (Chemical & Materials Engineering) to 3700 (Mechanical Engineering & Manufacturing).

Who uses this data?

AudienceUse Case
Patent attorneysMonitor examiner patterns and art unit trends
IP researchersAnalyze prosecution history statistics
Technology analystsTrack innovation activity by workgroup and tech center
Legal tech companiesBuild prosecution analytics and examiner profiling tools
Competitive intelligence teamsMonitor competitor patent prosecution activity
Academic researchersStudy patent examination behavior at scale

📋 What the USPTO Office Actions Scraper does

  • Queries the USPTO DS API with full Lucene syntax support for flexible filtering
  • Filters by patent number, application number, examiner employee number, or date range
  • Returns structured records with invention title, classification codes, examination dates, and body text
  • Handles pagination automatically to retrieve up to 1,000,000 records per run
  • Cleans raw API responses - unwraps single-element arrays, strips null placeholder dates
  • Delivers results as CSV, Excel, JSON, or XML via Apify dataset export

💡 Why it matters: The USPTO receives over 600,000 patent applications per year. Every office action represents a pivotal moment in prosecution. With 19M+ records available, this scraper gives IP professionals and researchers structured access to prosecution history at a scale impossible to achieve manually.

🎬 Full Demo

🚧 Coming soon

⚙️ Input

FieldTypeRequiredDescription
maxItemsintegerNoMaximum number of records to return. Free users: 10. Paid users: up to 1,000,000. Default: 10.
criteriastringNoLucene-style query. Examples: *:* (all), inventionTitle:semiconductor, workGroup:1710. Default: *:*
patentNumberstringNoFilter by granted patent number, e.g. 10047236
applicationNumberstringNoFilter by patent application number, e.g. 14485382
examinerNamestringNoFilter by examiner employee number, e.g. 85150
startDatestringNoEarliest filing date in YYYY-MM-DD format
endDatestringNoLatest filing date in YYYY-MM-DD format

Example 1: Return the 10 most recent office actions (default)

{
"maxItems": 10
}

Example 2: Search semiconductor patents filed in 2019

{
"criteria": "inventionTitle:semiconductor",
"startDate": "2019-01-01",
"endDate": "2019-12-31",
"maxItems": 500
}

⚠️ Good to Know: The criteria field uses Lucene query syntax. Field names like inventionTitle, workGroup, techCenter, and examinerEmployeeNumber are all searchable. Combine with patentNumber, applicationNumber, and date range filters for precise results. Filters are combined with AND logic.

📊 Output

FieldTypeDescription
🔑 idstringUnique record hash identifier
📄 patentNumberstringGranted patent number (null for pending applications)
📋 patentApplicationNumberstringPatent application number
💡 inventionTitlestringTitle of the invention
🔢 applicationStatusNumbernumberUSPTO application status code
📁 applicationTypeCategorystringApplication type (REGULAR, etc.)
📅 filingDatestringApplication filing date (ISO 8601)
🏆 grantDatestringPatent grant date if issued (null if pending)
📤 submissionDatestringOffice action submission date (ISO 8601)
👤 examinerEmployeeNumberstringUSPTO examiner employee number
🎨 groupArtUnitNumbernumberExamining art unit number
🏢 techCenterstringUSPTO technology center code
👥 workGroupstringExaminer work group
🗂️ nationalClassstringU.S. national classification code
📌 nationalSubclassstringU.S. national subclassification code
📝 legacyDocumentCodeIdentifierstringOffice action document type code (NOA, CTRS, etc.)
📖 bodyTextSnippetstringFirst 500 characters of office action body text
🗄️ sourceSystemNamestringUSPTO source system (OACS or OC)
🕒 scrapedAtstringISO 8601 timestamp when record was collected
errorstringError message if record could not be retrieved

Sample record 1 - Notice of Allowance (NOA)

{
"id": "813869284108aad9fc4821419bb120d78f2a1e69db5a33d77e16f396",
"patentNumber": "10047236",
"patentApplicationNumber": "14485382",
"inventionTitle": "METHODS FOR MAKING COPPER INKS AND FILMS",
"applicationStatusNumber": 150,
"applicationTypeCategory": "REGULAR",
"filingDate": "2014-09-12T00:00:00",
"grantDate": "2018-08-14T00:00:00",
"submissionDate": "2018-05-09T00:00:00",
"examinerEmployeeNumber": "85150",
"groupArtUnitNumber": 1712,
"techCenter": "1700",
"workGroup": "1710",
"nationalClass": "427",
"nationalSubclass": "553000",
"legacyDocumentCodeIdentifier": "NOA",
"bodyTextSnippet": "DETAILED CORRESPONDENCE\nEXAMINER'S AMENDMENT\nAn examiner's amendment to the record appears below...",
"sourceSystemName": "OACS",
"scrapedAt": "2026-05-21T00:00:00.000Z",
"error": null
}

Sample record 2 - Restriction Requirement (pending application)

{
"id": "b0004895432cc8e3060384e58ce0c7126dbd7786b74c0d4805d2a38d",
"patentNumber": null,
"patentApplicationNumber": "15784576",
"inventionTitle": "HOT MELT ADHESIVES AND USES THEREOF",
"applicationStatusNumber": 41,
"applicationTypeCategory": "REGULAR",
"filingDate": "2017-10-16T00:00:00",
"grantDate": null,
"submissionDate": "2019-08-20T00:00:00",
"examinerEmployeeNumber": "94146",
"groupArtUnitNumber": 1789,
"techCenter": "1700",
"workGroup": "1780",
"nationalClass": "442",
"nationalSubclass": "329000",
"legacyDocumentCodeIdentifier": "CTRS",
"bodyTextSnippet": "DETAILED ACTION\nNotice of Pre-AIA or AIA Status\nThis application contains claims directed to the following patentably distinct species...",
"sourceSystemName": "OC",
"scrapedAt": "2026-05-21T00:00:00.000Z",
"error": null
}

Sample record 3 - Office Action on electrical switching patent

{
"id": "41a628912e000b56e760fa40d123263741bf9f8b8079e0d585744db9",
"patentNumber": null,
"patentApplicationNumber": "16091108",
"inventionTitle": "SWITCHING DEVICE FOR CONDUCTING AND INTERRUPTING ELECTRICAL CURRENTS",
"applicationStatusNumber": 93,
"applicationTypeCategory": "REGULAR",
"filingDate": "2018-10-04T00:00:00",
"grantDate": null,
"submissionDate": "2019-08-14T00:00:00",
"examinerEmployeeNumber": "84340",
"groupArtUnitNumber": 2842,
"techCenter": "2800",
"workGroup": "2840",
"nationalClass": "327",
"nationalSubclass": "394000",
"legacyDocumentCodeIdentifier": "NOA",
"bodyTextSnippet": "Notice of Pre-AIA or AIA Status\nThe prior art of record fails to disclose an apparatus comprising elements as recited in the claims...",
"sourceSystemName": "OC",
"scrapedAt": "2026-05-21T00:00:00.000Z",
"error": null
}

✨ Why choose this Actor

FeatureDetail
🌐 No login requiredFully public USPTO dataset - no credentials needed
🔍 Lucene query supportFull field-level search with boolean operators
📊 19M+ recordsComplete USPTO office action history
🧹 Clean outputArrays unwrapped, null placeholder dates removed
⚡ Fast APIDirect access to USPTO DS API - no browser overhead
🔄 Auto-paginationRetrieves all matching results up to your maxItems limit
💾 4 export formatsCSV, Excel, JSON, XML all available
🛡️ Retry logic4-attempt retry with backoff for reliability

📈 How it compares to alternatives

MethodSpeedScaleStructured OutputFree
This ActorFast1,000,000 recordsYes (19 fields)10 free / unlimited paid
USPTO website manual searchSlow1,000 per sessionNoYes
USPTO bulk data downloadSlow setupFull datasetPartialYes
Custom API scriptVariableUnlimitedRequires dev workDev cost

🚀 How to use

  1. Create a free Apify account - includes $5 free credit
  2. Open the USPTO Office Actions Scraper actor page
  3. Configure your search - set criteria, date filters, or leave defaults for recent records
  4. Set maxItems (10 for a quick preview, higher for bulk extraction)
  5. Click Run and wait for the dataset to populate
  6. Download your results as CSV, Excel, JSON, or XML

💼 Business use cases

IP Due Diligence

Law firms and M&A teams use prosecution history to assess patent quality. Extract all office actions for a portfolio of applications to identify claims that received rejections, understand examiner objections, and evaluate the strength of granted claims.

Examiner Analytics

Build profiles on USPTO examiners - track allowance rates, common rejection grounds, and prosecution timeline by employee number or art unit. Useful for law firms preparing prosecution strategy or researchers studying examination quality.

Technology Landscape Mapping

Filter by techCenter or workGroup to map innovation activity in a specific domain. Combine with filing date ranges to track how a technology area has grown or shifted focus over time.

Competitive Patent Monitoring

Search by inventionTitle keywords or application numbers to monitor competitors' prosecution activity. Know when a competitor's application receives a Notice of Allowance or a Final Rejection before it appears in public grant databases.

🔌 Automating USPTO Office Actions Scraper

Connect this Actor to your existing workflows using Apify integrations:

  • Make (Integromat) - trigger a run on a schedule and push results to Google Sheets or a database
  • Zapier - automatically export new office actions to Airtable, Notion, or your CRM
  • Slack - get notified when a monitored application number receives a new office action
  • Webhooks - receive real-time notifications when a run completes and new data is ready

🌟 Beyond business use cases

Academic Research

Study how examination patterns have changed over decades. Analyze rejection rates by technology center, correlate art unit staffing with pendency times, or explore the relationship between office action count and claim scope.

Law schools and patent bar prep programs can use real prosecution examples to teach students about office action types - restriction requirements, non-final rejections, notices of allowance, and interview summaries.

Open Government Data

The USPTO makes this data public as part of its commitment to transparency. This Actor makes that commitment actionable - enabling civic technologists and policy researchers to analyze the patent system at scale.

Product Development

Entrepreneurs and product teams can search prosecution history to understand what claims are being rejected in a target technology area before filing, shaping a smarter claim drafting strategy.

🤖 Ask an AI assistant about this scraper

Have questions about how to use this Actor or interpret the data? Paste a few sample records into ChatGPT, Claude, or another AI assistant and ask it to:

  • Summarize the prosecution history for a patent application
  • Explain what document codes like NOA, CTRS, and FNR mean
  • Identify patterns across a batch of office actions
  • Suggest Lucene query syntax for your specific search

The structured JSON output from this Actor is well-suited for AI analysis.

❓ Frequently Asked Questions

🔍 What is a patent office action? A patent office action is an official communication from a USPTO examiner to an applicant. It can be a rejection, an allowance, a restriction requirement, or other correspondence during the examination of a patent application.

📊 How many records are available? The USPTO office actions dataset contains 19M+ records spanning decades of patent prosecution history.

🔑 Do I need a USPTO account or API key? No. This Actor uses the USPTO's public DS API which requires no authentication.

🗂️ What do the document codes mean? Common codes include: NOA (Notice of Allowance), CTRS (Restriction Requirement), FNR (Final Rejection), NFNR (Non-Final Rejection), IDS (Information Disclosure Statement). The full list is available in USPTO documentation.

📅 What date range does the data cover? The dataset covers office actions from the USPTO's OACS and OC systems. Use startDate and endDate to filter to a specific period.

🔍 Can I search by invention title keywords? Yes - use criteria: "inventionTitle:semiconductor" or criteria: "inventionTitle:battery AND workGroup:1710" for combined queries.

⚡ How fast is the scraper? The Actor fetches 100 records per API call. A 100-item run typically completes in under 15 seconds. Larger runs scale linearly.

📄 What format is the output? Records are stored in Apify's dataset storage and can be exported as CSV, Excel, JSON, or XML from the run page.

🏆 Why is grantDate null for some records? Pending applications have no grant date yet. The Actor cleans the raw API response and returns null for these cases rather than the placeholder date 0001-01-03 returned by the source.

📋 What is applicationStatusNumber? This is a numeric code representing the current status of the application in the USPTO system. Common values include 150 (patented), 41 (non-final rejection pending), and 93 (withdrawn).

🔄 Can I monitor a specific application number continuously? Yes - use the applicationNumber filter and schedule the Actor to run on a regular interval via Apify's scheduling feature or through Make/Zapier.

💰 Is there a cost to use this Actor? Free users receive 10 records per run. Create a paid account to unlock up to 1,000,000 records per run.

🔌 Integrate with any app

Export data directly from the Apify platform to:

Spreadsheets & Databases Google Sheets - Microsoft Excel - Airtable - Notion - PostgreSQL - MySQL - MongoDB

Automation & Workflows Make (Integromat) - Zapier - n8n - Pipedream - Activepieces

Cloud Storage AWS S3 - Google Cloud Storage - Azure Blob Storage - Dropbox

APIs & Webhooks REST API - Webhooks - Apify API

ActorDescription
FINRA BrokerCheck ScraperExtract broker and firm registration data from FINRA's public database
FAA Aircraft Registry ScraperSearch the FAA civil aircraft registry by tail number, owner, or aircraft type
OurAirports Global Airport Database ScraperExport worldwide airport data including ICAO/IATA codes, coordinates, and runway details

💡 Pro Tip: browse the complete ParseForge collection for more public-data scrapers covering government records, legal filings, aviation, maritime, and finance datasets.


Need help? Visit the Apify Discord community or open a support ticket.

Disclaimer: This Actor accesses publicly available data from the USPTO's open dataset API in compliance with its terms of service. Data is provided as-is for informational purposes. Verify all records with the official USPTO Patent Center before relying on them for legal or business decisions.