# IRS 990 Nonprofit Officer Compensation Scraper (`devilscrapes/irs-990-officer-comp`) Actor

Pull officer + director compensation from US nonprofit IRS Form 990 filings via the ProPublica Nonprofit Explorer API. We handle pagination, retries, and rate-limit pacing — you get one clean typed row per officer with name, title, hours, base + bonus + benefits + total comp.

- **URL**: https://apify.com/devilscrapes/irs-990-officer-comp.md
- **Developed by:** [DevilScrapes](https://apify.com/devilscrapes) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN 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.

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

<img src=".actor/icon.svg" width="160" alt="IRS 990 Nonprofit Officer Compensation Scraper" />

## IRS 990 Nonprofit Officer Compensation Scraper

_We do the dirty work so your dataset stays clean._ 😈

**$3.05 / 1,000 rows** — Export IRS Form 990 nonprofit **officer compensation** and key financial line items as structured rows, one per (EIN, tax year) filing. Bulk EIN lookup or name/state search, normalised across the three return types (`990`, `990EZ`, `990PF`). Sourced from ProPublica's Nonprofit Explorer API. Free, no API key, no login.

The IRS publishes Form 990 returns from ~1.6 million tax-exempt organisations, but each return is a deeply nested PDF and ProPublica's public API returns 60+ flat fields per filing wrapped in a verbose org envelope. The six existing Apify Actors for this API are thin wrappers that dump the raw JSON. This Actor **structures** the data: one row per filing year with the correct officer-comp field picked for each formtype, a computed total-compensation-and-benefits figure, organisational context (state, city, NTEE, subsection), and the surrounding financials (revenue, expenses, assets) for compensation-magnitude analysis.

### 🎯 What this scrapes
One `ResultRow` per (EIN, tax year) filing. Every row carries the same 21 columns regardless of which input mode you used. Data is published by ProPublica under their Terms of Use (IRS source data is public domain).

| Field | Type | Description |
|---|---|---|
| `ein` | string | 9-digit IRS Employer Identification Number (zero-padded) |
| `organization_name` | string | Legal name from ProPublica's `organization.name` |
| `organization_url` | string | Nonprofit Explorer organisation page URL |
| `state` | string \| null | USPS 2-letter state of the organisation's principal address |
| `city` | string \| null | City of the organisation's principal address |
| `ntee_code` | string \| null | NTEE (National Taxonomy of Exempt Entities) classification code |
| `subsection_code` | int \| null | IRC subsection (3 = 501(c)(3), 4 = 501(c)(4), etc.) |
| `tax_year` | int | Filing tax year (`tax_prd_yr`) |
| `tax_period_end` | string \| null | Fiscal-year end (`YYYY-MM`) |
| `form_type` | string | `990`, `990EZ`, or `990PF` |
| `pdf_url` | string \| null | Direct link to the IRS-filed 990 PDF on ProPublica |
| `officer_comp_usd` | int \| null | Aggregate officer/director/trustee compensation |
| `other_salaries_wages_usd` | int \| null | All non-officer salaries and wages (null on 990PF) |
| `payroll_taxes_usd` | int \| null | Payroll taxes |
| `pension_contributions_usd` | int \| null | Pension-plan contributions |
| `other_employee_benefits_usd` | int \| null | Other employee benefits |
| `total_comp_and_benefits_usd` | int \| null | Computed sum of the 5 comp/benefit fields |
| `total_revenue_usd` | int \| null | Total revenue (context for compensation magnitude) |
| `total_functional_expenses_usd` | int \| null | Total functional expenses |
| `total_assets_end_usd` | int \| null | Total assets at year-end |
| `scraped_at` | string | ISO 8601 UTC datetime this row was written |

### 🔥 Features
- **Two input modes** — `eins` (explicit list) and `searchQuery` (name search). Pydantic XOR validator enforces exactly one before any network call. EIN normaliser accepts `13-1684331`, `131684331`, or integer forms.
- **Formtype-correct field mapping** — the API returns the same `formtype` integer (`0`/`1`/`2`) for 990/990EZ/990PF, but officer comp lives in `compnsatncurrofcr` on 990/990EZ and `compofficers` on 990PF. We pick the right field for each form so you don't get null officer comp for private foundations.
- **Year-window filtering** — `startYear` and `endYear` default to the last 3 calendar years. Out-of-window filings are dropped silently.
- **Computed total compensation and benefits** — sum of officer comp + non-officer salaries + payroll tax + pension + other benefits, computed per filing so you don't have to. Null only when all 5 components are null (never falsely zero).
- **State filter (search mode)** — pass `stateFilter=CA` to scope a name search to a single state via `search.json?state[id]=`.
- **Multi-form support** — 990, 990EZ, and 990PF all return clean rows. Unknown formtypes are logged and dropped (forward-compatible with new IRS forms).
- **Exponential backoff** with `Retry-After` honoured for `429` and `503` responses; max 5 attempts.
- **`curl-cffi`** with Chrome 131 TLS impersonation (ADR-0002 house default) — robust against any future ProPublica rate-limit tightening.
- **Apify Proxy** support via the `BUYPROXIES94952` group (opt-in via `useProxy`).
- **Pydantic v2** input + output models — `form_type` is validated against the enum (`"990"` / `"990EZ"` / `"990PF"`); EINs are zero-padded to 9 digits.

### 💡 Use cases
- **Nonprofit executive-pay benchmarking** — bulk-pull officer compensation for a list of 100-1000 peer organisations to benchmark CEO/CFO pay against revenue.
- **Investigative journalism** — flag nonprofits where officer comp is an outsized fraction of revenue or expenses; spot rapid year-over-year jumps.
- **Foundation due diligence** — research a foundation's officer payroll and asset trajectory before applying for a grant.
- **Charity-rating data pipelines** — feed a structured 990 dataset into your own scoring model without writing a ProPublica wrapper.
- **Academic research** — multi-year panel datasets on nonprofit sector compensation and finances for economics / public-policy papers.
- **State-level nonprofit-sector reports** — combine `stateFilter` with a broad `searchQuery` (e.g. `"foundation"`) to enumerate a state's nonprofit landscape.

### ⚙️ How to use it
1. Open the Actor input form on the Apify Console.
2. Pick exactly **one** input mode:
   - **EINs** — supply a list of `eins` (hyphens optional, e.g. `["13-1684331"]` or `["131684331"]`) for direct lookup.
   - **Search query** — set `searchQuery` to a name fragment (e.g. `"community foundation"`); optionally narrow with `stateFilter=NY`.
3. Set `startYear` and `endYear` to scope the filing window. Defaults: current year minus 3 → current year.
4. Set `maxOrgs` (1-5000) to cap the EIN list size in search mode. Ignored in `eins` mode.
5. Toggle `useProxy` on if ProPublica starts returning `429`. Default is off — ProPublica does not currently rate-limit datacenter IPs.
6. Click **Start**. Results stream into the default dataset as JSON / CSV / Excel / XML.

#### Single EIN, last 3 years (default window)

```json
{
  "eins": ["131684331"]
}
````

#### Multiple EINs, narrow window

```json
{
  "eins": ["131684331", "133871360", "530196605"],
  "startYear": 2021,
  "endYear": 2023
}
```

#### Name search in California, capped at 50 orgs

```json
{
  "searchQuery": "community foundation",
  "stateFilter": "CA",
  "maxOrgs": 50,
  "startYear": 2022,
  "endYear": 2023
}
```

### Input reference

| Field | Type | Default | Notes |
|---|---|---|---|
| `eins` | string\[] | — | 9-digit EINs; hyphens stripped. XOR with `searchQuery`. |
| `searchQuery` | string | — | 1-200 chars. XOR with `eins`. |
| `stateFilter` | string | null | USPS 2-letter (`CA`, `NY`, …). Search mode only. |
| `startYear` | int | current-year - 3 | Inclusive lower bound. |
| `endYear` | int | current-year | Inclusive upper bound; must be `>= startYear`. |
| `maxOrgs` | int | 100 | 1-5000. Search mode only. |
| `useProxy` | bool | false | Apify Proxy (BUYPROXIES94952). |

### Pricing (Pay-per-event)

| Event | Price |
|---|---|
| `actor-start` | $0.05 (charged once per run) |
| `result-row` | $0.003 per filing-year row written |

A typical 100-EIN run averaging 3 filings each = 300 rows = **$0.95 total**.

### What's out of scope

- **Per-officer breakdown** (name / title / hours / individual comp from Part VII Section A) — that detail lives only in the 990 PDF and is not exposed by ProPublica's structured API. v1 emits the aggregate Part IX line 5 / 990PF Part I line 15 officer-compensation total. Per-officer PDF parsing is on the v2 roadmap.
- **Compensation from related organisations** (Schedule J Part II) — same reason; PDF-only.
- **Filings older than ~2010** — ProPublica's structured coverage doesn't extend earlier.

### Data source

ProPublica's [Nonprofit Explorer API v2](https://projects.propublica.org/nonprofits/api), which mirrors IRS Form 990 returns. IRS data is public domain; ProPublica's API is subject to their [Terms of Use](https://www.propublica.org/legal/).

### Support

- Author: [DevilScrapes](https://apify.com/DevilScrapes)
- Issues & feature requests: open an issue on the Apify Store listing.
- Source-licensed under Apache 2.0.

### SEO keywords

irs 990 scraper, nonprofit officer compensation, 990 form data, propublica nonprofit api, nonprofit executive pay data, irs form 990 export, 990pf scraper, charity compensation data, nonprofit financial data api

# Actor input Schema

## `eins` (type: `array`):

Explicit IRS Employer Identification Numbers to fetch (9 digits, hyphens optional, e.g. <code>13-1684331</code> or <code>131684331</code>). XOR with <code>searchQuery</code>.

## `searchQuery` (type: `string`):

Free-text search across nonprofit names. Resolves to a list of EINs via ProPublica's <code>search.json</code> endpoint, capped by <code>maxOrgs</code>. XOR with <code>eins</code>.

## `stateFilter` (type: `string`):

USPS 2-letter state code (e.g. <code>CA</code>, <code>NY</code>, <code>TX</code>). Applied to search mode only; ignored in <code>eins</code> mode.

## `startYear` (type: `integer`):

Earliest <code>tax\_prd\_yr</code> to include. Defaults to current year minus 3.

## `endYear` (type: `integer`):

Latest <code>tax\_prd\_yr</code> to include. Defaults to current year.

## `maxOrgs` (type: `integer`):

Hard cap on EINs resolved from <code>searchQuery</code>. Ignored in <code>eins</code> mode.

## `useProxy` (type: `boolean`):

Route requests through Apify Proxy (<code>BUYPROXIES94952</code>). ProPublica does not currently rate-limit datacenter IPs; leave off unless you see <code>429</code>.

## Actor input object example

```json
{
  "eins": [
    "131684331",
    "133871360"
  ],
  "searchQuery": "community foundation",
  "stateFilter": "NY",
  "startYear": 2022,
  "endYear": 2023,
  "maxOrgs": 100,
  "useProxy": false
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

All dataset items as JSON.

## `datasetItemsCsv` (type: `string`):

Same data exported to CSV.

## `datasetView` (type: `string`):

Open the run dataset in the Console.

# 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 = {
    "eins": [
        "131684331"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("devilscrapes/irs-990-officer-comp").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 = { "eins": ["131684331"] }

# Run the Actor and wait for it to finish
run = client.actor("devilscrapes/irs-990-officer-comp").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 '{
  "eins": [
    "131684331"
  ]
}' |
apify call devilscrapes/irs-990-officer-comp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=devilscrapes/irs-990-officer-comp",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "IRS 990 Nonprofit Officer Compensation Scraper",
        "description": "Pull officer + director compensation from US nonprofit IRS Form 990 filings via the ProPublica Nonprofit Explorer API. We handle pagination, retries, and rate-limit pacing — you get one clean typed row per officer with name, title, hours, base + bonus + benefits + total comp.",
        "version": "0.2",
        "x-build-id": "BaILgKh5spasXIMjy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/devilscrapes~irs-990-officer-comp/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-devilscrapes-irs-990-officer-comp",
                "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/devilscrapes~irs-990-officer-comp/runs": {
            "post": {
                "operationId": "runs-sync-devilscrapes-irs-990-officer-comp",
                "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/devilscrapes~irs-990-officer-comp/run-sync": {
            "post": {
                "operationId": "run-sync-devilscrapes-irs-990-officer-comp",
                "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": {
                    "eins": {
                        "title": "EINs",
                        "type": "array",
                        "description": "Explicit IRS Employer Identification Numbers to fetch (9 digits, hyphens optional, e.g. <code>13-1684331</code> or <code>131684331</code>). XOR with <code>searchQuery</code>.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text search across nonprofit names. Resolves to a list of EINs via ProPublica's <code>search.json</code> endpoint, capped by <code>maxOrgs</code>. XOR with <code>eins</code>."
                    },
                    "stateFilter": {
                        "title": "State filter (US 2-letter)",
                        "type": "string",
                        "description": "USPS 2-letter state code (e.g. <code>CA</code>, <code>NY</code>, <code>TX</code>). Applied to search mode only; ignored in <code>eins</code> mode."
                    },
                    "startYear": {
                        "title": "Start year (inclusive)",
                        "minimum": 2000,
                        "maximum": 2099,
                        "type": "integer",
                        "description": "Earliest <code>tax_prd_yr</code> to include. Defaults to current year minus 3."
                    },
                    "endYear": {
                        "title": "End year (inclusive)",
                        "minimum": 2000,
                        "maximum": 2099,
                        "type": "integer",
                        "description": "Latest <code>tax_prd_yr</code> to include. Defaults to current year."
                    },
                    "maxOrgs": {
                        "title": "Max orgs (search mode)",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on EINs resolved from <code>searchQuery</code>. Ignored in <code>eins</code> mode.",
                        "default": 100
                    },
                    "useProxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Route requests through Apify Proxy (<code>BUYPROXIES94952</code>). ProPublica does not currently rate-limit datacenter IPs; leave off unless you see <code>429</code>.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
