# Signalfinder Pro (`vamsi-krishna/signalfinder-pro`) Actor

Find high-intent B2B leads from public sources (Hacker News, GitHub, Stack Exchange, Reddit, RSS). Classifies buying intent, scores leads 0–100, and optionally generates outreach. No paid APIs required.

- **URL**: https://apify.com/vamsi-krishna/signalfinder-pro.md
- **Developed by:** [Vamsi Krishna](https://apify.com/vamsi-krishna) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 qualified lead signals

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

## B2B Lead Intent Scanner — Buying Signals from Hacker News, Reddit, GitHub & Stack Exchange

Scan Hacker News, Reddit, GitHub, and Stack Exchange for B2B buying signals using free public APIs.

### Overview

This Actor scans public web and social sources for buying-intent signals—recommendation requests, competitor complaints, tool-replacement discussions, and workflow pain points. It classifies intent, scores each lead (0–100), deduplicates results, and optionally generates suggested outreach messages. No paid APIs or API keys are required.

### Schemas

Machine-readable definitions (used by Apify Console and AI tools):

- Input: [`.actor/input_schema.json`](.actor/input_schema.json)
- Output locations: [`.actor/output_schema.json`](.actor/output_schema.json)
- Lead fields: [`.actor/dataset_schema.json`](.actor/dataset_schema.json)

### Sources

The display title highlights **Hacker News, Reddit, GitHub, and Stack Exchange** as the core platforms. **RSS feeds** and **generic forums** are optional extensions for custom monitoring.

| Source | API | Auth |
|--------|-----|------|
| Hacker News | Algolia Search API | No |
| GitHub | REST Search API | No (optional `githubToken` for higher rate limits) |
| Stack Exchange | Public API | No |
| Reddit | Public JSON/RSS | No (graceful failure if blocked) |
| RSS Feeds | User-provided URLs | No |
| Generic Forums | Crawlee crawler | No |

### Input

**Required**

- `keywords` — Product categories, problems, or solution keywords (e.g. `["crm", "sales automation"]`)
- `sources` — One or more of: `hacker_news`, `github`, `stack_exchange`, `reddit`, `rss`, `generic_forum`

**Optional**

- `competitorNames` — Tools to monitor for dissatisfaction (e.g. `["Apollo", "HubSpot"]`)
- `painPointPhrases` — Custom pain phrases (e.g. `["too expensive", "bad data quality"]`)
- `targetIndustries` — For scoring (e.g. `["SaaS", "B2B"]`)
- `targetJobTitles` — For decision-maker scoring (e.g. `["founder", "head of sales"]`)
- `maxResults` — Maximum qualified leads (default: 100)
- `maxPostsPerSource` — Max posts per source (default: 50)
- `minConfidenceScore` — Minimum score 0–100 (default: 65)
- `includeSuggestedOutreach` — Generate outreach messages (default: true)
- `includeCompanyEnrichment` — Lightweight company enrichment (default: false)
- `rssFeedUrls` — Public RSS feed URLs (required when `rss` is in sources)
- `genericForumUrls` — Public forum URLs (required when `generic_forum` is in sources)
- `githubToken` — Optional GitHub token for higher rate limits
- `webhookUrl` — Optional webhook for lead export (first 10 leads per run)
- `startDate` / `endDate` — ISO date filters
- `enableGlobalDeduplication` — Track seen post URLs across runs (default: true)
- `deduplicationScope` — Optional override for the dedup store scope (default: hash of keywords + sources)
- `deduplicationRetentionDays` — Days to retain seen URLs before pruning (default: 90)
- `resetGlobalDedupStore` — One-time wipe of the scoped dedup store at run start (default: false)

Field definitions: [`.actor/input_schema.json`](.actor/input_schema.json)

### Global deduplication

Scheduled monitoring (e.g. daily HN scans) uses a **named Apify KeyValueStore** to remember `post_url` values from previous runs. On each run:

1. In-run dedup removes duplicates within the current fetch batch.
2. Global dedup filters out URLs already seen in prior runs for the same config scope.
3. New URLs from the run are persisted back to the store.

The store scope is derived from your `keywords` and `sources` (sorted and hashed), so different monitoring configs do not cross-filter. Override with `deduplicationScope` if you want a shared store across configs.

Seen URLs older than `deduplicationRetentionDays` (default 90) are pruned automatically. Set `resetGlobalDedupStore: true` once to clear a stale store.

Run summary metrics (`usage_metrics` in the OUTPUT report) include `globally_skipped_items`, `deduplication_scope`, and `deduplication_store_size`.

### Example input

Works without API keys — uses Hacker News only:

```json
{
  "keywords": ["software", "looking for tool"],
  "sources": ["hacker_news"],
  "maxResults": 10,
  "maxPostsPerSource": 20,
  "minConfidenceScore": 40,
  "includeSuggestedOutreach": true,
  "includeCompanyEnrichment": false
}
````

### Output

**Dataset (`leads`)** — one item per qualified lead. See [`.actor/dataset_schema.json`](.actor/dataset_schema.json) for full field definitions.

**Key-value store (`summary`)** — run summary at key `OUTPUT` with totals, top intent categories, top keywords, highest-scoring leads, and `usage_metrics`.

`intent_category` values: `active_buying_intent`, `competitor_dissatisfaction`, `tool_replacement_intent`, `pain_problem_expression`, `recommendation_request`, `budget_pricing_complaint`, `integration_workflow_issue`, `hiring_growth_trigger`, `research_awareness_only`, `not_relevant`

Example lead:

```json
{
  "lead_id": "lead_hacker_news_ouc37q",
  "source_platform": "hacker_news",
  "post_url": "https://news.ycombinator.com/item?id=42119042",
  "intent_category": "active_buying_intent",
  "intent_confidence_score": 45,
  "matched_keywords": ["software"],
  "matched_trigger_phrases": ["looking for"],
  "reason_for_score": "Score: 45/100. Factors: moderate intent signals, high engagement signals."
}
```

### Run locally

```bash
npm install
npm run build
npm test
npm run run:local   ## or: apify run
```

Results are written to `storage/datasets/default/` (leads) and `storage/key_value_stores/default/OUTPUT.json` (summary).

### Deploy

```bash
apify login
apify push
```

Then configure input and run from the Apify Console.

### Store SEO (Apify Console)

After `apify push`, set these in **Publication → Display information** (not stored in git):

| Field | Suggested value |
|-------|-----------------|
| **SEO name** (~45 chars) | `B2B Lead Intent Scanner — Buying Signals` |
| **SEO description** (~150 chars) | `Find B2B buying signals on Hacker News, Reddit, GitHub & Stack Exchange. Intent classification, lead scoring, dedupe. No LinkedIn or paid APIs.` |

Use the full Store description for warm visitors (intent categories, scoring, webhook, example input above). Suggested categories: Lead generation, B2B, sales intelligence, intent data.

# Actor input Schema

## `keywords` (type: `array`):

Product categories, problems, or solution keywords to search for (e.g. crm, sales automation, lead generation).

## `competitorNames` (type: `array`):

Competitors or tools to monitor for dissatisfaction or alternative-seeking (e.g. Apollo, ZoomInfo, HubSpot).

## `painPointPhrases` (type: `array`):

Custom pain phrases to search for (e.g. too expensive, bad data quality, looking for alternative).

## `targetIndustries` (type: `array`):

Industries used to boost lead scores when detected (e.g. SaaS, B2B, ecommerce).

## `targetJobTitles` (type: `array`):

Job titles used for decision-maker scoring when titles are available (e.g. founder, head of sales).

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

Public sources to scan. hacker\_news: startup/tool discussions. github: issues and repos seeking alternatives. stack\_exchange: technical Q\&A. reddit: community posts (may be blocked). rss: your own feed URLs. generic\_forum: public forum URLs you provide.

## `rssFeedUrls` (type: `array`):

Public RSS feed URLs to scan. Required when rss is selected in sources.

## `genericForumUrls` (type: `array`):

Public forum or community URLs to crawl. Required when generic\_forum is selected in sources.

## `githubToken` (type: `string`):

Optional free GitHub personal access token for higher API rate limits. Actor works without it.

## `startDate` (type: `string`):

Optional ISO date to filter results from (e.g. 2024-01-01T00:00:00Z).

## `endDate` (type: `string`):

Optional ISO date to filter results until (e.g. 2024-12-31T23:59:59Z).

## `maxResults` (type: `integer`):

Maximum number of qualified leads to return.

## `maxPostsPerSource` (type: `integer`):

Maximum posts to fetch and analyze per source.

## `minConfidenceScore` (type: `integer`):

Minimum intent confidence score (0-100) for a lead to be included in output.

## `includeSuggestedOutreach` (type: `boolean`):

Generate suggested outreach messages for each qualified lead.

## `includeCompanyEnrichment` (type: `boolean`):

Attempt lightweight company enrichment from publicly available data.

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

Optional webhook URL to POST the first 10 qualified leads after each run (10s timeout).

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

If true, validate input and configuration without running full scan.

## `enableGlobalDeduplication` (type: `boolean`):

Track seen post URLs across runs in a named KeyValueStore so scheduled monitoring only surfaces new signals.

## `deduplicationScope` (type: `string`):

Optional override for the deduplication store scope. By default, scope is derived from your keywords and sources.

## `deduplicationRetentionDays` (type: `integer`):

Number of days to retain seen post URLs before pruning from the store (1-365).

## `resetGlobalDedupStore` (type: `boolean`):

If true, wipe the scoped deduplication store at the start of this run (one-time reset).

## Actor input object example

```json
{
  "keywords": [
    "software",
    "looking for tool"
  ],
  "sources": [
    "hacker_news"
  ],
  "maxResults": 10,
  "maxPostsPerSource": 20,
  "minConfidenceScore": 40,
  "includeSuggestedOutreach": true,
  "includeCompanyEnrichment": false,
  "dryRun": false,
  "enableGlobalDeduplication": true,
  "deduplicationRetentionDays": 90,
  "resetGlobalDedupStore": false
}
```

# Actor output Schema

## `leads` (type: `string`):

One dataset item per lead that met minConfidenceScore.

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

Aggregated stats, top categories, and usage\_metrics.

# 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 = {
    "keywords": [
        "software",
        "looking for tool"
    ],
    "sources": [
        "hacker_news"
    ],
    "maxResults": 10,
    "maxPostsPerSource": 20,
    "minConfidenceScore": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("vamsi-krishna/signalfinder-pro").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 = {
    "keywords": [
        "software",
        "looking for tool",
    ],
    "sources": ["hacker_news"],
    "maxResults": 10,
    "maxPostsPerSource": 20,
    "minConfidenceScore": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("vamsi-krishna/signalfinder-pro").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 '{
  "keywords": [
    "software",
    "looking for tool"
  ],
  "sources": [
    "hacker_news"
  ],
  "maxResults": 10,
  "maxPostsPerSource": 20,
  "minConfidenceScore": 40
}' |
apify call vamsi-krishna/signalfinder-pro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=vamsi-krishna/signalfinder-pro",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Signalfinder Pro",
        "description": "Find high-intent B2B leads from public sources (Hacker News, GitHub, Stack Exchange, Reddit, RSS). Classifies buying intent, scores leads 0–100, and optionally generates outreach. No paid APIs required.",
        "version": "1.0",
        "x-build-id": "cN2MuiV4GaQkOgVLd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/vamsi-krishna~signalfinder-pro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-vamsi-krishna-signalfinder-pro",
                "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/vamsi-krishna~signalfinder-pro/runs": {
            "post": {
                "operationId": "runs-sync-vamsi-krishna-signalfinder-pro",
                "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/vamsi-krishna~signalfinder-pro/run-sync": {
            "post": {
                "operationId": "run-sync-vamsi-krishna-signalfinder-pro",
                "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": [
                    "keywords",
                    "sources"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Product categories, problems, or solution keywords to search for (e.g. crm, sales automation, lead generation).",
                        "default": [
                            "software",
                            "tool"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "competitorNames": {
                        "title": "Competitor Names",
                        "type": "array",
                        "description": "Competitors or tools to monitor for dissatisfaction or alternative-seeking (e.g. Apollo, ZoomInfo, HubSpot).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "painPointPhrases": {
                        "title": "Pain Point Phrases",
                        "type": "array",
                        "description": "Custom pain phrases to search for (e.g. too expensive, bad data quality, looking for alternative).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "targetIndustries": {
                        "title": "Target Industries",
                        "type": "array",
                        "description": "Industries used to boost lead scores when detected (e.g. SaaS, B2B, ecommerce).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "targetJobTitles": {
                        "title": "Target Job Titles",
                        "type": "array",
                        "description": "Job titles used for decision-maker scoring when titles are available (e.g. founder, head of sales).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sources": {
                        "title": "Sources",
                        "type": "array",
                        "description": "Public sources to scan. hacker_news: startup/tool discussions. github: issues and repos seeking alternatives. stack_exchange: technical Q&A. reddit: community posts (may be blocked). rss: your own feed URLs. generic_forum: public forum URLs you provide.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "hacker_news",
                                "github",
                                "stack_exchange",
                                "reddit",
                                "rss",
                                "generic_forum"
                            ],
                            "enumTitles": [
                                "Hacker News",
                                "GitHub",
                                "Stack Exchange",
                                "Reddit",
                                "RSS Feeds",
                                "Generic Forums"
                            ]
                        },
                        "default": [
                            "hacker_news"
                        ]
                    },
                    "rssFeedUrls": {
                        "title": "RSS Feed URLs",
                        "type": "array",
                        "description": "Public RSS feed URLs to scan. Required when rss is selected in sources.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "genericForumUrls": {
                        "title": "Generic Forum URLs",
                        "type": "array",
                        "description": "Public forum or community URLs to crawl. Required when generic_forum is selected in sources.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "githubToken": {
                        "title": "GitHub Token (Optional)",
                        "type": "string",
                        "description": "Optional free GitHub personal access token for higher API rate limits. Actor works without it."
                    },
                    "startDate": {
                        "title": "Start Date",
                        "type": "string",
                        "description": "Optional ISO date to filter results from (e.g. 2024-01-01T00:00:00Z)."
                    },
                    "endDate": {
                        "title": "End Date",
                        "type": "string",
                        "description": "Optional ISO date to filter results until (e.g. 2024-12-31T23:59:59Z)."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of qualified leads to return.",
                        "default": 100
                    },
                    "maxPostsPerSource": {
                        "title": "Max Posts Per Source",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum posts to fetch and analyze per source.",
                        "default": 50
                    },
                    "minConfidenceScore": {
                        "title": "Minimum Confidence Score",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Minimum intent confidence score (0-100) for a lead to be included in output.",
                        "default": 65
                    },
                    "includeSuggestedOutreach": {
                        "title": "Include Suggested Outreach",
                        "type": "boolean",
                        "description": "Generate suggested outreach messages for each qualified lead.",
                        "default": true
                    },
                    "includeCompanyEnrichment": {
                        "title": "Include Company Enrichment",
                        "type": "boolean",
                        "description": "Attempt lightweight company enrichment from publicly available data.",
                        "default": false
                    },
                    "webhookUrl": {
                        "title": "Webhook URL",
                        "type": "string",
                        "description": "Optional webhook URL to POST the first 10 qualified leads after each run (10s timeout)."
                    },
                    "dryRun": {
                        "title": "Dry Run",
                        "type": "boolean",
                        "description": "If true, validate input and configuration without running full scan.",
                        "default": false
                    },
                    "enableGlobalDeduplication": {
                        "title": "Enable Global Deduplication",
                        "type": "boolean",
                        "description": "Track seen post URLs across runs in a named KeyValueStore so scheduled monitoring only surfaces new signals.",
                        "default": true
                    },
                    "deduplicationScope": {
                        "title": "Deduplication Scope",
                        "type": "string",
                        "description": "Optional override for the deduplication store scope. By default, scope is derived from your keywords and sources."
                    },
                    "deduplicationRetentionDays": {
                        "title": "Deduplication Retention Days",
                        "minimum": 1,
                        "maximum": 365,
                        "type": "integer",
                        "description": "Number of days to retain seen post URLs before pruning from the store (1-365).",
                        "default": 90
                    },
                    "resetGlobalDedupStore": {
                        "title": "Reset Deduplication Store",
                        "type": "boolean",
                        "description": "If true, wipe the scoped deduplication store at the start of this run (one-time reset).",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
