# NY Attorney General Charities Bureau Registry Scraper (`crawlerbros/ny-charities-bureau-registry-scraper`) Actor

Search the NY Attorney General's Charities Bureau registry by organization name, registration number, EIN, city, or state. Returns registration status, EIN, address, and links to filings, dissolution/merger transactions, and Pennies for Charity fundraising reports.

- **URL**: https://apify.com/crawlerbros/ny-charities-bureau-registry-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## NY Attorney General Charities Bureau Registry Scraper

Scrape the **New York Attorney General's Charities Bureau** public registry. Search registered organizations by name, registration number, EIN, city, or state; look up dissolution and merger transactions; or pull multi-year fundraising campaign reports from Pennies for Charity. Returns registration status/category, EIN, full address, and direct links to registration documents, annual filings, and financial reports. Pure JSON API, no login required.

### What this actor does

- **Three modes:** `registrySearch` (organizations), `transactionSearch` (dissolutions & mergers), `penniesForCharity` (fundraising campaign financials)
- **Full detail enrichment:** every `registrySearch` match is enriched with address, county, website, and categorized document links from its registry detail page
- **Financial enrichment:** every `penniesForCharity` match is enriched with gross receipts, net to charity, uncollected pledges, and percent to charity from that filing's detail record
- **Document links:** direct download URLs for registration statements, annual filings, IRS reports, and transaction filings, where the Bureau makes them downloadable
- **Empty fields are omitted** — a record only contains fields the Bureau actually published for that organization/transaction/report

### Output: per organization (mode = `registrySearch`)

- `orgName` — registered organization name
- `orgID` — Charities Bureau registration number (format `NN-NN-NN`)
- `ein` — Federal tax ID
- `regType` — `CLT` / `CRT` / `Estates` / `NFP`
- `regStatute` — registration category (e.g. `Exempt`, `EPTL`, `Article 7-A`, `Dual`)
- `address`, `address2`, `city`, `state`, `zip`, `country`
- `county`
- `website`
- `registrationDocuments[]` — `{ displayName, received, downloadUrl }`
- `otherFiledDocuments[]` — `{ displayName, received, downloadUrl }`
- `annualFilingDocuments[]` — `{ displayName, fiscalYearEnd, received, downloadUrl }`
- `sourceUrl` — canonical registry detail-page URL
- `recordType: "charityOrganization"`, `scrapedAt`

### Output: per transaction (mode = `transactionSearch`)

- `transactionType` — `Dissolution` or `NPCL 510/511`
- `oagNumber` — Office of the Attorney General case number
- `orgName`
- `address` — submitting attorney/firm address
- `approvalDate`
- `submittedBy` — filing attorney
- `documentUrl` — direct link to the filed document, when available
- `sourceUrl`
- `recordType: "charityTransaction"`, `scrapedAt`

### Output: per fundraising report (mode = `penniesForCharity`)

- `orgId` — Charities Bureau registration number
- `orgName`
- `fundraiserName` — professional fundraiser conducting the campaign
- `fundraiserOrgId`
- `filingYear`
- `reportType` — e.g. `Interim`, `Closing`
- `geoArea`, `geoAreaName` — New York region code and name
- `grossReceipts`, `netToCharity`, `uncollectedPledges` — USD
- `percentToCharity`
- `campaignReport` — campaign label (e.g. `All Campaigns`, `Telemarketing`)
- `sourceUrl`
- `recordType: "penniesForCharityReport"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string (select) | `registrySearch` | `registrySearch` / `transactionSearch` / `penniesForCharity` |
| `orgName` | string | – | Organization name, partial match (modes: registrySearch, transactionSearch). If mode=registrySearch and every filter is left empty, falls back to a demo name (`red cross`) |
| `orgId` | string | – | Registration number `NN-NN-NN` (mode=registrySearch) |
| `ein` | string | – | EIN digits (mode=registrySearch) |
| `regType` | string (select) | – | `CLT` / `CRT` / `Estates` / `NFP` (mode=registrySearch) |
| `city` | string | – | Registered city (mode=registrySearch) |
| `state` | string (select) | – | Registered state (mode=registrySearch) |
| `oagNumber` | string | – | OAG case number (mode=transactionSearch) |
| `transactionType` | string (select) | – | `Dissolution` / `NPCL 510/511` (mode=transactionSearch) |
| `approvalDateFrom` / `approvalDateTo` | string (date) | – | ISO date range (mode=transactionSearch) |
| `pfcOrgName` | string | – | Organization name, partial match (mode=penniesForCharity) |
| `pfcFundraiserName` | string | – | Fundraiser name, partial match (mode=penniesForCharity) |
| `pfcFilingYear` | string | – | 4-digit year (mode=penniesForCharity) |
| `pfcGeoArea` | string (select) | – | New York region 1–7 (mode=penniesForCharity) |
| `maxItems` | integer | `20` | Hard cap on emitted records (1–300) |

At least one filter field must be supplied per mode. `orgName` and `pfcFilingYear` show an example value in the input form for convenience, but leaving them blank does not silently narrow your search — omit them entirely to search by your other filters alone (e.g. `state` + `regType` with no `orgName`).

#### Example: registry search by organization name

```json
{
  "mode": "registrySearch",
  "orgName": "red cross",
  "maxItems": 10
}
````

#### Example: registry search by EIN

```json
{
  "mode": "registrySearch",
  "ein": "530196605"
}
```

#### Example: dissolutions approved in a date range, for organizations matching a name

```json
{
  "mode": "transactionSearch",
  "orgName": "foundation",
  "transactionType": "Dissolution",
  "approvalDateFrom": "2020-01-01",
  "approvalDateTo": "2020-12-31",
  "maxItems": 20
}
```

#### Example: Pennies for Charity report by filing year and region

```json
{
  "mode": "penniesForCharity",
  "pfcFilingYear": "2024",
  "pfcGeoArea": "6",
  "maxItems": 25
}
```

### Use cases

- **Donor due diligence** — verify a charity's registration status, EIN, and address before donating
- **Compliance / grants administration** — confirm a grantee's Charities Bureau registration and filing history
- **Fundraising oversight** — analyze professional fundraiser campaigns and the percentage of funds reaching charities
- **Legal / regulatory research** — track charity dissolutions and asset-transfer transactions over time
- **Nonprofit sector analysis** — build regional or category-level datasets of registered New York charities

### FAQ

**What is the data source?**
The actor calls the public JSON API behind charities-search.ag.ny.gov, operated by the New York State Office of the Attorney General, Charities Bureau. It is not affiliated with the OAG.

**Does registration in this database mean an organization is IRS tax-exempt?**
No. Registration with the Charities Bureau is separate from federal tax-exempt status, which is determined by the IRS. The Bureau's own portal carries this same disclaimer.

**Does `penniesForCharity` support partial organization/fundraiser names?**
Yes — `pfcOrgName` and `pfcFundraiserName` perform the same case-insensitive substring match as `orgName` in the other two modes (e.g. `pfcOrgName: "American Cancer"` matches "American Cancer Society Inc"). All three modes behave the same way here; this mirrors the upstream API's own matching behavior in every mode, not a limitation added by this actor.

**Why do some organizations have no address, county, or website?**
The Charities Bureau only publishes what the organization itself filed. Trusts and estates in particular often have minimal address data on file.

**How far back does Pennies for Charity data go?**
The Bureau's dataset generally covers fundraising campaigns from the mid-2000s onward; pre-2017 reports are limited to telemarketing campaigns, which the source itself documents.

**Does this actor need a login, cookies, or proxy?**
No. The Charities Bureau search API is fully public. A proxy is only used automatically as a fallback if the source starts blocking direct requests.

**Why does `transactionSearch` sometimes return 0 results even when I know a match exists?**
The Charities Bureau API applies stricter anti-scraping filtering to "browse all" `transactionSearch` queries that have no `orgName` filter (e.g. `transactionType` and/or a date range alone) — it silently returns an empty result (HTTP 200, no records) to automated/cloud traffic for these broad queries specifically, even after the actor's automatic proxy retry. The identical query returns full results from a residential connection. This is upstream's own restriction, not a bug in the actor. **Always pair `transactionType`/date-range filters with `orgName`** for reliable results; narrow organization-based lookups are unaffected.

# Actor input Schema

## `mode` (type: `string`):

Which Charities Bureau dataset to search.

## `orgName` (type: `string`):

Partial/substring match, case-insensitive. Leave empty to search by other filters only (e.g. state, city, regType) without narrowing by name. For mode=transactionSearch specifically, the upstream API applies stricter anti-scraping filtering to broad queries with no `orgName` at all (e.g. transactionType/date-range alone) and may return 0 results even when matches exist -- pairing with `orgName` is recommended for reliable results in that mode. If mode=registrySearch and every filter is left empty, the actor falls back to a demo name ("red cross") so the daily test run still returns data.

## `orgId` (type: `string`):

NY Charities Bureau registration number, format `NN-NN-NN` (e.g. `11-30-97`).

## `ein` (type: `string`):

Federal tax ID, digits only (e.g. `530196605`).

## `regType` (type: `string`):

Filter by registration category.

## `city` (type: `string`):

Filter by the organization's registered city.

## `state` (type: `string`):

Filter by the organization's registered state.

## `oagNumber` (type: `string`):

Office of the Attorney General case/matter number (e.g. `OAG-AL-2020-305`).

## `transactionType` (type: `string`):

Filter by transaction category.

## `approvalDateFrom` (type: `string`):

ISO date `YYYY-MM-DD`. Filters transactions approved on/after this date.

## `approvalDateTo` (type: `string`):

ISO date `YYYY-MM-DD`. Filters transactions approved on/before this date.

## `pfcOrgName` (type: `string`):

Case-insensitive substring match (e.g. `American Cancer` matches `American Cancer Society Inc`).

## `pfcFundraiserName` (type: `string`):

Case-insensitive substring match.

## `pfcFilingYear` (type: `string`):

4-digit calendar year (e.g. `2024`). Leave empty to search by other filters only (e.g. organization or fundraiser name) without narrowing by year.

## `pfcGeoArea` (type: `string`):

Filter by New York region.

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

Hard cap on emitted records. registrySearch and penniesForCharity fetch one detail page per result, so keep this modest for broad searches.

## Actor input object example

```json
{
  "mode": "registrySearch",
  "orgName": "red cross",
  "regType": "",
  "state": "",
  "transactionType": "",
  "pfcFilingYear": "2024",
  "pfcGeoArea": "",
  "maxItems": 20
}
```

# Actor output Schema

## `records` (type: `string`):

Dataset containing all scraped Charities Bureau records.

# 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 = {
    "mode": "registrySearch",
    "orgName": "red cross",
    "regType": "",
    "state": "",
    "transactionType": "",
    "pfcFilingYear": "2024",
    "pfcGeoArea": "",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/ny-charities-bureau-registry-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 = {
    "mode": "registrySearch",
    "orgName": "red cross",
    "regType": "",
    "state": "",
    "transactionType": "",
    "pfcFilingYear": "2024",
    "pfcGeoArea": "",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/ny-charities-bureau-registry-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 '{
  "mode": "registrySearch",
  "orgName": "red cross",
  "regType": "",
  "state": "",
  "transactionType": "",
  "pfcFilingYear": "2024",
  "pfcGeoArea": "",
  "maxItems": 20
}' |
apify call crawlerbros/ny-charities-bureau-registry-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/ny-charities-bureau-registry-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "NY Attorney General Charities Bureau Registry Scraper",
        "description": "Search the NY Attorney General's Charities Bureau registry by organization name, registration number, EIN, city, or state. Returns registration status, EIN, address, and links to filings, dissolution/merger transactions, and Pennies for Charity fundraising reports.",
        "version": "1.0",
        "x-build-id": "7gOTlDkxRg8INh68X"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~ny-charities-bureau-registry-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-ny-charities-bureau-registry-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/crawlerbros~ny-charities-bureau-registry-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-ny-charities-bureau-registry-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/crawlerbros~ny-charities-bureau-registry-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-ny-charities-bureau-registry-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "registrySearch",
                            "transactionSearch",
                            "penniesForCharity"
                        ],
                        "type": "string",
                        "description": "Which Charities Bureau dataset to search.",
                        "default": "registrySearch"
                    },
                    "orgName": {
                        "title": "Organization name (mode=registrySearch/transactionSearch)",
                        "type": "string",
                        "description": "Partial/substring match, case-insensitive. Leave empty to search by other filters only (e.g. state, city, regType) without narrowing by name. For mode=transactionSearch specifically, the upstream API applies stricter anti-scraping filtering to broad queries with no `orgName` at all (e.g. transactionType/date-range alone) and may return 0 results even when matches exist -- pairing with `orgName` is recommended for reliable results in that mode. If mode=registrySearch and every filter is left empty, the actor falls back to a demo name (\"red cross\") so the daily test run still returns data.",
                        "default": ""
                    },
                    "orgId": {
                        "title": "Registration number / Organization ID (mode=registrySearch)",
                        "type": "string",
                        "description": "NY Charities Bureau registration number, format `NN-NN-NN` (e.g. `11-30-97`)."
                    },
                    "ein": {
                        "title": "EIN (mode=registrySearch)",
                        "type": "string",
                        "description": "Federal tax ID, digits only (e.g. `530196605`)."
                    },
                    "regType": {
                        "title": "Registrant type (mode=registrySearch)",
                        "enum": [
                            "",
                            "CLT",
                            "CRT",
                            "Estates",
                            "NFP"
                        ],
                        "type": "string",
                        "description": "Filter by registration category.",
                        "default": ""
                    },
                    "city": {
                        "title": "City (mode=registrySearch)",
                        "type": "string",
                        "description": "Filter by the organization's registered city."
                    },
                    "state": {
                        "title": "State (mode=registrySearch)",
                        "enum": [
                            "",
                            "AL",
                            "AK",
                            "AZ",
                            "AR",
                            "CA",
                            "CO",
                            "CT",
                            "DE",
                            "DC",
                            "FL",
                            "GA",
                            "HI",
                            "ID",
                            "IL",
                            "IN",
                            "IA",
                            "KS",
                            "KY",
                            "LA",
                            "ME",
                            "MD",
                            "MA",
                            "MI",
                            "MN",
                            "MS",
                            "MO",
                            "MT",
                            "NE",
                            "NV",
                            "NH",
                            "NJ",
                            "NM",
                            "NY",
                            "NC",
                            "ND",
                            "OH",
                            "OK",
                            "OR",
                            "PA",
                            "PR",
                            "RI",
                            "SC",
                            "SD",
                            "TN",
                            "TX",
                            "UT",
                            "VT",
                            "VA",
                            "WA",
                            "WV",
                            "WI",
                            "WY"
                        ],
                        "type": "string",
                        "description": "Filter by the organization's registered state.",
                        "default": ""
                    },
                    "oagNumber": {
                        "title": "OAG number (mode=transactionSearch)",
                        "type": "string",
                        "description": "Office of the Attorney General case/matter number (e.g. `OAG-AL-2020-305`)."
                    },
                    "transactionType": {
                        "title": "Transaction type (mode=transactionSearch)",
                        "enum": [
                            "",
                            "Dissolution",
                            "NPCL 510/511"
                        ],
                        "type": "string",
                        "description": "Filter by transaction category.",
                        "default": ""
                    },
                    "approvalDateFrom": {
                        "title": "Approval date from (mode=transactionSearch)",
                        "type": "string",
                        "description": "ISO date `YYYY-MM-DD`. Filters transactions approved on/after this date."
                    },
                    "approvalDateTo": {
                        "title": "Approval date to (mode=transactionSearch)",
                        "type": "string",
                        "description": "ISO date `YYYY-MM-DD`. Filters transactions approved on/before this date."
                    },
                    "pfcOrgName": {
                        "title": "Nonprofit organization name (mode=penniesForCharity)",
                        "type": "string",
                        "description": "Case-insensitive substring match (e.g. `American Cancer` matches `American Cancer Society Inc`)."
                    },
                    "pfcFundraiserName": {
                        "title": "Professional fundraiser name (mode=penniesForCharity)",
                        "type": "string",
                        "description": "Case-insensitive substring match."
                    },
                    "pfcFilingYear": {
                        "title": "Filing year (mode=penniesForCharity)",
                        "type": "string",
                        "description": "4-digit calendar year (e.g. `2024`). Leave empty to search by other filters only (e.g. organization or fundraiser name) without narrowing by year.",
                        "default": ""
                    },
                    "pfcGeoArea": {
                        "title": "Region (mode=penniesForCharity)",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "3",
                            "4",
                            "5",
                            "6",
                            "7"
                        ],
                        "type": "string",
                        "description": "Filter by New York region.",
                        "default": ""
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 300,
                        "type": "integer",
                        "description": "Hard cap on emitted records. registrySearch and penniesForCharity fetch one detail page per result, so keep this modest for broad searches.",
                        "default": 20
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
