# Marktplaats Scraper — Monitor Listings & Deep Details (`crawloop/marktplaats-scraper`) Actor

Fast and lightweight python scraper for marktplaats.nl using curl\_cffi. Extracts titles, prices, descriptions, high-res images, location coordinates, dynamic attributes, and detailed seller metrics. Supports real-time monitoring and Telegram/Discord alerts.

- **URL**: https://apify.com/crawloop/marktplaats-scraper.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 50.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 scraped listings

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Marktplaats Scraper — Netherlands Classified Ads, Prices & Listing Monitor

> **Disclaimer:** This is an unofficial integration developed independently. It is not affiliated with, sponsored by, or endorsed by Marktplaats.nl or any of its subsidiaries.
>
> **Marktplaats** and related names are trademarks of Marktplaats B.V. Data is read from publicly accessible search results and listing pages. No Marktplaats account login is required.
>
> This Actor is provided **for informational, research, and price monitoring purposes only**. You are solely responsible for complying with applicable laws, Marktplaats's terms of use, and your organization's policies.

Extract **structured classified ads data** from the Netherlands' largest marketplace — `marktplaats.nl`. Search by keyword, Dutch postal code (Postcode) + radius, price range, or paste a pre-filtered browser URL. Parses full listing descriptions, dynamic attributes (brand, model, storage, condition, etc.), **high-resolution images**, seller profile metrics (account type, active years, verification status), location data, view counts, shipping options, and bid histories.

Includes **monitoring mode** with delta tracking and native **Telegram & Discord webhooks** for real-time alerts when new listings appear or prices change.

**Best for:** Marktplaats price research, Dutch classifieds monitoring, resale arbitrage alerts, local deal hunting by postcode, and bulk JSON/CSV export via Apify integrations.

### When to use this Actor

- **Marktplaats price tracking** — Collect listing prices, attributes, and locations for market averages and trend analysis across phones, cars, furniture, and more.
- **Real-time deal hunting & arbitrage** — Run in monitor mode every 1–5 minutes and get instant Telegram or Discord alerts for newly listed underpriced items.
- **Local inventory matching** — Search by Postcode + radius (e.g. iPhone 15 Pro within 25 km of Amsterdam) to find pickup-friendly deals.
- **Category & filter scraping** — Copy any filtered search URL from your browser (category, brand, price, condition) into Start URLs for exact replication.
- **Seller trust signals** — Parse verification status, seller type (consumer vs trader), and active-since metrics alongside each listing.

### When not to use this Actor

- **Private messages or seller contact** — This Actor reads public listing pages only; it does not access Marktplaats messaging or in-app chat.
- **Account-authenticated actions** — No login, favorites, or saved-search API; use Start URLs for pre-built filter combinations instead.
- **Heavy JavaScript SPAs outside Marktplaats** — Built specifically for `marktplaats.nl` search and detail pages, not generic web scraping.

### Key Features

- **Lightweight & fast** — Runs on **128–512 MB RAM** with efficient HTTP requests — no heavy headless browser required.
- **Full image extraction** — All available high-resolution listing images, not just search-result thumbnails.
- **Postcode + radius search** — Dutch postal code geolocation with configurable km radius (3–150 km).
- **Detail-page enrichment** — View counts, favorites, shipping options, bid lists, and full attribute tables when `scrapeDetails` is enabled.
- **Seller profile parsing** — Account type, active years, and verification status from public listing data.
- **Telegram & Discord alerts** — Native webhook support in input config: images, prices, location, and description snippets on new listings.
- **Smart monitoring** — Key-Value store tracks seen listing IDs and prices; stops pagination early when consecutive known ads are found.
- **Parallel detail fetching** — Configurable concurrency for faster bulk runs on large result sets.

### Input Parameters

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `startUrls` | Array | `[]` | Direct URLs to search results, categories, or individual listings. Filters from the URL are preserved. |
| `searchQuery` | String | — | Search term (e.g. `iphone 15 pro`). Ignored when Start URLs are provided. |
| `postalCode` | String | — | Dutch postal code (Postcode) to restrict search to a region. |
| `radius` | String | `"0"` | Radius in km around Postcode: `3`, `5`, `10`, `15`, `25`, `50`, `75`, `100`, `150`. |
| `minPrice` / `maxPrice` | Number | — | Filter listings by price range (€). |
| `maxItems` | Integer | `100` | Maximum number of listings to collect. |
| `scrapeDetails` | Boolean | `true` | Visit detail pages for full gallery, stats, bids, and shipping. If false, collects cards from search results only. |
| `maxConcurrency` | Integer | `5` | Parallel detail-page fetches (1–15). Higher = faster; lower = more stable on large batches. |
| `monitorMode` | Boolean | `false` | Delta tracking: only new/updated listings in output; early stop on known ads. |
| `telegramToken` | String | — | Telegram Bot token for alert notifications. |
| `telegramChatId` | String | — | Telegram chat ID to receive alerts. |
| `discordWebhook` | String | — | Discord webhook URL for rich listing embed cards. |
| `proxyConfiguration` | Object | — | Apify Proxy settings. Netherlands (`NL`) residential proxy recommended for high volume. |

#### Input Example

```json
{
  "searchQuery": "iphone 15 pro",
  "postalCode": "1012",
  "radius": "25000",
  "minPrice": 400,
  "maxPrice": 900,
  "maxItems": 500,
  "scrapeDetails": true,
  "maxConcurrency": 5,
  "monitorMode": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "NL"
  }
}
````

### Output Format

Each dataset row = one parsed Marktplaats listing.

| Field | Type | Description |
| :--- | :--- | :--- |
| `adId` | String | Unique Marktplaats listing ID. |
| `url` | String | Canonical listing URL. |
| `title` | String | Ad headline. |
| `price` | Number | Numeric price in EUR when fixed; null for auction-only listings. |
| `priceType` | String | e.g. `FIXED`, `MIN_BID`, `FAST_BID`, `SEE_DESCRIPTION`. |
| `description` | String | Full listing description text. |
| `location` | Object | City, postcode, country, latitude, longitude when available. |
| `shipping` | Object | Shipping options and carrier labels from detail page. |
| `attributes` | Object | Dynamic key/value pairs (condition, storage, model, etc.). |
| `images` | Array | High-resolution image URLs. |
| `seller.id` | Number | Seller account ID. |
| `seller.name` | String | Public seller display name. |
| `seller.type` | String | e.g. `CONSUMER`, `TRADER`. |
| `seller.active_since` | String | How long the seller has been active on Marktplaats. |
| `seller.isVerified` | Boolean | Verification badge status. |
| `stats.viewCount` | Number | Listing view count (detail scrape). |
| `stats.favoritedCount` | Number | Times saved to favorites (detail scrape). |
| `stats.since` | String | Exact publish timestamp (ISO 8601). |
| `bids` | Array | Current bids with value, date, and bidder nickname (when bidding enabled). |
| `publishedDate` | String | Listing publish date/time. |
| `scrapedAt` | String | Extraction timestamp (UTC ISO 8601). |

#### Output Example

```json
{
  "adId": "m2416596985",
  "url": "https://www.marktplaats.nl/v/telecommunicatie/mobiele-telefoons-apple-iphone/m2416596985-iphone-13-pro",
  "title": "iPhone 13 pro",
  "price": 275.0,
  "priceType": "MIN_BID",
  "description": "Selling my wife's iPhone 13 pro 128GB. Very good condition, battery health 76%. Pick up in Amstelveen.",
  "location": {
    "city": "Amstelveen",
    "postcode": "1181",
    "country": "Nederland",
    "latitude": 52.290225,
    "longitude": 4.841126
  },
  "shipping": {
    "augmentedLabels": [
      {
        "carrierId": "dhl-nl",
        "labels": [
          {
            "label": "Afhaalpunt via DHL voor",
            "price": "€ 2,89",
            "carrierName": "DHL",
            "deliveryMethod": "PICK_UP"
          }
        ]
      }
    ]
  },
  "attributes": {
    "Conditie": "Zo goed als nieuw",
    "Opslagcapaciteit": "128 GB",
    "Abonnement": "Zonder abonnement",
    "Simlock": "Zonder simlock"
  },
  "images": [
    "https://images.marktplaats.com/api/v1/hz-mp-pro-listing/images/a37247a3-38a9-4f66-8e8a-e5de7be6ff0e?rule=ecg_mp_eps$_85.jpg"
  ],
  "seller": {
    "id": 22317049,
    "name": "Mihai Filer",
    "type": "CONSUMER",
    "active_since": "11 jaar",
    "isVerified": true
  },
  "stats": {
    "viewCount": 78,
    "favoritedCount": 1,
    "since": "2026-07-03T12:46:35Z"
  },
  "bids": [
    {
      "id": 1548714969,
      "value": 27500,
      "date": "2026-07-03T16:04:18Z",
      "user": { "id": 52047226, "nickname": "JB" }
    }
  ],
  "publishedDate": "2026-07-03T12:46:35Z",
  "scrapedAt": "2026-07-03T18:55:10.397Z"
}
```

### Use Cases

| Use Case | What you get |
| :--- | :--- |
| **Resale arbitrage** | New-listing alerts with price, photos, and location for flip opportunities |
| **Market pricing** | Structured price + attribute datasets per keyword or category |
| **Local deal hunting** | Postcode + radius filters for pickup-friendly Dutch classifieds |
| **Automotive & spec-heavy sourcing** | Full attribute tables for cars, phones, and electronics |
| **Data pipelines** | JSON/CSV export or webhook integrations to Sheets, databases, and BI tools |

### FAQ

#### How is this different from a generic web scraper?

This Actor is built specifically for `marktplaats.nl`: search pagination, Dutch attribute parsing, seller metrics, bid history, monitor-mode delta tracking, and Telegram/Discord alerts — out of the box.

#### Do I need proxies?

For high-volume runs (500–1000+ listings), aggressive monitoring (every 1 minute), or detail scraping at scale, use **Apify Residential Proxies** with **Netherlands (`NL`) country targeting** for best reliability.

#### Can I scrape specific categories or advanced filters?

Yes. Open `marktplaats.nl` in your browser, apply all filters (category, brand, price, condition, sort), copy the URL from the address bar, and paste it into **Start URLs** (`startUrls`). This is the most reliable way to replicate complex filter combinations.

#### How does Monitoring Mode work?

With `monitorMode: true`, listing IDs and prices are stored in the default Key-Value Store. On each run the Actor scans from the top of search results. New or price-changed listings are written to the dataset and sent to Telegram/Discord. After **5 consecutive** already-known unchanged ads, pagination stops to save compute.

#### Can I scrape 1000+ listings in one run?

Yes. Set `maxItems` to your target (e.g. 1000) and tune `maxConcurrency` (default 5). Use Netherlands residential proxies for large batches with `scrapeDetails: true`. Pagination walks search result pages automatically until the limit is reached or results are exhausted.

#### Does it export to JSON / CSV / API?

Yes. Results are written to the Apify dataset. Download JSON, CSV, or Excel from the run, or connect webhooks and integrations (Google Sheets, BigQuery, custom API endpoints, etc.).

# Actor input Schema

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

Direct URLs to Marktplaats.nl search results, category pages, or individual listings. Copy a filtered browser URL for exact category/price/condition replication.

## `searchQuery` (type: `string`):

Keyword to search on Marktplaats (e.g. 'iPhone 15 Pro', 'Volkswagen Golf'). Leave empty if using Start URLs.

## `postalCode` (type: `string`):

Dutch postal code (e.g. '1012' or '1012 JS') to restrict search to a region.

## `radius` (type: `string`):

Search radius in km around the postal code. Only applies when Postal Code is set.

## `minPrice` (type: `number`):

Minimum listing price in euros.

## `maxPrice` (type: `number`):

Maximum listing price in euros.

## `maxItems` (type: `integer`):

Maximum number of Marktplaats listings to collect per run.

## `scrapeDetails` (type: `boolean`):

Visit each listing page for full gallery, view counts, bids, shipping options, and detailed seller info. Recommended for complete datasets.

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

How many listing detail pages to fetch in parallel. Default 5. Lower values improve stability on large batches.

## `monitorMode` (type: `boolean`):

Delta monitoring: only output new or price-updated listings. Stops pagination early when consecutive known ads are found.

## `telegramToken` (type: `string`):

Telegram Bot token for real-time new-listing notifications.

## `telegramChatId` (type: `string`):

Telegram chat ID to receive listing alerts.

## `discordWebhook` (type: `string`):

Discord webhook URL for rich listing embed notifications.

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

Apify Proxy settings. Netherlands (NL) residential proxy recommended for 500+ listings or detail scraping at scale.

## Actor input object example

```json
{
  "startUrls": [],
  "searchQuery": "iphone",
  "radius": "0",
  "maxItems": 100,
  "scrapeDetails": true,
  "maxConcurrency": 5,
  "monitorMode": false
}
```

# 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": [],
    "searchQuery": "iphone"
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/marktplaats-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": [],
    "searchQuery": "iphone",
}

# Run the Actor and wait for it to finish
run = client.actor("crawloop/marktplaats-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": [],
  "searchQuery": "iphone"
}' |
apify call crawloop/marktplaats-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Marktplaats Scraper — Monitor Listings & Deep Details",
        "description": "Fast and lightweight python scraper for marktplaats.nl using curl_cffi. Extracts titles, prices, descriptions, high-res images, location coordinates, dynamic attributes, and detailed seller metrics. Supports real-time monitoring and Telegram/Discord alerts.",
        "version": "0.5",
        "x-build-id": "yt4KyS1XRBfVTQkHB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawloop~marktplaats-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawloop-marktplaats-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/crawloop~marktplaats-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawloop-marktplaats-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/crawloop~marktplaats-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawloop-marktplaats-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": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Direct URLs to Marktplaats.nl search results, category pages, or individual listings. Copy a filtered browser URL for exact category/price/condition replication.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Keyword to search on Marktplaats (e.g. 'iPhone 15 Pro', 'Volkswagen Golf'). Leave empty if using Start URLs."
                    },
                    "postalCode": {
                        "title": "Postal Code (Postcode)",
                        "type": "string",
                        "description": "Dutch postal code (e.g. '1012' or '1012 JS') to restrict search to a region."
                    },
                    "radius": {
                        "title": "Radius (km)",
                        "enum": [
                            "0",
                            "3000",
                            "5000",
                            "10000",
                            "15000",
                            "25000",
                            "50000",
                            "75000",
                            "100000",
                            "150000"
                        ],
                        "type": "string",
                        "description": "Search radius in km around the postal code. Only applies when Postal Code is set.",
                        "default": "0"
                    },
                    "minPrice": {
                        "title": "Minimum Price (€)",
                        "type": "number",
                        "description": "Minimum listing price in euros."
                    },
                    "maxPrice": {
                        "title": "Maximum Price (€)",
                        "type": "number",
                        "description": "Maximum listing price in euros."
                    },
                    "maxItems": {
                        "title": "Max Listings",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of Marktplaats listings to collect per run.",
                        "default": 100
                    },
                    "scrapeDetails": {
                        "title": "Scrape Detail Pages",
                        "type": "boolean",
                        "description": "Visit each listing page for full gallery, view counts, bids, shipping options, and detailed seller info. Recommended for complete datasets.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max concurrent detail requests",
                        "minimum": 1,
                        "maximum": 15,
                        "type": "integer",
                        "description": "How many listing detail pages to fetch in parallel. Default 5. Lower values improve stability on large batches.",
                        "default": 5
                    },
                    "monitorMode": {
                        "title": "Monitoring Mode",
                        "type": "boolean",
                        "description": "Delta monitoring: only output new or price-updated listings. Stops pagination early when consecutive known ads are found.",
                        "default": false
                    },
                    "telegramToken": {
                        "title": "Telegram Bot Token",
                        "type": "string",
                        "description": "Telegram Bot token for real-time new-listing notifications."
                    },
                    "telegramChatId": {
                        "title": "Telegram Chat ID",
                        "type": "string",
                        "description": "Telegram chat ID to receive listing alerts."
                    },
                    "discordWebhook": {
                        "title": "Discord Webhook URL",
                        "type": "string",
                        "description": "Discord webhook URL for rich listing embed notifications."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy settings. Netherlands (NL) residential proxy recommended for 500+ listings or detail scraping at scale."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
