# Merchant Registry Watch - Business Status & KYB Alerts (SOS) (`yungstentech/merchant-registry-watch`) Actor

Watch businesses across Colorado, New York and Connecticut state registries: status-change, registered-agent, name and address events on your own schedule, plus point-in-time KYB registry checks. Per-entity watch memory, event history, optional webhook. Registry evidence, not adjudication.

- **URL**: https://apify.com/yungstentech/merchant-registry-watch.md
- **Developed by:** [Paul Mikulskis](https://apify.com/yungstentech) (community)
- **Categories:** Agents, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $400.00 / 1,000 entity watch-months

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

Merchant Registry Watch turns state business-registry open data into a standing watch on the companies you care about. It does two jobs: a point-in-time **registry check** that returns one KYB evidence record per business (status, registered agent, addresses, formation date, jurisdiction, the exact source URL and a checked-at timestamp), and a per-entity **watch-month** that polls each enrolled business every day inside your own scheduled runs, diffs it against a stored snapshot, and delivers status-change, registered-agent, name and address events on each scheduled run, plus a monthly attestation row when nothing changed.

Coverage at launch is three state registries, all official open data: **Colorado** (data.colorado.gov), **New York** (data.ny.gov) and **Connecticut** (data.ct.gov). Out-of-state businesses that are foreign-qualified in those states appear too (in one measured Connecticut file, 15.1% of categorized registrations were foreign). The watch runs on the Apify platform, so you get API access, scheduling, integrations and run history without operating any infrastructure yourself.

### What Merchant Registry Watch does

- **Registry check (`mode: check`)**: give it a list of businesses by state entity id (or by name) and get back one flat record each: legal name, status, registered agent and address, principal address, formation and dissolution dates, jurisdiction of formation, the exact Socrata source URL, and when it was checked. This is a KYB evidence artifact you can attach to a file, not a lead list.
- **Watch (`mode: watch`)**: enroll a portfolio and, on every run, poll each business and compare it to its last snapshot. Changes come back as event rows with the field, the before value and the after value. A month with no change delivers one attestation row per business ("status verified current as of DATE"), so you can see what the watch fee bought.
- **List events (`mode: list-events`)**: read back this watch's stored change-event history for the last N days.
- **Unwatch (`mode: unwatch`)**: remove businesses from a watch.

New York has no status column in its open dataset (it is an actives-only roster), so a New York status change is detected as the business leaving the roster, with guards described below. Colorado and Connecticut publish a status field directly.

### Why use Merchant Registry Watch

Payment facilitators, SMB lenders, B2B marketplaces and vendor-management teams verify a business once at onboarding and then go blind. When a merchant lapses into delinquency, is administratively dissolved, or swaps its registered agent, the risk team usually finds out at chargeback time. The enterprise tool for this ongoing surveillance is sold inside contracts with five-figure annual minimums. Merchant Registry Watch gives the same shape (portfolio-scale, multi-state, API, webhook, MCP-callable, with per-entity event history) priced for a 50 to 500 entity book. AI-agent KYB pipelines can call it as a single Apify tool to add a standing "tell me if this vendor's registration changes" primitive.

### How watching works (read this before you schedule)

Checks and diffs run **inside your own scheduled Apify runs**. This is not a hosted daemon that wakes itself: no schedule means no polls, no events and no charges. To watch a portfolio daily:

1. Run the actor once in `watch` mode with your businesses and a `watchName`. This enrolls them and stores the first snapshot in named stores in **your** account.
2. Open the actor, go to **Schedules**, and add a daily schedule that runs it with the same input. That is the two-click step that makes it a standing watch.

The watch memory (snapshots, event history, per-month billing) lives in named key-value stores and a named dataset in your account, keyed by `watchName`, so it persists across your scheduled runs and accrues a history a fresh copy cannot backfill.

### Input

| Field | Type | Notes |
|---|---|---|
| `mode` | `check` \| `watch` \| `unwatch` \| `list-events` | Default `check`. |
| `businesses` | array of `{ state, entityId }` or `{ state, name }` | 1 to 1000 items. `state` is `CO`, `NY` or `CT`. `entityId` is that state's own id: Colorado `entityid`, New York `dos_id`, Connecticut `accountnumber`. A name-only entry is resolved against the registry and enrolls only on a unique exact match; an ambiguous name returns an uncharged candidate list to confirm by id. Required for check, watch and unwatch. |
| `watchName` | string | Default `default`. Lowercase letters, digits and hyphens, 1 to 40 characters. Names the watch so its memory persists across runs. |
| `sinceDays` | integer | Default 30, 1 to 365. For `list-events`: how many days of history to return. |
| `webhookUrl` | string | Optional https URL that receives a POST with this run's events. Best-effort only; the dataset is the durable record. Put a secret token in the URL yourself if you need to verify the caller. |
| `dryRun` | boolean | Default false. Preview up to 5 rows, charge nothing, write no memory. |

#### Worked examples

**Check two businesses by id (the default input, costs $0.04):**

```json
{ "mode": "check", "businesses": [ { "state": "CT", "entityId": "2784043" }, { "state": "CO", "entityId": "20251665680" } ], "dryRun": false }
````

returns two check rows: the Connecticut business `2784043` and the Colorado business `20251665680`, each with its current status, agent, addresses and source URL.

**Resolve a business by name, then confirm by id.** A name-only entry never enrolls on a guess. Input `{ "state": "CT", "name": "Rype L.L.C." }` returns uncharged `candidate` rows when the name is not a unique exact match (for example both "Rype L.L.C." and "RYPE LLC" exist as distinct Connecticut businesses). Pick the right `accountnumber` from the candidate rows and pass it as `entityId` to check or watch that exact business.

**Watch a portfolio:**

```json
{ "mode": "watch", "watchName": "vendors", "businesses": [ { "state": "CO", "entityId": "20251665680" }, { "state": "NY", "entityId": "4424185" } ] }
```

enrolls both, delivers their first snapshots, and on later scheduled runs delivers only what changed.

### Output

Every row is flat and documented. The `rowType` field tells you what a row is: `check` (a point-in-time record), `event` (a detected change, with `eventType`, `changedField`, `before`, `after`), `attestation` (a no-change month confirmation), `candidate` (a name-disambiguation option, uncharged), `truncation-marker` (entities withheld at your run's charge limit, uncharged), `watch-expired` (an entity idle past 60 days, uncharged), `poll-failed` (a fetch that failed this run, uncharged) and `unwatched` (a removal confirmation).

| Field | Meaning |
|---|---|
| `rowType` | What this row is (see above). |
| `state` | `CO`, `NY` or `CT`. |
| `entityKey` / `displayId` | The state's customer-facing id. |
| `legalName` | Legal name. For Colorado, any status annotation the source embeds in the name is stripped. |
| `status` / `subStatus` | Registry status. Always empty for New York (see below). |
| `formationDate` / `dissolutionDate` | Formation date; dissolution date where the state publishes it (Connecticut). |
| `registeredAgent` / `agentAddress` | Registered agent and its address. |
| `principalAddress` | Principal or business address. |
| `jurisdictionOfFormation` | State or territory of formation. |
| `statusSemantics` | `status-column` for CO and CT; `active-roster-presence` for NY. |
| `eventType` / `changedField` / `before` / `after` | Set on `event` rows: what changed and its old and new values. |
| `eventSource` | `live-diff` for real diffs; `historical-reconstruction` for the demo section. |
| `checkedAt` | ISO timestamp of the poll. |
| `sourceUrl` | The exact Socrata resource this row was read from. Verify any record or event here before acting. |
| `billing` | How the row was billed: `registry-check`, `watch-month`, `unbilled` or `dry-run`. |

You can download the dataset in JSON, HTML, CSV or Excel.

#### Per-state semantics

| State | Status | Notes |
|---|---|---|
| Colorado | Full status vocabulary (for example "Good Standing", "Delinquent"). | The source occasionally embeds the status inside the name string; the legal name is cleaned. Registered agent and addresses included. |
| Connecticut | `status` and `sub_status`, plus `dissolution_date`. | Registered-agent data comes from a companion dataset joined on the business key. If the companion is briefly unavailable, status events still deliver and the run says so. |
| New York | No status column. `statusSemantics` is `active-roster-presence`. | The dataset is an actives-only roster, so a status change surfaces as the business leaving the roster. A `disappeared-from-roster` event fires only after a business is absent for 3 or more consecutive daily polls, on a fresh feed whose total row count is within tolerance of the watch's baseline, and only when a targeted re-query also finds it gone. If more than 5% of your watched New York portfolio goes missing in one run, a circuit breaker marks the feed suspect and suppresses both the New York disappearance events and their charges for that run. A residual false positive is possible; verify against the source URL before acting. |

### Pricing

- **Registry check: $0.02 per delivered record.** Also charged once per business for the first snapshot row when you enroll it in a watch. Candidate (disambiguation) rows are never charged.
- **Entity watch-month: $0.50 per business per calendar month.** Charged once per business per month, only after a successful poll on a fresh feed, and only inside a customer-initiated run. It covers that month's daily polls, all of that business's change events, and the monthly attestation row.

Guarantees built into the billing:

- The **first calendar month** of watching is free (watch-months are not charged that month; checks still charge).
- A **failed poll never bills.** A business whose fetch keeps failing on an otherwise fresh feed delivers uncharged notes and is billed nothing until a poll actually completes.
- **No charge in a month a feed is stale.** If a state's feed has not refreshed within 48 hours, that state's watch-months are deferred to a later run that month.
- **Idle watches expire at 60 days.** A business no run has polled for over 60 days is expired (uncharged) and stops billing.
- If your run hits its max-charge limit, remaining businesses are **withheld** (not polled, not billed) and a truncation-marker row names how many. They poll and charge on the next run.

Colorado also offers free single-entity email and text alerts to anyone; if you only need to watch a handful of Colorado businesses one at a time, that is the honest budget alternative. Merchant Registry Watch is for portfolio-scale, multi-state watching with an API, webhook and event history.

### Demo dataset

The public demo dataset is at https://api.apify.com/v2/datasets/vTdVaA77Fl1ZTsR8R/items?format=json. It was generated by live run `sZ03RoI475bRCjHFY` from a clean representative `check` input containing one Connecticut business and one Colorado business. It shows live registry check rows with legal name, status semantics, addresses, source URL, billing marker, and checked-at timestamp.

### Data sources and disclaimers

The original sources are the states' own open-data portals. Records are modified from source only by normalizing field names into the documented output schema and, for Colorado, stripping a status annotation the source embeds in the name. Every row carries the exact `sourceUrl` of the resource it came from.

**Colorado (data.colorado.gov).** Applications using this data must carry the state's disclaimer verbatim:

> The data made available here has been modified for use from its original source, which is the State of Colorado. THE STATE OF COLORADO MAKES NO REPRESENTATIONS OR WARRANTY AS TO THE COMPLETENESS, ACCURACY, TIMELINESS, OR CONTENT OF ANY DATA MADE AVAILABLE THROUGH THIS SITE. THE STATE OF COLORADO EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. The data is subject to change as modifications and updates are complete. It is understood that the information contained in the Web feed is being used at one's own risk.

**Connecticut (data.ct.gov).** Provided as-is by the State of Connecticut with no warranty and with the state's right to discontinue the feed. Attribution: Secretary of the State. The registry dataset declares a public-domain license.

**New York (data.ny.gov).** Attribution: New York State Department of State. The data is provided as-is with no warranty and no claim of state endorsement.

### Limitations

- Three states at launch (Colorado, New York, Connecticut), including businesses foreign-qualified in those states.
- New York signals are roster presence, not a legal status field; its disappearance semantics carry the residual false-positive posture stated above.
- Connecticut registered-agent data comes from a companion dataset; if it is briefly unavailable, agent-change detection degrades for that run while status events still deliver.
- This is a KYB evidence and trigger surface, not an adjudication. Every row carries the exact source URL; verify against it before acting on any event.

### FAQ and support

**Does it run automatically?** Only on the schedule you create. No schedule, no polls, no charges.

**Can an AI agent call it?** Yes. On the Apify platform the actor is exposed as a single callable tool whose input includes the `mode` field.

**How do I verify a record?** Open the `sourceUrl` on the row; it is the exact state resource the record came from.

For issues or feature requests, use the Issues tab.

# Actor input Schema

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

What this run does. check = a point-in-time registry record per business (a KYB evidence row). watch = enroll each business and, on this run, poll and diff it against its stored snapshot, delivering change events or a monthly attestation. unwatch = remove businesses from a watch. list-events = read back this watch's stored change-event history.

## `businesses` (type: `array`):

The businesses to check or watch, 1 to 1000 items. Each item is { state, entityId } or { state, name }. state is CO, NY or CT. entityId is that state's own id: CO entityid, NY dos\_id, CT accountnumber. A name-only entry is resolved against the state registry and enrolls ONLY on a unique exact match; an ambiguous name returns an uncharged candidate list to confirm by id. Required for check, watch and unwatch; optional for list-events.

## `watchName` (type: `string`):

Names this watch within your account so its memory (snapshots, event history, billing) persists across your scheduled runs. Lowercased, letters, digits and hyphens only, 1 to 40 characters. Use different names for different portfolios; each named watch is billed independently.

## `sinceDays` (type: `integer`):

For list-events mode: how many days of stored change-event history to return, 1 to 365. Ignored by other modes.

## `webhookUrl` (type: `string`):

Optional https URL that receives a POST with this run's change events (watch mode). Best-effort alerting only: the events dataset is the durable record. If you need to verify the caller, put a secret token in the URL yourself.

## `dryRun` (type: `boolean`):

When true, preview up to 5 rows, charge nothing and touch no watch memory. Use it to sanity check your businesses list before scheduling.

## Actor input object example

```json
{
  "mode": "check",
  "businesses": [
    {
      "state": "CT",
      "entityId": "2784043"
    },
    {
      "state": "CO",
      "entityId": "20251665680"
    }
  ],
  "watchName": "default",
  "sinceDays": 30,
  "dryRun": false
}
```

# Actor output Schema

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

No description

## `runSummary` (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 = {
    "businesses": [
        {
            "state": "CT",
            "entityId": "2784043"
        },
        {
            "state": "CO",
            "entityId": "20251665680"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("yungstentech/merchant-registry-watch").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 = { "businesses": [
        {
            "state": "CT",
            "entityId": "2784043",
        },
        {
            "state": "CO",
            "entityId": "20251665680",
        },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("yungstentech/merchant-registry-watch").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 '{
  "businesses": [
    {
      "state": "CT",
      "entityId": "2784043"
    },
    {
      "state": "CO",
      "entityId": "20251665680"
    }
  ]
}' |
apify call yungstentech/merchant-registry-watch --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=yungstentech/merchant-registry-watch",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Merchant Registry Watch - Business Status & KYB Alerts (SOS)",
        "description": "Watch businesses across Colorado, New York and Connecticut state registries: status-change, registered-agent, name and address events on your own schedule, plus point-in-time KYB registry checks. Per-entity watch memory, event history, optional webhook. Registry evidence, not adjudication.",
        "version": "0.0",
        "x-build-id": "rYFpMkJNBCmBsuL0E"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/yungstentech~merchant-registry-watch/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-yungstentech-merchant-registry-watch",
                "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/yungstentech~merchant-registry-watch/runs": {
            "post": {
                "operationId": "runs-sync-yungstentech-merchant-registry-watch",
                "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/yungstentech~merchant-registry-watch/run-sync": {
            "post": {
                "operationId": "run-sync-yungstentech-merchant-registry-watch",
                "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": [
                    "businesses"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "check",
                            "watch",
                            "unwatch",
                            "list-events"
                        ],
                        "type": "string",
                        "description": "What this run does. check = a point-in-time registry record per business (a KYB evidence row). watch = enroll each business and, on this run, poll and diff it against its stored snapshot, delivering change events or a monthly attestation. unwatch = remove businesses from a watch. list-events = read back this watch's stored change-event history.",
                        "default": "check"
                    },
                    "businesses": {
                        "title": "Businesses",
                        "type": "array",
                        "description": "The businesses to check or watch, 1 to 1000 items. Each item is { state, entityId } or { state, name }. state is CO, NY or CT. entityId is that state's own id: CO entityid, NY dos_id, CT accountnumber. A name-only entry is resolved against the state registry and enrolls ONLY on a unique exact match; an ambiguous name returns an uncharged candidate list to confirm by id. Required for check, watch and unwatch; optional for list-events."
                    },
                    "watchName": {
                        "title": "Watch name",
                        "type": "string",
                        "description": "Names this watch within your account so its memory (snapshots, event history, billing) persists across your scheduled runs. Lowercased, letters, digits and hyphens only, 1 to 40 characters. Use different names for different portfolios; each named watch is billed independently.",
                        "default": "default"
                    },
                    "sinceDays": {
                        "title": "List-events window (days)",
                        "minimum": 1,
                        "maximum": 365,
                        "type": "integer",
                        "description": "For list-events mode: how many days of stored change-event history to return, 1 to 365. Ignored by other modes.",
                        "default": 30
                    },
                    "webhookUrl": {
                        "title": "Webhook URL (optional)",
                        "type": "string",
                        "description": "Optional https URL that receives a POST with this run's change events (watch mode). Best-effort alerting only: the events dataset is the durable record. If you need to verify the caller, put a secret token in the URL yourself."
                    },
                    "dryRun": {
                        "title": "Dry run (preview, no charge)",
                        "type": "boolean",
                        "description": "When true, preview up to 5 rows, charge nothing and touch no watch memory. Use it to sanity check your businesses list before scheduling.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
