# Dabang Scraper — Korea Property Data & API (`sian.agency/dabang-property-scraper`) Actor

Scrape Dabang (다방) Korean real-estate into clean datasets — rooms, officetels and apartments with deposit/rent (월세·전세), exact coordinates, full address, nearest subway and photos. Filter by area, deal type and price. No account or API key needed. 다방 부동산 스크래퍼 · 매물 데이터·API.

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

## Pricing

from $3.00 / 1,000 overview listing 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

## Dabang Property Scraper — Korea Real-Estate Data & Rent Listings 🇰🇷🏠

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Naver Land](https://img.shields.io/badge/Store-Naver%20Land%20Scraper-03C75A)](https://apify.com/sian.agency/naver-land-property-scraper?fpr=sian) [![KB Land](https://img.shields.io/badge/Store-KB%20Land%20Scraper-FFCC00)](https://apify.com/sian.agency/kbland-property-scraper?fpr=sian) [![Peterpan](https://img.shields.io/badge/Store-Peterpan%20Scraper-FF6F0F)](https://apify.com/sian.agency/peterpan-property-scraper?fpr=sian)

#### 🎉 Turn Korea's busiest rental map into a clean, structured dataset — price, deposit, exact location, nearest subway and photos in one run
##### Built for property analysts, proptech teams, relocation services and investors who need Korean rental data at scale

---

### 📋 Overview

**Pull live Korean rental listings without lifting a finger** — this actor reads the Dabang (다방) property map and returns clean, structured rows for studios, two-rooms, officetels and apartments across South Korea. No account, no API key, no manual copy-paste.

**Why teams choose us:**
- ✅ **Complete records out of the box**: price (월세 / 전세), deposit, room type, neighborhood, photos and 10+ status flags on every row
- ⚡ **Fast & cheap by design**: the Overview mode reads the listing feed directly — pay cents per listing, scale to thousands
- 🎯 **Exact location enrichment**: Detail mode adds precise GPS coordinates, full street address, nearest subway station + walking distance, and nearby points-of-interest
- 💱 **Dual currency built in**: every deposit and rent comes in KRW *and* USD, converted at the run's live exchange rate
- 💰 **Pay only for results**: transparent per-listing pricing, generous free tier, no subscription
- 💎 **Filter like a local**: search by district/station name, deal type (월세·전세·단기), price range, room type, elevator and parking

---

### ✨ Features

- 🗺️ **Search any Korean area** — by neighborhood/station name (e.g. `강남구`, `홍대입구역`), a map center point, or a captured search URL
- 🏠 **Three property surfaces** — rooms (원룸·투룸), officetels (오피스텔) and apartments (아파트)
- 💳 **Deal-type filters** — monthly rent (월세), jeonse (전세) and short-term (단기)
- 💰 **Price & spec filters** — deposit range, monthly-rent range, room type, elevator, parking
- 📍 **Exact location (Detail mode)** — precise coordinates + full address, not just a block-level pin
- 🚇 **Transit intelligence** — nearest subway station and walking distance per listing
- 🖼️ **Full photo galleries** — every listing image, plus a ready-to-use thumbnail
- 💱 **Live FX conversion** — KRW + USD on every price
- 📊 **Clean exports** — JSON, CSV and Excel straight from the dataset

---

### 🎬 Quick Start

Pick a mode and an area, hit Start, and collect a clean dataset. Overview returns rich listing cards fast and cheap; Detail adds exact location and subway data per listing.

```bash
curl -X POST https://api.apify.com/v2/acts/sian.agency~dabang-property-scraper/runs?token=YOUR_TOKEN \
-H 'Content-Type: application/json' \
-d '{"scrapeMode": "overview", "place": "강남구", "maxResults": 100}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose your area

Enter a Korean place or station name (`강남구`), or leave it blank to use a default Seoul area.

#### Step 2: Pick a mode and filters

**Overview** for fast, cheap listing cards — or **Detail** for exact location + subway enrichment. Add price, deal-type and room-type filters as needed.

#### Step 3: Run and export

Click **Start**. Download your results as JSON, CSV or Excel.

**That's it! In about a minute, you'll have:**

- Structured rental listings with price, deposit and room type
- Photos, neighborhood and (in Detail mode) exact location + nearest subway
- KRW and USD pricing on every row

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| scrapeMode | string | No | `overview` (fast, cheap) or `detail` (adds exact location + subway) |
| category | string | No | `one-two` (rooms), `officetel`, or `apt` |
| place | string | No | Korean neighborhood / district / station name to search |
| centerLat / centerLng | number | No | Map center point to search around |
| searchUrl | string | No | A captured Dabang search URL (preserves its exact area + filters) |
| sellingTypes | array | No | Deal types: `MONTHLY_RENT` (월세), `LEASE` (전세), `SHORT_RENT` (단기) |
| roomTypes | array | No | `ONE_ROOM`, `TWO_ROOM`, `THREE_ROOM`, `OFFICETEL`, `APT` |
| depositMin / depositMax | integer | No | Deposit range in 만원 (10,000 KRW) |
| rentMin / rentMax | integer | No | Monthly-rent range in 만원 |
| hasElevator / canParking | boolean | No | Amenity filters |
| roomUrls | array | No | Specific room URLs/IDs to enrich (Detail mode) |
| maxResults | integer | No | Max listings (FREE: 25, PAID: unlimited) |
| maxPages | integer | No | Hard cap on search pages (0 = until Max results) |

**Example:**

```json
{
  "scrapeMode": "detail",
  "place": "역삼동",
  "sellingTypes": ["MONTHLY_RENT"],
  "rentMax": 100,
  "maxResults": 50
}
```

***

### 📤 Output

Results are saved to the Apify dataset with **50+ fields** including:

| Field | Type | Description |
|-------|------|-------------|
| propertyTitle | string | Listing headline |
| room\_type | string | Room layout (원룸·투룸·오피스텔…) |
| price\_type | string | 월세 / 전세 / 매매 |
| deposit / rent | number | Deposit & monthly rent in 만원 |
| deposit\_krw / rent\_krw | number | Same, expanded to KRW |
| deposit\_usd / rent\_usd | number | Converted to USD at the run's live FX rate |
| dong\_name | string | Neighborhood (동) |
| address | string | Full street address (Detail mode) |
| latitude / longitude | number | Coordinates (exact in Detail mode) |
| subway\_nearest | string | Nearest subway station (Detail mode) |
| subway\_distance\_m | number | Walking distance to subway, meters |
| images | array | All listing photo URLs |
| url | string | Canonical listing URL |

**Example:**

```json
{
  "propertyTitle": "강남역 3분 베스트 오피스텔",
  "room_type": "오피스텔",
  "price_type": "월세",
  "price_label": "1000/80",
  "deposit_krw": 10000000,
  "rent_krw": 800000,
  "deposit_usd": 6534,
  "rent_usd": 523,
  "dong_name": "역삼동",
  "address": "서울특별시 강남구 역삼동",
  "latitude": 37.498652,
  "longitude": 127.033004,
  "subway_nearest": "역삼역",
  "subway_distance_m": 374,
  "image_count": 3,
  "url": "https://www.dabangapp.com/room/6a27c028d9a4ed3da31c2ce4"
}
```

***

### 💼 Use Cases & Examples

#### 1. Rental Market Research

**Analysts tracking Seoul rent and deposit trends across districts.**
**Input:** A district name + deal type · **Output:** Priced, geocoded listings · **Use:** Build rent indices and supply maps.

#### 2. Investment & Yield Comps

**Investors comparing officetel and apartment yields by neighborhood.**
**Input:** `officetel` / `apt` category + price range · **Output:** Deposit/rent rows in KRW & USD · **Use:** Screen cash-flow opportunities.

#### 3. Proptech & Data Products

**Product teams powering search apps and dashboards with fresh Korean inventory.**
**Input:** A bounding area or search URL · **Output:** 50+ structured fields per listing · **Use:** Feed a database or API.

#### 4. Relocation & Tenant Services

**Relocation agents shortlisting homes near a client's office or campus.**
**Input:** A station name + Detail mode · **Output:** Listings with exact address + nearest subway · **Use:** Hand clients a commute-aware shortlist.

#### 5. Lead Generation

**Agencies sourcing fresh listings and agent activity in target neighborhoods.**
**Input:** A district + filters · **Output:** Daily listing rows · **Use:** Trigger outreach and CRM workflows.

#### 6. Academic & Policy Research

**Researchers studying affordability and transit access in Korean cities.**
**Input:** Multiple areas over time · **Output:** Geocoded, priced datasets · **Use:** Quantify rent-vs-transit relationships.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/dabang-property-scraper').call({
  scrapeMode: 'overview',
  place: '강남구',
  maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/dabang-property-scraper').call(
    run_input={'scrapeMode': 'detail', 'place': '역삼동', 'maxResults': 50}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~dabang-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"scrapeMode": "overview", "place": "강남구"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle the JSON results
4. **Action**: Save to a database, notify, or transform

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 listings** per run — full feature access, same data quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** listings per run
- Both Overview and Detail modes
- Pay-per-result: you're only charged for listings you actually receive

💰 **Transparent per-listing pricing** — the cheap Overview event scales to thousands; Detail is a premium per-listing enrichment.

🔗 [View current pricing](https://apify.com/sian.agency/dabang-property-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How many listings can I scrape?**
A: FREE tier: 25 per run. PAID tier: unlimited.

**Q: What's the difference between Overview and Detail mode?**
A: Overview returns rich listing cards fast and cheap. Detail adds exact GPS coordinates, full street address, and the nearest subway station + walking distance per listing.

**Q: Are prices in KRW or USD?**
A: Both. Deposit and rent come in 만원, KRW, and USD (converted at the run's live exchange rate).

**Q: What output formats are available?**
A: JSON, CSV and Excel — export directly from the Apify dataset.

**Q: Do I need an account or API key for the source site?**
A: No. The actor handles everything; you only need your Apify token.

**Q: Is this legal?**
A: Yes — we only extract publicly available data. See the legal note below.

***

### 🐛 Troubleshooting

**No results returned**

- Check the place name spelling, or try a broader district (e.g. `강남구` instead of a tiny street)
- Widen your price/room-type filters
- Try Overview mode first to confirm the area has listings

**Detail mode is slower**

- This is expected — Detail visits each listing to add exact location and subway data. Use Overview when you don't need that enrichment, or lower `maxResults`.

**Hitting the free limit**

- The FREE tier caps each run at 25 listings. Upgrade to PAID for unlimited results.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

> **Trademark notice:** Dabang (다방) is a trademark of its respective owner. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Dabang or its operator. All product names and trademarks belong to their respective owners and are used here for identification purposes only.

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check the [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- ✉️ <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `scrapeMode` (type: `string`):

🔭 **OVERVIEW** (recommended, cheapest): paginate the map search and return rich listing cards — price, type, neighborhood, approximate location, photos and flags. Each card already carries most of the data.

🔎 **DETAIL**: everything in Overview PLUS a browser enrichment per listing — exact GPS coordinates, full street address, nearest subway station + distance, and nearby points-of-interest count.

## `category` (type: `string`):

🏠 Which Dabang surface to scrape.

- **one-two** — studios & two-rooms (원룸·투룸), the default residential rental surface
- **officetel** — 오피스텔 units
- **apt** — apartment complexes (아파트)

## `place` (type: `string`):

🔍 **SEARCH BY PLACE:** A Korean place, district or station name (e.g. `강남구`, `역삼동`, `홍대입구역`). The actor resolves it to a map area automatically.

💡 **TIP:** Leave blank to use the default Gangnam (강남) area, or provide a center point / search URL instead.

## `centerLat` (type: `number`):

📐 Latitude of the map center to search around (used with Center longitude). Overrides Place when both lat/lng are set.

## `centerLng` (type: `number`):

📐 Longitude of the map center to search around (used with Center latitude).

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

🔗 **ADVANCED:** Paste a captured Dabang map/list API URL (`…/room-list/category/<cat>/bbox?filters=…&bbox=…`). The actor preserves its exact area + filters. Overrides Place / Center.

## `sellingTypes` (type: `array`):

💳 Which rental deal types to include.

- **MONTHLY\_RENT** — 월세 (monthly rent + deposit)
- **LEASE** — 전세 (jeonse / charter, large deposit, no monthly)
- **SHORT\_RENT** — 단기 (short-term)

## `roomTypes` (type: `array`):

🛏️ Room layouts to include (원룸 / 투룸 / 쓰리룸…).

## `depositMin` (type: `integer`):

💰 Minimum deposit (보증금) in 만원 (10,000 KRW). e.g. 1000 = 10,000,000 KRW.

## `depositMax` (type: `integer`):

💰 Maximum deposit (보증금) in 만원 (10,000 KRW).

## `rentMin` (type: `integer`):

💵 Minimum monthly rent (월세) in 만원 (10,000 KRW).

## `rentMax` (type: `integer`):

💵 Maximum monthly rent (월세) in 만원 (10,000 KRW).

## `hasElevator` (type: `boolean`):

🛗 Only buildings with an elevator.

## `canParking` (type: `boolean`):

🅿️ Only listings with parking.

## `roomUrls` (type: `array`):

🔗 **DETAIL BY URL:** Provide specific Dabang room URLs (`https://www.dabangapp.com/room/<id>`) or bare room IDs to enrich exactly those listings. Use with Detail mode. Overrides the area search.

📋 Click **Bulk edit** to paste one per line.

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

🔢 Maximum listings to return.

**FREE users:** up to 25 per run. **PAID users:** unlimited.

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

📄 Hard cap on search pages to paginate (24 listings each). 0 = paginate until Max results is reached or there are no more.

## Actor input object example

```json
{
  "scrapeMode": "overview",
  "category": "one-two",
  "place": "강남구",
  "centerLat": 37.498,
  "centerLng": 127.028,
  "sellingTypes": [
    "MONTHLY_RENT",
    "LEASE"
  ],
  "roomTypes": [
    "ONE_ROOM",
    "TWO_ROOM"
  ],
  "hasElevator": false,
  "canParking": false,
  "maxResults": 100,
  "maxPages": 0
}
```

# Actor output Schema

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

Clean structured Dabang listings with price, location, nearest subway and photos.

## `scrapingSummary` (type: `string`):

HTML summary of the run with key metrics and sample listings.

# 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 = {};

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

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dabang Scraper — Korea Property Data & API",
        "description": "Scrape Dabang (다방) Korean real-estate into clean datasets — rooms, officetels and apartments with deposit/rent (월세·전세), exact coordinates, full address, nearest subway and photos. Filter by area, deal type and price. No account or API key needed. 다방 부동산 스크래퍼 · 매물 데이터·API.",
        "version": "1.0",
        "x-build-id": "fMqkQFQBEnxQ4JTQQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~dabang-property-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-dabang-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~dabang-property-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-dabang-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~dabang-property-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-dabang-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": {
                    "scrapeMode": {
                        "title": "🔭 Scrape mode",
                        "enum": [
                            "overview",
                            "detail"
                        ],
                        "type": "string",
                        "description": "🔭 **OVERVIEW** (recommended, cheapest): paginate the map search and return rich listing cards — price, type, neighborhood, approximate location, photos and flags. Each card already carries most of the data.\n\n🔎 **DETAIL**: everything in Overview PLUS a browser enrichment per listing — exact GPS coordinates, full street address, nearest subway station + distance, and nearby points-of-interest count.",
                        "default": "overview"
                    },
                    "category": {
                        "title": "🏠 Property category",
                        "enum": [
                            "one-two",
                            "officetel",
                            "apt"
                        ],
                        "type": "string",
                        "description": "🏠 Which Dabang surface to scrape.\n\n- **one-two** — studios & two-rooms (원룸·투룸), the default residential rental surface\n- **officetel** — 오피스텔 units\n- **apt** — apartment complexes (아파트)",
                        "default": "one-two"
                    },
                    "place": {
                        "title": "🔍 Place / neighborhood name",
                        "type": "string",
                        "description": "🔍 **SEARCH BY PLACE:** A Korean place, district or station name (e.g. `강남구`, `역삼동`, `홍대입구역`). The actor resolves it to a map area automatically.\n\n💡 **TIP:** Leave blank to use the default Gangnam (강남) area, or provide a center point / search URL instead."
                    },
                    "centerLat": {
                        "title": "📐 Center latitude",
                        "type": "number",
                        "description": "📐 Latitude of the map center to search around (used with Center longitude). Overrides Place when both lat/lng are set."
                    },
                    "centerLng": {
                        "title": "📐 Center longitude",
                        "type": "number",
                        "description": "📐 Longitude of the map center to search around (used with Center latitude)."
                    },
                    "searchUrl": {
                        "title": "🔗 Captured Dabang search URL (advanced)",
                        "type": "string",
                        "description": "🔗 **ADVANCED:** Paste a captured Dabang map/list API URL (`…/room-list/category/<cat>/bbox?filters=…&bbox=…`). The actor preserves its exact area + filters. Overrides Place / Center."
                    },
                    "sellingTypes": {
                        "title": "💳 Deal type (월세 / 전세)",
                        "type": "array",
                        "description": "💳 Which rental deal types to include.\n\n- **MONTHLY_RENT** — 월세 (monthly rent + deposit)\n- **LEASE** — 전세 (jeonse / charter, large deposit, no monthly)\n- **SHORT_RENT** — 단기 (short-term)",
                        "items": {
                            "type": "string",
                            "enum": [
                                "MONTHLY_RENT",
                                "LEASE",
                                "SHORT_RENT"
                            ],
                            "enumTitles": [
                                "월세 Monthly rent",
                                "전세 Jeonse",
                                "단기 Short-term"
                            ]
                        },
                        "default": [
                            "MONTHLY_RENT",
                            "LEASE"
                        ]
                    },
                    "roomTypes": {
                        "title": "🛏️ Room type",
                        "type": "array",
                        "description": "🛏️ Room layouts to include (원룸 / 투룸 / 쓰리룸…).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "ONE_ROOM",
                                "TWO_ROOM",
                                "THREE_ROOM",
                                "OFFICETEL",
                                "APT"
                            ],
                            "enumTitles": [
                                "원룸 One-room",
                                "투룸 Two-room",
                                "쓰리룸+ Three-room+",
                                "오피스텔 Officetel",
                                "아파트 Apartment"
                            ]
                        },
                        "default": [
                            "ONE_ROOM",
                            "TWO_ROOM"
                        ]
                    },
                    "depositMin": {
                        "title": "💰 Deposit min (만원)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "💰 Minimum deposit (보증금) in 만원 (10,000 KRW). e.g. 1000 = 10,000,000 KRW."
                    },
                    "depositMax": {
                        "title": "💰 Deposit max (만원)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "💰 Maximum deposit (보증금) in 만원 (10,000 KRW)."
                    },
                    "rentMin": {
                        "title": "💵 Monthly rent min (만원)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "💵 Minimum monthly rent (월세) in 만원 (10,000 KRW)."
                    },
                    "rentMax": {
                        "title": "💵 Monthly rent max (만원)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "💵 Maximum monthly rent (월세) in 만원 (10,000 KRW)."
                    },
                    "hasElevator": {
                        "title": "🛗 Elevator only",
                        "type": "boolean",
                        "description": "🛗 Only buildings with an elevator.",
                        "default": false
                    },
                    "canParking": {
                        "title": "🅿️ Parking only",
                        "type": "boolean",
                        "description": "🅿️ Only listings with parking.",
                        "default": false
                    },
                    "roomUrls": {
                        "title": "🔗 Specific room URLs / IDs (Detail mode)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "🔗 **DETAIL BY URL:** Provide specific Dabang room URLs (`https://www.dabangapp.com/room/<id>`) or bare room IDs to enrich exactly those listings. Use with Detail mode. Overrides the area search.\n\n📋 Click **Bulk edit** to paste one per line.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "🔢 Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "🔢 Maximum listings to return.\n\n**FREE users:** up to 25 per run. **PAID users:** unlimited.",
                        "default": 100
                    },
                    "maxPages": {
                        "title": "📄 Max search pages (0 = until Max results)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "📄 Hard cap on search pages to paginate (24 listings each). 0 = paginate until Max results is reached or there are no more.",
                        "default": 0
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
