# USPTO Office Actions Scraper (`parseforge/uspto-office-actions-scraper`) Actor

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.

- **URL**: https://apify.com/parseforge/uspto-office-actions-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## ⚖️ 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

<table>
<thead>
<tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr>
</thead>
<tbody>
<tr><td><b>maxItems</b></td><td>integer</td><td>No</td><td>Maximum number of records to return. Free users: 10. Paid users: up to 1,000,000. Default: 10.</td></tr>
<tr><td><b>criteria</b></td><td>string</td><td>No</td><td>Lucene-style query. Examples: <code>*:*</code> (all), <code>inventionTitle:semiconductor</code>, <code>workGroup:1710</code>. Default: <code>*:*</code></td></tr>
<tr><td><b>patentNumber</b></td><td>string</td><td>No</td><td>Filter by granted patent number, e.g. <code>10047236</code></td></tr>
<tr><td><b>applicationNumber</b></td><td>string</td><td>No</td><td>Filter by patent application number, e.g. <code>14485382</code></td></tr>
<tr><td><b>examinerName</b></td><td>string</td><td>No</td><td>Filter by examiner employee number, e.g. <code>85150</code></td></tr>
<tr><td><b>startDate</b></td><td>string</td><td>No</td><td>Earliest filing date in YYYY-MM-DD format</td></tr>
<tr><td><b>endDate</b></td><td>string</td><td>No</td><td>Latest filing date in YYYY-MM-DD format</td></tr>
</tbody>
</table>

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

```json
{
  "maxItems": 10
}
````

**Example 2: Search semiconductor patents filed in 2019**

```json
{
  "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

| 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)**

```json
{
  "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)**

```json
{
  "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**

```json
{
  "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

1. **[Create a free Apify account](https://console.apify.com/sign-up?fpr=vmoqkp)** - 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.

#### 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](https://console.apify.com/sign-up?fpr=vmoqkp) 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](https://apify.com/parseforge/finra-brokercheck-scraper) | Extract broker and firm registration data from FINRA's public database |
| [FAA Aircraft Registry Scraper](https://apify.com/parseforge/faa-aircraft-registry-scraper) | Search the FAA civil aircraft registry by tail number, owner, or aircraft type |
| [OurAirports Global Airport Database Scraper](https://apify.com/parseforge/ourairports-scraper) | Export worldwide airport data including ICAO/IATA codes, coordinates, and runway details |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more public-data scrapers covering government records, legal filings, aviation, maritime, and finance datasets.

***

Need help? Visit the [Apify Discord community](https://discord.gg/jyEM2PRvMU) 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.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `criteria` (type: `string`):

Lucene-style query. Examples: '*:*' (all), 'inventionTitle:semiconductor', 'workGroup:1710', 'examinerEmployeeNumber:12345'. Use field:value syntax. Default '*:*' returns everything (newest first).

## `patentNumber` (type: `string`):

Filter by granted patent number (e.g. '10000000'). Combines with the main query.

## `applicationNumber` (type: `string`):

Filter by patent application number (e.g. '14484000'). Combines with the main query.

## `examinerName` (type: `string`):

Filter by examiner employee number. Combines with the main query.

## `startDate` (type: `string`):

Earliest filing date in YYYY-MM-DD format.

## `endDate` (type: `string`):

Latest filing date in YYYY-MM-DD format.

## Actor input object example

```json
{
  "maxItems": 10,
  "criteria": "*:*"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "criteria": "*:*"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/uspto-office-actions-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "criteria": "*:*",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/uspto-office-actions-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "criteria": "*:*"
}' |
apify call parseforge/uspto-office-actions-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/uspto-office-actions-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "USPTO Office Actions Scraper",
        "description": "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.",
        "version": "0.1",
        "x-build-id": "cJU0LDqAPBhhNb82U"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~uspto-office-actions-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-uspto-office-actions-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~uspto-office-actions-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-uspto-office-actions-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~uspto-office-actions-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-uspto-office-actions-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "criteria": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Lucene-style query. Examples: '*:*' (all), 'inventionTitle:semiconductor', 'workGroup:1710', 'examinerEmployeeNumber:12345'. Use field:value syntax. Default '*:*' returns everything (newest first)."
                    },
                    "patentNumber": {
                        "title": "Patent Number",
                        "type": "string",
                        "description": "Filter by granted patent number (e.g. '10000000'). Combines with the main query."
                    },
                    "applicationNumber": {
                        "title": "Application Number",
                        "type": "string",
                        "description": "Filter by patent application number (e.g. '14484000'). Combines with the main query."
                    },
                    "examinerName": {
                        "title": "Examiner Employee Number",
                        "type": "string",
                        "description": "Filter by examiner employee number. Combines with the main query."
                    },
                    "startDate": {
                        "title": "Filing Date From",
                        "type": "string",
                        "description": "Earliest filing date in YYYY-MM-DD format."
                    },
                    "endDate": {
                        "title": "Filing Date To",
                        "type": "string",
                        "description": "Latest filing date in YYYY-MM-DD format."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
