# Realtor.com Scraper (`scrapemind/realtor-com-scraper`) Actor

Extract property listings, prices, agent details, and more from Realtor.com at scale. No API key required. Get structured JSON data for market research, lead generation, or real estate analytics — ready to use in minutes.

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

## Pricing

from $0.70 / 1,000 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

### What does Realtor.com Property Scraper do?

**Realtor.com Property Scraper** extracts property listings from any [Realtor.com](https://www.realtor.com) search page and delivers structured, ready-to-use data — no account, no API key, no code required. Paste a search URL and get back price, address, beds, baths, square footage, listing agent contacts, photos, and much more in seconds. Scrape up to **10,000 listings per search** across the entire US market.

Need deeper data? Enable **Get Property Details** to also pull tax history, nearby school ratings, flood and noise risk scores, mortgage estimates, price history, HOA fees, open house schedules, and full photo galleries for every listing.

Output is available as **JSON, CSV, or Excel** — perfect for spreadsheets, CRM imports, or downstream data pipelines.

### Why scrape Realtor.com data?

- **Market research** — track median prices, days on market, and price reduction trends across any zip code or city
- **Investment analysis** — combine list price, last sold price, estimated value, tax assessments, and HOA fees in a single dataset
- **Lead generation** — export listing agent names, phone numbers, and emails for every active listing in a target area
- **Competitive intelligence** — monitor new listings and price changes in a market by scheduling automatic daily or weekly runs
- **Academic & journalistic research** — build housing affordability datasets, school-district analyses, or neighborhood reports
- **Portfolio tracking** — pull detailed data for specific addresses to monitor value and listing status over time

### How to scrape Realtor.com listings — step by step

1. Go to [Realtor.com](https://www.realtor.com) and run a property search in your target area.
2. Apply whatever filters you need — location, price range, beds, baths, property type.
3. Copy the URL from your browser's address bar.
4. Paste it into the **Start URLs** field in the Actor input.
5. Choose **Get Property Details** if you want the full data set, or leave it off for a faster lightweight run.
6. Click **Save & Run**. Results appear in the **Output** tab within seconds to minutes.

No technical setup needed. The Actor reads all filters directly from the URL.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| **Start URLs** | array | — | One or more Realtor.com search page URLs. Filters (beds, baths, price, type, sqft, keywords) are parsed automatically from the URL. |
| **Full Scrape** | boolean | `false` | Paginate through all available results until the end (up to ~10,000 per search). Uses a larger page size for efficiency. Overrides Max Items. |
| **Get Property Details** | boolean | `false` | Fetch the full listing detail page for every result: tax history, schools, flood risk, mortgage estimate, price history, and more. Slower but far richer. |
| **CSV-Friendly Output** | boolean | `true` | Flatten all fields to simple scalars with no nested objects — ideal for CSV and Excel. Disable to receive the full nested JSON structure. |
| **Max Items** | integer | `100` | Maximum listings to collect across all URLs. Set to `0` for unlimited. Ignored when Full Scrape is enabled. |
| **Proxy Configuration** | object | disabled | Optional proxy settings for high-volume or restricted runs. |

#### Example input

```json
{
  "startUrls": [
    { "url": "https://www.realtor.com/realestateandhomes-search/Austin_TX/type-single-family-home/price-300000-600000/beds-3" }
  ],
  "fullScrape": false,
  "getDetails": false,
  "csvFriendly": true,
  "maxItems": 500
}
````

You can add multiple URLs to scrape several markets in a single run.

### Output

#### Search results (fast mode, `getDetails: false`)

Each row is fully flat — no nested objects, ready to open directly in Excel or import into a database:

```json
{
  "property_id": "3948201234",
  "listing_id": "2981234567",
  "status": "for_sale",
  "url": "https://www.realtor.com/realestateandhomes-detail/123-Main-St_Austin_TX_78701",
  "list_date": "2026-04-15T14:00:00.000000Z",
  "last_update_date": "2026-05-01T09:30:00Z",
  "list_price": 449000,
  "price_per_sqft": 224,
  "price_reduced_amount": 10000,
  "last_sold_price": 312000,
  "last_sold_date": "2020-06-12",
  "hoa_fee": 75,
  "photo_url": "https://ap.rdcpix.com/example.jpg",
  "photo_count": 34,
  "is_new_listing": true,
  "is_price_reduced": true,
  "is_new_construction": false,
  "is_foreclosure": false,
  "beds": 3,
  "baths": 2,
  "sqft": 2005,
  "lot_sqft": 6534,
  "year_built": 2003,
  "property_type": "single_family",
  "garage": 2,
  "address": "123 Main St",
  "city": "Austin",
  "state_code": "TX",
  "postal_code": "78701",
  "latitude": 30.2672,
  "longitude": -97.7431
}
```

#### Full property details (`getDetails: true`)

Includes everything above plus:

```json
{
  "pool": false,
  "fireplace": true,
  "stories": 1,
  "heating": "Central",
  "cooling": "Central Air",
  "property_styles": "Ranch",
  "description_text": "Beautiful 3/2 in a quiet cul-de-sac with updated kitchen...",
  "state": "Texas",
  "street_view_url": "https://maps.googleapis.com/...",
  "estimated_value": 461000,
  "mortgage_monthly_payment": 2389,
  "mortgage_loan_amount": 404100,
  "mortgage_down_payment": 44900,
  "agent_name": "Jane Smith",
  "agent_phone": "512-555-0101",
  "agent_email": "jane@brokeragefirm.com",
  "agent_state_license": "TX-12345",
  "office_name": "Austin Premier Realty",
  "office_phone": "512-555-0200",
  "mls_id": "1234567",
  "mls_name": "Austin MLS",
  "days_on_mls": 12,
  "photo_urls": ["https://ap.rdcpix.com/img1.jpg", "https://ap.rdcpix.com/img2.jpg"],
  "virtual_tour_url": "https://tours.example.com/123-main-st",
  "last_tax_year": 2024,
  "last_tax_amount": 8342,
  "last_assessed_total": 398000,
  "noise_score": 42,
  "flood_factor_score": 1,
  "flood_zone": "X",
  "features": "Interior: Hardwood Floors, Granite Counters; Exterior: Covered Patio, Sprinkler System",
  "schools": [
    { "name": "Travis Elementary", "rating": 8, "grades": "K-5", "funding_type": "public", "distance_miles": 0.4 },
    { "name": "O. Henry Middle", "rating": 7, "grades": "6-8", "funding_type": "public", "distance_miles": 0.9 }
  ],
  "open_houses": [
    { "start_date": "2026-05-11T13:00:00", "end_date": "2026-05-11T16:00:00", "methods": "In Person" }
  ],
  "property_history": [
    { "date": "2026-04-15", "event": "Listed", "price": 449000, "source": "Austin MLS" },
    { "date": "2020-06-12", "event": "Sold", "price": 312000, "source": "Public Record" }
  ],
  "building_permits": [
    { "project_name": "Kitchen Remodel", "type_of_work": "Alteration", "date": "2022-03-10", "status": "Final" }
  ]
}
```

You can download the dataset in **JSON, CSV, Excel, or XML** from the Output tab after the run completes.

### Data fields reference

Fields marked **D** are only available when `getDetails: true`.

| Field | Mode | Description |
|---|---|---|
| `property_id` | S+D | Unique Realtor.com property identifier |
| `listing_id` | S+D | Active listing identifier |
| `listing_key` | D | MLS listing key |
| `status` | S+D | `for_sale` or `for_rent` |
| `url` | S+D | Direct link to the listing page |
| `application_url` | D | Rental application URL |
| `list_date` | S+D | Date the listing was published |
| `last_update_date` | S+D | Date the listing was last updated |
| `last_price_change_date` | D | Date of the most recent price change |
| `last_price_change_amount` | D | Dollar amount of the most recent price change |
| `coming_soon_date` | D | Expected listing date for coming-soon properties |
| `last_sold_date` | S+D | Date of the previous sale |
| `list_price` | S+D | Current asking price |
| `list_price_min` / `list_price_max` | S+D | Price range (for multi-unit listings) |
| `price_per_sqft` | S+D | Price ÷ interior square footage |
| `price_reduced_amount` | S+D | Dollar amount of the most recent price cut |
| `last_sold_price` | S+D | Price of the previous sale |
| `hoa_fee` | S+D | Monthly HOA fee (0 if none) |
| `estimated_value` | D | Automated valuation estimate |
| `mortgage_monthly_payment` | D | Estimated monthly mortgage payment |
| `mortgage_loan_amount` | D | Estimated loan amount |
| `mortgage_down_payment` | D | Estimated down payment |
| `beds` | S+D | Number of bedrooms |
| `beds_min` / `beds_max` | D | Bedroom range (for multi-unit listings) |
| `baths` | S+D | Number of bathrooms |
| `baths_consolidated` | S+D | Combined baths as display string |
| `baths_min` / `baths_max` | D | Bathroom range (for multi-unit listings) |
| `sqft` | S+D | Interior square footage |
| `sqft_min` / `sqft_max` | D | Sqft range (for multi-unit listings) |
| `lot_sqft` | S+D | Lot size in square feet |
| `year_built` | S+D | Year of construction |
| `garage` | S+D | Number of garage spaces |
| `garage_min` / `garage_max` | D | Garage range (for multi-unit listings) |
| `pool` | D | Pool present |
| `fireplace` | D | Fireplace present |
| `stories` | D | Number of stories |
| `heating` | D | Heating system type(s) |
| `cooling` | D | Cooling system type(s) |
| `property_type` | S+D | Property type (`single_family`, `condos`, etc.) |
| `property_sub_type` | S | Property sub-type |
| `property_styles` | D | Architectural style(s) |
| `property_name` | S+D | Building or community name |
| `description_text` | D | Full listing description |
| `address` | S+D | Street address |
| `city` | S+D | City |
| `state_code` | S+D | Two-letter state code |
| `state` | D | Full state name |
| `postal_code` | S+D | ZIP code |
| `latitude` / `longitude` | S+D | GPS coordinates |
| `street_view_url` | D | Google Street View URL |
| `is_new_listing` | S+D | Listed within the past few days |
| `is_pending` | S+D | Under contract / pending |
| `is_contingent` | D | Sale is contingent |
| `is_price_reduced` | S+D | Price has been reduced |
| `is_new_construction` | S+D | Newly built property |
| `is_foreclosure` | S+D | Foreclosure property |
| `is_coming_soon` | D | Not yet active on MLS |
| `is_deal_available` | D | Special deal or incentive available |
| `is_usda_eligible` | D | Eligible for USDA loan |
| `has_new_availability` | S | New unit availability (rentals) |
| `cats_allowed` / `dogs_allowed` | D | Pet policy (rentals) |
| `agent_name` / `agent_phone` / `agent_email` | D | Primary listing agent contact |
| `agent_url` | D | Agent profile URL |
| `agent_state_license` | D | Agent license number |
| `office_name` / `office_phone` / `office_email` | D | Brokerage contact |
| `office_url` | D | Brokerage profile URL |
| `mls_id` / `mls_name` | D | MLS listing ID and source name |
| `days_on_mls` | D | Number of days on the MLS |
| `feed_type` | D | MLS feed type |
| `listing_agent_name` / `listing_agent_phone` / `listing_agent_email` | D | MLS source agent contact |
| `listing_office_name` | D | MLS source office name |
| `photo_url` | S+D | Primary listing photo |
| `photo_count` | S+D | Total number of photos |
| `photo_urls` | D | All listing photo URLs (array) |
| `virtual_tour_url` | D | 3D or video tour link |
| `last_tax_year` / `last_tax_amount` | D | Most recent tax year and amount |
| `last_assessed_building` / `last_assessed_land` / `last_assessed_total` | D | Most recent assessed values |
| `noise_score` | D | Neighborhood noise level (0–100) |
| `flood_factor_score` / `flood_zone` | D | Flood risk score and FEMA zone |
| `features` | D | Full amenity and feature list as text |
| `open_houses` | D | Upcoming open house schedule (array) |
| `schools` | D | Nearby schools with name, rating, grades, distance (array) |
| `property_history` | D | Price and event history (array) |
| `building_permits` | D | Historical permit filings (array) |

### Tips and advanced options

- **Filter in the URL first** — use Realtor.com's own search filters before copying the URL. The Actor reads them automatically, so you only pay to scrape what you actually need.
- **Multiple URLs in one run** — add several city, zip-code, or filter-set URLs to scrape multiple markets simultaneously without running the Actor multiple times.
- **Schedule for market monitoring** — use the built-in Apify scheduler to re-run daily or weekly on the same URL and track price and availability changes over time.
- **Raw JSON mode** — turn off **CSV-Friendly Output** when ingesting data into a database or pipeline to receive the full nested structure without any field renaming or transformation.
- **For-rent searches** — paste any `realtor.com/apartments/` URL to scrape rental listings with the same field set.

### FAQ and support

**Why are some fields empty?**
Not every listing has every field populated. New construction may lack tax history; some rentals omit school data; certain agents opt out of displaying contact information.

**Why did the Actor stop before reaching my limit?**
Realtor.com limits search results to roughly 10,000 listings per query. For larger datasets, break the search into smaller sub-queries using tighter price ranges or specific zip codes.

**Can I scrape a specific property address?**
The Actor works with Realtor.com search page URLs. To get data on a specific property, search for its address on Realtor.com, copy the resulting search URL, and run it with `maxItems: 1` and `getDetails: true`.

**Something not working or a feature request?**
Open an issue in the **Issues** tab on this Actor's page. Custom integrations, scheduled pipelines, or white-label solutions are available on request.

### Contact

If you need a custom web scraping solution or have any questions, feel free to [contact me](mailto:baqo271@gmail.com) or reach out via [Discord](https://discord.com/users/291943252486127616). Let's discuss how I can help with your data needs!

# Actor input Schema

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

One or more Realtor.com search URLs to scrape (for-sale, for-rent, or apartments pages). All URL filters (type, beds, baths, price, sqft, keyword, page) are parsed automatically.

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

Maximum total number of items to scrape across all URLs. Set to 0 for unlimited.

## `fullScrape` (type: `boolean`):

When enabled, scrapes all available listings by paginating until the end of the results (up to ~10,000 per search). Uses a larger page size (200) for efficiency. Overrides Max Items.

## `getDetails` (type: `boolean`):

If enabled, fetches full property details for every listing (photos, tax history, school data, mortgage estimates, etc.). Slower and uses more compute units.

## `csvFriendly` (type: `boolean`):

When enabled (default), output is flattened to scalar fields with no nested objects — ideal for CSV/Excel exports. Disable to receive the raw API response with full nested structure.

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

Proxy settings for the scraper. Use Apify Proxy for better reliability.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.realtor.com/realestateandhomes-search/Mission_TX"
    }
  ],
  "maxItems": 100,
  "fullScrape": false,
  "getDetails": false,
  "csvFriendly": true,
  "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 = {
    "startUrls": [
        {
            "url": "https://www.realtor.com/realestateandhomes-search/Mission_TX"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemind/realtor-com-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.realtor.com/realestateandhomes-search/Mission_TX" }] }

# Run the Actor and wait for it to finish
run = client.actor("scrapemind/realtor-com-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.realtor.com/realestateandhomes-search/Mission_TX"
    }
  ]
}' |
apify call scrapemind/realtor-com-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Realtor.com Scraper",
        "description": "Extract property listings, prices, agent details, and more from Realtor.com at scale. No API key required. Get structured JSON data for market research, lead generation, or real estate analytics — ready to use in minutes.",
        "version": "0.0",
        "x-build-id": "13cs04pqQMJHG4AUf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapemind~realtor-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapemind-realtor-com-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/scrapemind~realtor-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapemind-realtor-com-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/scrapemind~realtor-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapemind-realtor-com-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "One or more Realtor.com search URLs to scrape (for-sale, for-rent, or apartments pages). All URL filters (type, beds, baths, price, sqft, keyword, page) are parsed automatically.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum total number of items to scrape across all URLs. Set to 0 for unlimited.",
                        "default": 100
                    },
                    "fullScrape": {
                        "title": "Full Scrape",
                        "type": "boolean",
                        "description": "When enabled, scrapes all available listings by paginating until the end of the results (up to ~10,000 per search). Uses a larger page size (200) for efficiency. Overrides Max Items.",
                        "default": false
                    },
                    "getDetails": {
                        "title": "Get Property Details",
                        "type": "boolean",
                        "description": "If enabled, fetches full property details for every listing (photos, tax history, school data, mortgage estimates, etc.). Slower and uses more compute units.",
                        "default": false
                    },
                    "csvFriendly": {
                        "title": "CSV-Friendly Output",
                        "type": "boolean",
                        "description": "When enabled (default), output is flattened to scalar fields with no nested objects — ideal for CSV/Excel exports. Disable to receive the raw API response with full nested structure.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings for the scraper. Use Apify Proxy for better reliability.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
