# Zumper – Rental Listings, Prices & Agent Contacts (`abotapi/zumper-scraper`) Actor

Scrape Zumper.com rental listings: apartments, houses, condos and rooms. Pulls 60+ fields per listing, including monthly rent, beds/baths, square footage, decoded amenities, agent name and phone, ratings, availability and full-resolution photos. Search by location with filters, or paste Zumper URLs.

- **URL**: https://apify.com/abotapi/zumper-scraper.md
- **Developed by:** [Abot API](https://apify.com/abotapi) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 listing results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## Zumper Rentals Scraper

Pull rental listings from Zumper across the United States: apartments, houses, condos and rooms. Search by location with rich filters, or paste your own Zumper URLs. Returns 60+ fields per listing including monthly rent, beds/baths, square footage, **human-readable amenities**, agent name and phone, ratings, availability and **full-resolution photo URLs**.

### Why this scraper

- **60+ fields straight from the results page.** You do not have to turn on detail fetching to get price, beds/baths, square footage, amenities, agent name, phone, rating and photos.
- **Amenities decoded to plain text.** Amenities and building features come back as readable labels (`"In-Unit Laundry"`, `"Fitness Center"`, `"Garage Parking"`), not opaque numeric codes.
- **Full photo URLs, not just IDs.** Every image is returned as a ready-to-open URL.
- **Ratings included.** Zumper's overall rating and external rating on every card; the optional detail step adds the full category-by-category rating breakdown and Zumper's resident-feedback summary.
- **Two modes**: search by location and filters, or paste specific search / building / listing URLs (multiple URLs supported).
- **Predictable cost.** A small default result cap, per-record output, and an optional per-listing detail surcharge only when you turn detail fetching on.
- **Runs on any Apify plan.**

### Data you get

> Sample shape; values are illustrative placeholders, not from a live listing.

| Field | Example |
|---|---|
| id | `64606115` |
| url | `https://www.zumper.com/apartment-buildings/p000000/sample-building-city-st` |
| title | `1A with Balcony` |
| buildingName | `Sample Apartments` |
| propertyCategory | `apartments` |
| address | `123 Sample St` |
| city / state / zipcode | `San Francisco` / `CA` / `94103` |
| neighborhood | `SOMA` |
| latitude / longitude | `37.7700 / -122.4000` |
| minPrice / maxPrice | `4035` / `6360` |
| previousPrice | `4200` (set when the rent dropped) |
| minBedrooms / maxBedrooms | `0` / `2` (0 = studio) |
| minBathrooms / maxBathrooms | `1` / `2` |
| minSquareFeet / maxSquareFeet | `509` / `980` |
| dateAvailable | `2026-01-15` |
| rating / externalRating | `9.3` / `4.1` |
| unitAmenities | `["In-Unit Laundry", "Dishwasher", "Air Conditioning"]` |
| buildingAmenities | `["Fitness Center", "Garage Parking", "Roof Deck"]` |
| agentName / brokerageName / phone | `Sample Mgmt` / `Sample Brokerage` / `(415) 555-0100` |
| primaryImage / images / imageCount | `https://img.zumpercdn.com/000000000/1280x960` / `[...]` / `10` |
| shortDescription | `Bright corner unit with balcony.` |
| scrapedAt | `2026-01-01T00:00:00.000Z` |

With **Fetch detail pages** enabled, each listing is additionally enriched with:

| Field | Notes |
|---|---|
| description | Full property description |
| yearBuilt / yearRemodeled / floors | Building facts |
| amenityGroups | Amenities grouped by category |
| petPolicy / parking / deposits / fees | Policy + cost detail |
| specials / incomeRestrictions / leaseTerms / hours | When present |
| units / floorplanListings | Per-unit / per-floorplan availability and pricing |
| agents | Full agent / property-manager contact records |
| categoryRatings | Per-category rating breakdown (e.g. location, value, quality) |
| ratingDate | When the ratings were last generated |
| reviewsSummary | Zumper's editorial summary of resident feedback |
| editorialReview / aggregateRating | Zumper's editorial review blurb + aggregate score |
| averagePrice / averageSquareFeet | Building averages |

### A note on reviews

**Zumper does not publish individual resident / tenant reviews** (per-comment review text with an author and date). What Zumper exposes for a building is:

1. an **overall rating** and an **external rating** (numbers),
2. a **category rating breakdown** (location, value, quality, etc.), and
3. an editorial, **AI-generated resident-feedback summary** plus a single editorial "review" blurb authored by Zumper itself, not by a renter.

This was confirmed by inspecting Zumper's own page data: the building-reviews data structure is present in the page state but is never populated, no per-comment review section is rendered, and the only review object on a listing is authored by the "Zumper" organization. This scraper therefore captures **all of the rating and feedback data that does exist** (`rating`, `externalRating`, `categoryRatings`, `reviewsSummary`, `editorialReview`, `aggregateRating`) and always includes a `userReviews` field, which is an **empty array** because Zumper has no per-comment user reviews to return.

### How to use

Search apartments in a city:

```json
{
  "mode": "search",
  "locations": ["San Francisco, CA"],
  "propertyCategory": "apartments",
  "maxListings": 20
}
````

Search houses with filters, cheapest first, and full detail:

```json
{
  "mode": "search",
  "locations": ["Austin, TX"],
  "propertyCategory": "houses",
  "minPrice": 1500,
  "maxPrice": 6000,
  "minBedrooms": 2,
  "petsAllowed": ["dogs"],
  "sortBy": "price-asc",
  "fetchDetails": true,
  "maxListings": 50
}
```

Paste your own Zumper URLs (search pages or specific buildings):

```json
{
  "mode": "url",
  "urls": [
    "https://www.zumper.com/apartments-for-rent/new-york-ny",
    "https://www.zumper.com/apartment-buildings/p87664/sample-building-san-francisco-ca"
  ],
  "fetchDetails": true
}
```

#### Input options

| Option | What it does |
|---|---|
| `mode` | `search` (build URLs from filters) or `url` (use your own URLs) |
| `locations` | Cities, states, neighborhoods or ZIPs, e.g. `"San Francisco, CA"`, `"new-york-ny"`, `"94110"` |
| `propertyCategory` | `apartments`, `houses`, `condos`, `rooms` |
| `minPrice` / `maxPrice` | Monthly-rent bounds (USD) |
| `minBedrooms` / `maxBedrooms` / `minBathrooms` | Room filters (0 beds = studio) |
| `petsAllowed` | `dogs`, `cats` |
| `sortBy` | `default`, `price-asc`, `price-desc`, `newest`, `rating-desc` |
| `urls` | URL mode only: search / building / listing URLs |
| `fetchDetails` | Add full description, ratings breakdown, units, agents and more |
| `maxPages` | Results-page ceiling per location/URL |
| `maxListings` | Total result cap (0 = unlimited) |
| `proxy` | Connection settings; managed automatically, or supply your own proxy URLs |

### Send results into your apps (MCP connectors)

Optionally pipe each scraped listing into the tools you already use (Notion, Linear, Airtable, or any Model Context Protocol server) by selecting an authorized connector in the input. Each connector receives a condensed, human-readable summary per item; the full record always stays in the dataset.

### Notes

- Results reflect the public listing data available at run time; field availability can vary by region, listing type and Zumper interface changes. Use `id` as the idempotency / dedup key.
- The default run keeps detail fetching off because the results page already carries the large majority of fields; turn it on when you need the full description, ratings breakdown, units or agent records.

# Actor input Schema

## `mode` (type: `string`):

search = build URLs from the filters below; url = pass through your own Zumper URLs.

## `locations` (type: `array`):

Search mode only. City, state, neighborhood or ZIP, e.g. "San Francisco, CA", "new-york-ny", "Austin, TX", or "94110". Multiple locations supported.

## `propertyCategory` (type: `string`):

Search mode only. Which rental category to browse.

## `minPrice` (type: `integer`):

Search mode only. Keep listings priced at or above this monthly rent.

## `maxPrice` (type: `integer`):

Search mode only. Keep listings priced at or below this monthly rent.

## `minBedrooms` (type: `integer`):

Search mode only. 0 = studio.

## `maxBedrooms` (type: `integer`):

Search mode only.

## `minBathrooms` (type: `integer`):

Search mode only.

## `petsAllowed` (type: `array`):

Search mode only. Keep only listings that allow the selected pets.

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

Search mode only.

## `urls` (type: `array`):

URL mode only. Paste Zumper search-results URLs or individual building/listing URLs. Filter fields above are ignored. Search URLs continue from their page number onward.

## `fetchDetails` (type: `boolean`):

Add full description, amenity groups, pet policy, parking, deposits, fees, lease terms, units / floorplans, full agent contacts and Zumper's category ratings + resident-feedback summary. The results page already returns ~70 fields including price, beds/baths, decoded amenities, agent name, phone, rating and photos, so leaving this off is faster and cheaper.

## `maxPages` (type: `integer`):

Safety ceiling on results pages walked per location/URL. Pages stop early once Max listings is reached.

## `maxListings` (type: `integer`):

Stop after this many listings across all searches. 0 = unlimited.

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

Runs on any Apify plan. Connections are managed automatically to keep results flowing. You may also supply your own proxy URLs.

## `mcpConnectors` (type: `array`):

Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify Settings, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON; the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).

## `notionParentPageUrl` (type: `string`):

URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.

## `maxNotifyListings` (type: `integer`):

Cap on items written to each connector per run. Does not affect the dataset.

## Actor input object example

```json
{
  "mode": "search",
  "locations": [
    "San Francisco, CA"
  ],
  "propertyCategory": "apartments",
  "sortBy": "default",
  "urls": [
    "https://www.zumper.com/apartments-for-rent/san-francisco-ca"
  ],
  "fetchDetails": false,
  "maxPages": 50,
  "maxListings": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxNotifyListings": 50
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "locations": [
        "San Francisco, CA"
    ],
    "urls": [
        "https://www.zumper.com/apartments-for-rent/san-francisco-ca"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/zumper-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 = {
    "locations": ["San Francisco, CA"],
    "urls": ["https://www.zumper.com/apartments-for-rent/san-francisco-ca"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/zumper-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 '{
  "locations": [
    "San Francisco, CA"
  ],
  "urls": [
    "https://www.zumper.com/apartments-for-rent/san-francisco-ca"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call abotapi/zumper-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Zumper – Rental Listings, Prices & Agent Contacts",
        "description": "Scrape Zumper.com rental listings: apartments, houses, condos and rooms. Pulls 60+ fields per listing, including monthly rent, beds/baths, square footage, decoded amenities, agent name and phone, ratings, availability and full-resolution photos. Search by location with filters, or paste Zumper URLs.",
        "version": "1.0",
        "x-build-id": "q16V7jw2ObEsbKivK"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~zumper-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-zumper-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/abotapi~zumper-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-zumper-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/abotapi~zumper-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-zumper-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "search = build URLs from the filters below; url = pass through your own Zumper URLs.",
                        "default": "search"
                    },
                    "locations": {
                        "title": "Locations",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Search mode only. City, state, neighborhood or ZIP, e.g. \"San Francisco, CA\", \"new-york-ny\", \"Austin, TX\", or \"94110\". Multiple locations supported.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "propertyCategory": {
                        "title": "Property category",
                        "enum": [
                            "apartments",
                            "houses",
                            "condos",
                            "rooms"
                        ],
                        "type": "string",
                        "description": "Search mode only. Which rental category to browse.",
                        "default": "apartments"
                    },
                    "minPrice": {
                        "title": "Minimum rent (USD/mo)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Search mode only. Keep listings priced at or above this monthly rent."
                    },
                    "maxPrice": {
                        "title": "Maximum rent (USD/mo)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Search mode only. Keep listings priced at or below this monthly rent."
                    },
                    "minBedrooms": {
                        "title": "Minimum bedrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Search mode only. 0 = studio."
                    },
                    "maxBedrooms": {
                        "title": "Maximum bedrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Search mode only."
                    },
                    "minBathrooms": {
                        "title": "Minimum bathrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Search mode only."
                    },
                    "petsAllowed": {
                        "title": "Pets allowed",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Search mode only. Keep only listings that allow the selected pets.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "dogs",
                                "cats"
                            ],
                            "enumTitles": [
                                "Dogs",
                                "Cats"
                            ]
                        }
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "default",
                            "price-asc",
                            "price-desc",
                            "newest",
                            "rating-desc"
                        ],
                        "type": "string",
                        "description": "Search mode only.",
                        "default": "default"
                    },
                    "urls": {
                        "title": "Zumper URLs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "URL mode only. Paste Zumper search-results URLs or individual building/listing URLs. Filter fields above are ignored. Search URLs continue from their page number onward.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch detail pages",
                        "type": "boolean",
                        "description": "Add full description, amenity groups, pet policy, parking, deposits, fees, lease terms, units / floorplans, full agent contacts and Zumper's category ratings + resident-feedback summary. The results page already returns ~70 fields including price, beds/baths, decoded amenities, agent name, phone, rating and photos, so leaving this off is faster and cheaper.",
                        "default": false
                    },
                    "maxPages": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Safety ceiling on results pages walked per location/URL. Pages stop early once Max listings is reached.",
                        "default": 50
                    },
                    "maxListings": {
                        "title": "Max listings (total)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many listings across all searches. 0 = unlimited.",
                        "default": 20
                    },
                    "proxy": {
                        "title": "Connection",
                        "type": "object",
                        "description": "Runs on any Apify plan. Connections are managed automatically to keep results flowing. You may also supply your own proxy URLs.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "mcpConnectors": {
                        "title": "Pipe results into your apps (optional)",
                        "type": "array",
                        "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify Settings, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON; the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page (Notion connector only)",
                        "type": "string",
                        "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export per connector",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on items written to each connector per run. Does not affect the dataset.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
