# Apartments.com  URL | Keyword | Rich Output (`abotapi/apartments-com-scraper`) Actor

From $1.5/1K. Extract Apartments.com rental listings at lower cost. Search by city, ZIP, neighborhood, or address, paste result/property URLs, or use autocomplete. Get rent, floorplans, units, amenities, fees, schools, transit, ratings, reviews, photos, phone, and GPS data.

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

## Pricing

from $1.50 / 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

## Apartments.com Scraper

Pull rental listings from Apartments.com at a fraction of the usual cost. Search any city, ZIP, neighborhood, or street address; paste result and property links; or get location autocomplete suggestions. Every property comes back as one rich row with rent, floorplans, available units, amenities, policies, fees, schools, transit, walk score, ratings, reviews, photos, phone, and GPS coordinates.

### Why this scraper

- One row per property, not one row per sub-block. Many scrapers split a single property into a dozen or more rows (info, amenities, fees, schools, reviews, photos, and so on) and bill you for each. This actor returns the whole property as a single nested record, so the same data costs you far less.
- 50+ fields per property, including floorplan models, every available unit with rent and square footage, full amenity list, pet and parking policy, fee schedule, nearby schools, walk and transit scores, office hours, ratings, and recent reviews.
- Three modes: location search, URL scraping, and location autocomplete.
- One rich row per property means more usable data per result, so you pay for properties, not fragments.
- Datacenter proxy friendly. The default connection works out of the box and keeps your proxy spend low, with automatic recovery if a page is momentarily refused.
- Graceful pagination across result pages, with duplicate properties removed.

### Data you get

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

| Field | Example |
| --- | --- |
| id | `abc1234` |
| name | `Sample Apartments` |
| url | `https://www.apartments.com/sample-apartments-austin-tx/abc1234/` |
| address | `100 Example St, Austin, TX 78701` |
| city / state / zip | `Austin` / `TX` / `78701` |
| latitude / longitude | `30.0000` / `-97.0000` |
| rentMin / rentMax | `1200` / `2600` |
| currency | `USD` |
| bedsLabel | `Studio - 2 Beds` |
| bedsRange / bathsRange / sqftRange | `1 - 2 bd` / `1 - 2 ba` / `500 - 1,000` |
| propertyType | `apartment` |
| yearBuilt / unitsInBuilding / stories | `2010` / `200` / `4` |
| neighborhood | `Sample Neighborhood` |
| leaseOptions | `6 - 15 Month Leases` |
| managementCompany | `Sample Management Co` |
| rentSpecial | `Move-in special: one month free` |
| verified | `true` |
| phone | `(800) 000-0000` |
| petsAllowed | `true` |
| rating / reviewCount | `4.1` / `0` |
| parking | `["Garage - $0/mo", "Covered Lot - $0/mo"]` |
| transit | `[{ "name": "Sample Station", "distanceMiles": 1.0, "driveTimeMin": 5 }]` |
| amenities | `["Pool", "Fitness Center", "In Unit Laundry"]` |
| floorplans | `[{ "name": "A1", "rent": "$1,200 - $1,400", "beds": 1, "baths": 1, "sqft": 650 }]` |
| units | `[{ "model": "A1", "unit": "000", "beds": 1, "baths": 1, "rent": 1300, "sqft": 650, "availability": "Now" }]` |
| fees | `["Application Fee $0", "Admin Fee $0"]` |
| schools | `[{ "name": "Example Elementary", "type": "Public", "grades": "PK-5", "students": 500 }]` |
| walkScore | `{ "walk": 80, "transit": 50, "drive": 90, "bike": 70 }` |
| officeHours | `["Monday, Tuesday, Wednesday, Thursday, Friday: 09:00-18:00"]` |
| reviews | `[{ "author": "A. Renter", "title": "Great place", "body": "Sample review text.", "date": "2026-01-01" }]` |
| photos | `["https://images1.apartments.com/i2/0000/sample-photo.jpg"]` |

In autocomplete mode each row is a location suggestion with `id`, `display`, `geographyType`, `city`, `state`, `latitude`, `longitude`, and `boundingBox`.

### How to use

Search a city, fast cards only:

```json
{
  "mode": "search",
  "locations": ["Austin, TX"],
  "fetchDetails": false,
  "maxPages": 3,
  "maxListings": 100
}
````

Search with filters and full details:

```json
{
  "mode": "search",
  "locations": ["Denver, CO", "80202"],
  "propertyType": "apartments",
  "bedrooms": "2",
  "minRent": 1500,
  "maxRent": 2800,
  "fetchDetails": true,
  "maxPages": 5
}
```

Scrape URLs (result pages and property pages, mixed):

```json
{
  "mode": "url",
  "urls": [
    "https://www.apartments.com/houston-tx/2-bedrooms/",
    "https://www.apartments.com/the-grove-houston-tx/9cwjc35/"
  ],
  "fetchDetails": true,
  "maxPages": 2
}
```

Location autocomplete:

```json
{
  "mode": "autocomplete",
  "locations": ["Brooklyn", "78701"]
}
```

### Input parameters

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| mode | string | `search` | `search`, `url`, or `autocomplete`. |
| locations | array | `["Austin, TX"]` | City, ZIP, neighborhood, or address terms. Used by search and autocomplete. |
| propertyType | string | `any` | `any`, `apartments`, `houses`, `condos`, `townhomes`. |
| bedrooms | string | `any` | `any`, `studio`, `1`, `2`, `3`, `4` (minimum beds). |
| minRent | integer | (none) | Lowest monthly rent in USD. |
| maxRent | integer | (none) | Highest monthly rent in USD. |
| lifestyle | string | `none` | Single lifestyle filter (for example `pet-friendly`, `luxury`, `furnished`). Applied when property type is `any`. |
| urls | array | (example) | Apartments.com result or property URLs. Used by url mode. |
| fetchDetails | boolean | `true` | Enrich each property with its detail page. Turn off for fast card-only runs. |
| maxPages | integer | `1` | Result pages per location or start URL (about 40 properties per page). Increase for more results. |
| maxListings | integer | `0` | Global property cap. `0` means no cap. |
| proxy | object | Apify Datacenter | Connection settings. |

### Output example

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

```json
{
  "id": "abc1234",
  "url": "https://www.apartments.com/sample-apartments-austin-tx/abc1234/",
  "name": "Sample Apartments",
  "address": "100 Example St, Austin, TX 78701",
  "city": "Austin",
  "state": "TX",
  "zip": "78701",
  "latitude": 30.0000,
  "longitude": -97.0000,
  "rentMin": 1200,
  "rentMax": 2600,
  "currency": "USD",
  "bedsLabel": "Studio - 2 Beds",
  "bedsRange": "1 - 2 bd",
  "bathsRange": "1 - 2 ba",
  "sqftRange": "500 - 1,000",
  "propertyType": "apartment",
  "yearBuilt": 2010,
  "unitsInBuilding": 200,
  "stories": 4,
  "neighborhood": "Sample Neighborhood",
  "leaseOptions": "6 - 15 Month Leases",
  "managementCompany": "Sample Management Co",
  "rentSpecial": "Move-in special: one month free",
  "verified": true,
  "phone": "(800) 000-0000",
  "petsAllowed": true,
  "rating": 4.1,
  "reviewCount": 0,
  "parking": ["Garage - $0/mo"],
  "transit": [{ "name": "Sample Station", "distanceMiles": 1.0, "driveTimeMin": 5 }],
  "amenities": ["Pool", "Fitness Center", "In Unit Laundry"],
  "floorplans": [{ "name": "A1", "rent": "$1,200 - $1,400", "beds": 1, "baths": 1, "sqft": 650 }],
  "units": [{ "model": "A1", "unit": "000", "beds": 1, "baths": 1, "rent": 1300, "sqft": 650, "availability": "Now" }],
  "fees": ["Application Fee $0"],
  "schools": [{ "name": "Example Elementary", "type": "Public", "grades": "PK-5", "students": 500 }],
  "walkScore": { "walk": 80, "transit": 50, "drive": 90, "bike": 70 },
  "officeHours": ["Monday, Tuesday, Wednesday, Thursday, Friday: 09:00-18:00"],
  "reviews": [{ "author": "A. Renter", "title": "Great place", "body": "Sample review text.", "date": "2026-01-01" }],
  "photos": ["https://images1.apartments.com/i2/0000/sample-photo.jpg"],
  "detailScraped": true,
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}
```

### Plan requirement

Apify Residential proxy is the default and the most reliable option: the actor automatically varies the connection across many regions and falls back to an alternate network when one is busy, so runs stay stable at any scale. Residential requires a paid Apify plan (Starter or higher). On the free plan, or to lower cost, switch to Apify Datacenter in the connection settings: it works well when connections are healthy and still falls back to the alternate network otherwise. Apartments.com shows the same United States listings regardless of the connecting region, so the regional variety is purely for reliability. The actor also recovers automatically if a page is momentarily refused, so one refused page does not stop the run.

# Actor input Schema

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

How to start. 'search' builds result pages from city / ZIP / address terms. 'url' scrapes Apartments.com result or property URLs you paste. 'autocomplete' returns location suggestions (region IDs, coordinates, bounding boxes) for each term, with no listing scrape.

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

City, ZIP, neighborhood, or street address terms, one per line (e.g. 'Austin, TX', '78701', 'Brooklyn, NY'). Each is resolved through Apartments.com's location service. Used by 'search' and 'autocomplete' modes; ignored in 'url' mode.

## `propertyType` (type: `string`):

Limit to a rental type. 'Any' returns all types.

## `bedrooms` (type: `string`):

Minimum bedroom count. 'Any' applies no bedroom filter.

## `minRent` (type: `integer`):

Lowest monthly rent. Leave empty for no minimum.

## `maxRent` (type: `integer`):

Highest monthly rent. Leave empty for no maximum.

## `lifestyle` (type: `string`):

Optional single lifestyle filter. Applied only when property type is 'Any' (Apartments.com does not combine a type prefix with these). 'None' applies no lifestyle filter.

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

Apartments.com result URLs (e.g. https://www.apartments.com/austin-tx/2-bedrooms/) or property URLs (e.g. https://www.apartments.com/the-grove-houston-tx/9cwjc35/), one per line. Multi-URL supported. Search-mode filters are ignored. Pagination starts at the page in the URL and walks forward.

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

When on, each property is enriched with its detail page: floorplan units, full amenities, pet & parking policy, fees, schools, transit, walk score, office hours, ratings, reviews, and description. When off, only the fast result-card fields are returned (name, address, rent range, beds, phone, rating, photo).

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

How many result pages to walk per location or start URL (about 40 properties per page).

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

Global cap on properties across all locations/URLs. 0 means no cap (bounded by maxPages).

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

Residential (the default) is the most reliable: the actor automatically varies the connection across many regions and falls back to an alternate network when one is busy, so runs stay stable at any scale. Residential needs a paid Apify plan. On the free plan, or to lower cost, switch to Datacenter (it works when connections are healthy and falls back to the alternate network otherwise). Apartments.com shows the same United States listings regardless of the connecting region.

## Actor input object example

```json
{
  "mode": "search",
  "locations": [
    "Austin, TX"
  ],
  "propertyType": "any",
  "bedrooms": "any",
  "lifestyle": "none",
  "urls": [
    "https://www.apartments.com/austin-tx/"
  ],
  "fetchDetails": true,
  "maxPages": 1,
  "maxListings": 0,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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": [
        "Austin, TX"
    ],
    "urls": [
        "https://www.apartments.com/austin-tx/"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/apartments-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 = {
    "locations": ["Austin, TX"],
    "urls": ["https://www.apartments.com/austin-tx/"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Apartments.com  URL | Keyword | Rich Output",
        "description": "From $1.5/1K. Extract Apartments.com rental listings at lower cost. Search by city, ZIP, neighborhood, or address, paste result/property URLs, or use autocomplete. Get rent, floorplans, units, amenities, fees, schools, transit, ratings, reviews, photos, phone, and GPS data.",
        "version": "2.0",
        "x-build-id": "o2oUgXx2L3wCgwlYH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~apartments-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-apartments-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/abotapi~apartments-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-apartments-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/abotapi~apartments-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-apartments-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "url",
                            "autocomplete"
                        ],
                        "type": "string",
                        "description": "How to start. 'search' builds result pages from city / ZIP / address terms. 'url' scrapes Apartments.com result or property URLs you paste. 'autocomplete' returns location suggestions (region IDs, coordinates, bounding boxes) for each term, with no listing scrape.",
                        "default": "search"
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "City, ZIP, neighborhood, or street address terms, one per line (e.g. 'Austin, TX', '78701', 'Brooklyn, NY'). Each is resolved through Apartments.com's location service. Used by 'search' and 'autocomplete' modes; ignored in 'url' mode.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "propertyType": {
                        "title": "Property type",
                        "enum": [
                            "any",
                            "apartments",
                            "houses",
                            "condos",
                            "townhomes"
                        ],
                        "type": "string",
                        "description": "Limit to a rental type. 'Any' returns all types.",
                        "default": "any"
                    },
                    "bedrooms": {
                        "title": "Bedrooms",
                        "enum": [
                            "any",
                            "studio",
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Minimum bedroom count. 'Any' applies no bedroom filter.",
                        "default": "any"
                    },
                    "minRent": {
                        "title": "Min rent (USD/month)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Lowest monthly rent. Leave empty for no minimum."
                    },
                    "maxRent": {
                        "title": "Max rent (USD/month)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Highest monthly rent. Leave empty for no maximum."
                    },
                    "lifestyle": {
                        "title": "Lifestyle / amenity",
                        "enum": [
                            "none",
                            "pet-friendly",
                            "luxury",
                            "cheap",
                            "furnished",
                            "short-term",
                            "utilities-included",
                            "gated",
                            "senior-housing",
                            "student-housing",
                            "income-restricted"
                        ],
                        "type": "string",
                        "description": "Optional single lifestyle filter. Applied only when property type is 'Any' (Apartments.com does not combine a type prefix with these). 'None' applies no lifestyle filter.",
                        "default": "none"
                    },
                    "urls": {
                        "title": "URLs",
                        "type": "array",
                        "description": "Apartments.com result URLs (e.g. https://www.apartments.com/austin-tx/2-bedrooms/) or property URLs (e.g. https://www.apartments.com/the-grove-houston-tx/9cwjc35/), one per line. Multi-URL supported. Search-mode filters are ignored. Pagination starts at the page in the URL and walks forward.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch full property details",
                        "type": "boolean",
                        "description": "When on, each property is enriched with its detail page: floorplan units, full amenities, pet & parking policy, fees, schools, transit, walk score, office hours, ratings, reviews, and description. When off, only the fast result-card fields are returned (name, address, rent range, beds, phone, rating, photo).",
                        "default": true
                    },
                    "maxPages": {
                        "title": "Max result pages per location/URL",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "How many result pages to walk per location or start URL (about 40 properties per page).",
                        "default": 1
                    },
                    "maxListings": {
                        "title": "Max properties (0 = unlimited)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Global cap on properties across all locations/URLs. 0 means no cap (bounded by maxPages).",
                        "default": 0
                    },
                    "proxy": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Residential (the default) is the most reliable: the actor automatically varies the connection across many regions and falls back to an alternate network when one is busy, so runs stay stable at any scale. Residential needs a paid Apify plan. On the free plan, or to lower cost, switch to Datacenter (it works when connections are healthy and falls back to the alternate network otherwise). Apartments.com shows the same United States listings regardless of the connecting region.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
