# SmartCustomer Review Scraper (Pay-Per-Event) (`prodiger/smartcustomer-review-scraper`) Actor

Scrape consumer reviews from SmartCustomer by domain. Self-contained review records with embedded business metadata, rating, date, user, and run-summary. Pay-per-event pricing — only pay for businesses resolved + reviews extracted.

- **URL**: https://apify.com/prodiger/smartcustomer-review-scraper.md
- **Developed by:** [Arnas](https://apify.com/prodiger) (community)
- **Categories:** Business, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN 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

## SmartCustomer Review Scraper (Pay-Per-Event)

**SmartCustomer Review Scraper** extracts consumer reviews from any business listed on [SmartCustomer](https://www.smartcustomer.com). This is the **Pay-Per-Event** edition — there is no monthly rental, no compute-unit guesswork, and no minimum spend. **You pay only for businesses successfully resolved + reviews actually extracted.** Filtered-out reviews don't cost a cent.

Use it on the Apify platform for scheduling, API access, dataset exports (JSON, CSV, Excel, HTML), residential proxy rotation, run monitoring, and integration with Make, Zapier, and 5000+ other tools.

### What does SmartCustomer Review Scraper do?

Give it one or more **business domains** (e.g. `amazon.com`, `airbnb.com`, `booking.com`) — or full SmartCustomer **review URLs** — and the actor walks SmartCustomer's `/reviews/<domain>` pages and emits one self-contained record per review. Full business metadata is embedded on every review record so downstream consumers don't have to join two record types.

The scraper extracts:

- **Review fields** — review text, star rating, date, headline, user name + avatar, review permalink, review ID.
- **Embedded business metadata** — name, business URL, business rating, total review count.
- **Photos** — when SmartCustomer has user-uploaded review photos, validated against `*.smartcustomer.com` (SmartCustomer's image CDN). Many reviews emit `photos: []` because SmartCustomer surfaces photos inconsistently.
- **Status enum per record** — `ok`, `partial`, `business_not_found`, `blocked`, `rate_limited`.
- **Run-level summary** — one final dataset record (`type: "run_summary"`) with aggregate counts.

The actor is **HTTP-only** (Crawlee `CheerioCrawler` + got-scraping) — no browser, fast cold-start, runs on residential proxies.

### Why use SmartCustomer Review Scraper?

- **Reputation monitoring** — Track new reviews + ratings for your business and competitors.
- **Sentiment & content analysis** — Feed review text into LLMs or sentiment classifiers.
- **Competitive research** — Compare review counts and ratings across local-market competitors.
- **Lead enrichment** — Combine business metadata + review-volume signals to score prospects.
- **Trust & safety analysis** — SmartCustomer covers many less-mainstream domains that Trustpilot and Google Reviews don't.

### How to use SmartCustomer Review Scraper

1. **Click "Try for free"** on this actor's page.
2. **Enter business domains** in the input form, one per line (e.g., `amazon.com`).
3. **Set "Max reviews per run"** to cap your spend. The default `50` makes test runs cheap.
4. **(Optional) Toggle "Only emit reviews that have photos"** — but note SmartCustomer's photo coverage is inconsistent.
5. **(Optional) Pick a sort order** — `relevance` (default), `newest`, `highest_rated`, `lowest_rated`.
6. **Click "Save & Start"**. Watch the live log; reviews stream into the dataset as they're scraped.
7. **Export** as JSON, CSV, Excel, or HTML, or hit the Apify [Dataset API](https://docs.apify.com/api/v2#/reference/datasets) directly.

### Input

| Parameter            | Type    | Required        | Description                                                                                                                                                              |
| -------------------- | ------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `domains`            | Array   | One-of required | Business domains (e.g., `["amazon.com", "airbnb.com"]`). Each is mapped to `https://www.smartcustomer.com/reviews/<domain>`. Domain regex enforced.                         |
| `businessUrls`       | Array   | One-of required | Full SmartCustomer review URLs (e.g., `https://www.smartcustomer.com/reviews/airbnb.com`). Host must be smartcustomer.com. Canonicalized to domain before processing.             |
| `maxReviews`         | Integer | No              | **Total** cap on reviews emitted across the run. Budget splits greedily across resolved businesses. Default `50`. Max `1000`.                                            |
| `sortBy`             | String  | No              | `relevance` (default) / `newest` / `highest_rated` / `lowest_rated`.                                                                                                     |
| `onlyWithPhotos`     | Boolean | No              | When `true`, drops reviews with no photos. **PPE charges only for emitted (post-filter) reviews** — filtered-out reviews are not billed. SmartCustomer photo coverage varies. |
| `maxConcurrency`     | Integer | No              | HTTP concurrency. Default `5`, max `30`.                                                                                                                                 |
| `requestTimeoutSecs` | Integer | No              | Per-request timeout. Default `45`.                                                                                                                                       |
| `proxyConfiguration` | Object  | No              | Apify proxy. Residential is the default and recommended.                                                                                                                 |

At least one of `domains` or `businessUrls` must be provided.

#### Input examples

| Use case                                       | Input JSON                                                                                                                |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Scrape Amazon's first 50 reviews               | `{ "domains": ["amazon.com"], "maxReviews": 50, "sortBy": "relevance" }`                                                  |
| Newest reviews for an Airbnb listing           | `{ "domains": ["airbnb.com"], "sortBy": "newest", "maxReviews": 30 }`                                                     |
| Multiple businesses sharing a 60-review budget | `{ "domains": ["amazon.com", "etsy.com", "ebay.com"], "maxReviews": 60 }`                                                 |
| Direct URL input + photos-only                 | `{ "businessUrls": ["https://www.smartcustomer.com/reviews/marriott.com"], "onlyWithPhotos": true }`                          |

### Output

All results land in the run's default dataset. Each record has a `type` field — `"review"` for review records and `"run_summary"` for the final aggregate at end of run.

#### Sample review record

```json
{
    "type": "review",
    "review_url": "https://www.smartcustomer.com/reviews/amazon.com#41154",
    "url": "https://www.smartcustomer.com/reviews/amazon.com#41154",
    "business_url": "https://www.smartcustomer.com/reviews/amazon.com",
    "review_id": "41154",
    "rating": 1.0,
    "review_date": "2026-04-26",
    "text": "Just like a butcher who puts his thumb on the scale or a used car dealer that rolls back the odometer, Amazon is engaging in similar unscrupulous bait-and-switch activities...",
    "user_name": "Les D.",
    "user_avatar_url": "https://static.smartcustomer.com/img/users/lesvdavis/thumbnail_large.1777241188.jpg",
    "photos": [],
    "status": "ok",
    "business": {
        "alias": "amazon.com",
        "name": "Amazon",
        "business_url": "https://www.smartcustomer.com/reviews/amazon.com",
        "city": null,
        "categories": [],
        "price_tier": null,
        "business_rating": 2.5,
        "review_count": 11108
    },
    "scraped_at": "2026-05-05T18:00:00.000Z"
}
````

#### Sample run-summary record

```json
{
    "type": "run_summary",
    "businesses_resolved": 1,
    "reviews_emitted": 50,
    "blocked": 0,
    "rate_limited": 0,
    "consecutive_blocks_at_end": 0,
    "run_outcome": "normal",
    "scraped_at": "2026-05-05T18:00:42.000Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data table

| Field                  | Type            | Description                                                                                                  |
| ---------------------- | --------------- | ------------------------------------------------------------------------------------------------------------ |
| `type`                 | string          | `"review"` or `"run_summary"`.                                                                               |
| `review_url`           | string | null  | SmartCustomer-canonical permalink. Always on `*.smartcustomer.com`.                                                |
| `url`                  | string | null  | Original review URL from JSON-LD (typically smartcustomer.com).                                              |
| `business_url`         | string | null  | SmartCustomer business page URL.                                                                                |
| `review_id`            | string | null  | Review's ID from SmartCustomer.                                                                                 |
| `rating`               | number | null  | Star rating, 1–5.                                                                                            |
| `review_date`          | string | null  | Date as SmartCustomer displays it.                                                                              |
| `text`                 | string | null  | Review body. Original locale.                                                                                |
| `user_name`            | string | null  | Reviewer's display name (typically first-name + last-initial).                                               |
| `user_avatar_url`      | string | null  | Avatar URL on `*.smartcustomer.com`.                                                                         |
| `photos`               | string\[]        | Always present. Each URL is `https://*.smartcustomer.com/...` validated. Empty for most reviews.             |
| `status`               | string          | `ok` | `partial` | `business_not_found` | `blocked` | `rate_limited`.                                    |
| `business`             | object          | Embedded business metadata (alias, name, business\_url, business\_rating, review\_count).                       |

### Pricing — How much does it cost?

Pay-per-event pricing with two events:

- **`business-resolved`** — fired once per business successfully resolved (page returned reviews + business metadata).
- **`review-extracted`** — fired once per emitted review record (after the `onlyWithPhotos` filter).

You don't pay for filtered-out reviews, blocked navigation, or businesses that fail to resolve. Specific per-event prices are shown on this actor's pricing page in Apify Console.

### Tips

- **SmartCustomer's photo coverage varies by business.** If photo extraction is critical, check a sample run on your target domain before turning on `onlyWithPhotos`.
- **Sort by `newest` for monitoring runs**, `relevance` for one-shot pulls.
- **`maxReviews=20` matches SmartCustomer's first-page render**; higher values trigger pagination at 20-review increments.
- **If `consecutive_blocks_at_end` ≥ 3 in your run summary**, SmartCustomer rate-limited your session. Wait a few minutes or reduce `maxConcurrency`.

### FAQ, disclaimers, and support

**Why SmartCustomer and not Yelp / Trustpilot?** v0.1 of this actor targeted Yelp. Yelp's DataDome WAF blocks Apify's standard residential proxy pool comprehensively (verified across 6+ proxy/strategy combinations). Trustpilot uses AWS WAF which also blocks the same proxy pool. SmartCustomer returns clean HTML 200 responses with structured JSON-LD reviews. See CHANGELOG for full empirical history.

**Is scraping SmartCustomer legal?** SmartCustomer's Terms of Service govern automated access. This actor is provided for legitimate research, monitoring, and competitive-intelligence use cases that respect SmartCustomer's rate limits and robots.txt. **You are responsible for compliance with SmartCustomer's ToS and applicable local laws (including GDPR Art. 6 / 14 / 17 obligations toward review authors when persisting personal data).** This actor produces a dataset only — caller-side persistence and data-subject obligations are not in its scope.

**Multi-language reviews?** SmartCustomer reviews are predominantly English. The actor emits original-locale text without translation.

**Search by business name?** Not in v0.2. Reserved for v0.3 — pass domain or full SmartCustomer URL for now.

**Issues, ideas, custom builds?** Open an issue on this actor's Issues tab on the Apify platform.

# Actor input Schema

## `domains` (type: `array`):

Domains to scrape, one per line (e.g., 'amazon.com', 'airbnb.com'). Each is mapped to https://www.smartcustomer.com/reviews/<domain>.

## `businessUrls` (type: `array`):

Full SmartCustomer review URLs (e.g., 'https://www.smartcustomer.com/reviews/airbnb.com'). Host must be smartcustomer.com. Canonicalized to domain before processing.

## `maxReviews` (type: `integer`):

Total cap on reviews emitted across the run. Budget is split greedily across resolved businesses. SmartCustomer paginates 20 reviews per page.

## `sortBy` (type: `string`):

Sort order on SmartCustomer. 'relevance' = featured order; 'newest' = most recent first; 'highest\_rated'/'lowest\_rated' = star extremes.

## `onlyWithPhotos` (type: `boolean`):

When true, drops reviews with no photos. PPE charges only for emitted (post-filter) reviews. Note: SmartCustomer surfaces user-uploaded review photos inconsistently — many reviews emit empty `photos: []`.

## `maxConcurrency` (type: `integer`):

5 is a safe default. SmartCustomer rate-limits aggressively at higher concurrency.

## `requestTimeoutSecs` (type: `integer`):

Wall-clock timeout for one HTTP fetch.

## `proxyConfiguration` (type: `object`):

RESIDENTIAL is recommended — SmartCustomer may rate-limit datacenter IPs.

## Actor input object example

```json
{
  "domains": [
    "amazon.com"
  ],
  "maxReviews": 50,
  "sortBy": "relevance",
  "onlyWithPhotos": false,
  "maxConcurrency": 5,
  "requestTimeoutSecs": 45,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Scraped Yelp reviews with embedded business metadata. Records are discriminated by the `type` field ('review' | 'run\_summary'). The final record per run is `type: 'run_summary'` with aggregate counts.

# 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 = {
    "domains": [
        "amazon.com"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("prodiger/smartcustomer-review-scraper").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 = {
    "domains": ["amazon.com"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("prodiger/smartcustomer-review-scraper").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 '{
  "domains": [
    "amazon.com"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call prodiger/smartcustomer-review-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=prodiger/smartcustomer-review-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SmartCustomer Review Scraper (Pay-Per-Event)",
        "description": "Scrape consumer reviews from SmartCustomer by domain. Self-contained review records with embedded business metadata, rating, date, user, and run-summary. Pay-per-event pricing — only pay for businesses resolved + reviews extracted.",
        "version": "0.3",
        "x-build-id": "vez23gomKFLoSdIga"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/prodiger~smartcustomer-review-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-prodiger-smartcustomer-review-scraper",
                "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/prodiger~smartcustomer-review-scraper/runs": {
            "post": {
                "operationId": "runs-sync-prodiger-smartcustomer-review-scraper",
                "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/prodiger~smartcustomer-review-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-prodiger-smartcustomer-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "domains": {
                        "title": "Business domains",
                        "type": "array",
                        "description": "Domains to scrape, one per line (e.g., 'amazon.com', 'airbnb.com'). Each is mapped to https://www.smartcustomer.com/reviews/<domain>.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "businessUrls": {
                        "title": "SmartCustomer review URLs",
                        "type": "array",
                        "description": "Full SmartCustomer review URLs (e.g., 'https://www.smartcustomer.com/reviews/airbnb.com'). Host must be smartcustomer.com. Canonicalized to domain before processing.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxReviews": {
                        "title": "Max reviews per run (total)",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Total cap on reviews emitted across the run. Budget is split greedily across resolved businesses. SmartCustomer paginates 20 reviews per page.",
                        "default": 50
                    },
                    "sortBy": {
                        "title": "Review sort order",
                        "enum": [
                            "relevance",
                            "newest",
                            "highest_rated",
                            "lowest_rated"
                        ],
                        "type": "string",
                        "description": "Sort order on SmartCustomer. 'relevance' = featured order; 'newest' = most recent first; 'highest_rated'/'lowest_rated' = star extremes.",
                        "default": "relevance"
                    },
                    "onlyWithPhotos": {
                        "title": "Only emit reviews that have photos",
                        "type": "boolean",
                        "description": "When true, drops reviews with no photos. PPE charges only for emitted (post-filter) reviews. Note: SmartCustomer surfaces user-uploaded review photos inconsistently — many reviews emit empty `photos: []`.",
                        "default": false
                    },
                    "maxConcurrency": {
                        "title": "Max concurrent HTTP requests",
                        "minimum": 1,
                        "maximum": 30,
                        "type": "integer",
                        "description": "5 is a safe default. SmartCustomer rate-limits aggressively at higher concurrency.",
                        "default": 5
                    },
                    "requestTimeoutSecs": {
                        "title": "Per-request timeout (seconds)",
                        "minimum": 10,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Wall-clock timeout for one HTTP fetch.",
                        "default": 45
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "RESIDENTIAL is recommended — SmartCustomer may rate-limit datacenter IPs.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
