ActorStack.dev
Real estateLead generationv0.1.5updated 1 October 2026

Zigbang Scraper: Korean Rentals, Jeonse, Sales & Agents

No login. No cookies. No browser.

Extracts one-room, villa and officetel listings for monthly rent, jeonse and sale from Zigbang, South Korea's rental listings app, searched by place name or coordinates anywhere in Korea. Prices arrive in KRW and in 만원, Korean labels become stable English keys with the original kept alongside, and a second row type lists the licensed agents publishing in an area.

oswaldocarabano/zigbang-scraper

input.json
{
  "location": "Hongdae",
  "radiusKm": 1,
  "propertyTypes": ["officetel"],
  "dealTypes": ["monthly_rent"],
  "maxMonthlyRent": 80,
  "includeDetails": true,
  "maxItems": 200
}
Version
v0.1.5
Memory
512 MB
Browser
none
Proxy
None needed; switches to a Korean residential connection if refused

Short answer

The Zigbang Scraper extracts South Korean property listings from Zigbang (직방) without a login or an API key: one-rooms, villas and officetels for monthly rent (월세), jeonse (전세) and sale (매매), with deposit, rent or sale price in KRW, maintenance fee, area in m² and pyeong, coordinates and address on 100% of 718 measured listings. Detail pages add the description, photos, parcel number (PNU), nearby subway stations and the licensed agent's office, phone, email and registration number. Pricing is $0.0019 per listing, $0.00075 per detail page and $0.0019 per agent profile.

Key points

  • The Zigbang Scraper covers one-rooms, villas and officetels; apartments (아파트) are excluded because Zigbang lists them through a separate complex-based system.
  • Fill rates come from 718 listings with detail pages across Seoul, Busan, Gyeonggi-do, Incheon, Daegu and Daejeon, measured on the Apify platform on 1 October 2026.
  • Jeonse rows carry `deposit_krw` and a `monthly_rent_krw` of null rather than 0, because a jeonse lease has no monthly rent.
  • Only 72.8% of 718 listings publish a numeric floor; the rest publish only low, middle or high, and officetels publish a number on 44.1%.
  • Every one of 718 detail pages measured carried a brokerage office registration number, so every advertiser observed was a licensed agent.
  • Zigbang's robots.txt disallows all crawling for unnamed user agents on both www.zigbang.com and apis.zigbang.com, and the Zigbang Scraper does not apply it as a filter.
On this page11 sections

What it does

Extracts one-room, villa and officetel listings for monthly rent, jeonse and sale from Zigbang, South Korea's rental listings app, searched by place name or coordinates anywhere in Korea. Prices arrive in KRW and in 만원, Korean labels become stable English keys with the original kept alongside, and a second row type lists the licensed agents publishing in an area.

output — one row
{
  "record_type": "listing",
  "listing_id": 50484295,
  "url": "https://www.zigbang.com/home/officetel/items/50484295",
  "property_type": "officetel",
  "deal_type": "monthly_rent",
  "deposit_krw": 139000000,
  "monthly_rent_krw": 200000,
  "maintenance_fee_krw": 90000,
  "currency": "KRW",
  "size_exclusive_m2": 19.17,
  "size_supply_m2": 37.92,
  "floor": null,
  "floor_label": "low",
  "building_floors": 15,
  "room_layout": "open_studio",
  "province_en": "Seoul",
  "district": "마포구",
  "neighborhood": "성산동",
  "options": ["air_conditioner", "refrigerator", "washing_machine", "induction_cooktop"],
  "building_approval_date": "2017-11-03",
  "parcel_number": "1144012500105930001",
  "nearby_subways": [{ "id": 371, "name": "마포구청역", "lines": "6호선" }],
  "agent_office_name": "OO공인중개사사무소",
  "agent_phone": "01000000000",
  "agent_email": "agent@example.com",
  "agent_office_registration_number": "11440-2020-00000",
  "detail_scraped": true
}

Why this one

Korean labels become stable keys, with the original kept

Zigbang publishes options, room layouts and deal types as Korean text. The Zigbang Scraper maps them to stable English keys — `monthly_rent`, `open_studio`, `air_conditioner` — and keeps the original in a `*_raw` field beside each one, so nothing is lost in translation and nothing breaks when a label is reworded.

Land-registry join keys on every detail row

Detail pages carry the 19-digit parcel number (PNU), the legal-dong code and the jibun address. Those are the keys Korean public land and building registers use, so a listing can be joined to official records without geocoding.

Licensed agents as a second row type

With `outputType: agents` the Zigbang Scraper returns one row per licensed agent publishing in an area, ranked by listing count, with office, phones, email, registration numbers, listing counts by type and deal, and response rates. On 60 agents around Jamsil and Bundang the contact and registration fields were 100% filled.

Use cases

  • Research monthly rent and jeonse deposits by district, subway station or radius.
  • Compare jeonse against monthly-rent offers for the same property type and area.
  • Shortlist studios near a campus or office for relocation, with photos, options and the agent to call.
  • Screen villas and officetels for sale with price per m², building age and a parcel number to join with land records.
  • Build a list of licensed brokers active in an area, with office contacts and listing counts.

Input

Every field has a default, and the defaults are deliberately small so a first run is cheap enough to inspect before you commit to a sweep. This table mirrors the Actor's own input schema field for field.

FieldDefaultWhat it does
outputTypeselect"listings"What to collect`listings` or `agents`. One row type per run.
locationstringempty = Gangnam-guLocationA district (마포구), neighbourhood (역삼동) or subway station (강남역), resolved with Zigbang's own place search. Common English names such as Seoul, Busan, Hongdae and Jamsil are translated.
radiusKmnumber1.5Radius (km)0.2 to 20. Measured: 310 listings within 1.5 km of the Gangnam-gu centre, 475 around Hongik University station.
latitudenumber—Latitude / longitudeSearch around exact coordinates instead of a place name. Both must be set, inside South Korea.
propertyTypesstring[]all threeProperty types`oneroom`, `villa`, `officetel`.
dealTypesstring[]all threeDeal types`monthly_rent`, `jeonse`, `sale`. Sale exists for villas and officetels only.
maxItemsinteger100Maximum rowsUp to 10,000.
sortByselect"newest"Order`newest` or `nearest` to the location's centre.
includeDetailsbooleanfalseAdd the detail pageDescription, photos, options, bathrooms, orientation, parking, elevator, approval date, PNU, nearby subway stations and amenities, complex, and the agent's contacts. One extra request and one extra event per listing.
minDepositinteger—Price filters (만원)With `maxDeposit`, `minMonthlyRent`, `maxMonthlyRent`, `minSalePrice` and `maxSalePrice`, all in units of 10,000 KRW: 1000 = 10,000,000 KRW.
includePrivateSellerContactbooleanfalseInclude contact of unregistered advertiserspersonal dataLicensed agents' business contacts are always included. Enable only with a lawful basis to process private individuals' contact data.
maxConcurrencyinteger4Parallel requests1 to 8. 4 finished every test run cleanly; 6 in parallel were measured without a refusal.

Output and fill rates

A field being in the schema is not the same as it having a value. The percentages below were counted on real runs; the sample sizes are in Measurements. Anything not listed here is not promised.

FieldFilledMeaning
listing_idinteger100%Zigbang's listing ID, stable across runs.
deal_typestring100%`monthly_rent`, `jeonse` or `sale`, with the Korean original in `deal_type_raw`.
deposit_krwnumbernot measuredDeposit in KRW for rent and jeonse, with `deposit_10k_krw` in 만원. The price for the row's own deal type was present on 718 of 718 listings.
monthly_rent_krwnumbernot measuredNull on jeonse, never 0. With `monthly_rent_10k_krw`.
sale_price_krwnumbernot measuredSale listings only, with `sale_price_10k_krw`.
maintenance_fee_krwnumber100%Monthly maintenance fee.
size_exclusive_m2number100%With `size_supply_m2` and the pyeong equivalents.
size_contract_m2number37.9%Officetels only: 100% there, 0% on one-rooms and villas.
floornumber72.8%Numeric floor. The rest publish only `floor_label` (low, middle, high); officetels 44.1%.
latitudenumber100%With `longitude`: the point Zigbang shows on its map.
addressstring100%With `province`, `province_en`, `district`, `neighborhood` and `lot_number`.
move_in_datestring40.9%When the property is available.
parcel_numberstring100%Detail pages: the 19-digit PNU, with `legal_dong_code` and `jibun_address`.
optionsstring[]96.8%Detail pages: furnishing options as English keys, original in `options_raw`.
building_approval_datedate93.7%Detail pages: normalised approval date.
nearby_subwaysobject[]94.7%Detail pages: stations with their lines.
parking_spacesnumber75.3%Detail pages.
complex_namestring37.9%Detail pages: officetel complexes only, so 0% on one-rooms and villas.
agent_office_registration_numberstring100%Detail pages, with the agent's office, mobile, office phone and email, each 100%.
agent_languagesstring[]34.1%Detail pages: share of listings whose agent speaks a language other than Korean.

Every key is always present. A field that exists but is empty comes back as explicit null, so a parser never has to guess.

Datasets

Different record types go to different datasets, so the main table never carries columns that are blank on most rows.

  • defaultOne row per listing, or one per licensed agent with `outputType: agents`.billed
  • Run summary and errors (key-value store)What was collected, and why anything was skipped.never billed

Pricing

Pay per delivered result. Charges are applied as each row is produced rather than in a lump at the end, so an aborted run bills only for what it actually gave you.

EventPriceNotes
apify-actor-startActor start$0.00001Charged when the run starts.
listingListing$0.0019One Zigbang listing. Failed requests, error rows and duplicates within a run are not charged.
listing-detailListing detail page$0.00075Only with `includeDetails`: a listing with its detail page costs $0.00265.
agentAgent profile$0.0019Only with `outputType: agents`: one licensed agent.

Measurements

Each figure is shown with the method that produced it. A benchmark without a method is a marketing claim wearing a number's clothes.

Fill-rate sample

718 listings with detail pages

Seoul, Busan, Gyeonggi-do, Incheon, Daegu and Daejeon on the Apify platform, 1 October 2026, plus 1,000 search-only listings around central Seoul.

Numeric floor published

72.8% of 718

One-room 89.4%, villa 91.4%, officetel 44.1%. The rest publish only low, middle or high.

Licensed advertisers

718 of 718

Detail pages carrying a brokerage office registration number on 1 October 2026; 301 of 301 on 23 September.

Throughput

1,000 listings in 18 seconds

One platform run, Seoul with a 5 km radius, search-only, 63 MB peak memory, 0 duplicates.

Agent rows

Contacts 100%; call response rate 96.7%

60 agents around Jamsil and Bundang.

What it will not do

Stated plainly so you can judge fit before spending anything.

  • No apartments (아파트): Zigbang lists them through a different, complex-based system.
  • Sale exists only for villas and officetels; one-rooms are rentals only.
  • `maxItems` caps a run at 10,000 rows.
  • Coordinates are the point Zigbang shows on its map, which may be offset from the exact building.
  • English place names work for common districts and areas; anything else works best in Korean.
  • Inventory depends on Zigbang: a search for villas on jeonse within 3 km of Busan city hall returned 1 listing on 1 October 2026.

Privacy

  • Licensed agents' office phone, business mobile and email are published on Zigbang for customer calls and are delivered as business contact data.
  • 718 of 718 detail pages measured on 1 October 2026 carried a brokerage registration number: no private advertiser was observed.
  • If an advertiser without a broker registration number appears, their phones and email are removed and phone numbers in their text are masked, unless `includePrivateSellerContact` is enabled.
  • Removal requests: privacy@actorstack.dev

See also the data removal process.

Frequently asked questions

Is there an official Zigbang API?
Zigbang offers no public data API for listings. The Zigbang Scraper reads the same public listing data the Zigbang website shows, without a login or a key, and returns it as a dataset you download or call through the Apify API.
What is jeonse, and how does the Zigbang Scraper represent it?
Jeonse is a Korean lease where the tenant pays a large lump-sum deposit and no monthly rent, and the deposit is returned at the end. Jeonse rows carry `deposit_krw` and a `monthly_rent_krw` of null, not 0.
Does the Zigbang Scraper include apartments?
No. Zigbang lists apartments (아파트) through a separate complex-based system, so the Zigbang Scraper covers one-rooms, villas and officetels for monthly rent, jeonse and sale.
Can I search Zigbang in English?
Common names work in English — Seoul, Busan, Gyeonggi, Incheon, Daegu, the Seoul districts, Hongdae, Jamsil, Haeundae. Anything else works best in Korean, typed as on Zigbang: a district (마포구), a neighbourhood (역삼동) or a station (강남역).
Does the Zigbang Scraper respect robots.txt?
No. Zigbang's robots.txt disallows everything for unnamed crawlers on www.zigbang.com and on apis.zigbang.com, as fetched on 10 October 2026, and the Zigbang Scraper does not apply it as a filter. It uses no login, no CAPTCHA solving and a default concurrency of 4.

Guides for this Actor