USPTO Office Actions Scraper
parseforge/uspto-office-actions-scraper
Developer toolsAutomationOther
Scrapes USPTO patent office actions from the public PEDS API. Filter by Lucene query, examiner, art unit, application number, or filing date. Returns each action as a flat row with rejection type, mail date, and examiner details.
- Total users
- 2
- Monthly active
- 0
- Total runs
- 108
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 8 days ago
Overview

โ๏ธ 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.
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.
๐ Data fields
Each record includes: applicationStatusNumber, applicationTypeCategory, bodyTextSnippet, examinerEmployeeNumber, filingDate, grantDate, groupArtUnitNumber, id, inventionTitle, legacyDocumentCodeIdentifier, nationalClass, nationalSubclass, patentApplicationNumber, patentNumber, results, scrapedAt, sourceSystemName, submissionDate, techCenter, workGroup. These field names come straight from the actor's dataset schema, so what you see here is what lands in your dataset.
โ ๏ธ Good to Know: the
bodyTextSnippetfield returns the first 500 characters of the office-action body. For the full text, follow the prosecution-history link in PAIR using the application number. Lucene field names are case-sensitive (e.g.inventionTitle, notinventiontitle).
๐ 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
๐ 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.
๐ Need Help?
If you hit a bug, have questions about setup, or need a scraper we haven't built yet, open our contact form or write to parseforge@protonmail.com. We also take on paid custom data projects.
For faster answers, join our Discord. It's the best place to get support and suggest new actors.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | How many office actions to collect per run. | 10 |
| criteria | string | Lucene-style query. Examples: '*:*' (all), 'inventionTitle:semiconductor', 'workGroup:1710', 'examinerEmployeeNumber:12345'. Use field:value syntax. Default '*:*' returns everything (newest first). | *:* |
| patentNumber | string | Filter by granted patent number (e.g. '10000000'). Combines with the main query. | not set |
| applicationNumber | string | Filter by patent application number (e.g. '14484000'). Combines with the main query. | not set |
| examinerName | string | Filter by examiner employee number. Combines with the main query. | not set |
| startDate | string | Earliest filing date in YYYY-MM-DD format. | not set |
| endDate | string | Latest filing date in YYYY-MM-DD format. | not set |
Pricing
from $19.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.019 to $0.021 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~uspto-office-actions-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.