# USPTO Patent Assignments Scraper (`automation-lab/uspto-patent-assignments-scraper`) Actor

Search public USPTO patent assignment records by assignee, assignor, patent/application number, reel/frame, and dates.

- **URL**: https://apify.com/automation-lab/uspto-patent-assignments-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## USPTO Patent Assignments Scraper

Extract public patent ownership-transfer records from the official USPTO Assignment Center.

This actor searches USPTO patent assignment records by assignee, assignor, patent number, application number, publication number, PCT number, and reel/frame. It saves clean rows with conveyance text, parties, recordation dates, execution dates, patent identifiers, invention titles, and official document-image URLs when USPTO provides them.

Use it for IP due diligence, ownership monitoring, patent portfolio cleanup, M&A research, and competitive-intelligence workflows that need repeatable USPTO assignment data.

### What does USPTO Patent Assignments Scraper do?

- 🔎 Searches the official USPTO Assignment Center public patent endpoint.
- 🧾 Extracts assignment-level conveyance records.
- 👥 Captures assignor and assignee names.
- 🏢 Includes public assignee address fields when returned.
- 📅 Saves recordation, execution, receipt, and mail dates.
- 🧠 Adds patent/application/publication/PCT identifiers.
- 📄 Includes invention titles, inventors, filing dates, and issue dates.
- 🔗 Provides source URLs and document image URLs.
- 📦 Exports structured JSON, CSV, Excel, XML, RSS, and HTML through Apify datasets.

### Who is it for?

- ⚖️ IP attorneys checking title chains before prosecution, licensing, or litigation.
- 🏦 M&A diligence teams validating whether target-company patents were assigned, pledged, or released.
- 🤝 Patent brokers building ownership and lien histories for sale packages.
- 🧪 Competitive-intelligence teams watching patent transfers by company name.
- 🏢 Corporate legal teams monitoring recorded assignments for subsidiaries and counterparties.
- 📊 Data teams enriching internal patent databases with USPTO ownership-transfer records.

### Why use this actor?

USPTO assignment data is public, but manual Assignment Center searches are slow when you need to check many names or patent identifiers. This actor turns that workflow into a repeatable API job. You can run a small one-off search from the Apify UI or schedule recurring company-name monitoring and pull results into your legal operations stack.

### Data extracted

| Field | Description |
|---|---|
| `searchQuery` | The input query used for the record |
| `searchBy` | USPTO field used for the search |
| `resultType` | `assignment` or `summary` |
| `reelFrame` | USPTO reel/frame identifier |
| `conveyance` | Public conveyance text, such as assignment, lien, merger, or release |
| `recordationDate` | Date the assignment was recorded |
| `executionDate` | Assignor execution date when available |
| `assignors` | Assignor names and execution dates |
| `assignees` | Assignee names and public address fields |
| `applicationNumber` | USPTO application number |
| `patentNumber` | Patent number |
| `publicationNumber` | Publication number |
| `pctNumber` | PCT number |
| `inventionTitle` | Patent title returned by USPTO |
| `inventors` | Inventor names returned by USPTO |
| `imageUrl` | Official assignment document-image URL when available |
| `sourceUrl` | Search URL for traceability |
| `rawRecordId` | Stable internal ID derived from source record identifiers |
| `scrapedAt` | Timestamp when the row was saved |

### How much does it cost to scrape USPTO patent assignments?

This actor uses pay-per-event pricing:

- Start event: $0.005 per run.
- Result event: tiered per saved record.
- BRONZE result price: $0.000023357 per saved record.
- Higher-volume tiers decrease down to the platform floor of $0.00001 per saved record.

Apify shows the exact price before you start a run. You control cost with `maxItems`.

### Input options

#### `queries`

An array of searches. Each search has:

- `query` — name, number, or reel/frame.
- `searchBy` — USPTO search field.

Supported fields:

- `exactAssigneeName`
- `partialAssigneeName`
- `exactAssignorName`
- `partialAssignorName`
- `applicationNumber`
- `patentNumber`
- `publicationNumber`
- `pctNumber`
- `reelFrame`

#### `maxItems`

Maximum rows to save across all searches. Keep this low for testing and raise it for production jobs.

#### `startDate` and `endDate`

Optional recordation-date filters in `YYYY-MM-DD` format. These are applied after USPTO returns assignment records.

#### `includeSummaryOnlyResults`

Partial name searches can return patent-property summary rows without reel/frame assignment details. Keep this enabled for discovery workflows, or disable it when you only want assignment rows.

### Example input: patent number

```json
{
  "queries": [
    { "query": "7379963", "searchBy": "patentNumber" }
  ],
  "maxItems": 25
}
````

### Example input: assignee monitoring

```json
{
  "queries": [
    { "query": "GOOGLE", "searchBy": "exactAssigneeName" },
    { "query": "MICROSOFT", "searchBy": "exactAssigneeName" }
  ],
  "maxItems": 200,
  "startDate": "2020-01-01"
}
```

### Example input: reel/frame lookup

```json
{
  "queries": [
    { "query": "11235/906", "searchBy": "reelFrame" }
  ],
  "maxItems": 10
}
```

### Example output

```json
{
  "searchQuery": "7379963",
  "searchBy": "patentNumber",
  "resultType": "assignment",
  "reelFrame": "11235/906",
  "conveyance": "ASSIGNMENT OF ASSIGNOR'S INTEREST",
  "recordationDate": "11/06/2000",
  "assignors": [{ "name": "KHARE, ROHIT", "executionDate": "07/20/2000" }],
  "assignees": [{ "name": "KNOWNOW, INC.", "country": "UNITED STATES" }],
  "applicationNumber": "09615663",
  "patentNumber": "7379963",
  "inventionTitle": "DELIVERY OF ANY TYPE OF INFORMATION TO ANYONE ANYTIME ANYWHERE",
  "imageUrl": "https://assignmentcenter.uspto.gov/ipas/search/api/v2/public/download/patent/11235/906"
}
```

### How to run

1. Open the actor on Apify.
2. Add one or more USPTO assignment searches.
3. Choose a `maxItems` limit.
4. Start the run.
5. Download the dataset as JSON, CSV, Excel, XML, RSS, or HTML.
6. Use the run log to review which queries were fetched.

### Tips for better results

- Use exact assignee or exact assignor searches when you need full assignment records.
- Use partial-name searches for discovery, then rerun exact names for deeper assignment detail.
- Use patent or application numbers when validating one asset.
- Use reel/frame when you already have a specific assignment citation.
- Keep company names in the same style you see in USPTO records.
- Set `maxItems` high enough for large corporate portfolios.

### Integrations

You can connect results to:

- IP docketing systems for ownership-history enrichment.
- M\&A diligence spreadsheets.
- Internal patent data warehouses.
- Slack or email alerts for scheduled company-name monitoring.
- CRM or deal rooms for patent brokerage workflows.
- BI dashboards tracking assignment volume over time.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/uspto-patent-assignments-scraper').call({
  queries: [{ query: '7379963', searchBy: 'patentNumber' }],
  maxItems: 25,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/uspto-patent-assignments-scraper').call(run_input={
    'queries': [{'query': '7379963', 'searchBy': 'patentNumber'}],
    'maxItems': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### API usage with cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~uspto-patent-assignments-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"queries":[{"query":"7379963","searchBy":"patentNumber"}],"maxItems":25}'
```

### MCP integration

Use the Apify MCP server to call this actor from AI tools:

```bash
npx -y @apify/actors-mcp-server --actors automation-lab/uspto-patent-assignments-scraper
```

MCP URL:

```text
https://mcp.apify.com/?tools=automation-lab/uspto-patent-assignments-scraper
```

Claude Desktop JSON configuration:

```json
{
  "mcpServers": {
    "apify-uspto-assignments": {
      "command": "npx",
      "args": ["-y", "@apify/actors-mcp-server", "--actors", "automation-lab/uspto-patent-assignments-scraper"],
      "env": {
        "APIFY_TOKEN": "YOUR_APIFY_TOKEN"
      }
    }
  }
}
```

Example prompts:

- "Find USPTO patent assignments for patent 7379963 and summarize the ownership chain."
- "Monitor exact assignee GOOGLE and return newly recorded assignments."
- "Look up reel/frame 11235/906 and extract conveyance, parties, and document URL."

### Scheduling

Schedule this actor to run daily, weekly, or monthly for recurring company-name monitoring. Use exact assignee names and a date filter to keep scheduled runs focused.

### Quality notes

The actor uses the official public USPTO Assignment Center API. No browser automation or proxy is required for normal public patent-assignment searches.

### Limitations

- Partial-name searches may return summary rows without assignment conveyance details.
- USPTO data can contain historical spelling variations and entity-name changes.
- Date filters are applied after records are returned by USPTO.
- The actor does not provide legal advice or validate title completeness.
- Availability depends on the public USPTO Assignment Center service.

### FAQ

#### Can this actor prove patent ownership?

No. It extracts public USPTO assignment records for research and diligence. Legal conclusions about title, liens, releases, or enforceability should be reviewed by qualified counsel.

#### Does it need a USPTO login?

No. The actor uses public USPTO Assignment Center patent assignment search endpoints.

### Troubleshooting

#### Why did I get summary rows instead of assignment rows?

Partial-name searches can return property summaries. Use exact assignee or exact assignor searches for assignment rows with reel/frame and conveyance data.

#### Why are some address fields empty?

The actor only returns public fields provided by USPTO for that record. Historical records often have sparse address metadata.

#### Why does a company name have fewer results than expected?

Try alternate legal names, former names, punctuation variants, and subsidiaries. Assignment records often use exact legal entity names.

### Legality

This actor extracts public USPTO assignment records. Users are responsible for using the data lawfully, respecting USPTO terms, and complying with privacy, professional-responsibility, and jurisdiction-specific rules.

### Related scrapers

Other Automation Lab actors that may fit adjacent workflows:

- https://apify.com/automation-lab/uspto-trademark-status-checker
- https://apify.com/automation-lab/company-research-scraper
- https://apify.com/automation-lab/website-contact-finder

### Changelog

#### 0.1

- Initial public USPTO patent assignment search implementation.
- Supports name, patent/application/publication/PCT number, and reel/frame searches.
- Saves assignment parties, dates, conveyance, patent identifiers, and source URLs.

### Support

If a run does not return the record you expected, include the exact USPTO query, search field, run ID, and a link to the public USPTO result you are comparing against.

# Actor input Schema

## `queries` (type: `array`):

One or more USPTO Assignment Center searches. Use exact name searches for assignment records with reel/frame and conveyance data; partial name searches can return summary-only patent matches.

## `query` (type: `string`):

Convenience field used when the searches array is empty.

## `searchBy` (type: `string`):

Field for the single query shortcut.

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

Maximum dataset rows to save across all searches.

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

Optional recordation-date filter in YYYY-MM-DD format. Applied to assignment records after USPTO returns them.

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

Optional recordation-date filter in YYYY-MM-DD format. Applied to assignment records after USPTO returns them.

## `includeSummaryOnlyResults` (type: `boolean`):

Partial name searches may return patent/property summaries without assignment conveyance details. Keep enabled to capture those discovery rows.

## Actor input object example

```json
{
  "queries": [
    {
      "query": "GOOGLE",
      "searchBy": "exactAssigneeName"
    }
  ],
  "query": "GOOGLE",
  "searchBy": "exactAssigneeName",
  "maxItems": 20,
  "includeSummaryOnlyResults": true
}
```

# Actor output Schema

## `overview` (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 = {
    "queries": [
        {
            "query": "GOOGLE",
            "searchBy": "exactAssigneeName"
        }
    ],
    "query": "GOOGLE",
    "searchBy": "exactAssigneeName",
    "maxItems": 20,
    "includeSummaryOnlyResults": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/uspto-patent-assignments-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 = {
    "queries": [{
            "query": "GOOGLE",
            "searchBy": "exactAssigneeName",
        }],
    "query": "GOOGLE",
    "searchBy": "exactAssigneeName",
    "maxItems": 20,
    "includeSummaryOnlyResults": True,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/uspto-patent-assignments-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 '{
  "queries": [
    {
      "query": "GOOGLE",
      "searchBy": "exactAssigneeName"
    }
  ],
  "query": "GOOGLE",
  "searchBy": "exactAssigneeName",
  "maxItems": 20,
  "includeSummaryOnlyResults": true
}' |
apify call automation-lab/uspto-patent-assignments-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "USPTO Patent Assignments Scraper",
        "description": "Search public USPTO patent assignment records by assignee, assignor, patent/application number, reel/frame, and dates.",
        "version": "0.1",
        "x-build-id": "MadUnCMSkK0stYC3i"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~uspto-patent-assignments-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-uspto-patent-assignments-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/automation-lab~uspto-patent-assignments-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-uspto-patent-assignments-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/automation-lab~uspto-patent-assignments-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-uspto-patent-assignments-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": {
                    "queries": {
                        "title": "🔎 Patent assignment searches",
                        "type": "array",
                        "description": "One or more USPTO Assignment Center searches. Use exact name searches for assignment records with reel/frame and conveyance data; partial name searches can return summary-only patent matches.",
                        "items": {
                            "type": "object",
                            "required": [
                                "query"
                            ],
                            "properties": {
                                "query": {
                                    "title": "Query",
                                    "type": "string",
                                    "editor": "textfield",
                                    "description": "Name, patent/application/publication/PCT number, or reel/frame value such as 11235/906."
                                },
                                "searchBy": {
                                    "title": "Search by",
                                    "type": "string",
                                    "description": "USPTO Assignment Center search field.",
                                    "default": "exactAssigneeName",
                                    "enum": [
                                        "exactAssigneeName",
                                        "partialAssigneeName",
                                        "exactAssignorName",
                                        "partialAssignorName",
                                        "applicationNumber",
                                        "patentNumber",
                                        "publicationNumber",
                                        "pctNumber",
                                        "reelFrame"
                                    ],
                                    "enumTitles": [
                                        "Exact assignee name",
                                        "Partial assignee name",
                                        "Exact assignor name",
                                        "Partial assignor name",
                                        "Application number",
                                        "Patent number",
                                        "Publication number",
                                        "PCT number",
                                        "Reel/frame"
                                    ]
                                }
                            }
                        }
                    },
                    "query": {
                        "title": "Single query (optional)",
                        "type": "string",
                        "description": "Convenience field used when the searches array is empty."
                    },
                    "searchBy": {
                        "title": "Single search field",
                        "enum": [
                            "exactAssigneeName",
                            "partialAssigneeName",
                            "exactAssignorName",
                            "partialAssignorName",
                            "applicationNumber",
                            "patentNumber",
                            "publicationNumber",
                            "pctNumber",
                            "reelFrame"
                        ],
                        "type": "string",
                        "description": "Field for the single query shortcut.",
                        "default": "exactAssigneeName"
                    },
                    "maxItems": {
                        "title": "Maximum records",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum dataset rows to save across all searches.",
                        "default": 100
                    },
                    "startDate": {
                        "title": "Recorded from",
                        "type": "string",
                        "description": "Optional recordation-date filter in YYYY-MM-DD format. Applied to assignment records after USPTO returns them."
                    },
                    "endDate": {
                        "title": "Recorded until",
                        "type": "string",
                        "description": "Optional recordation-date filter in YYYY-MM-DD format. Applied to assignment records after USPTO returns them."
                    },
                    "includeSummaryOnlyResults": {
                        "title": "Include summary-only matches",
                        "type": "boolean",
                        "description": "Partial name searches may return patent/property summaries without assignment conveyance details. Keep enabled to capture those discovery rows.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
