# 🏡 Zillow ZIP Code Search Scraper (`scrapebase/zillow-zip-code-search-scraper`) Actor

🚀 Scrape Zillow listings by ZIP code at scale. Pull homes 🏠 for sale, rent, or sold with price 💰, beds 🛏️, baths 🛁, photos 📸, Zestimate® & more. Smart proxy fallback (no proxy → datacenter → residential) keeps results flowing even on tough days.

- **URL**: https://apify.com/scrapebase/zillow-zip-code-search-scraper.md
- **Developed by:** [ScrapeBase](https://apify.com/scrapebase) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## 🏡 Zillow ZIP Code Search Scraper

> 🚀 **Scrape Zillow listings by ZIP code at scale.** Pull homes for sale, rent, sold, FSBO, and more — with prices 💰, beds/baths 🛏️🛁, square footage 📐, photos 📸, Zestimate®, broker info, and exact lat/long coordinates. Built for speed, accuracy, and tough anti-bot defenses with smart proxy fallback.

---

### 💡 Why Choose This Scraper?

* ⚡ **Lightning-fast** — concurrent pagination across multiple ZIPs at once
* 🧠 **Smart proxy fallback** — direct → 🏢 datacenter → 🏘️ residential (3 retries). Sticks once it works.
* 🛡️ **Browser-grade fingerprinting** — TLS + HTTP/2 impersonation via `curl_cffi` slips past Cloudflare-style defenses
* 💾 **Live-saving** — every listing is pushed to the dataset the moment it is parsed. A crash mid-run still leaves you with usable data.
* 🎯 **Real fields, not guesses** — pulls the same payload the Zillow website sees, including `hdpData.homeInfo`, photo carousels, and `latLong`
* 📦 **Bulk ZIP input** — paste 1 ZIP or 1,000 in one run
* 🆓 **Generous free tier** — start scraping with no proxy at all

---

### ✨ Key Features

* 📮 **Bulk ZIP search** — one Zillow request per ZIP, parallelized
* 📈 **Status filters** — for-sale by agent, FSBO, for-rent, recently sold
* 💰 **Price filters** — min/max sale price OR max monthly rent (auto-switches with "For Rent")
* 📅 **Days-on-Zillow filter** — last 24h, 7d, 14d, 30d, 90d, 6m, 12m, 24m, 36m
* 🔢 **Per-ZIP cap** — `maxItems` limits how many listings each ZIP returns
* 📸 **Photo URLs** — full carousel of listing photos at multiple sizes
* 🌐 **Geo-coordinates** — exact lat/long per home for mapping pipelines
* 🛡️ **Auto proxy ladder** — escalates only when blocked, never wastes proxy quota when direct works
* 🔁 **Retry logic** — exponential backoff with jitter on 429/5xx
* 📊 **Real-time logs** — see each listing land as it is pushed

---

### 📥 Input

```json
{
  "zipCodes": ["10014", "07306"],
  "forSaleByAgent": true,
  "forSaleByOwner": false,
  "forRent": false,
  "sold": false,
  "priceMax": 4000000,
  "priceMin": 0,
  "daysOnZillow": "",
  "maxItems": 50,
  "proxyConfiguration": { "useApifyProxy": false }
}
````

#### Field reference

| Field | Type | Description |
|-------|------|-------------|
| `zipCodes` ⭐ | array of strings | US ZIP codes to search. One Zillow query per ZIP. Bulk input supported. |
| `forSaleByAgent` | boolean | Include broker / MLS listings. Default `true`. |
| `forSaleByOwner` | boolean | Include FSBO listings. Default `false`. |
| `forRent` | boolean | Include rentals. When `true`, `priceMax` becomes the max monthly rent. Default `false`. |
| `sold` | boolean | Search recently sold homes instead of active listings. Default `false`. |
| `priceMax` | integer | Maximum sale price (or rent if `forRent`). `0` = no cap. |
| `priceMin` | integer | Minimum sale price (or rent if `forRent`). `0` = skip. |
| `daysOnZillow` | enum | `""`, `1`, `7`, `14`, `30`, `90`, `6m`, `12m`, `24m`, `36m`. |
| `maxItems` | integer | Listings per ZIP. `0` = unlimited. Zillow itself caps each search at ~800. |
| `proxyConfiguration` | object | Optional Apify proxy. Default: no proxy. Auto-fallback if Zillow blocks. |

***

### 📤 Output

Each pushed item is the full Zillow listing object enriched with `searchZipCode`. Trimmed example:

```json
{
  "searchZipCode": "10014",
  "zpid": "79983681",
  "statusType": "FOR_SALE",
  "statusText": "Active",
  "price": "$700,000",
  "unformattedPrice": 700000,
  "address": "138 W 10th St APT 3RW, New York, NY 10014",
  "addressCity": "New York",
  "addressState": "NY",
  "addressZipcode": "10014",
  "beds": 1,
  "baths": 1.0,
  "area": 0,
  "homeType": "CONDO",
  "daysOnZillow": 20,
  "zestimate": 707400,
  "rentZestimate": 7656,
  "brokerName": "Listing by: Douglas Elliman",
  "imgSrc": "https://photos.zillowstatic.com/fp/f7d637ffc322501c9f39e1df2b0a038e-p_e.jpg",
  "detailUrl": "https://www.zillow.com/homedetails/138-W-10th-St-APT-3RW-New-York-NY-10014/79983681_zpid/",
  "latitude": 40.734512,
  "longitude": -74.000626,
  "hdpData": { "homeInfo": { /* full Zillow homeInfo */ } },
  "carouselPhotosComposable": { /* photo gallery */ }
}
```

#### Output field reference

| Field | What it is |
|-------|-----------|
| `searchZipCode` 📮 | The ZIP this row was scraped from |
| `zpid` 🆔 | Zillow's unique property ID |
| `statusType` / `statusText` 🚦 | Listing status (FOR\_SALE, RECENTLY\_SOLD, FOR\_RENT, …) |
| `price` / `unformattedPrice` 💰💵 | Formatted + numeric price |
| `address` 📍 | Full street address |
| `beds` / `baths` / `area` 🛏️🛁📐 | Property specs |
| `homeType` 🏠 | CONDO, SINGLE\_FAMILY, TOWNHOUSE, … |
| `daysOnZillow` 📅 | Days since first listed |
| `zestimate` / `rentZestimate` 📈💵 | Zillow's automated valuations |
| `brokerName` 🏢 | Listing agent / brokerage |
| `imgSrc` / `carouselPhotosComposable` 📸 | Primary photo + full gallery |
| `detailUrl` 🔗 | Direct Zillow listing link |
| `latitude` / `longitude` 🌐 | Exact coordinates |
| `hdpData.homeInfo` 🧾 | The complete Zillow HDP payload |

***

### 🚀 How to Use (Apify Console)

1. 🔐 Log in at [console.apify.com](https://console.apify.com) → **Actors**.
2. 🔍 Find **Zillow ZIP Code Search Scraper** and open it.
3. ⚙️ Set the inputs:
   - Add one or more ZIP codes.
   - Toggle which listing types you want (sale / FSBO / rent / sold).
   - Set `maxItems` per ZIP (e.g. 50).
   - Leave proxy on **no proxy** to start — actor will auto-fallback if needed.
4. ▶️ Click **Start**.
5. 📺 Watch the live log — each listing prints as it is collected.
6. 📥 Open the **Dataset** tab when the run finishes.
7. 📤 Export to JSON / CSV / Excel / API.

***

### 🤖 Use via API

```bash
curl -X POST "https://api.apify.com/v2/acts/<USERNAME>~zillow-zip-code-search-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "zipCodes": ["10014", "07306"],
       "forSaleByAgent": true,
       "priceMax": 4000000,
       "maxItems": 50
     }'
```

Async (start the run, then poll the run / dataset endpoints):

```bash
curl -X POST "https://api.apify.com/v2/acts/<USERNAME>~zillow-zip-code-search-scraper/runs?token=$APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"zipCodes":["90210"], "maxItems": 25}'
```

***

### 🎯 Best Use Cases

- 🏠 **Real-estate market analysis** — track active inventory and sold comps per ZIP
- 📊 **Lead generation** — agents/brokers prospecting fresh listings in their farm areas
- 🧠 **Investment research** — find undervalued properties using Zestimate vs. asking price
- 📰 **Journalism & data viz** — neighborhood-level housing data for stories and dashboards
- 🤖 **AI / ML pipelines** — clean, structured listings to train pricing or recommendation models
- 🏘️ **Rental pricing** — toggle `forRent: true` to benchmark rents in a ZIP
- 🗺️ **Geo analysis** — use built-in lat/long to drop points on a map

***

### 💰 Pricing

This actor uses Apify's **pay-per-event** model — you only pay for what you scrape.

| Event | Description |
|-------|-------------|
| `apify-actor-start` 🚀 | Small one-time charge per run. First 5 seconds of compute on Apify. |
| `apify-default-dataset-item` 📦 | Charged per listing pushed to the dataset. |

> 💡 **Tip:** start with no proxy + low `maxItems` to estimate cost. Scale up once the numbers look right.

***

### ❓ Frequently Asked Questions

#### Q: Does this need a proxy?

A: No. By default the actor runs **direct**. It only escalates to a datacenter proxy if Zillow blocks, then to a residential proxy (with 3 retries) if that also fails. Once it finds a working transport, it sticks with it for the rest of the run.

#### Q: Why does Zillow cap each ZIP at ~800 listings?

A: That's a Zillow website limit, not a scraper limit. For dense ZIPs, narrow your search with a `priceMax` or `daysOnZillow` filter to slice the inventory into smaller buckets.

#### Q: Does this work for rentals?

A: Yes — set `forRent: true`. The `priceMax` field then becomes the **max monthly rent**.

#### Q: Can I scrape sold homes?

A: Yes — set `sold: true`. You'll see `RECENTLY_SOLD` in the `statusType` field.

#### Q: What if a ZIP fails?

A: Failures are isolated per ZIP. Other ZIPs keep running. Failed ZIPs are logged in the final summary and produce no rows for that section.

#### Q: How are duplicates handled?

A: Listings are deduplicated by `zpid` within each ZIP before being pushed.

#### Q: Why are some `area` fields 0?

A: Zillow does not publish square footage for every listing (especially co-ops and some condos). The `area: 0` mirrors what the Zillow API returns.

***

### ⚖️ Legal & Cautions

- 📜 Data is collected from **publicly available** Zillow pages.
- 🤝 Use responsibly — respect Zillow's Terms of Service and applicable laws (GDPR, CCPA, etc.).
- 🚫 Do not scrape private accounts or paywalled content.
- 🐢 Be a good citizen: keep `maxItems` reasonable, leave proxy fallback enabled.

***

### 📨 Support & Feedback

- 💬 Found a bug or have a feature idea? Open an issue from the Actor's **Issues** tab.
- ⭐ If this saved you time, a Store rating goes a long way!

# Actor input Schema

## `zipCodes` (type: `array`):

🗺️ List of US ZIP codes to search. One Zillow search runs per ZIP code. Bulk input supported — paste as many as you need.

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

📊 Maximum listings to collect per ZIP code. Use 0 for unlimited (Zillow caps each search around 800).

## `priceMax` (type: `integer`):

💵 Maximum sale price — or maximum monthly rent if 'For Rent' is enabled. Leave 0 for no cap.

## `priceMin` (type: `integer`):

🎯 Minimum sale price (or minimum monthly rent if 'For Rent' is on). Leave 0 to skip.

## `daysOnZillow` (type: `string`):

⏱️ Filter listings by how long they have been on Zillow.

## `forSaleByAgent` (type: `boolean`):

🏢 Include homes listed by a real-estate agent / broker (MLS).

## `forSaleByOwner` (type: `boolean`):

👤 Include homes listed directly by the owner (no agent).

## `forRent` (type: `boolean`):

🔑 Include rental listings instead of (or alongside) for-sale homes. When enabled, the price cap becomes the maximum monthly rent.

## `sold` (type: `boolean`):

📜 Search recently SOLD homes instead of active listings.

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

👆 Turn on only if you want to run through Apify Proxy from the start. Leave off for automatic fallback (direct → datacenter → residential).

## Actor input object example

```json
{
  "zipCodes": [
    "10014",
    "07306"
  ],
  "maxItems": 10,
  "priceMax": 0,
  "priceMin": 0,
  "daysOnZillow": "",
  "forSaleByAgent": true,
  "forSaleByOwner": false,
  "forRent": false,
  "sold": false,
  "proxyConfiguration": {
    "useApifyProxy": 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 = {
    "zipCodes": [
        "10014",
        "07306"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapebase/zillow-zip-code-search-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 = {
    "zipCodes": [
        "10014",
        "07306",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapebase/zillow-zip-code-search-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 '{
  "zipCodes": [
    "10014",
    "07306"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapebase/zillow-zip-code-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🏡 Zillow ZIP Code Search Scraper",
        "description": "🚀 Scrape Zillow listings by ZIP code at scale. Pull homes 🏠 for sale, rent, or sold with price 💰, beds 🛏️, baths 🛁, photos 📸, Zestimate® & more. Smart proxy fallback (no proxy → datacenter → residential) keeps results flowing even on tough days.",
        "version": "0.1",
        "x-build-id": "3IX0YjhgO5DyyNGBU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapebase~zillow-zip-code-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapebase-zillow-zip-code-search-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/scrapebase~zillow-zip-code-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapebase-zillow-zip-code-search-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/scrapebase~zillow-zip-code-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapebase-zillow-zip-code-search-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": [
                    "zipCodes"
                ],
                "properties": {
                    "zipCodes": {
                        "title": "📮 ZIP Codes",
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "🗺️ List of US ZIP codes to search. One Zillow search runs per ZIP code. Bulk input supported — paste as many as you need.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "🔢 Max Listings per ZIP",
                        "minimum": 0,
                        "type": "integer",
                        "description": "📊 Maximum listings to collect per ZIP code. Use 0 for unlimited (Zillow caps each search around 800).",
                        "default": 10
                    },
                    "priceMax": {
                        "title": "💰 Max Price (USD)",
                        "minimum": 0,
                        "maximum": 2147483646,
                        "type": "integer",
                        "description": "💵 Maximum sale price — or maximum monthly rent if 'For Rent' is enabled. Leave 0 for no cap.",
                        "default": 0
                    },
                    "priceMin": {
                        "title": "💸 Min Price (USD)",
                        "minimum": 0,
                        "maximum": 2147483646,
                        "type": "integer",
                        "description": "🎯 Minimum sale price (or minimum monthly rent if 'For Rent' is on). Leave 0 to skip.",
                        "default": 0
                    },
                    "daysOnZillow": {
                        "title": "📅 Days on Zillow",
                        "enum": [
                            "",
                            "1",
                            "7",
                            "14",
                            "30",
                            "90",
                            "6m",
                            "12m",
                            "24m",
                            "36m"
                        ],
                        "type": "string",
                        "description": "⏱️ Filter listings by how long they have been on Zillow.",
                        "default": ""
                    },
                    "forSaleByAgent": {
                        "title": "📈 For Sale by Agent",
                        "type": "boolean",
                        "description": "🏢 Include homes listed by a real-estate agent / broker (MLS).",
                        "default": true
                    },
                    "forSaleByOwner": {
                        "title": "🏷️ For Sale by Owner (FSBO)",
                        "type": "boolean",
                        "description": "👤 Include homes listed directly by the owner (no agent).",
                        "default": false
                    },
                    "forRent": {
                        "title": "🏘️ For Rent",
                        "type": "boolean",
                        "description": "🔑 Include rental listings instead of (or alongside) for-sale homes. When enabled, the price cap becomes the maximum monthly rent.",
                        "default": false
                    },
                    "sold": {
                        "title": "💼 Recently Sold",
                        "type": "boolean",
                        "description": "📜 Search recently SOLD homes instead of active listings.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Apify Proxy (optional)",
                        "type": "object",
                        "description": "👆 Turn on only if you want to run through Apify Proxy from the start. Leave off for automatic fallback (direct → datacenter → residential)."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
