# SaaS Changelog, Status & API Monitor (`silicon1235/saas-changelog-monitor`) Actor

Monitor public SaaS changelogs, status incidents, pricing, policy, trust-center, release-note, GraphQL, API docs, and OpenAPI sources for alerts.

- **URL**: https://apify.com/silicon1235/saas-changelog-monitor.md
- **Developed by:** [X L](https://apify.com/silicon1235) (community)
- **Categories:** Developer tools, Automation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## SaaS Changelog Monitor

Monitor public SaaS changelogs, Stripe changelogs, release notes, status-page incident feeds and component snapshots, API docs, pricing pages, cookie/privacy policy pages, subprocessor pages, favicon/brand asset pages, GraphQL schema files, and OpenAPI specs for competitor updates, payment/API changes, release digest signals, SLA incidents, status component drift, compliance/vendor drift, brand asset drift, docs/API drift, schema drift, OpenAPI endpoint diffs, and breaking-change alerts.

This Actor is designed for scheduled product and competitor monitoring. It is intentionally narrower than generic page scraping: the first value is a compact digest of new update items that matter to product, sales, developer-relations, and agency workflows.

### Input

- `sources`: public changelog, Stripe changelog, release-note, RSS/Atom, status-page incident feed, statuspage component JSON, API docs, pricing-page, cookie/privacy-policy, subprocessor page, favicon/brand asset page, GraphQL schema, or OpenAPI spec URLs. Use `type: "status"` for status/incident feeds or component snapshots, `type: "policy"` for cookie/privacy policy pages, `type: "subprocessor"` for vendor/subprocessor pages, `type: "favicon"` for favicon/web-manifest/theme-color brand asset pages, `type: "docs"` for API docs/deprecation pages, `type: "pricing"` for pricing/package/billing pages, `type: "graphql"` for public SDL/schema text, `type: "openapi"` for OpenAPI JSON/YAML, `type: "release"` for release-note digest snapshots, and `type: "stripe"` for Stripe payment/API changelog snapshots.
- `previousItemIds`: optional IDs from a previous run.
- `previousOpenApiSurfaces`: optional previous OpenAPI surface snapshots for local diff testing. Scheduled runs normally load these from `snapshotKey`.
- `snapshotKey`: key-value-store record used for scheduled change detection and OpenAPI surface diffs.
- `alertKeywords`: terms such as `breaking`, `deprecated`, `migration`, `security`, `pricing`, or `api`.
- `maxItems`: maximum rows to output.

### Output

Dataset rows include:

- source label and URL
- update title and URL
- `NEW` or `SEEN` status
- category such as `OUTAGE`, `DEGRADED`, `MAINTENANCE`, `SECURITY`, `COMPLIANCE`, `PRICING`, `BREAKING_CHANGE`, `API`, or `FEATURE`
- generic breaking-change evidence: matched terms, affected surfaces, effective date hints, action hints, risk signals, and risk score
- `statusSeverity`, `statusComponents`, `slaImpactScore`, incident stage, time hints, duration hint, customer-impact hint, impact terms, digest risk signals, and digest score for status-page sources, separating `OUTAGE`, `DEGRADED`, `MAINTENANCE`, `RESOLVED`, and `INFO` while identifying affected components such as API, webhooks, auth, billing, database, email, queue, search, CDN, and website
- statuspage component snapshot fields: component names, status by component, component state counts, degraded/operational/maintenance component lists, component risk signals, action hints, and component health score
- alert flag, priority, matched keywords, and reasons
- policy fingerprint, matched policy terms, cookie categories, consent/reject/preference controls, jurisdiction signals, retention hints, data subject rights, legal bases, transfer mechanisms, sensitive/children data categories, sale/share/opt-out signals, privacy contacts, policy date hints, risk signals, and third-party sharing signals for `type: "policy"` sources
- pricing fingerprint, matched pricing terms, amount hints, plan hints, and pricing change hint for `type: "pricing"` sources
- subprocessor fingerprint, vendor count, vendor names, vendor domains, service categories, region hints, data categories, critical vendors, risk signals, and risk score for `type: "subprocessor"` sources
- favicon fingerprint, icon URLs, rels, sizes, manifest URL, theme colors, apple-touch/mask icon counts, SVG/PNG hints, and completeness risk signals for `type: "favicon"` sources
- docs fingerprint, matched docs terms, endpoint hints, section headings, HTTP methods, code-block count, parameter/auth/rate-limit/pagination/error/response-format hints, deprecated versions, removal dates, replacement endpoints, sunset/removal/migration/auth-impact hints, docs drift risk signals, and deprecation/drift risk scores for `type: "docs"` sources
- schema fingerprint, type names, type-kind counts, operation types, root field names, connection/page type hints, directive names, auth directive hints, deprecated count, and breaking/deprecation hints for `type: "graphql"` sources
- OpenAPI fingerprint, previous fingerprint, version, path count/path list, methods, operation list, deprecated count, deprecated operations/operation IDs, required request-body operations, operation IDs, tags, server URLs, security scheme names, request/response schema counts, response status codes, security-scheme hint, breaking-risk signals, previous-snapshot diff signals for removed paths/operations/operation IDs/security schemes, diff risk score, and action hints for `type: "openapi"` sources
- release fingerprint, version hints, feature/fix counts, security hint, breaking/deprecation hint, CVEs, impact areas, migration/deprecation counts, config-change hint, risk signals, action hints, and risk score for `type: "release"` sources
- Stripe fingerprint, API version hints, product areas, payment method hints, breaking/deprecation hint, and webhook hint for `type: "stripe"` sources

Key-value-store records:

- `SUMMARY`: machine-readable counts by source and category
- `REPORT`: Markdown digest for quick inspection
- `ALERTS`: only actionable rows where `alert=true`; use this for automation and future paid-event counting
- `SAAS_CHANGELOG_SNAPSHOT`: saved item IDs plus OpenAPI surface snapshots for scheduled `NEW` versus `SEEN` detection and breaking-change diffs

Status-page summaries include outage/degraded/maintenance/resolved counts, high-impact incident counts, unresolved/long-running/customer-impact/multi-component incident counts, affected component counts, component snapshot/degraded/buyer-visible/low-health counts, and per-row impact/digest/component scores so scheduled runs can act as a lightweight SLA and component-health digest, not only a raw status feed scraper.

The Markdown report includes focused watchlists for paid-digest style workflows:

- `Status Incident Watchlist`
- `Breaking Change Watchlist`
- `Compliance Watchlist`
- `API Change Watchlist`
- `Pricing Watchlist`
- `Release Notes Watchlist`
- `Stripe Changelog Watchlist`

### Monetization plan

First release should be free or usage-cost-only. If organic usage appears, clean paid units are:

- `breaking-change-alert`: a new update classified as breaking, migration, deprecation, security, API, or pricing relevant, with generic breaking evidence such as affected surface, effective date, action hint, and risk score.
- `sla-status-alert`: a new status incident or component snapshot classified as outage, degraded performance, partial outage, buyer-visible component degradation, or maintenance, using `statusSeverity`, `statusComponents`, `slaImpactScore`, incident stage, customer-impact hints, time/duration hints, component status, component health score, digest risk signals, and the status summary counts.
- `competitor-release-digest`: a scheduled digest containing at least one meaningful update.
- `pricing-page-change-alert`: a detected pricing/package/plan change.
- `policy-change-alert`: a new cookie/privacy/compliance policy fingerprint, cookie category/control/jurisdiction signal, retention hint, data subject right, legal basis, transfer mechanism, sensitive/children data category, sale/share opt-out signal, privacy contact, policy date, third-party sharing signal, or policy sentence match.
- `subprocessor-change-alert`: a new vendor/subprocessor fingerprint, vendor/domain drift, AI/payment/personal-data processor signal, region hint, service-category shift, or critical-vendor signal.
- `brand-asset-change-alert`: a new favicon/web-manifest/theme-color fingerprint, missing mobile icon, missing manifest, missing theme color, or brand asset URL drift.
- `api-docs-drift-alert`: a new API docs fingerprint, endpoint hint, section/HTTP-method/code-sample/parameter/auth/rate-limit/pagination/error/response-format surface, deprecated version, dated removal/sunset, replacement endpoint, auth-impact signal, or deprecation/removal/migration term.
- `graphql-schema-change-alert`: a new public GraphQL schema fingerprint, type/root-field/directive/auth surface change, connection/page type signal, or breaking/deprecation schema hint.
- `openapi-spec-change-alert`: a new public OpenAPI fingerprint, deprecated operation, required request body, security-scheme, operationId, tag, server URL, request/response schema, response status, breaking-risk score/action hint, or path/method drift.
- `openapi-breaking-change-diff`: a scheduled OpenAPI diff with removed paths, removed methods, removed operation IDs, removed security schemes, or a changed spec fingerprint. This is the cleanest PPE candidate because it is a concrete audit result rather than a raw scrape.
- `release-notes-digest`: a new release-note fingerprint with version, feature, fix, security, CVE, migration, deprecation, config-change, impact-area, or action-hint signals.
- `stripe-changelog-alert`: a new Stripe API/payment changelog fingerprint with API version, product area, payment method, webhook, breaking, or migration signal.

Use the `ALERTS` record as the future event-count source. Do not charge for unchanged pages, empty reports, low-signal cosmetic edits, or diagnostic errors.

### Local validation

```powershell
npm test
npm run sample
npx apify-cli validate-schema
npm pack --dry-run --json
````

# Actor input Schema

## `sources` (type: `array`):

Public changelog, release-note, API docs, RSS/Atom, status-page incident feed, statuspage component JSON, pricing-page, cookie/privacy-policy, subprocessor, GraphQL schema, or OpenAPI spec URLs. Use type "status" for status/incident feeds or component snapshots, type "policy" for cookie/privacy policy pages, type "subprocessor" for vendor/subprocessor pages, type "docs" for API documentation/deprecation pages, type "pricing" for pricing/package/billing pages, type "graphql" for public SDL/schema text, type "openapi" for OpenAPI JSON/YAML, and type "release" for release-note digest snapshots.

## `previousItemIds` (type: `array`):

Optional IDs from a previous run. Missing IDs are marked NEW.

## `previousOpenApiSurfaces` (type: `array`):

Optional previous OpenAPI surface snapshots for local diff testing. Scheduled runs usually read this automatically from the snapshot key.

## `snapshotKey` (type: `string`):

Key-value-store record used for scheduled change detection.

## `saveSnapshot` (type: `boolean`):

Save current item IDs so the next scheduled run can detect new updates.

## `alertKeywords` (type: `array`):

Keywords that make an update alert-worthy.

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

Maximum update items to output.

## Actor input object example

```json
{
  "sources": [
    {
      "url": "https://docs.apify.com/api/client/python/docs/changelog",
      "label": "Apify Python client changelog",
      "type": "html"
    },
    {
      "url": "https://status.apify.com/history.rss",
      "label": "Apify status incidents",
      "type": "status"
    },
    {
      "url": "https://apify.com/cookie-policy",
      "label": "Apify cookie policy",
      "type": "policy"
    },
    {
      "url": "https://apify.com/pricing",
      "label": "Apify pricing",
      "type": "pricing"
    },
    {
      "url": "https://example.com/subprocessors",
      "label": "Example subprocessors",
      "type": "subprocessor"
    },
    {
      "url": "https://example.com/docs/api-migration",
      "label": "Example API docs",
      "type": "docs"
    },
    {
      "url": "https://example.com/schema.graphql",
      "label": "Example GraphQL schema",
      "type": "graphql"
    },
    {
      "url": "https://example.com/openapi.json",
      "label": "Example OpenAPI spec",
      "type": "openapi"
    },
    {
      "url": "https://example.com/releases",
      "label": "Example release notes",
      "type": "release"
    }
  ],
  "previousItemIds": [],
  "previousOpenApiSurfaces": [],
  "snapshotKey": "SAAS_CHANGELOG_SNAPSHOT",
  "saveSnapshot": true,
  "alertKeywords": [
    "outage",
    "degraded",
    "incident",
    "latency",
    "breaking",
    "deprecated",
    "deprecation",
    "migration",
    "security",
    "pricing",
    "api",
    "endpoint",
    "openapi",
    "swagger",
    "graphql",
    "schema",
    "release",
    "version",
    "fixed",
    "removed",
    "sunset",
    "cookie",
    "privacy",
    "gdpr",
    "ccpa",
    "subprocessor",
    "vendor"
  ],
  "maxItems": 100
}
```

# Actor output Schema

## `items` (type: `string`):

Default dataset rows with source, title, status, category, generic breaking-change evidence/risk score, status incident components, statuspage component snapshot/status/health/risk fields, SLA impact score, status incident stage/time/duration/customer-impact/risk signals, release CVE/migration/action-hint signals, API docs drift/deprecation/removal/replacement signals, cookie category/control/jurisdiction/privacy-risk signals, subprocessor service/region/data/risk signals, favicon/web-manifest/theme-color signals, Stripe payment/API signals, GraphQL schema surface signals, OpenAPI operation/security/schema surface signals, OpenAPI deprecated-operation/required-body/breaking-risk/action-hint signals, OpenAPI previous-snapshot diff fields for removed paths/operations/operation IDs/security schemes, pricing/policy/subprocessor/docs/schema/OpenAPI fingerprints, and alert fields.

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

No description

## `report` (type: `string`):

Human-readable digest with status incident/component, breaking-change, compliance, API, pricing, Stripe changelog, and release-note watchlists.

## `alerts` (type: `string`):

Only rows where alert=true. This is the future paid-event boundary.

## `snapshot` (type: `string`):

Saved item IDs plus OpenAPI surface snapshots used for scheduled breaking-change diffs.

# 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("silicon1235/saas-changelog-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("silicon1235/saas-changelog-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 silicon1235/saas-changelog-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SaaS Changelog, Status & API Monitor",
        "description": "Monitor public SaaS changelogs, status incidents, pricing, policy, trust-center, release-note, GraphQL, API docs, and OpenAPI sources for alerts.",
        "version": "0.2",
        "x-build-id": "QxtsRJPtu7H2TtEAX"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/silicon1235~saas-changelog-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-silicon1235-saas-changelog-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/silicon1235~saas-changelog-monitor/runs": {
            "post": {
                "operationId": "runs-sync-silicon1235-saas-changelog-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/silicon1235~saas-changelog-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-silicon1235-saas-changelog-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",
                "required": [
                    "sources"
                ],
                "properties": {
                    "sources": {
                        "title": "Changelog sources",
                        "type": "array",
                        "description": "Public changelog, release-note, API docs, RSS/Atom, status-page incident feed, statuspage component JSON, pricing-page, cookie/privacy-policy, subprocessor, GraphQL schema, or OpenAPI spec URLs. Use type \"status\" for status/incident feeds or component snapshots, type \"policy\" for cookie/privacy policy pages, type \"subprocessor\" for vendor/subprocessor pages, type \"docs\" for API documentation/deprecation pages, type \"pricing\" for pricing/package/billing pages, type \"graphql\" for public SDL/schema text, type \"openapi\" for OpenAPI JSON/YAML, and type \"release\" for release-note digest snapshots.",
                        "default": [
                            {
                                "url": "https://docs.apify.com/api/client/python/docs/changelog",
                                "label": "Apify Python client changelog",
                                "type": "html"
                            },
                            {
                                "url": "https://status.apify.com/history.rss",
                                "label": "Apify status incidents",
                                "type": "status"
                            },
                            {
                                "url": "https://apify.com/cookie-policy",
                                "label": "Apify cookie policy",
                                "type": "policy"
                            },
                            {
                                "url": "https://apify.com/pricing",
                                "label": "Apify pricing",
                                "type": "pricing"
                            },
                            {
                                "url": "https://example.com/subprocessors",
                                "label": "Example subprocessors",
                                "type": "subprocessor"
                            },
                            {
                                "url": "https://example.com/docs/api-migration",
                                "label": "Example API docs",
                                "type": "docs"
                            },
                            {
                                "url": "https://example.com/schema.graphql",
                                "label": "Example GraphQL schema",
                                "type": "graphql"
                            },
                            {
                                "url": "https://example.com/openapi.json",
                                "label": "Example OpenAPI spec",
                                "type": "openapi"
                            },
                            {
                                "url": "https://example.com/releases",
                                "label": "Example release notes",
                                "type": "release"
                            }
                        ]
                    },
                    "previousItemIds": {
                        "title": "Previous item IDs",
                        "type": "array",
                        "description": "Optional IDs from a previous run. Missing IDs are marked NEW.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "previousOpenApiSurfaces": {
                        "title": "Previous OpenAPI surfaces",
                        "type": "array",
                        "description": "Optional previous OpenAPI surface snapshots for local diff testing. Scheduled runs usually read this automatically from the snapshot key.",
                        "default": []
                    },
                    "snapshotKey": {
                        "title": "Snapshot key",
                        "type": "string",
                        "description": "Key-value-store record used for scheduled change detection.",
                        "default": "SAAS_CHANGELOG_SNAPSHOT"
                    },
                    "saveSnapshot": {
                        "title": "Save snapshot",
                        "type": "boolean",
                        "description": "Save current item IDs so the next scheduled run can detect new updates.",
                        "default": true
                    },
                    "alertKeywords": {
                        "title": "Alert keywords",
                        "type": "array",
                        "description": "Keywords that make an update alert-worthy.",
                        "default": [
                            "outage",
                            "degraded",
                            "incident",
                            "latency",
                            "breaking",
                            "deprecated",
                            "deprecation",
                            "migration",
                            "security",
                            "pricing",
                            "api",
                            "endpoint",
                            "openapi",
                            "swagger",
                            "graphql",
                            "schema",
                            "release",
                            "version",
                            "fixed",
                            "removed",
                            "sunset",
                            "cookie",
                            "privacy",
                            "gdpr",
                            "ccpa",
                            "subprocessor",
                            "vendor"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum update items to output.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
