# SEC Form 4 Insider Trading Tracker: Every Insider Buy and Sell (`scrapemint/sec-form4-insider-tracker`) Actor

Track SEC Form 4 insider trading filings from EDGAR. Filter by ticker, CIK, transaction code, insider role, min value, and age. Returns deduped JSON of every insider buy, sell, grant, and option exercise. Official EDGAR APIs, no HTML scraping.

- **URL**: https://apify.com/scrapemint/sec-form4-insider-tracker.md
- **Developed by:** [Kennedy Mutisya](https://apify.com/scrapemint) (community)
- **Categories:** Automation, Developer tools, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## SEC Form 4 Insider Trading Tracker: Every Insider Buy and Sell from EDGAR

Track SEC Form 4 insider trading filings by ticker, CIK, transaction code, insider role, min value, and age. Every insider stock transaction (buys, sells, grants, option exercises) lands in your Apify dataset as a clean JSON row. Deduped across runs. Built on the official SEC EDGAR APIs. Pay per item.

**Searches this actor ranks for:** SEC Form 4 scraper, insider trading tracker, insider buying alert, SEC EDGAR Form 4 API, insider transactions by ticker, insider trading JSON feed, Form 4 webhook, cluster buy scanner, insider sell alert.

---

### How it works in 30 seconds

```mermaid
flowchart LR
    A[Ticker or CIK] --> B[EDGAR Form 4 XML]
    B --> C[Filter: code, role,<br/>value, age]
    C --> D[Deduped JSON<br/>one row per transaction]
    D --> E[Webhook or<br/>Google Sheet]
````

Paste a ticker. Pick filters. Get a clean JSON row for every insider transaction inside every Form 4. That is the whole product.

***

### Who this insider trading tracker is for

| You are a... | You use this to... |
|---|---|
| **Retail trader** | Catch cluster buys from directors and officers, often a stronger signal than one big purchase. |
| **Quant researcher** | Build a clean insider transaction dataset straight from EDGAR without paying Quiver or 2iQ. |
| **Newsletter writer** | Pipe the feed into a daily digest of notable open market purchases over $100k. |
| **Hedge fund analyst** | Monitor portfolio names for unusual insider selling or 10b5 1 plan exits. |
| **Fintech builder** | Back an insider buying widget with official SEC data, no licensing fee. |

***

### How to scrape SEC Form 4 filings

```mermaid
flowchart TD
    A[Tickers in] --> B[Resolve to CIK<br/>via EDGAR ticker map]
    B --> C[Pull submissions JSON<br/>filter form type 4]
    C --> D[Fetch Form 4 XML<br/>parse transactions]
    D --> E[Apply filters<br/>code, role, value]
    E --> F[Push to dataset<br/>dedupe by accession]
```

1. Pass tickers or CIKs.
2. Tickers resolve to CIKs via `company_tickers.json`.
3. The actor pulls `data.sec.gov/submissions/CIK{10digit}.json` and filters for form type `4`.
4. Each filing's XML is parsed into per transaction rows (direct stock and derivative).
5. Filters apply, matches push to the dataset, accession numbers go to a key value store for next run.

Schedule every hour on Apify Scheduler for a live feed. EDGAR is rate limited at 10 requests per second and requires a contact email in the User-Agent.

***

### Quick start

**Any insider activity on 3 megacaps this week:**

```json
{
  "tickers": ["AAPL", "NVDA", "TSLA"],
  "maxAgeHours": 168,
  "userAgent": "MyCompany Research you@yourcompany.com"
}
```

**Open market purchases over $100k from officers and directors:**

```json
{
  "tickers": ["PLTR", "HOOD", "COIN"],
  "transactionCodes": ["P"],
  "reporterRoles": ["officer", "director"],
  "minTransactionValue": 100000
}
```

**Direct stock only, skip option grants and RSU vesting:**

```json
{
  "tickers": ["META"],
  "transactionCodes": ["P", "S"],
  "includeDerivative": false
}
```

Run it from the command line:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapemint~sec-form4-insider-tracker/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"tickers":["NVDA"],"transactionCodes":["P","S"],"maxAgeHours":72}'
```

***

### Form 4 transaction codes cheat sheet

| Code | Meaning | Signal |
|---|---|---|
| **P** | Open market purchase | Insider bought with own money. Highest signal. |
| **S** | Open market sale | Insider sold. Often scheduled via 10b5 1. |
| **A** | Grant or award | Company gave shares. Not a buy decision. |
| **F** | Tax withholding on vesting | Not a real sell. |
| **M** | Option exercise | Converted options to stock. |
| **X** | In or at the money option exercise | Converted valuable options. |
| **G** | Bona fide gift | Transfer, not economic. |

The full description for every code is returned in `transaction.codeDescription`.

***

### Insider trading tracker vs the alternatives

| | openinsider.com | Quiver / 2iQ | **This actor** |
|---|---|---|---|
| Pricing | Free, HTML only | $100 to $2500 / month | Pay per item, first 30 free |
| Source | EDGAR via scrape | EDGAR + enrichment | EDGAR direct, official API |
| Output | HTML table | Their dashboard | JSON, CSV, Excel, webhook |
| Dedup | You build it | Vendor owned | Yours, in key value store |
| Schedule | You | Hourly | Every 1 minute |
| Derivative breakout | Mixed | Yes | Yes, separate `kind` field |

***

### Sample output

```json
{
  "transactionId": "0000320193-26-000042#non_derivative#0",
  "accessionNumber": "0000320193-26-000042",
  "filingDate": "2026-04-18",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000042/wk-form4.xml",
  "kind": "non_derivative",
  "issuer": { "cik": "320193", "name": "Apple Inc.", "ticker": "AAPL" },
  "insider": {
    "name": "COOK TIMOTHY D",
    "title": "Chief Executive Officer",
    "isDirector": true,
    "isOfficer": true
  },
  "transaction": {
    "date": "2026-04-17",
    "code": "S",
    "codeDescription": "Open market or private sale",
    "shares": 50000,
    "pricePerShare": 218.42,
    "totalValue": 10921000,
    "securityTitle": "Common Stock"
  }
}
```

Every field drops straight into a trading bot, Google Sheet, Slack channel, or Notion database.

***

### Pricing

First 30 transactions per run are free. After that you pay per extracted transaction. A 200 item run lands well under $1 on the Apify free plan.

***

### FAQ

**How do I track insider trading by ticker?**
Paste the ticker into `tickers`. The actor resolves it to a CIK via EDGAR's public ticker map, pulls the filing history, and parses every Form 4 into transaction rows.

**What is an SEC Form 4 filing?**
A statement that a company insider (officer, director, or 10% owner) must file within two business days of any equity transaction. Each filing contains one or more direct or derivative security transactions.

**What is the difference between code P and code A?**
**P** is an open market purchase with the insider's own money, the strongest bullish signal. **A** is a grant or award: the company handed shares over as compensation. An **A** is not a conviction buy.

**How do I filter option exercises out of my buy feed?**
Set `transactionCodes` to `["P"]`. You only see open market purchases. Exclude `A`, `M`, `F`, `X` to skip grants, exercises, and tax withholdings.

**Why do I need a User-Agent with an email?**
SEC EDGAR requires it. Without a valid email the endpoints return HTTP 403. Default is set but replace it with your own.

**Does it dedupe across runs?**
Yes. Accession numbers are stored under `SEEN_IDS` in a named key value store. Every run skips seen accessions. Set `dedupe: false` to disable.

**Can I monitor a private company with a CIK but no ticker?**
Yes. Pass the CIK in `ciks`. Works for any EDGAR filer.

**Is scraping SEC EDGAR allowed?**
Yes. EDGAR is public and explicitly permits programmatic access if you set a descriptive User-Agent and respect the 10 req/sec limit. This actor uses the official JSON and XML endpoints. No HTML scraping.

***

### Related Scrapemint actors

- **GitHub Issue Monitor** for devtool category mentions and bug reports
- **Stack Overflow Lead Monitor** for dev question tracking by tag
- **Hacker News Scraper** for stories and comments by keyword
- **Reddit Lead Monitor** for subreddit and brand mention tracking
- **Product Hunt Launch Tracker** for competitor launch monitoring
- **Upwork Opportunity Alert** for freelance lead generation
- **Trustpilot Brand Reputation** for DTC and ecommerce brands
- **Amazon Review Intelligence** for product review mining

Stack these to cover every public financial, developer, and customer conversation surface one portfolio touches.

# Actor input Schema

## `tickers` (type: `array`):

Stock tickers whose insider filings you want to pull. Example: AAPL, TSLA, NVDA. The actor resolves each ticker to a CIK using EDGAR's public ticker map. Leave empty if you are using CIKs below.

## `ciks` (type: `array`):

SEC Central Index Keys. Use these if you want companies that do not have a single public ticker. Leading zeros are optional. Example: 320193 for Apple.

## `transactionCodes` (type: `array`):

Only keep transactions with these Form 4 codes. P = open market purchase, S = open market sale, A = grant or award, F = tax withholding, M = option exercise, D = disposition, G = gift. Leave empty to keep every code.

## `reporterRoles` (type: `array`):

Only keep filings where the insider matches any of these roles. Options: director, officer, ten\_percent\_owner, other. Leave empty to keep every role.

## `minTransactionValue` (type: `integer`):

Drop transactions where shares times price per share is below this floor. Set to 0 to keep every transaction. Useful when you only care about large insider buys.

## `minShares` (type: `integer`):

Drop transactions with fewer than this many shares. Set to 0 to keep everything.

## `includeDerivative` (type: `boolean`):

Keep derivative security rows: options grants, RSU vesting, warrants, convertibles. Turn off if you only want direct stock transactions.

## `includeNonDerivative` (type: `boolean`):

Keep direct stock transactions. Almost always yes. Turn off only if you want to isolate derivative activity.

## `maxAgeHours` (type: `integer`):

Skip filings submitted more than this many hours ago. Default is 168 hours (one week). Set to 0 to keep every filing in EDGAR's recent window (last ~1000 filings per company).

## `maxItemsPerSource` (type: `integer`):

Per ticker cap on Form 4 filings processed. Each filing can expand to multiple transaction rows. Controls how deep the actor looks back for a single company.

## `maxItemsTotal` (type: `integer`):

Hard cap on transactions pushed to the dataset per run. Controls total cost.

## `dedupe` (type: `boolean`):

Skip Form 4 accession numbers pushed on previous runs. Stored in the key value store under SEEN\_IDS. Turn off to return every matching transaction every run.

## `userAgent` (type: `string`):

SEC requires a descriptive User-Agent with a contact email. Example: MyCompany Research research@mycompany.com. Without a valid email the EDGAR endpoints return 403.

## `proxyConfiguration` (type: `object`):

Apify proxy settings. EDGAR is public and rate limited at 10 req/sec per User-Agent, not per IP, so a proxy is rarely needed. Add one if you trigger secondary limits.

## Actor input object example

```json
{
  "tickers": [
    "AAPL",
    "NVDA"
  ],
  "ciks": [],
  "transactionCodes": [],
  "reporterRoles": [],
  "minTransactionValue": 0,
  "minShares": 0,
  "includeDerivative": true,
  "includeNonDerivative": true,
  "maxAgeHours": 168,
  "maxItemsPerSource": 50,
  "maxItemsTotal": 200,
  "dedupe": true,
  "userAgent": "Scrapemint Form4 Tracker research@scrapemint.com"
}
```

# 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 = {
    "tickers": [
        "AAPL",
        "NVDA"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/sec-form4-insider-tracker").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 = { "tickers": [
        "AAPL",
        "NVDA",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/sec-form4-insider-tracker").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 '{
  "tickers": [
    "AAPL",
    "NVDA"
  ]
}' |
apify call scrapemint/sec-form4-insider-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemint/sec-form4-insider-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC Form 4 Insider Trading Tracker: Every Insider Buy and Sell",
        "description": "Track SEC Form 4 insider trading filings from EDGAR. Filter by ticker, CIK, transaction code, insider role, min value, and age. Returns deduped JSON of every insider buy, sell, grant, and option exercise. Official EDGAR APIs, no HTML scraping.",
        "version": "0.1",
        "x-build-id": "ujXdFsrCjCup9tzdE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapemint~sec-form4-insider-tracker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapemint-sec-form4-insider-tracker",
                "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/scrapemint~sec-form4-insider-tracker/runs": {
            "post": {
                "operationId": "runs-sync-scrapemint-sec-form4-insider-tracker",
                "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/scrapemint~sec-form4-insider-tracker/run-sync": {
            "post": {
                "operationId": "run-sync-scrapemint-sec-form4-insider-tracker",
                "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": {
                    "tickers": {
                        "title": "Tickers to watch",
                        "type": "array",
                        "description": "Stock tickers whose insider filings you want to pull. Example: AAPL, TSLA, NVDA. The actor resolves each ticker to a CIK using EDGAR's public ticker map. Leave empty if you are using CIKs below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ciks": {
                        "title": "CIKs to watch",
                        "type": "array",
                        "description": "SEC Central Index Keys. Use these if you want companies that do not have a single public ticker. Leading zeros are optional. Example: 320193 for Apple.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "transactionCodes": {
                        "title": "Transaction codes filter",
                        "type": "array",
                        "description": "Only keep transactions with these Form 4 codes. P = open market purchase, S = open market sale, A = grant or award, F = tax withholding, M = option exercise, D = disposition, G = gift. Leave empty to keep every code.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "reporterRoles": {
                        "title": "Insider role filter",
                        "type": "array",
                        "description": "Only keep filings where the insider matches any of these roles. Options: director, officer, ten_percent_owner, other. Leave empty to keep every role.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "minTransactionValue": {
                        "title": "Minimum transaction value (USD)",
                        "minimum": 0,
                        "maximum": 1000000000,
                        "type": "integer",
                        "description": "Drop transactions where shares times price per share is below this floor. Set to 0 to keep every transaction. Useful when you only care about large insider buys.",
                        "default": 0
                    },
                    "minShares": {
                        "title": "Minimum shares",
                        "minimum": 0,
                        "maximum": 1000000000,
                        "type": "integer",
                        "description": "Drop transactions with fewer than this many shares. Set to 0 to keep everything.",
                        "default": 0
                    },
                    "includeDerivative": {
                        "title": "Include derivative transactions",
                        "type": "boolean",
                        "description": "Keep derivative security rows: options grants, RSU vesting, warrants, convertibles. Turn off if you only want direct stock transactions.",
                        "default": true
                    },
                    "includeNonDerivative": {
                        "title": "Include non derivative transactions",
                        "type": "boolean",
                        "description": "Keep direct stock transactions. Almost always yes. Turn off only if you want to isolate derivative activity.",
                        "default": true
                    },
                    "maxAgeHours": {
                        "title": "Max age in hours",
                        "minimum": 0,
                        "maximum": 17520,
                        "type": "integer",
                        "description": "Skip filings submitted more than this many hours ago. Default is 168 hours (one week). Set to 0 to keep every filing in EDGAR's recent window (last ~1000 filings per company).",
                        "default": 168
                    },
                    "maxItemsPerSource": {
                        "title": "Max items per company",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Per ticker cap on Form 4 filings processed. Each filing can expand to multiple transaction rows. Controls how deep the actor looks back for a single company.",
                        "default": 50
                    },
                    "maxItemsTotal": {
                        "title": "Maximum items per run",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on transactions pushed to the dataset per run. Controls total cost.",
                        "default": 200
                    },
                    "dedupe": {
                        "title": "Deduplicate across runs",
                        "type": "boolean",
                        "description": "Skip Form 4 accession numbers pushed on previous runs. Stored in the key value store under SEEN_IDS. Turn off to return every matching transaction every run.",
                        "default": true
                    },
                    "userAgent": {
                        "title": "User-Agent (required by SEC)",
                        "type": "string",
                        "description": "SEC requires a descriptive User-Agent with a contact email. Example: MyCompany Research research@mycompany.com. Without a valid email the EDGAR endpoints return 403.",
                        "default": "Scrapemint Form4 Tracker research@scrapemint.com"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy settings. EDGAR is public and rate limited at 10 req/sec per User-Agent, not per IP, so a proxy is rarely needed. Add one if you trigger secondary limits."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
