# Smartcustomer Reviews Scraper (`reviewly/smartcustomer-reviews-scraper`) Actor

Scrape reviews from SmartCustomer (formerly Sitejabber): star ratings, review text, reviewer details, owner replies & business profiles. No login required. Export JSON, CSV or Excel for reputation monitoring, competitor analysis & lead gen.

- **URL**: https://apify.com/reviewly/smartcustomer-reviews-scraper.md
- **Developed by:** [Reviewly](https://apify.com/reviewly) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 reviews

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## SmartCustomer Reviews Scraper — Extract All Reviews from Any Business in Minutes

**Turn any SmartCustomer (formerly Sitejabber) business page into clean, structured review data — star ratings, full review text, reviewer details, owner replies, and business profiles. Paste a domain, click Start, download your dataset.**

- ⚡ **Blazing fast** — talks directly to SmartCustomer's data feed, no slow browser automation
- 📦 **Everything in one run** — reviews + full business profile + rating distribution + trending topics
- 🔓 **Zero setup** — no login, no API keys, no cookies. A domain name is all you need
- 🎯 **Reliable at scale** — automatic IP rotation with resume-where-it-stopped pagination
- 💾 **Export instantly** — JSON, CSV, Excel, XML, or straight into Google Sheets and Zapier

---

### 📌 What This Actor Does

The **SmartCustomer Reviews Scraper** is an [Apify Actor](https://apify.com/store) for **web scraping smartcustomer.com reviews** — the same reviews you see on any `smartcustomer.com/reviews/<business-domain>` page, delivered as a structured dataset.

SmartCustomer is the new name of **Sitejabber**, one of the largest consumer review platforms on the web, with reviews for hundreds of thousands of online businesses. If you were looking for a **Sitejabber reviews scraper**, this is it — same platform, same review data, current branding.

Give it one or more businesses — a SmartCustomer review-page URL, a bare domain like `americantrucks.com`, or the business's own website URL. For each one, it returns:

- The **complete business profile**: name, description, website, phone, address, categories, social media links, logo, overall rating, and total review count
- The **star-rating distribution** (how many 1★, 2★, 3★, 4★, 5★ reviews)
- The **most-mentioned topics** across all reviews (e.g. "customer service", "fast delivery")
- **Every review**: rating, title, full text, publish date, reviewer name and location, verification status, survey answers, and the business owner's official reply when there is one

**Who it's for:**

- **Marketers & agencies** monitoring brand reputation for clients
- **Business owners** tracking their own and competitors' customer feedback
- **Data analysts & researchers** who need review datasets for sentiment analysis
- **Developers** feeding review data into apps, dashboards, and AI pipelines
- **E-commerce teams** doing competitor research before entering a market

No coding required — but everything plugs into the Apify API, webhooks, and integrations if you want automation.

---

### ✨ Key Features

- **Complete review records** — star rating (1–5), title, full review text, publish and experience dates, verification status ("Solicited" vs. organic), reviewer name/username/location, helpful votes, survey Q&A, photos and videos, and the owner's public reply.
- **Rich business profile in the same dataset** — no second scraper needed for company info, contact details, or social links.
- **Scrape multiple businesses per run** — pass a list, get one clean dataset item per business.
- **Any input format works** — SmartCustomer URLs, bare domains, or full business website URLs. The Actor figures out the rest.
- **Date filtering built in** — reviews come newest-first, so pulling "everything since last month" is fast and cheap. Set `targetDate` and the Actor stops paginating the moment it reaches older reviews.
- **Review cap** — set `maxReviews` to control cost on businesses with tens of thousands of reviews.
- **Self-healing runs** — if SmartCustomer rate-limits an IP, the Actor rotates to a fresh one and **resumes from the exact page it stopped at**. No lost work, no duplicate reviews.
- **Partial results are never thrown away** — even in the worst case, everything collected so far is pushed to your dataset.

---

### 🧠 Why This Actor Is Different

Most review scrapers drive a headless browser through the website's user interface — slow, memory-hungry, and broken every time the page layout changes.

This Actor works at the data layer instead:

- **API-level scraping, not screen scraping.** It reads the same structured data feed the SmartCustomer website itself uses. That means faster runs, lower compute costs, and fields (like survey answers and verification status) that never appear in the visible HTML.
- **Layout-proof.** Website redesigns don't break it — the data feed is far more stable than CSS selectors.
- **100 reviews per request.** A business with 12,000 reviews takes ~120 requests, not 12,000 page loads. You pay for minutes, not hours.
- **Honest about data limits.** SmartCustomer serves part of a business's all-time review history in its public feed. The Actor reports both numbers (`totalReviews` vs. `displayedReviews`) so you always know exactly what you got.
- **Engineered for the real bottleneck.** SmartCustomer's only defense is a per-IP rate limit. The Actor was built around it: polite pacing, instant IP rotation on a limit hit, and resumable pagination with deduplication. Long scrapes finish.

---

### ⚙️ Input Configuration

| Field | Type | Required | Description |
|---|---|---|---|
| `startUrls` | array | ✅ | Businesses to scrape. Any format: `https://www.smartcustomer.com/reviews/americantrucks.com`, `americantrucks.com`, or `https://www.americantrucks.com/`. |
| `maxReviews` | integer | — | Maximum total reviews across all businesses. `0` = no limit (default). |
| `targetDate` | string | — | ISO date (e.g. `2024-01-01`). Pagination stops once reviews older than this are reached. Perfect for incremental monitoring. |
| `proxyConfiguration` | object | — | Proxy settings. Keep the default **residential** group — it lets long scrapes rotate past SmartCustomer's per-IP rate limit. |

#### Example input

```json
{
  "startUrls": [
    { "url": "https://www.smartcustomer.com/reviews/americantrucks.com" },
    { "url": "anotherbusiness.com" }
  ],
  "maxReviews": 500,
  "targetDate": "2024-01-01",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

**Tips for best results:**

- **Unsure of the exact domain?** Open the business's page on smartcustomer.com and copy the URL — the part after `/reviews/` is the domain the Actor needs.
- **Monitoring a business weekly?** Set `targetDate` to your last run's date — the run finishes in seconds instead of re-scraping history.
- **Testing first?** Set `maxReviews` to `100` — you'll get one full page of results and can inspect the output shape before a big run.

***

### 📤 Output Format

One dataset item per business — profile at the top, reviews nested inside:

```json
{
  "name": "American Trucks",
  "domain": "americantrucks.com",
  "title": "Aftermarket Truck Parts & Accessories | AmericanTrucks",
  "description": "A tried and true appreciation for a pickup comes from deep within...",
  "businessUrl": "http://americantrucks.com",
  "smartcustomerUrl": "https://www.smartcustomer.com/reviews/americantrucks.com",
  "logo": "https://static.smartcustomer.com/img/urls/252312931/logo.jpg",
  "averageRating": 4.42,
  "totalReviews": 15831,
  "displayedReviews": 12244,
  "categories": ["Trucks", "Auto Parts", "Auto Accessories"],
  "popularReviewTerms": ["customer service", "great experience", "fast delivery"],
  "phone": "1-610-990-4561",
  "location": { "streetAddress": "600 N. Cedar Hollow RD", "city": "Paoli", "state": "Pennsylvania" },
  "socials": { "facebook": "https://www.facebook.com/AmericanTrucksCom" },
  "ratingDistribution": { "1": 1249, "2": 490, "3": 668, "4": 1095, "5": 8742 },
  "topics": [{ "keyword": "customer service", "total": 1241 }],
  "reviews": [
    {
      "id": 28763583,
      "title": "Great place to order parts for my truck.",
      "content": "Ordered a set of high quality running boards for my truck...",
      "rating": 5,
      "published": "2026-06-28T17:44:44+00:00",
      "experienceDate": "2026-06-18T07:00:00+00:00",
      "verification": "Solicited",
      "source": "instant_survey",
      "author": { "name": "Christenne Viers", "username": "christennev", "numReviews": 1 },
      "location": { "country": "United States", "countryCode": "US", "region": "Virginia" },
      "answers": [{ "question": "Why I chose this business:", "answer": "Shopped with AT before." }],
      "businessReply": null
    }
  ]
}
```

**Field reference:**

| Field | Meaning |
|---|---|
| `averageRating` / `totalReviews` | The business's overall score and all-time review submissions |
| `displayedReviews` | Reviews actually served by SmartCustomer's public feed — what the Actor can collect (can be lower than `totalReviews`) |
| `ratingDistribution` | Count of reviews per star level — instant sentiment overview |
| `topics` | Keywords SmartCustomer extracts across all reviews, with mention counts |
| `reviews[].rating` | Star rating, 1–5 |
| `reviews[].published` / `experienceDate` | When the review went live vs. when the purchase happened (ISO 8601) |
| `reviews[].verification` | `Solicited` = the business invited this reviewer; useful for filtering organic feedback |
| `reviews[].answers` | The reviewer's answers to the business's survey questions |
| `reviews[].businessReply` | The owner's public reply (`content`, `published`), or `null` |

***

### ▶️ How to Use

1. **Open the Actor** in the Apify Store and click **Try for free** — a free Apify account takes one minute to create.
2. **Paste business URLs or domains** into the *Business pages or domains* field.
3. *(Optional)* Set `maxReviews` or `targetDate` to control scope.
4. Click **Start**. A few hundred reviews finish in well under a minute.
5. **Download your data** from the *Storage* tab — JSON, CSV, Excel, or XML — or connect Google Sheets, Zapier, Make, or your own code via the Apify API.

**Common workflow — automated review monitoring:** create a Task with your business list, add a weekly schedule, set `targetDate` to the previous run's date, and attach a webhook or Google Sheets integration. You get an always-fresh review feed with zero manual work.

***

### 📈 Use Cases

- **Reputation monitoring** — get alerted when a negative review or an unanswered complaint lands on your (or a client's) SmartCustomer page. The `businessReply` field shows exactly which complaints are still waiting for a response.
- **Competitor analysis** — compare average ratings, star distributions, and trending complaint topics across every competitor in your market before making product or pricing decisions.
- **Lead generation** — find businesses with poor ratings or slow reply rates: they're qualified prospects for reputation-management, customer-service, or CX consulting offers.
- **Market research & AI training data** — thousands of real, structured customer opinions per business (with sub-topics and survey answers) for sentiment analysis, topic modeling, or LLM fine-tuning.
- **Agency reporting** — pull weekly review data for every client into one automated dashboard instead of checking pages by hand.

***

### 🛠️ Advanced Tips

- **Proxies:** keep the default Apify **RESIDENTIAL** group. SmartCustomer rate-limits each IP after a short burst of requests; residential rotation is what keeps multi-thousand-review scrapes moving at full speed.
- **Scaling:** batch many businesses into a single run (one dataset item each) rather than one run per business — it's faster and cheaper.
- **Incremental scraping:** the newest-first ordering + `targetDate` combination means a daily or weekly refresh costs a handful of requests, not a full re-scrape.
- **Speed expectations:** the Actor collects 100 reviews per request with polite pacing — roughly 2–4 seconds per 100 reviews. A 12,000-review business completes in about 10 minutes on residential proxies.
- **Run timeout:** for businesses with very large review histories, give the run a generous timeout (30+ minutes) so rate-limit rotations never cut it short.

***

### ❓ FAQ / Troubleshooting

**Is this the same as Sitejabber?**
Yes. Sitejabber rebranded to SmartCustomer — the platform, businesses, and review history are the same. This Actor scrapes the current smartcustomer.com site, which hosts all the reviews formerly found on sitejabber.com.

**Why is `displayedReviews` lower than `totalReviews`?**
SmartCustomer counts every review ever submitted in `totalReviews`, but its public feed serves only part of that history (older reviews age out or get filtered). The Actor collects everything the feed serves and reports both numbers, so you always know your coverage.

**The log shows "rate-limited" retries — is something wrong?**
No — that's the Actor working as designed. SmartCustomer limits how fast one IP can request data (roughly a 3-minute cooldown when tripped). With residential proxies the Actor switches IP instantly and resumes from the same page. Without a proxy it waits the cooldown out — slower, but it finishes.

**A business returns "not found".**
That domain isn't listed on SmartCustomer. Open the business's review page in your browser and copy the exact domain from the `smartcustomer.com/reviews/...` URL — subdomains and country variants matter.

**Can I scrape reviews for a business with zero reviews?**
Yes — you'll still get the full business profile; the `reviews` array will simply be empty.

**Do I need a SmartCustomer account or API key?**
No. The Actor reads only public data and needs zero credentials.

**Is web scraping SmartCustomer legal?**
The Actor only accesses publicly available data, without logging in or bypassing any authentication. As with any web scraping, you are responsible for using the data in compliance with applicable laws and regulations (e.g. GDPR) in your jurisdiction.

***

### 📞 Support

- **Issues & feature requests:** open an issue on the Actor's **Issues** tab in the Apify Console — issues are usually answered within one business day.
- **Direct contact:** [Email](mailto:me@ahmedhrid.com)

Found it useful? A ⭐ rating in the Apify Store helps others discover the Actor and keeps development going.

# Actor input Schema

## `startUrls` (type: `array`):

SmartCustomer review pages (https://www.smartcustomer.com/reviews/discordapp.com), bare domains (americantrucks.com), or business website URLs.

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

Maximum total number of reviews to collect across all businesses. 0 = no limit.

## `targetDate` (type: `string`):

ISO date (e.g. 2024-01-01). Reviews are fetched newest-first; pagination stops once reviews older than this date are reached.

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

The API rate-limits aggressively per IP (a few requests per burst, ~3-minute ban). Rotating residential proxies keep long scrapes moving.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.smartcustomer.com/reviews/discordapp.com"
    }
  ],
  "maxReviews": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Each record contains the business profile (name, domain, title, description, businessUrl, smartcustomerUrl, logo, averageRating, totalReviews, displayedReviews, categories, popularReviewTerms, phone, location, socials, ratingDistribution, topics) and a reviews array with id, title, content, rating, subRatings, published, experienceDate, verification, source, votes, author (name, username, numReviews, avatarUrl), reviewer location, photos, videos, survey answers, businessReply, and orderId.

# 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 = {
    "startUrls": [
        {
            "url": "https://www.smartcustomer.com/reviews/discordapp.com"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("reviewly/smartcustomer-reviews-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 = {
    "startUrls": [{ "url": "https://www.smartcustomer.com/reviews/discordapp.com" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("reviewly/smartcustomer-reviews-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 '{
  "startUrls": [
    {
      "url": "https://www.smartcustomer.com/reviews/discordapp.com"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call reviewly/smartcustomer-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Smartcustomer Reviews Scraper",
        "description": "Scrape reviews from SmartCustomer (formerly Sitejabber): star ratings, review text, reviewer details, owner replies & business profiles. No login required. Export JSON, CSV or Excel for reputation monitoring, competitor analysis & lead gen.",
        "version": "0.0",
        "x-build-id": "SS06PMYiCGCmZ756h"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/reviewly~smartcustomer-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-reviewly-smartcustomer-reviews-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/reviewly~smartcustomer-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-reviewly-smartcustomer-reviews-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/reviewly~smartcustomer-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-reviewly-smartcustomer-reviews-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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Business pages or domains",
                        "type": "array",
                        "description": "SmartCustomer review pages (https://www.smartcustomer.com/reviews/discordapp.com), bare domains (americantrucks.com), or business website URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxReviews": {
                        "title": "Max reviews",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum total number of reviews to collect across all businesses. 0 = no limit.",
                        "default": 0
                    },
                    "targetDate": {
                        "title": "Oldest review date",
                        "type": "string",
                        "description": "ISO date (e.g. 2024-01-01). Reviews are fetched newest-first; pagination stops once reviews older than this date are reached."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "The API rate-limits aggressively per IP (a few requests per burst, ~3-minute ban). Rotating residential proxies keep long scrapes moving.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
