# Lead Intelligence Enricher — Owner Names + Review Sentiment (`vijaya_jayaraj/lead-intelligence-enricher`) Actor

Adds owner names + customer-sentiment summaries to every Google Maps business — hallucination-guarded, eval-audited.

- **URL**: https://apify.com/vijaya\_jayaraj/lead-intelligence-enricher.md
- **Developed by:** [Vijaya Jayaraj](https://apify.com/vijaya_jayaraj) (community)
- **Categories:** AI, Lead generation, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 business enricheds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Lead Intelligence Enricher

> Turn a Google Maps scrape into a real lead list. Adds **verified owner names** and **customer-sentiment summaries** to every business in your `compass/crawler-google-places` dataset.

**$10 per 1,000 enriched businesses · pay only for results · hallucination-guarded · eval-audited (68.8% precision on 154 labeled businesses)**

---

### 📍 What is Lead Intelligence Enricher?

You scraped 1,000 dentists in Berlin. Now you need to know **who runs each one** and **what their customers actually say**. This actor reads your compass output and answers both questions per business — with the source URL and verbatim quote attached, so every answer is auditable.

It's the missing layer between raw Google Maps scraping and an SDR-ready lead list.

**Built for:**
- 🎯 **B2B sales teams** running cold outreach — go from `info@business.com` to `Dr. Errin DePalma, Principal Dentist`
- 📊 **Agencies** delivering enriched lead lists to clients — every result auditable, every null explainable
- 🏢 **Founders** doing partner outreach — find the actual decision-maker, not the front desk
- 🔍 **Researchers** mapping local industries — owner + sentiment together = a competitive snapshot in two fields

---

### ⚡️ Why this actor (and not the dozen others)

- **🛡 Hallucination-guarded.** Every owner name is source-quote-verified against the business's website, boilerplate-rejected (no "Customer Service" as an owner name), and cross-business dedup-checked (no chain-corporate template names slipping through). If the model can't quote where it found the name, the result is `null`.
- **🎯 Honest about nulls.** ~30–40% of businesses don't have a findable owner — chain corporates, anonymous-by-design verticals, sites with no team page. The actor returns `null` for those and **doesn't charge for them**. A `null` is a feature, not a failure.
- **📐 Eval-audited.** Quality numbers are measured against a 154-business human-labeled set. The labeling guide, comparator code, and per-record diffs are all in the GitHub repo. Every percentage point on this page is independently verifiable.
- **💸 No LLM markup.** Our model infrastructure bill is paid directly to the provider, not routed through Apify's platform-cost layer. The price you see is the price.

---

### 📦 What does the actor add per business?

| Field | Type | Example |
|---|---|---|
| `owner_name` | string \| null | `"Dr. Errin DePalma"` |
| `owner_title` | string \| null | `"Principal Dentist"` |
| `owner_confidence` | number (0–1) | `0.91` |
| `owner_source_url` | string \| null | `"https://depalmadental.com/about"` |
| `sentiment_digest` | string \| null | 2-sentence summary of review themes |
| `sentiment_praise_themes` | string[] \| null | `["gentle dentists", "modern equipment"]` |
| `sentiment_complaint_themes` | string[] \| null | `["long wait times", "billing confusion"]` |
| `enriched_at` | ISO 8601 | `"2026-05-28T14:23:11.000Z"` |
| `enrichment_model` | string | Model version identifier |

Every original compass field passes through unchanged.

---

### 🔁 How it fits in your workflow

````

compass/crawler-google-places  →  Lead Intelligence Enricher  →  enriched dataset
↓                                  ↓                            ↓
Maps places                  owner + sentiment              CRM / outreach / scoring

````

1. Run **[compass/crawler-google-places](https://apify.com/compass/crawler-google-places)** with your query and filters. **Important:** set `maxReviews ≥ 10` if you want the sentiment digest. (Default is 0, which means no review text.)
2. Copy the resulting dataset ID from the run's **Storage** tab.
3. Run **this actor** with that dataset ID as input.
4. Download the enriched dataset — owner_name and sentiment_digest fields are added per record.

---

### 🚀 Try it in 30 seconds

1. Click **Try for free** on this page
2. Paste a compass dataset ID into the `inputDatasetId` field
3. Click **Start**
4. Open the **Storage** tab → switch to the **Owners found** view to see only businesses with extracted names

That's it. No API keys to set up, no models to host, no proxy to configure.

---

### 📥 Input fields

| Field | Type | Default | Notes |
|---|---|---|---|
| `inputDatasetId` | string | **required** | Compass dataset ID — find it in compass's run → Storage tab |
| `enrichOwnerName` | bool | `true` | Visit each business's website and extract the owner |
| `enrichReviewSentiment` | bool | `true` | Summarize reviews (requires `maxReviews ≥ 5` upstream) |
| `confidenceThreshold` | enum | `"balanced"` | `"strict"` (higher precision, more nulls) or `"balanced"` (default) |
| `proxyConfig` | object | residential | Used when fetching business websites |

> A permissive confidence mode is intentionally **not offered** — the hallucination risk is not worth the recall gain.

---

### 📂 Sample output (one record)

```json
{
  "place_id": "ChIJX12k...",
  "name": "DePalma Dental",
  "website": "https://depalmadental.com",
  "rating": 4.8,
  "reviews": [/* compass passthrough */],

  "owner_name": "Dr. Errin DePalma",
  "owner_title": "Principal Dentist",
  "owner_confidence": 0.91,
  "owner_source_url": "https://depalmadental.com/about",

  "sentiment_digest": "Patients consistently praise the gentle bedside manner and modern equipment. A handful complain about long wait times during peak hours.",
  "sentiment_praise_themes": ["gentle dentists", "modern equipment", "clean facility"],
  "sentiment_complaint_themes": ["long wait times", "billing confusion"],

  "enriched_at": "2026-05-28T14:23:11.000Z",
  "enrichment_model": "lead-intelligence-enricher-v1"
}
````

When the actor can't confidently extract a name: `owner_name`, `owner_title`, and `owner_source_url` come back `null` and `owner_confidence` is `0`. **Never hallucinated.**

***

### ✅ Quality numbers (the trust moat)

Measured on a **154-business human-labeled eval set**, balanced threshold.

| Metric | Value | What it means in plain English |
|---|---|---|
| 🎯 **Precision** | **68.8%** | Of the names we return, ~7 in 10 match the human label. Lower bound — see audit caveat. |
| 📡 **Recall** | **45.8%** | When a human can find an owner on the website, we return the same person ~46% of the time. The other ~54% are intentional nulls — low confidence, source-quote rejected, or boilerplate guard fired. |
| ❌ **False-positive rate** | **9.7%** | About 1 in 10 records gets a name the labeler classifies as wrong. A partial hand-audit showed roughly 1/3 of FPs are labeler edge-cases (joint owners, thin labels) — the genuine model-error rate is approximately 3.5%. |

> **Audit caveat.** The remaining false-positives have not yet been individually hand-checked against source websites. Treat 68.8% as a **lower bound**; the hand-audited number is expected to be higher.

Stratified across US / EU / LATAM / India / Rest, and across categories: restaurants, dentists, plumbers, retail, professional services. Mix includes ~30% no-website businesses, multiple CMS platforms, and English + non-English sites.

***

### 💰 Pricing

Pay-per-event, no subscription, no monthly minimum.

| Event | Price | When it fires |
|---|---|---|
| 🚀 Run start | **$0.005** | Once per run |
| 👤 Business enriched | **$0.010** | Per business where **at least one** enrichment field came back non-null |

**You don't pay for businesses we can't enrich.** If both `owner_name` and `sentiment_digest` are null (e.g., the business has no website and no reviews), no charge fires for that record.

#### 💡 Worked example

You run the actor on **1,000 dentists**. After processing:

- 650 have findable owners
- 920 have ≥5 reviews and get a sentiment digest
- 80 have neither → not charged

**You pay:** `$0.005 + (920 × $0.010) = $9.205`

A business with sentiment only (and no owner) still counts as enriched.

***

### ❓ FAQ

<details>
<summary><strong>Can I use this on any Google Maps scrape, or only compass?</strong></summary>

Compass-only in v1. The actor validates input against compass's schema and fails fast on any other shape. This is intentional — supporting every Google Maps scraper would mean a fragile, untested matrix. Compass is the most-used Google Maps actor on Apify Store and has a stable output contract.

Want support for another scraper? Open an issue on this actor's page with your dataset's JSON shape.

</details>

<details>
<summary><strong>Why ~30–40% nulls? Isn't that bad?</strong></summary>

It's the honest number. Chain corporates (Starbucks, Domino's) have no individual owner. Anonymous-by-design verticals (legal, medical, adult services) intentionally don't publish names. Sites with no team page have no extractable signal. The alternative — making up names to inflate recall — is the trust-killer this actor was specifically built to avoid.

You don't pay for nulls. The 30–40% non-coverage is the cost of never lying to you.

</details>

<details>
<summary><strong>What does "hallucination guard" actually do?</strong></summary>

Four checks, all run on every candidate name before it makes it to the output:

1. **Confidence threshold** — model's self-rated confidence must clear `0.75` (balanced) or `0.9` (strict)
2. **Source-quote verification** — the model must return a verbatim quote from the page that names the owner. We re-check the quote appears in the fetched page text. No quote = no result.
3. **Boilerplate rejection** — names like "Customer Service", "Team Member", "Reception", "Our Founder" are auto-rejected as non-people.
4. **Cross-business dedup** — if the same name appears across too many distinct businesses in one run, it's flagged as chain-corporate noise and suppressed.

Each guard is independently auditable in the open-source repo.

</details>

<details>
<summary><strong>How long does a run take?</strong></summary>

Roughly **15–30 seconds per business** (most of it is the website fetch). A run of 1,000 businesses typically completes in 30–60 minutes depending on website response times and proxy latency. The actor processes businesses sequentially per the Apify run, but you can run multiple actor instances in parallel if you split the input dataset.

</details>

<details>
<summary><strong>Which AI model does this use?</strong></summary>

A best-in-class open-source LLM hosted on enterprise infrastructure. The specific model is periodically re-benchmarked against the eval set and updated when a better candidate wins on precision and false-positive rate. The published quality numbers on this page always reflect the currently-deployed model.

</details>

<details>
<summary><strong>Will the actor refetch Google Maps data?</strong></summary>

No. This is a **post-scrape enrichment layer**, not a scraper. It reads the existing dataset, fetches business websites, and adds owner + sentiment fields. The compass record fields pass through unchanged.

</details>

<details>
<summary><strong>What if I find a wrong owner name?</strong></summary>

Report it on this actor's Apify Store page with the `place_id` and the website URL. Every false positive someone shows me gets added to the next iteration's eval set. The whole point of the eval-first methodology is that the precision number improves over time, not just on launch day.

</details>

<details>
<summary><strong>Does this work on non-English business websites?</strong></summary>

Yes, but with caveats. The actor's website fetcher prioritizes multilingual paths (`/about`, `/team`, `/impressum` for German, `/equipe` for French, `/nosotros` for Spanish, etc.). The LLM handles non-English names fine. The published 68.8% precision is on a mixed dataset (~30% non-English). Stronger English-language performance is expected on US/UK-only runs; weaker on heavily-CJK runs.

</details>

***

### ⚠️ Limitations

Up-front, in plain language:

- **No website ⇒ no owner.** We don't have access to non-web sources (LinkedIn, business registries). If compass returns a business without a `website` field, `owner_name` will always be null.
- **Anonymous-by-design verticals** (legal, medical, adult services) return null often. That's the design.
- **Chain corporates** (Starbucks, Domino's) return null. There is no individual owner attributable.
- **Sentiment requires reviews.** If your compass run set `maxReviews: 0` (the default), every record's `sentiment_digest` will be null. Set `maxReviews ≥ 10` upstream.
- **Not a Google Maps scraper.** This is a post-scrape enrichment layer. We don't refetch maps data.

***

### 🔎 Auditable by design

Every owner name we return carries the **source URL** and the **verbatim source quote** it was extracted from. If a name ever looks wrong, you can verify it in 5 seconds by clicking through to the source page. The hallucination guard exists precisely so that any FP you find is a labeler edge-case, not a fabrication.

Custom enterprise eval against your own labeled dataset? Drop a note via Support — happy to run your set through the actor and share the numbers.

***

### 🆘 Support

Found a wrong owner name? A failing record? An idea for a feature? Drop a note on this actor's Apify Store page with:

- The `place_id` (or business name + city if no `place_id`)
- Observed vs expected output
- The compass dataset ID if applicable

I take hallucination reports seriously — every false positive gets added to the eval set for the next prompt iteration.

# Actor input Schema

## `inputDatasetId` (type: `string`):

Pick a dataset produced by compass/crawler-google-places. Run compass first, then select its dataset here. For sentiment digests to populate, the upstream compass run must set maxReviews >= 10.

## `enrichOwnerName` (type: `boolean`):

Visit each business's website and extract the owner or primary decision-maker's name and title. Returns null when confidence is low or no name is findable (~30-40% of businesses; that's expected, not a failure).

## `enrichReviewSentiment` (type: `boolean`):

Summarize what customers praise and complain about in a 2-sentence digest, plus arrays of praise and complaint themes. Requires the upstream compass run to have scraped reviews (maxReviews >= 5).

## `confidenceThreshold` (type: `string`):

Strict returns fewer names but is more confident in each one. Balanced is the default — it returns more names while still applying the full hallucination guard (source-quote verification, boilerplate rejection, cross-business dedup). A permissive mode is intentionally not offered in v1 due to hallucination risk.

## `proxyConfig` (type: `object`):

Used when fetching business websites. Residential proxy recommended — some sites block datacenter IPs.

## Actor input object example

```json
{
  "enrichOwnerName": true,
  "enrichReviewSentiment": true,
  "confidenceThreshold": "balanced",
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "proxyConfig": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("vijaya_jayaraj/lead-intelligence-enricher").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 = { "proxyConfig": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    } }

# Run the Actor and wait for it to finish
run = client.actor("vijaya_jayaraj/lead-intelligence-enricher").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 '{
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call vijaya_jayaraj/lead-intelligence-enricher --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=vijaya_jayaraj/lead-intelligence-enricher",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Lead Intelligence Enricher — Owner Names + Review Sentiment",
        "description": "Adds owner names + customer-sentiment summaries to every Google Maps business — hallucination-guarded, eval-audited.",
        "version": "0.1",
        "x-build-id": "U5ffDaQHLLMVMlu95"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/vijaya_jayaraj~lead-intelligence-enricher/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-vijaya_jayaraj-lead-intelligence-enricher",
                "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/vijaya_jayaraj~lead-intelligence-enricher/runs": {
            "post": {
                "operationId": "runs-sync-vijaya_jayaraj-lead-intelligence-enricher",
                "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/vijaya_jayaraj~lead-intelligence-enricher/run-sync": {
            "post": {
                "operationId": "run-sync-vijaya_jayaraj-lead-intelligence-enricher",
                "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": [
                    "inputDatasetId"
                ],
                "properties": {
                    "inputDatasetId": {
                        "title": "Compass Dataset",
                        "type": "string",
                        "description": "Pick a dataset produced by compass/crawler-google-places. Run compass first, then select its dataset here. For sentiment digests to populate, the upstream compass run must set maxReviews >= 10."
                    },
                    "enrichOwnerName": {
                        "title": "Extract owner / decision-maker name",
                        "type": "boolean",
                        "description": "Visit each business's website and extract the owner or primary decision-maker's name and title. Returns null when confidence is low or no name is findable (~30-40% of businesses; that's expected, not a failure).",
                        "default": true
                    },
                    "enrichReviewSentiment": {
                        "title": "Generate review sentiment digest",
                        "type": "boolean",
                        "description": "Summarize what customers praise and complain about in a 2-sentence digest, plus arrays of praise and complaint themes. Requires the upstream compass run to have scraped reviews (maxReviews >= 5).",
                        "default": true
                    },
                    "confidenceThreshold": {
                        "title": "Owner-name confidence threshold",
                        "enum": [
                            "strict",
                            "balanced"
                        ],
                        "type": "string",
                        "description": "Strict returns fewer names but is more confident in each one. Balanced is the default — it returns more names while still applying the full hallucination guard (source-quote verification, boilerplate rejection, cross-business dedup). A permissive mode is intentionally not offered in v1 due to hallucination risk.",
                        "default": "balanced"
                    },
                    "proxyConfig": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Used when fetching business websites. Residential proxy recommended — some sites block datacenter IPs."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
