# Peerspot Reviews Scraper (`reviewly/peerspot-reviews-scraper`) Actor

Scrapes product reviews from PeerSpot product pages. Extracts ratings, full review text (all body sections), pros/cons, reviewer profiles and firmographics, plus product metadata.

- **URL**: https://apify.com/reviewly/peerspot-reviews-scraper.md
- **Developed by:** [Reviewly](https://apify.com/reviewly) (community)
- **Categories:** Developer tools, Automation, E-commerce
- **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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## PeerSpot Reviews Scraper — Extract Full B2B Software Reviews in Minutes

Turn any PeerSpot product page into a clean, structured dataset of **complete enterprise software reviews** — full review text, pros & cons, ratings, and detailed reviewer firmographics (job title, industry, company size) — ready for analysis, AI pipelines, or competitive research.

- ✅ **Complete reviews, not snippets** — every section of every review, exactly as published
- ✅ **Rich reviewer context** — job function, seniority, industry, and company size with every review
- ✅ **Fast and reliable** — powered by PeerSpot's data endpoints, not fragile screen-scraping
- ✅ **Pay only for what you get** — charged per review scraped
- ✅ **No coding required** — paste a URL, click Start, download your data as JSON, CSV, or Excel

---

### 📌 What This Actor Does

This Apify Actor scrapes product reviews from [PeerSpot](https://www.peerspot.com) (formerly IT Central Station), one of the most trusted sources of in-depth, verified B2B technology reviews. You give it one or more PeerSpot product page URLs — for example `https://www.peerspot.com/products/gitlab-reviews` — and it returns a structured dataset containing the product's metadata and all of its reviews.

Unlike most review platforms, PeerSpot reviews are long-form and interview-based: each one answers a dozen structured questions (primary use case, most valuable features, what needs improvement, ROI, pricing experience, and more). This Actor captures **all of it**, both as one readable text block and as separate per-question sections.

**Who it's for:**

- **Product marketers & competitive intelligence teams** — monitor how buyers talk about your product and your competitors'
- **Market researchers & analysts** — build datasets of real enterprise buyer sentiment
- **Data scientists & AI engineers** — feed high-quality, long-form review text into LLMs, RAG systems, and sentiment models
- **Sales & ABM teams** — understand pain points by industry, company size, and job role
- **Review management platforms** — aggregate PeerSpot reviews alongside G2, Gartner, and TrustRadius data

---

### ✨ Key Features

- **Full review text** — every review section (use case, valuable features, room for improvement, stability, scalability, support, setup, ROI, pricing, advice…), not just the summary
- **Pros & cons extraction** — each review's highlighted pro and con points as separate fields
- **Dual rating scales** — star rating (out of 5) and PeerSpot's ten-point rating
- **Reviewer firmographics** — job function, job level, industry, and company size for segmentation
- **Author profiles** — name, PeerSpot profile URL, professional info, reviewer label (Real User, Consultant…), and LinkedIn verification status
- **Product metadata included** — product name, vendor, description, average rating, and total review count in every record
- **Incremental scraping** — set a `targetDate` cutoff to fetch only reviews published since your last run
- **Newest-first limiting** — `maxReviews` always returns the N most recent reviews
- **Trust signals preserved** — disclosure statements, review source, sentiment score, likes, and comment counts
- **Multiple products per run** — pass as many product URLs as you need
- **Export in any format** — JSON, CSV, Excel, XML, or fetch via the Apify API

---

### 🧠 Why This Actor Is Different

- **Structured data source, not brittle HTML parsing.** The Actor reads review data from PeerSpot's own JSON endpoints — the same ones the website uses. That means fewer breakages when the page design changes, and pixel-perfect data fidelity.
- **Truly complete reviews.** Many scrapers stop at the visible summary. This one retrieves the full body of *every* review, including the ones PeerSpot loads on demand.
- **Efficient by design.** It fetches the full review list in a single request, filters by your date and count limits *first*, and only then downloads full bodies for the reviews that made the cut — so you never pay time or bandwidth for reviews you filtered out.
- **Built-in retry logic.** Transient network failures are retried automatically on a fresh proxy session, so runs finish reliably.
- **Fair pricing.** You're charged per review actually scraped — a run that finds nothing new (e.g., an incremental run with a recent cutoff date) costs next to nothing.

---

### ⚙️ Input Configuration

| Field | Type | Default | Description |
|---|---|---|---|
| `startUrls` | array | *required* | One or more PeerSpot product page URLs. Any variant works: `…/products/gitlab-reviews`, `…/products/gitlab-pros-and-cons`, or the numeric `…/products/32003`. |
| `maxReviews` | integer | `0` | Maximum reviews per product, **newest first**. `0` = no limit (all reviews). |
| `targetDate` | string | — | Skip reviews published before this date (ISO 8601, e.g. `2025-01-01`). Ideal for scheduled incremental runs. |
| `proxy` | object | Apify Proxy | Proxy settings. Standard **datacenter proxies work fine** — no expensive residential proxies needed. |

#### Example input

```json
{
    "startUrls": [
        { "url": "https://www.peerspot.com/products/gitlab-reviews" },
        { "url": "https://www.peerspot.com/products/github-reviews" }
    ],
    "maxReviews": 50,
    "targetDate": "2025-06-01",
    "proxy": { "useApifyProxy": true }
}
````

#### 💡 Tips for best results

- **Find product URLs** by searching the product on peerspot.com and copying the URL — anything under `/products/` works.
- **For weekly monitoring**, schedule the Actor and set `targetDate` to your last run date. You'll only pay for new reviews.
- **Leave `maxReviews` at 0** for a first full backfill, then switch to incremental runs.

***

### 📤 Output Format

The Actor pushes **one record per product**. Each record contains the product's metadata plus a `reviews` array.

#### Sample output (trimmed)

```json
{
    "productId": 32003,
    "productUrl": "https://www.peerspot.com/products/gitlab-reviews",
    "name": "GitLab",
    "vendor": "GitLab",
    "rating": 4.2,
    "reviewCount": 91,
    "reviews": [
        {
            "reviewId": 11059867,
            "url": "https://www.peerspot.com/product_reviews/gitlab-review-11059867-by-kevin-shah",
            "title": "End-to-end AI pipelines have gained robust CI/CD automation",
            "publishedDate": "2026-03-27T11:49:11.000Z",
            "rating": 4.5,
            "ratingTenPoint": 9,
            "shortSummary": "I primarily use GitLab for version control, CI/CD, and security…",
            "pros": "GitLab has impacted my organization positively in terms of version control…",
            "cons": "There are many improvements that GitLab can implement, such as caching…",
            "text": "What is our primary use case?\nMy main use case for GitLab is…",
            "sections": {
                "use_case": "My main use case for GitLab is…",
                "valuable_features": "CI/CD is the most important feature…",
                "room_for_improvement": "…",
                "ROI": "…",
                "setup_cost": "…"
            },
            "author": {
                "name": "Kevin Shah",
                "profileUrl": "https://www.peerspot.com/users/kevin-shah",
                "professionalInfo": "Senior Data Scientist at a consultancy with 1-10 employees",
                "label": "Real User",
                "linkedinVerified": false
            },
            "jobFunction": "Senior Data Scientist",
            "jobLevel": "Senior Manager",
            "industry": "Consultancy",
            "companySize": "1-10 Employees",
            "disclosure": "My company does not have a business relationship with this vendor…",
            "sentimentScore": 8.2,
            "wordCount": 938,
            "likes": 0,
            "commentCount": 0,
            "language": "en"
        }
    ]
}
```

#### Field reference

**Product-level fields**

| Field | Description |
|---|---|
| `productId` | PeerSpot's internal numeric product ID |
| `productUrl` | Canonical product page URL |
| `name`, `vendor`, `description` | Product name, vendor/brand, and marketplace description |
| `rating` | Average rating (out of 5) |
| `reviewCount` | Total number of reviews on PeerSpot |

**Review-level fields**

| Field | Description |
|---|---|
| `reviewId`, `url` | Unique review ID and direct link to the review |
| `title`, `shortSummary` | Review headline and PeerSpot's AI-style summary |
| `publishedDate` | ISO 8601 publication date |
| `rating`, `ratingTenPoint` | Star rating (of 5) and ten-point rating (of 10) |
| `pros`, `cons` | The review's highlighted pro and con statements |
| `text` | The complete review as one readable block, with question headings |
| `sections` | The same content split by question (`use_case`, `valuable_features`, `room_for_improvement`, `ROI`, `setup_cost`, …) |
| `author` | Reviewer profile: name, username, profile URL, professional info, label (e.g. *Real User*), anonymity, vendor flag, LinkedIn verification |
| `jobFunction`, `jobLevel`, `industry`, `companySize` | Reviewer firmographics — great for segmentation |
| `productVersion` | Product version reviewed, when stated |
| `disclosure` | Vendor-relationship disclosure statement |
| `source` | How the review was collected (e.g. `solicited_via_linkedin`) |
| `sentimentScore` | PeerSpot's sentiment score for the review |
| `wordCount`, `likes`, `commentCount`, `language` | Length, engagement, and language metadata |

***

### ▶️ How to Use

1. **Open the Actor** in the Apify Store and click **Try for free** (a free Apify account is enough to start).
2. **Paste one or more PeerSpot product URLs** into the *Product URLs* field.
3. *(Optional)* Set **Max reviews per product** or a **Target date** cutoff.
4. Click **Start**. A typical product with ~100 reviews finishes in well under a minute.
5. When the run succeeds, open the **Dataset** tab and **export** your data as JSON, CSV, Excel, or XML — or pull it programmatically via the Apify API:

```bash
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=json"
```

#### Common workflows

- **One-off export:** paste URLs → run → download CSV.
- **Scheduled monitoring:** create an Apify Schedule (e.g. weekly), set `targetDate` to the last run date, and connect a webhook or an Apify integration (Google Sheets, Slack, Make, Zapier, n8n) to deliver new reviews automatically.
- **API-driven pipelines:** trigger runs from your own code with the [Apify API or SDK](https://docs.apify.com/api) and consume the dataset directly.

***

### 📈 Use Cases

1. **Competitive intelligence** — Scrape reviews of your competitors' products, segment complaints by `industry` and `companySize`, and mine `room_for_improvement` sections for gaps your product can fill.
2. **Voice-of-customer & product research** — Analyze `valuable_features` and `cons` at scale to learn what enterprise buyers actually care about before building your roadmap.
3. **AI & LLM training data** — PeerSpot reviews are long-form (often 500–1,000+ words) and structured by question, making them excellent input for RAG systems, summarization pipelines, and sentiment models.
4. **Sales enablement & battlecards** — Pull real quotes about switching (`previous_solutions`), pricing (`setup_cost`), and ROI to arm sales teams with authentic buyer language.
5. **Market & analyst reporting** — Track rating trends and review velocity across a category (e.g. all CI/CD tools) with scheduled incremental runs.

***

### 🛠️ Advanced Tips

- **Datacenter proxies are enough.** PeerSpot doesn't sit behind an aggressive anti-bot wall, so the default Apify datacenter proxy keeps costs low. Only switch proxy groups if you see repeated failures.
- **Scale horizontally by URL.** All reviews for a product are fetched in a single efficient pipeline, so the main cost driver is the number of reviews — batch as many product URLs into one run as you like.
- **Keep incremental runs cheap.** With `targetDate` set, reviews older than the cutoff are filtered *before* their full bodies are downloaded — a "nothing new" run is fast and nearly free.
- **Sort order guarantee:** reviews are always returned newest-first, so `maxReviews: 25` reliably means "the 25 most recent reviews."

***

### ❓ FAQ / Troubleshooting

**Which URLs are supported?**
Any `peerspot.com/products/...` URL: the standard `…-reviews` slug, `…-pros-and-cons`, or the numeric form like `/products/32003`. Query strings and fragments are handled automatically.

**The run says "Could not find a product id" — what's wrong?**
The URL doesn't point to an existing PeerSpot product (PeerSpot redirects dead product URLs to its listing page). Double-check the URL in your browser and copy it again.

**Can I scrape all reviews for a product?**
Yes — leave `maxReviews` at `0` (the default) and every review on the product page is extracted.

**How do I get only new reviews since my last run?**
Set `targetDate` to the date of your previous run. Only reviews published on or after that date are scraped (and charged).

**Why are some reviewer names like "reviewer2795433"?**
Those reviewers chose to publish anonymously. The Actor honors what PeerSpot displays publicly and marks them with `"isAnonymous": true`.

**A product failed with a network error.**
The Actor already retries each product up to 3 times on fresh proxy sessions. If a product still fails, re-run it — failures are almost always transient.

**Is scraping PeerSpot legal?**
This Actor only collects publicly visible data. You are responsible for how you use the data — consult PeerSpot's terms of service and your local regulations (e.g. GDPR) for your specific use case. Read more in Apify's [guide on web scraping legality](https://blog.apify.com/is-web-scraping-legal/).

***

### 📞 Support

- **Issues & bugs:** open an issue on the Actor's **Issues tab** in the Apify Console — it's the fastest way to get a fix.
- **Questions & feature requests:** email the developer at **me@ahmedhrid.com**.
- **New to Apify?** See the [Apify documentation](https://docs.apify.com) for scheduling, integrations, and API usage.

***

*Keywords: PeerSpot scraper, PeerSpot reviews scraper, B2B software reviews scraping, IT Central Station reviews, web scraping, Apify Actor, enterprise software review data, review extraction API, competitive intelligence data, voice of customer analysis.*

# Actor input Schema

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

PeerSpot product page URLs, e.g. https://www.peerspot.com/products/gitlab-reviews. Any product URL variant works (…-reviews, …-pros-and-cons, or the numeric /products/12345 form).

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

Maximum number of reviews to scrape per product, newest first. 0 means no limit (all reviews).

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

Skip reviews published before this date (ISO 8601, e.g. 2025-01-01) — useful for incremental runs.

## `proxy` (type: `object`):

PeerSpot has no bot wall, so standard datacenter proxies are fine.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.peerspot.com/products/gitlab-reviews"
    }
  ],
  "maxReviews": 0,
  "proxy": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Each record contains product info (productId, productUrl, name, description, vendor, rating, reviewCount) and a reviews array with reviewId, url, title, publishedDate, rating (of 5), ratingTenPoint (of 10), shortSummary, pros, cons, full text and per-question sections, author profile (name, username, profileUrl, professionalInfo, label, linkedinVerified), reviewer firmographics (jobFunction, jobLevel, industry, companySize), productVersion, disclosure, source, sentimentScore, likes, commentCount, and language.

# 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.peerspot.com/products/gitlab-reviews"
        }
    ],
    "proxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("reviewly/peerspot-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.peerspot.com/products/gitlab-reviews" }],
    "proxy": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("reviewly/peerspot-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.peerspot.com/products/gitlab-reviews"
    }
  ],
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call reviewly/peerspot-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Peerspot Reviews Scraper",
        "description": "Scrapes product reviews from PeerSpot product pages. Extracts ratings, full review text (all body sections), pros/cons, reviewer profiles and firmographics, plus product metadata.",
        "version": "0.0",
        "x-build-id": "reWSpwLttkOe44wk4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/reviewly~peerspot-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-reviewly-peerspot-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~peerspot-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-reviewly-peerspot-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~peerspot-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-reviewly-peerspot-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": "Product URLs",
                        "type": "array",
                        "description": "PeerSpot product page URLs, e.g. https://www.peerspot.com/products/gitlab-reviews. Any product URL variant works (…-reviews, …-pros-and-cons, or the numeric /products/12345 form).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxReviews": {
                        "title": "Max reviews per product",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of reviews to scrape per product, newest first. 0 means no limit (all reviews).",
                        "default": 0
                    },
                    "targetDate": {
                        "title": "Target date (cutoff)",
                        "type": "string",
                        "description": "Skip reviews published before this date (ISO 8601, e.g. 2025-01-01) — useful for incremental runs."
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "PeerSpot has no bot wall, so standard datacenter proxies are fine."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
