# 99.co Property Scraper — Singapore Listings, Agents & KPIs (`sian.agency/99co-property-scraper`) Actor

Extract 99.co Singapore real estate data: sale and rent listings by location, MRT, district, coordinates, polygon or URL. Get price, PSF, floor area, tenure, project analysis, floor plans, agent contacts and built-in market KPIs. Clean structured JSON plus HTML report.

- **URL**: https://apify.com/sian.agency/99co-property-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 property extracteds

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

## 99.co Property Scraper — Singapore Listings, Agents & Market KPIs 🏠

**Pull 99.co Singapore real estate into clean, structured data.** Scrape for-sale AND rental listings by location, MRT, district, coordinates, custom polygon, or a 99.co search URL — and get back complete records with price, price-per-square-foot (PSF), floor area, tenure, bedrooms/bathrooms, geo coordinates, photos and the listing agent's contacts. Add optional listing-detail enrichment (project analysis, floor plans, similar listings) and mine the 28,000+ Singapore agent directory for lead generation.

Built-in market KPIs (median price, median PSF, district/type/tenure breakdowns) and an HTML report ship with every run.

### ✨ Why this actor

- **Every way to search** — free-text location, coordinate + radius, custom-drawn polygon, a 99.co search URL, or the agent directory.
- **Geo search no one else offers** — coordinate-radius and polygon search for map-driven sourcing.
- **Sale + rent in one run** — pull one side or both (`listingType: both`).
- **Listing-detail enrichment** — project analysis (facilities, nearest MRT/schools/malls), floor plans, and up to 20 similar listings per home.
- **Agent lead-gen** — Singapore agents with agency, CEA license, phone/WhatsApp, transaction counts and verified flag; optional full-profile enrichment.
- **Market KPIs built in** — median price, median PSF, district / property-type / tenure breakdowns, plus an HTML report.
- **Pay only for keeps** — charged per deduplicated result row, not per page or per query.

### 🚀 Quick start

1. Pick a **Search Mode** (`location`, `coordinates`, `polygon`, `url`, or `agents`).
2. For property modes, set **Listing Type** (`sale`, `rent`, or `both`).
3. Provide the mode's input (e.g. `location: "Orchard"`).
4. Optionally add filters (property type, beds/baths, price, floor area, tenure) and turn on enrichment (PAID).
5. Run — results stream to the dataset, KPIs and an HTML report to the key-value store.

```json
{
  "searchMode": "location",
  "listingType": "sale",
  "location": "Orchard",
  "propertyType": "condo",
  "minPrice": 1000000,
  "maxResults": 60
}
````

### 🧭 Search modes

| Mode | Input | Returns |
|---|---|---|
| `location` | `location` (district / MRT / zone / project / street) | property listings |
| `coordinates` | `latitude`, `longitude`, `radius` (m) | property listings |
| `polygon` | `polygon` (`lat,lng lat,lng …`, ≥3 vertices) | property listings |
| `url` | `searchUrl` (a 99.co search-results URL) | property listings |
| `agents` | `agentQuery` (name / agency, optional) | agent directory rows |

### ⚙️ Input parameters

| Field | Type | Applies to | Description |
|---|---|---|---|
| `searchMode` | string | all | `location` / `coordinates` / `polygon` / `url` / `agents`. |
| `listingType` | string | property modes | `sale` / `rent` / `both` (both is PAID). |
| `location` / `locations` | string / array | location mode | Free-text SG location(s). Bulk array is PAID. |
| `latitude` / `longitude` / `radius` | number | coordinates mode | Search centre and radius in metres (100–30000). |
| `polygon` | string | polygon mode | `lat,lng lat,lng …` (≥3 vertices), GeoJSON, or an encoded polyline. |
| `searchUrl` / `searchUrls` | string / array | url mode | 99.co search-results URL(s). Bulk array is PAID. |
| `agentQuery` | string | agents mode | Agent name or agency keyword (optional). |
| `maxResults` | integer | all | Cap on rows per query (FREE capped at 25/run). |
| `propertyType`, `propertySegment`, `bedrooms`, `bathrooms`, `minPrice`, `maxPrice`, `minFloorArea`, `maxFloorArea`, `tenure` | mixed | property modes | Optional server-side filters. |
| `enrichListings` | boolean | property modes | Full detail per listing (PAID). |
| `enrichAgents` | boolean | agents mode | Full profile per agent (PAID). |

### 📤 Output

Each property row includes:

| Field | Description |
|---|---|
| `propertyId` | Unique 99.co listing ID |
| `listingType` | `sale` or `rent` |
| `listingTitle`, `projectName` | Title and project/development name |
| `propertyType`, `subType`, `propertySegment` | Category, sub-type, segment |
| `address` | Address lines, street, postal code, district |
| `pricing` | `price`, `priceFormatted`, `psf`, `psfFormatted`, `currency` |
| `specs` | Bedrooms, bathrooms, floor area (sqft/sqm), tenure, completion year |
| `location` | Latitude / longitude |
| `media` | Photo count, floor-plan count, thumbnail, photo URLs |
| `agent` | Listing agent name, phone, WhatsApp, license |
| `url` | Listing URL on 99.co |
| `detail` | (Optional, PAID) Project analysis, floor plans, similar listings |

Agent rows include `agentId`, `name`, `agency`, `license`, `phone`, `whatsappLink`, `profileUrl`, `totalListings`, `totalTransactions`, `isVerified`, and an optional enriched `detail` profile.

A `report.html` with market or agent-directory KPIs is written to the key-value store.

### ❓ FAQ

**How many results per run?** FREE: 25 rows per run. PAID: unlimited, with auto-pagination up to the search's full result set.

**What's in the enriched detail?** Project analysis (facilities, nearest MRT/schools/malls with walking time, live sale/rent listing counts), floor plans, and up to 20 comparable listings.

**Do you support commercial property?** Yes — set `propertySegment: commercial` to unlock the commercial property types and filters.

### ⚠️ Trademark Disclaimer

This Actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by 99.co or 99 Group**. The name "99.co" is used solely in a descriptive sense to identify the public data source the Actor reads from. All trademarks, service marks, and trade names referenced in this Actor or its documentation are the property of their respective owners.

### ⚖️ Legal

Only publicly available data is extracted. You are responsible for how you use the output and for complying with 99.co's terms and applicable laws.

### 🏢 More by SIÁN Agency

- [Zillow Property Scraper](https://apify.com/sian.agency/zillow-property-scraper?fpr=sian)
- [Airbnb Property Scraper](https://apify.com/sian.agency/airbnb-property-scraper?fpr=sian)
- [Trulia Property Scraper](https://apify.com/sian.agency/trulia-property-scraper?fpr=sian)
- [Browse all SIÁN actors →](https://apify.com/sian.agency?fpr=sian)

# Actor input Schema

## `searchMode` (type: `string`):

How to search.

• **location** — by free-text place (district, MRT, zone, project, street)
• **coordinates** — by latitude/longitude + radius
• **polygon** — inside a custom drawn area
• **url** — paste a 99.co search-results URL
• **agents** — search the Singapore agent directory

## `listingType` (type: `string`):

Which side of the market to scrape (ignored for the agents mode).

• **sale** — for-sale listings
• **rent** — rental listings
• **both** — runs each query twice (PAID — doubles the query count)

## `location` (type: `string`):

Free-text Singapore location: a district (`D9`), MRT station (`Orchard MRT`), zone, condo project, street or address.

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

Array of Singapore locations. PAID tier only.

## `latitude` (type: `string`):

Latitude of the search centre, e.g. `1.3041` (Orchard).

## `longitude` (type: `string`):

Longitude of the search centre, e.g. `103.8322` (Orchard).

## `radius` (type: `integer`):

Search radius in metres around the point. Default 2000, min 100, max 30000.

## `polygon` (type: `string`):

Custom search area as `lat,lng lat,lng lat,lng` (at least 3 vertices, space-separated). A GeoJSON coordinate array or an encoded polyline also works.

## `searchUrl` (type: `string`):

A 99.co search-results URL — every filter and location scope in the URL is applied automatically.

## `searchUrls` (type: `array`):

Array of 99.co search-results URLs. PAID tier only.

## `agentQuery` (type: `string`):

Agent name or agency keyword (e.g. `aaron` or `ERA`). Leave empty to page the full directory.

## `maxResults` (type: `integer`):

Hard cap on rows returned per query. Auto-paginates until the cap is reached or results run out. FREE tier is always capped at 25 rows per run.

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

Category bucket. Residential: hdb, condo, landed. Commercial (with propertySegment=commercial): retail, office, industrial, land.

## `propertySegment` (type: `string`):

Market segment. Switch to commercial to unlock the commercial property types.

## `bedrooms` (type: `integer`):

Filter to listings with this number of bedrooms. Studios = 0. Leave empty for any.

## `bathrooms` (type: `integer`):

Filter to listings with this number of bathrooms. Leave empty for any.

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

Minimum price in SGD (monthly rent when Listing Type = rent). Leave empty for no minimum.

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

Maximum price in SGD (monthly rent when Listing Type = rent). Leave empty for no maximum.

## `minFloorArea` (type: `integer`):

Minimum interior floor area in square feet. Leave empty for no minimum.

## `maxFloorArea` (type: `integer`):

Maximum interior floor area in square feet. Leave empty for no maximum.

## `tenure` (type: `string`):

Tenure filter, comma-separated: freehold, leasehold, 999, 110, 60, 30.

## `enrichListings` (type: `boolean`):

When ON, fetches the full detail for each property listing — project analysis (facilities, nearest MRT/schools/malls), floor plans and 20 similar listings. Adds a PropertyDetailEnriched charge per listing. Disabled on FREE tier.

## `enrichAgents` (type: `boolean`):

Agents mode only. When ON, fetches each agent's full profile — email, job title, area expertise and a listings breakdown by sale/rent, category and district. Adds an AgentEnriched charge per agent. Disabled on FREE tier.

## Actor input object example

```json
{
  "searchMode": "location",
  "listingType": "sale",
  "location": "Orchard",
  "latitude": "1.3041",
  "longitude": "103.8322",
  "radius": 2000,
  "polygon": "1.31,103.82 1.31,103.84 1.295,103.83",
  "searchUrl": "https://www.99.co/singapore/sale/condos-apartments?query_type=district&query_ids=dtdistrict09",
  "agentQuery": "ERA",
  "maxResults": 60,
  "propertyType": "all",
  "propertySegment": "residential",
  "tenure": "freehold",
  "enrichListings": false,
  "enrichAgents": false
}
```

# Actor output Schema

## `results` (type: `string`):

Structured 99.co listings or agent records with price, PSF, floor area, tenure, contacts and (optional) enriched detail.

## `htmlReport` (type: `string`):

HTML summary with run stats, market KPIs (median price, median PSF, district/type/tenure breakdowns) or agent-directory KPIs.

# 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 = {
    "location": "Orchard"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/99co-property-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 = { "location": "Orchard" }

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/99co-property-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 '{
  "location": "Orchard"
}' |
apify call sian.agency/99co-property-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "99.co Property Scraper — Singapore Listings, Agents & KPIs",
        "description": "Extract 99.co Singapore real estate data: sale and rent listings by location, MRT, district, coordinates, polygon or URL. Get price, PSF, floor area, tenure, project analysis, floor plans, agent contacts and built-in market KPIs. Clean structured JSON plus HTML report.",
        "version": "1.0",
        "x-build-id": "5fpvo2y4IW90FFshe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~99co-property-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-99co-property-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/sian.agency~99co-property-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-99co-property-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/sian.agency~99co-property-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-99co-property-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchMode": {
                        "title": "🧭 Search Mode",
                        "enum": [
                            "location",
                            "coordinates",
                            "polygon",
                            "url",
                            "agents"
                        ],
                        "type": "string",
                        "description": "How to search.\n\n• **location** — by free-text place (district, MRT, zone, project, street)\n• **coordinates** — by latitude/longitude + radius\n• **polygon** — inside a custom drawn area\n• **url** — paste a 99.co search-results URL\n• **agents** — search the Singapore agent directory",
                        "default": "location"
                    },
                    "listingType": {
                        "title": "🏠 Listing Type  (property modes)",
                        "enum": [
                            "sale",
                            "rent",
                            "both"
                        ],
                        "type": "string",
                        "description": "Which side of the market to scrape (ignored for the agents mode).\n\n• **sale** — for-sale listings\n• **rent** — rental listings\n• **both** — runs each query twice (PAID — doubles the query count)",
                        "default": "sale"
                    },
                    "location": {
                        "title": "📍 Location  (Search Mode = location)",
                        "type": "string",
                        "description": "Free-text Singapore location: a district (`D9`), MRT station (`Orchard MRT`), zone, condo project, street or address.",
                        "default": "Orchard"
                    },
                    "locations": {
                        "title": "📋 Bulk Locations  (PAID, location mode)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Array of Singapore locations. PAID tier only.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "latitude": {
                        "title": "🗺 Latitude  (Search Mode = coordinates)",
                        "type": "string",
                        "description": "Latitude of the search centre, e.g. `1.3041` (Orchard)."
                    },
                    "longitude": {
                        "title": "🗺 Longitude  (Search Mode = coordinates)",
                        "type": "string",
                        "description": "Longitude of the search centre, e.g. `103.8322` (Orchard)."
                    },
                    "radius": {
                        "title": "📏 Radius (metres)  (coordinates mode)",
                        "minimum": 100,
                        "maximum": 30000,
                        "type": "integer",
                        "description": "Search radius in metres around the point. Default 2000, min 100, max 30000.",
                        "default": 2000
                    },
                    "polygon": {
                        "title": "🔷 Polygon  (Search Mode = polygon)",
                        "type": "string",
                        "description": "Custom search area as `lat,lng lat,lng lat,lng` (at least 3 vertices, space-separated). A GeoJSON coordinate array or an encoded polyline also works."
                    },
                    "searchUrl": {
                        "title": "🔗 Search URL  (Search Mode = url)",
                        "type": "string",
                        "description": "A 99.co search-results URL — every filter and location scope in the URL is applied automatically."
                    },
                    "searchUrls": {
                        "title": "📋 Bulk Search URLs  (PAID, url mode)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Array of 99.co search-results URLs. PAID tier only.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "agentQuery": {
                        "title": "🧑‍💼 Agent Query  (Search Mode = agents)",
                        "type": "string",
                        "description": "Agent name or agency keyword (e.g. `aaron` or `ERA`). Leave empty to page the full directory."
                    },
                    "maxResults": {
                        "title": "📊 Max results per query",
                        "minimum": 1,
                        "maximum": 600,
                        "type": "integer",
                        "description": "Hard cap on rows returned per query. Auto-paginates until the cap is reached or results run out. FREE tier is always capped at 25 rows per run.",
                        "default": 60
                    },
                    "propertyType": {
                        "title": "🏢 Property Type",
                        "enum": [
                            "all",
                            "hdb",
                            "condo",
                            "landed",
                            "retail",
                            "office",
                            "industrial",
                            "land"
                        ],
                        "type": "string",
                        "description": "Category bucket. Residential: hdb, condo, landed. Commercial (with propertySegment=commercial): retail, office, industrial, land.",
                        "default": "all"
                    },
                    "propertySegment": {
                        "title": "🏗 Property Segment",
                        "enum": [
                            "residential",
                            "commercial"
                        ],
                        "type": "string",
                        "description": "Market segment. Switch to commercial to unlock the commercial property types.",
                        "default": "residential"
                    },
                    "bedrooms": {
                        "title": "🛏 Bedrooms",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Filter to listings with this number of bedrooms. Studios = 0. Leave empty for any."
                    },
                    "bathrooms": {
                        "title": "🛁 Bathrooms",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Filter to listings with this number of bathrooms. Leave empty for any."
                    },
                    "minPrice": {
                        "title": "💵 Min price (SGD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price in SGD (monthly rent when Listing Type = rent). Leave empty for no minimum."
                    },
                    "maxPrice": {
                        "title": "💵 Max price (SGD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price in SGD (monthly rent when Listing Type = rent). Leave empty for no maximum."
                    },
                    "minFloorArea": {
                        "title": "📐 Min floor area (sqft)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum interior floor area in square feet. Leave empty for no minimum."
                    },
                    "maxFloorArea": {
                        "title": "📐 Max floor area (sqft)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum interior floor area in square feet. Leave empty for no maximum."
                    },
                    "tenure": {
                        "title": "📜 Tenure",
                        "type": "string",
                        "description": "Tenure filter, comma-separated: freehold, leasehold, 999, 110, 60, 30."
                    },
                    "enrichListings": {
                        "title": "➕ Enrich listings with full detail (PAID)",
                        "type": "boolean",
                        "description": "When ON, fetches the full detail for each property listing — project analysis (facilities, nearest MRT/schools/malls), floor plans and 20 similar listings. Adds a PropertyDetailEnriched charge per listing. Disabled on FREE tier.",
                        "default": false
                    },
                    "enrichAgents": {
                        "title": "➕ Enrich agents with full profile (PAID)",
                        "type": "boolean",
                        "description": "Agents mode only. When ON, fetches each agent's full profile — email, job title, area expertise and a listings breakdown by sale/rent, category and district. Adds an AgentEnriched charge per agent. Disabled on FREE tier.",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
