USPTO Office Actions Scraper
Pricing
from $19.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share

⚖️ 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?
| Audience | Use Case |
|---|---|
| Patent attorneys | Monitor examiner patterns and art unit trends |
| IP researchers | Analyze prosecution history statistics |
| Technology analysts | Track innovation activity by workgroup and tech center |
| Legal tech companies | Build prosecution analytics and examiner profiling tools |
| Competitive intelligence teams | Monitor competitor patent prosecution activity |
| Academic researchers | Study 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
| Field | Type | Required | Description |
|---|---|---|---|
| maxItems | integer | No | Maximum number of records to return. Free users: 10. Paid users: up to 1,000,000. Default: 10. |
| criteria | string | No | Lucene-style query. Examples: *:* (all), inventionTitle:semiconductor, workGroup:1710. Default: *:* |
| patentNumber | string | No | Filter by granted patent number, e.g. 10047236 |
| applicationNumber | string | No | Filter by patent application number, e.g. 14485382 |
| examinerName | string | No | Filter by examiner employee number, e.g. 85150 |
| startDate | string | No | Earliest filing date in YYYY-MM-DD format |
| endDate | string | No | Latest 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
criteriafield uses Lucene query syntax. Field names likeinventionTitle,workGroup,techCenter, andexaminerEmployeeNumberare all searchable. Combine withpatentNumber,applicationNumber, and date range filters for precise results. Filters are combined with AND logic.
📊 Output
| Field | Type | Description |
|---|---|---|
🔑 id | string | Unique record hash identifier |
📄 patentNumber | string | Granted patent number (null for pending applications) |
📋 patentApplicationNumber | string | Patent application number |
💡 inventionTitle | string | Title of the invention |
🔢 applicationStatusNumber | number | USPTO application status code |
📁 applicationTypeCategory | string | Application type (REGULAR, etc.) |
📅 filingDate | string | Application filing date (ISO 8601) |
🏆 grantDate | string | Patent grant date if issued (null if pending) |
📤 submissionDate | string | Office action submission date (ISO 8601) |
👤 examinerEmployeeNumber | string | USPTO examiner employee number |
🎨 groupArtUnitNumber | number | Examining art unit number |
🏢 techCenter | string | USPTO technology center code |
👥 workGroup | string | Examiner work group |
🗂️ nationalClass | string | U.S. national classification code |
📌 nationalSubclass | string | U.S. national subclassification code |
📝 legacyDocumentCodeIdentifier | string | Office action document type code (NOA, CTRS, etc.) |
📖 bodyTextSnippet | string | First 500 characters of office action body text |
🗄️ sourceSystemName | string | USPTO source system (OACS or OC) |
🕒 scrapedAt | string | ISO 8601 timestamp when record was collected |
❌ error | string | Error 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
| Feature | Detail |
|---|---|
| 🌐 No login required | Fully public USPTO dataset - no credentials needed |
| 🔍 Lucene query support | Full field-level search with boolean operators |
| 📊 19M+ records | Complete USPTO office action history |
| 🧹 Clean output | Arrays unwrapped, null placeholder dates removed |
| ⚡ Fast API | Direct access to USPTO DS API - no browser overhead |
| 🔄 Auto-pagination | Retrieves all matching results up to your maxItems limit |
| 💾 4 export formats | CSV, Excel, JSON, XML all available |
| 🛡️ Retry logic | 4-attempt retry with backoff for reliability |
📈 How it compares to alternatives
| Method | Speed | Scale | Structured Output | Free |
|---|---|---|---|---|
| This Actor | Fast | 1,000,000 records | Yes (19 fields) | 10 free / unlimited paid |
| USPTO website manual search | Slow | 1,000 per session | No | Yes |
| USPTO bulk data download | Slow setup | Full dataset | Partial | Yes |
| Custom API script | Variable | Unlimited | Requires dev work | Dev cost |
🚀 How to use
- Create a free Apify account - includes $5 free credit
- Open the USPTO Office Actions Scraper actor page
- Configure your search - set
criteria, date filters, or leave defaults for recent records - Set
maxItems(10 for a quick preview, higher for bulk extraction) - Click Run and wait for the dataset to populate
- 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.
Legal Education
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
🔗 Recommended Actors
| Actor | Description |
|---|---|
| FINRA BrokerCheck Scraper | Extract broker and firm registration data from FINRA's public database |
| FAA Aircraft Registry Scraper | Search the FAA civil aircraft registry by tail number, owner, or aircraft type |
| OurAirports Global Airport Database Scraper | Export 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.