# CFPB Complaint Spike & Emerging-Issue Monitor (`blaidlink/cfpb-complaint-spike-monitor`) Actor

Detect recurring complaint spikes and emerging product–issue patterns with lag-aware baselines and persistent alerts. Unofficial Blaidlink tool; not affiliated with or endorsed by the CFPB or U.S. government.

- **URL**: https://apify.com/blaidlink/cfpb-complaint-spike-monitor.md
- **Developed by:** [Blaidlink Labs](https://apify.com/blaidlink) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event + usage

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## CFPB Complaint Spike & Emerging-Issue Monitor

Detect statistically screened complaint-volume spikes and newly concentrated product–issue combinations in the official public CFPB Consumer Complaint Database. This Actor is designed for recurring risk, compliance, product, and market-intelligence workflows—not bulk complaint scraping.

> **Unofficial tool:** This independent Blaidlink Actor is not affiliated with, sponsored by, or endorsed by the Consumer Financial Protection Bureau, CFPB, or the U.S. government. The CFPB remains the authoritative source.

### Why this is different from a complaint scraper

A raw complaint feed creates another queue to reread. This monitor instead:

- compares a short current window with a longer adjacent baseline;
- excludes the newest days by default because the CFPB warns recent publication is incomplete;
- screens the official API's product, issue, company, and overall aggregate counts for daily-rate acceleration;
- requires a category's share of matching complaints to rise, reducing “everything spiked” alerts caused by broad ingestion changes;
- applies a transparent Poisson-style z-score threshold;
- proposes product–issue clusters from a bounded sample, then confirms every candidate with exact API count queries;
- remembers active signals in the caller's Apify account and labels later runs `new`, `ongoing`, or `resolved`;
- suppresses alerts and resolutions when CFPB metadata says the source is stale or has a data issue;
- emits no consumer narratives or raw complaint records.

### Keyless official source

The Actor uses the CFPB's public, unauthenticated Consumer Complaint Database API:

- [Official database](https://www.consumerfinance.gov/data-research/consumer-complaints/)
- [Official API documentation](https://cfpb.github.io/ccdb5-api/documentation/)
- [Official field reference](https://cfpb.github.io/api/ccdb/fields.html)

No API key or browser session is required.

### Quick start

Use **Basic scope** to choose only what you want to monitor. For example:

```json
{
  "products": ["Credit card"],
  "states": ["FL"]
}
````

Then click **Save & Start**. The collapsed **Advanced statistical controls** section already contains the validated defaults: a seven-day current period, 28-day baseline, 16-day reporting lag, and screened rate/share/z-score thresholds. Leave those controls alone for the first run. Leaving every Basic scope field blank scans all public products, issues, and companies.

Save the input as an Apify Task and schedule it weekly or daily. A stable filter/window configuration maps to a stable, caller-isolated state key. Changing the scope intentionally creates a separate signal history.

### Detection model

All date windows use `[startDate, endDate)` because the official API documents `date_received_max` as exclusive.

For a category:

```text
current daily rate  = current count / current window days
baseline daily rate = baseline count / baseline window days
rate ratio          = current daily rate / baseline daily rate
share ratio         = current category share / baseline category share
expected count      = baseline daily rate × current window days
z-score             = (current count - expected count) / sqrt(max(expected count, 1))
```

A category signal must clear the configured current-count, rate-ratio, share-ratio, and z-score gates. Overall volume signals do not use the composition gate. “Emerging” does not mean causally new; it means a confirmed product–issue combination has low prior volume or strong acceleration under the configured windows.

### Output records

Every run emits one unpriced `summary` record. Healthy runs may additionally emit:

- `spike` — overall or category daily-rate acceleration;
- `emerging-issue` — exact product–issue concentration after candidate confirmation;
- `resolved` — a previously active signal that no longer clears the configured gate.

Example signal:

```json
{
  "recordType": "emerging-issue",
  "signalType": "accelerating-product-issue",
  "lifecycle": "new",
  "severity": "high",
  "dimension": "product-issue",
  "category": "Credit card → Problem with a purchase shown on your statement",
  "currentCount": 42,
  "baselineCount": 18,
  "currentDailyRate": 6,
  "baselineDailyRate": 0.6429,
  "rateRatio": 9.3333,
  "shareRatio": 2.1,
  "zScore": 15.4,
  "checkedAt": "2026-07-18T18:00:00.000Z"
}
```

### State and privacy

The Actor opens a named key-value store under the credentials of the account starting the run. Only active aggregate signal records and timestamps are retained. State keys are hashes of normalized filters and window settings. The Actor does not retain or emit complaint narratives, complaint IDs, ZIP codes, or consumer-level records.

Company names and aggregate categories in output are fields already published in the official public database. Users remain responsible for their own downstream handling and conclusions.

### Source-health behavior

The official response includes `has_data_issue`, `is_data_stale`, `last_indexed`, and `last_updated` metadata. If either comparison response reports stale/problematic data, the Actor emits a `source-data-warning` summary, produces no alerts or resolutions, and preserves the prior active state. This prevents an upstream outage from looking like every signal resolved.

### Interpretation limits

The CFPB explicitly cautions that:

- complaints are not a statistical sample and are not necessarily representative of all consumer experiences;
- recent complaint publication is incomplete while companies respond and narratives are reviewed for personal information;
- complaint volume should be considered alongside company size or market share;
- geographic counts should be considered alongside population;
- narratives describe consumers' experiences and are not verified or adopted by the CFPB.

Accordingly, this Actor surfaces review signals. It does not establish misconduct, legal violations, causal explanations, market share, severity of harm, or regulatory conclusions. Verify consequential decisions against the official database and appropriate contextual data.

### Pricing

The Actor uses pay-per-event pricing tied to delivered decision-ready signals:

- `complaint-spike-alert`: **$0.02** per emitted new or ongoing `spike` record;
- `emerging-issue-alert`: **$0.03** per emitted new or ongoing `emerging-issue` record;
- `summary` and `resolved`: no Blaidlink product-event fee;
- customer pays Apify platform usage separately during validation.

This model prices useful alerts rather than complaints or API calls. The Actor respects the caller's maximum-charge limit and does not charge a Blaidlink product-event fee for summary or resolved records.

### Validation status

The public build was validated in Apify Cloud at 256 MB with default, targeted-product, and maximum-charge-limited inputs. The monitor remains an independent signal-detection tool: no affiliation, monitoring-coverage, statistical-significance, savings, or revenue claim should be inferred beyond the documented behavior and each run's output.

# Actor input Schema

## `products` (type: `array`):

Optional exact CFPB product labels. Leave blank for all products.

## `issues` (type: `array`):

Optional exact CFPB issue labels. Leave blank for all issues.

## `companies` (type: `array`):

Optional exact public company labels from the CFPB database.

## `states` (type: `array`):

Optional two-letter state abbreviations.

## `searchTerm` (type: `string`):

Optional term searched by the official CFPB API.

## `searchField` (type: `string`):

Search across all supported fields or only published narratives.

## `hasNarrative` (type: `string`):

Include all complaints or require the presence or absence of a published narrative. Narratives are never emitted by this Actor.

## `dimensions` (type: `array`):

Aggregate dimensions screened for composition-adjusted spikes.

## `reportingLagDays` (type: `integer`):

Most recent days excluded because CFPB warns that recent complaint publication is incomplete.

## `currentWindowDays` (type: `integer`):

Number of lagged days whose complaint rate is evaluated for acceleration.

## `baselineWindowDays` (type: `integer`):

Number of immediately preceding days used to estimate the baseline rate.

## `minCurrentCount` (type: `integer`):

Minimum CFPB-reported aggregate complaints in a category before it can produce a spike signal.

## `minRateRatio` (type: `number`):

Required current daily rate divided by the baseline daily rate.

## `minShareRatio` (type: `number`):

Prevents a broad ingestion surge from flagging every category equally.

## `minZScore` (type: `number`):

Required Poisson-style standardized difference between observed and expected current counts.

## `maxAlerts` (type: `integer`):

Hard cap on signal and resolution records emitted to this run's dataset. All qualifying active signals remain tracked in state.

## `sampleSize` (type: `integer`):

Recent complaint records inspected only to propose product-issue combinations; narratives are never emitted.

## `maxClusterCandidates` (type: `integer`):

Maximum sampled product-issue candidates confirmed through exact current and baseline queries.

## `minClusterSampleOccurrences` (type: `integer`):

Minimum occurrences in the bounded recent-record sample before a product-issue pair receives exact confirmation queries.

## `minClusterCurrentCount` (type: `integer`):

Minimum exact current-window complaints required for an emerging product-issue signal.

## `maxClusterBaselineCount` (type: `integer`):

A baseline count at or below this value qualifies as low prior volume when other gates pass.

## `minClusterRateRatio` (type: `number`):

Required current-to-baseline daily-rate ratio for an accelerating cluster above the low-baseline ceiling.

## `minClusterShareRatio` (type: `number`):

Required current-to-baseline complaint-share ratio for an accelerating cluster.

## `emitResolved` (type: `boolean`):

Emit a resolution when a previously active signal no longer clears its thresholds.

## `resetState` (type: `boolean`):

Forget prior active signals for this exact filter/window scope before evaluating the run.

## Actor input object example

```json
{
  "products": [],
  "issues": [],
  "companies": [],
  "states": [],
  "searchTerm": "",
  "searchField": "all",
  "hasNarrative": "",
  "dimensions": [
    "product",
    "issue",
    "company"
  ],
  "reportingLagDays": 16,
  "currentWindowDays": 7,
  "baselineWindowDays": 28,
  "minCurrentCount": 20,
  "minRateRatio": 1.75,
  "minShareRatio": 1.2,
  "minZScore": 3,
  "maxAlerts": 25,
  "sampleSize": 100,
  "maxClusterCandidates": 5,
  "minClusterSampleOccurrences": 2,
  "minClusterCurrentCount": 10,
  "maxClusterBaselineCount": 5,
  "minClusterRateRatio": 3,
  "minClusterShareRatio": 1.5,
  "emitResolved": true,
  "resetState": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("blaidlink/cfpb-complaint-spike-monitor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("blaidlink/cfpb-complaint-spike-monitor").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 '{}' |
apify call blaidlink/cfpb-complaint-spike-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=blaidlink/cfpb-complaint-spike-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CFPB Complaint Spike & Emerging-Issue Monitor",
        "description": "Detect recurring complaint spikes and emerging product–issue patterns with lag-aware baselines and persistent alerts. Unofficial Blaidlink tool; not affiliated with or endorsed by the CFPB or U.S. government.",
        "version": "0.1",
        "x-build-id": "UfYGTi5gKTbCuUWSF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/blaidlink~cfpb-complaint-spike-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-blaidlink-cfpb-complaint-spike-monitor",
                "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/blaidlink~cfpb-complaint-spike-monitor/runs": {
            "post": {
                "operationId": "runs-sync-blaidlink-cfpb-complaint-spike-monitor",
                "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/blaidlink~cfpb-complaint-spike-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-blaidlink-cfpb-complaint-spike-monitor",
                "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": {
                    "products": {
                        "title": "Products",
                        "type": "array",
                        "description": "Optional exact CFPB product labels. Leave blank for all products.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "issues": {
                        "title": "Issues",
                        "type": "array",
                        "description": "Optional exact CFPB issue labels. Leave blank for all issues.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "companies": {
                        "title": "Companies",
                        "type": "array",
                        "description": "Optional exact public company labels from the CFPB database.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "states": {
                        "title": "States",
                        "type": "array",
                        "description": "Optional two-letter state abbreviations.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchTerm": {
                        "title": "Search term",
                        "type": "string",
                        "description": "Optional term searched by the official CFPB API.",
                        "default": ""
                    },
                    "searchField": {
                        "title": "Search field",
                        "enum": [
                            "all",
                            "complaint_what_happened"
                        ],
                        "type": "string",
                        "description": "Search across all supported fields or only published narratives.",
                        "default": "all"
                    },
                    "hasNarrative": {
                        "title": "Narrative filter",
                        "enum": [
                            "",
                            "yes",
                            "no"
                        ],
                        "type": "string",
                        "description": "Include all complaints or require the presence or absence of a published narrative. Narratives are never emitted by this Actor.",
                        "default": ""
                    },
                    "dimensions": {
                        "title": "Spike dimensions",
                        "type": "array",
                        "description": "Aggregate dimensions screened for composition-adjusted spikes.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "product",
                                "issue",
                                "company"
                            ]
                        },
                        "default": [
                            "product",
                            "issue",
                            "company"
                        ]
                    },
                    "reportingLagDays": {
                        "title": "Reporting lag",
                        "minimum": 0,
                        "maximum": 90,
                        "type": "integer",
                        "description": "Most recent days excluded because CFPB warns that recent complaint publication is incomplete.",
                        "default": 16
                    },
                    "currentWindowDays": {
                        "title": "Current comparison window",
                        "minimum": 2,
                        "maximum": 31,
                        "type": "integer",
                        "description": "Number of lagged days whose complaint rate is evaluated for acceleration.",
                        "default": 7
                    },
                    "baselineWindowDays": {
                        "title": "Baseline window",
                        "minimum": 7,
                        "maximum": 180,
                        "type": "integer",
                        "description": "Number of immediately preceding days used to estimate the baseline rate.",
                        "default": 28
                    },
                    "minCurrentCount": {
                        "title": "Minimum current complaints",
                        "minimum": 2,
                        "type": "integer",
                        "description": "Minimum CFPB-reported aggregate complaints in a category before it can produce a spike signal.",
                        "default": 20
                    },
                    "minRateRatio": {
                        "title": "Minimum daily-rate ratio",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "number",
                        "description": "Required current daily rate divided by the baseline daily rate.",
                        "default": 1.75
                    },
                    "minShareRatio": {
                        "title": "Minimum composition-share ratio",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "number",
                        "description": "Prevents a broad ingestion surge from flagging every category equally.",
                        "default": 1.2
                    },
                    "minZScore": {
                        "title": "Minimum z-score",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "number",
                        "description": "Required Poisson-style standardized difference between observed and expected current counts.",
                        "default": 3
                    },
                    "maxAlerts": {
                        "title": "Maximum signals per run",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Hard cap on signal and resolution records emitted to this run's dataset. All qualifying active signals remain tracked in state.",
                        "default": 25
                    },
                    "sampleSize": {
                        "title": "Cluster candidate sample",
                        "minimum": 10,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Recent complaint records inspected only to propose product-issue combinations; narratives are never emitted.",
                        "default": 100
                    },
                    "maxClusterCandidates": {
                        "title": "Maximum exact cluster checks",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum sampled product-issue candidates confirmed through exact current and baseline queries.",
                        "default": 5
                    },
                    "minClusterSampleOccurrences": {
                        "title": "Minimum sample occurrences",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Minimum occurrences in the bounded recent-record sample before a product-issue pair receives exact confirmation queries.",
                        "default": 2
                    },
                    "minClusterCurrentCount": {
                        "title": "Minimum exact cluster count",
                        "minimum": 2,
                        "type": "integer",
                        "description": "Minimum exact current-window complaints required for an emerging product-issue signal.",
                        "default": 10
                    },
                    "maxClusterBaselineCount": {
                        "title": "Low-baseline cluster ceiling",
                        "minimum": 0,
                        "type": "integer",
                        "description": "A baseline count at or below this value qualifies as low prior volume when other gates pass.",
                        "default": 5
                    },
                    "minClusterRateRatio": {
                        "title": "Minimum cluster rate ratio",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "number",
                        "description": "Required current-to-baseline daily-rate ratio for an accelerating cluster above the low-baseline ceiling.",
                        "default": 3
                    },
                    "minClusterShareRatio": {
                        "title": "Minimum cluster share ratio",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "number",
                        "description": "Required current-to-baseline complaint-share ratio for an accelerating cluster.",
                        "default": 1.5
                    },
                    "emitResolved": {
                        "title": "Emit resolved signals",
                        "type": "boolean",
                        "description": "Emit a resolution when a previously active signal no longer clears its thresholds.",
                        "default": true
                    },
                    "resetState": {
                        "title": "Reset this monitor's alert state",
                        "type": "boolean",
                        "description": "Forget prior active signals for this exact filter/window scope before evaluating the run.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
