Naver Land Scraper | Korea Real Estate API
Pricing
from $2.20 / 1,000 results
Naver Land Scraper | Korea Real Estate API
Scrape Naver Land Korea apartments, officetels, villas, rooms, shops, land & 분양 (iSale) for sale, jeonse, or monthly rent. Prices, complexes, map & article data — Naver 부동산 API alternative.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
0
Monthly active users
14 hours ago
Last modified
Categories
Share
What does Naver Land Scraper do?
Naver Land Scraper extracts South Korea real estate listings from Naver Land (네이버페이 부동산) through an authenticated acquisition worker on ns515786. The thin Apify Actor handles input, datasets, and Live View; the control plane manages Korean residential egress, and the worker calls the fleet browser scheduler. It covers apartments, officetels, villas/houses, one-room/two-room rentals, shops, offices, factories, land, and 분양 / iSale (isale.land.naver.com) for sale (매매), jeonse (전세), monthly rent (월세), and short-term lease (단기임대).
Choose a Seoul-area preset (Gangnam, Bundang, Mapo…), set coordinates / cortarNo, or paste a Naver / iSale map URL, then download structured results as JSON, CSV, Excel, or HTML.
This Actor is a practical Naver Land API alternative / 네이버 부동산 스크래퍼. The worker performs protected-site acquisition and parsing; the Actor returns normalized results for proptech, research, and CRM pipelines.
What can this Naver Land scraper extract?
| Data point | Description |
|---|---|
| Listing / complex ID | article:{id}, complex:{complexNo}, or isale:{sy_code} plus map URL |
| Market & category | complexes / houses / rooms / offices / isale + slug (APT, VL, SG, ISALE…) |
| Channel | BUY, RENT, JEONSE, MONTHLY, SHORT_TERM |
| Title & complex name | Headline, 단지/빌라/상가/분양 name when shown |
| Price | Raw + formatted Korean price (12억, 3,000만원/400); priceMissing when unknown |
| Trade label | 매매 / 전세 / 월세 / 전세/월세 / 분양 |
| Size & floor | Area, supply area, floor info, rooms, direction when present |
| Links | Map deep link (url) and canonical articleUrl (https://fin.land.naver.com/articles/{articleNo}; the old m.land.naver.com/article/info/… path now 302s away) |
| Location | Coordinates, cortarNo, address fields when available |
| Agent | Public realtor / CP name on article records |
| Source layer | single-markers, articles, or isale-markers |
| Lead / contact | phones, emails, structured address, geo, person, org, web, leadSource, leadReveal, leadAbsences (see Lead & contact fields) |
Why scrape Naver Land (네이버 부동산)?
- Korea market research — track asking prices and inventory in Gangnam, Bundang, Mapo, and other districts
- Investment & proptech — feed CRM, pricing models, or dashboards with fresh sale / jeonse / monthly rent data
- Multi-category coverage — apartments, officetels, villas, rooms, shops, land in one Actor
- Competitive monitoring — watch new listings on the Naver map without manual browsing
- Export & automation — pull Naver Land property data into Sheets, warehouses, or your own API
How to scrape Naver Land
- Open Naver Land Scraper in Apify Console.
- Set location (e.g.
gangnam) and property type(s), or paste Naver start URLs (/complexes,/houses,/rooms,/offices). - Choose channel (
BUY/RENT/ …), max listings, and apartment detail toggle. - Keep Apify Proxy → RESIDENTIAL + KR enabled (Naver often geo-blocks non-Korean IPs).
- Click Start, then export results from the Dataset tab.
Property categories (full Naver LNB coverage)
| Market (path) | Categories / codes |
|---|---|
complexes (/complexes) | APT 아파트, ABYG 아파트분양권, JGC 재건축, OPST 오피스텔, OBYG 오피스텔분양권, JGB 재개발 |
houses (/houses) | VL 빌라/연립, DDDGG 단독/다가구, JWJT 전원주택, SGJT 상가주택 |
rooms (/rooms) | rooms 원룸/투룸 (aa=SMALLSPCRENT) |
offices (/offices) | SG 상가, SMS 사무실, GJCG 공장/창고, APTHGJ 지식산업센터, GM 건물, TJ 토지 |
isale (isale.land.naver.com) | ISALE / 분양 / isale — map markers via SYMapBounding |
propertyType— single category or market bundle (complexes,houses,rooms,offices,isale)propertyTypes— multi-select; overridespropertyTypewhen non-emptyall— crawls all five markets (4 LNB + 분양) with fair-sharemaxItems- Default run memory: 1024 MB (min 1024 / max 4096)
includeRaw— keep original API JSON underraw(defaultfalse)
maxItems is the row allowance for each start URL or selected property type. The default is 70; larger values are collected in parts of 70. All row types share that input's allowance, and the whole run stops at your maximum total charge. complexAreas (pyeong area plans, capped at 50) and isaleDetail.relatedComplexes (capped at 20, with relatedTotal) are attribute/reference lists on their parent row, not separately billed entities.
Example input — scrape Naver apartments for sale in Gangnam
{"location": "gangnam","channel": "BUY","propertyType": "APT","maxItems": 20,"maxComplexes": 10,"scrapeDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "KR"}}
Example input — villas, shops, and officetels in one run
{"location": "gangnam","channel": "BUY","propertyTypes": ["OPST", "VL", "SG"],"maxItems": 15,"maxPages": 1,"scrapeDetails": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "KR"}}
Example input — Naver Land map URL (원룸/투룸 rent)
{"startUrls": [{"url": "https://new.land.naver.com/rooms?ms=37.4979,127.0276,16&a=APT:OPST:ABYG:OBYG:GM:OR:DDDGG:JWJT:SGJT:VL&e=RETAIL&aa=SMALLSPCRENT&b=B1:B2"}],"maxItems": 15,"maxPages": 1}
Supported Naver Land URL patterns
- Apartments / officetels:
https://new.land.naver.com/complexes?ms={lat},{lon},{zoom}&a=APT:OPST&b=A1&e=RETAIL - Complex detail map:
https://new.land.naver.com/complexes/{complexNo}?ms=… - Villas / houses:
https://new.land.naver.com/houses?ms=…&a=VL:DDDGG:JWJT:SGJT - Rooms:
https://new.land.naver.com/rooms?ms=…&aa=SMALLSPCRENT - Shops / land:
https://new.land.naver.com/offices?ms=…&a=SG:TJ - 분양 (iSale):
https://isale.land.naver.com/iSale/Map/#?SYMap={lat},{lon},{zoom} - Trade params:
b=A1(매매),b=B1(전세),b=B2(월세),b=B1:B2(rent combo)
How much does it cost to scrape Naver Land?
This Actor uses Pay per event pricing. You pay for:
| Event | Price |
|---|---|
Actor Start (apify-actor-start) | $0.005 per start (scaled by run memory: one event per GB, minimum one) |
result (apify-default-dataset-item) | $2.50 / 1,000 results ($0.0025 per Naver listing in the default dataset) |
User pays platform usage costs: No. Platform compute/proxy usage for this Actor is included — you pay the event prices above, not separate Apify usage on top.
Example (illustrative): 1 start + 1,000 listings ≈ $0.005 + $2.50 in event fees.
Tip: set a max total charge on the run if you want a hard spending cap. Start with maxItems 5–20 while validating fields and proxy.
Free Apify plan limits (set by this Actor's developer)
| Limit | Free Apify plan | Paid Apify plan |
|---|---|---|
| Runs of this Actor | 10 runs total | Unlimited |
Results per run (maxItems) | Up to 200 | Up to 500 |
When the run cap is hit, the run finishes with a clear status message — not an Apify platform error. Upgrade to a paid Apify plan for unlimited runs.
Input
Open the Input tab for the full schema. Main fields:
| Field | Purpose |
|---|---|
startUrls | Naver Land map URLs (/complexes, /houses, /rooms, /offices) or iSale 분양 URLs |
location | Preset: gangnam, bundang, mapo, songpa, seocho, yongsan, seoul |
lat / lon / zoom | Map center overrides |
cortarNo | Optional district code (법정동); else resolved via /api/cortars |
channel | BUY, RENT, JEONSE, MONTHLY, SHORT_TERM |
propertyType / propertyTypes | Category or multi-select (all = 5 markets incl. 분양) |
maxItems / maxComplexes / maxPages | Rows per start URL or selected property type (default 70; above 70 is collected in parts of 70), apartment complex cap, article page cap |
scrapeDetails | Opt in for /complexes: expand markers into separate billed article-listing rows |
includeRaw | Keep original JSON under raw (default false) |
requestDelayMillis | Delay between navigations / API calls |
proxyConfiguration | Prefer Apify RESIDENTIAL proxy, country KR |
Output example
You can download the dataset extracted by Naver Land Scraper in JSON, HTML, CSV, or Excel.
{"id": "article:2637464869","complexNo": "14219","articleNo": "2637464869","recordType": "article","url": "https://new.land.naver.com/complexes/14219?ms=37.500517,127.023152,16&a=APT:ABYG:JGC&b=A1&e=RETAIL","source": "naver","sourceLayer": "articles","channel": "BUY","tradeType": "A1","tradeLabel": "매매","category": "APT","categoryLabel": "아파트","market": "complexes","title": "두산위브트레지움","complexName": "두산위브트레지움","priceFormatted": "38억","latitude": 37.500517,"longitude": 127.023152,"scrapedAt": "2026-07-18T11:27:00.000Z"}
When
scrapeDetailsis enabled, each detail/enrich item also carries the lead & contact fields documented below (phones,emails, structuredaddress,geo,person,org,web,leadSource,leadReveal,leadAbsences). Search-card-only rows keep the same keys, with empty phones andleadAbsencesreasons.
Enriched example (cloud smoke, Bundang apartment article):
{"id": "article:2645082616","articleNo": "2645082616","title": "청솔계룡","articleUrl": "https://fin.land.naver.com/articles/2645082616","phones": [{ "value": "031-237-5200", "type": "landline" },{ "value": "010-7288-5424", "type": "mobile" }],"emails": [],"address": {"street": null,"unit": null,"locality": null,"region": null,"postalCode": null,"country": "KR","full": "경기 화성시 효행구 봉담읍 수영리672 신창A 상가 103호"},"geo": { "lat": 37.352836, "lng": 127.107783 },"person": { "name": "김주영", "role": "공인중개사" },"org": { "name": "단지내 신창,우방공인중개사사무소", "id": "hk501477" },"web": { "website": null, "socials": [] },"leadSource": "detail","leadReveal": "visible","leadAbsences": {"emails": "本站无","web.website": "本站无","web.socials": "本站无"}}
Lead & contact fields
Naver Land publishes 중개사 (licensed realtor) contact on the article overlay / fin.land detail page and in the per-article agent API. Phones, office address, broker name and brokerage are already visible — there is no "show phone / show email" control (revealControls=[]). Every Dataset row keeps the lead keys; a null or empty value is paired with leadAbsences.
| Field | Type | Meaning on Naver Land |
|---|---|---|
phones | [{value, type, e164?}] | Realtor landline + mobile from GET /front-api/v1/article/agent?articleNumber= → result.phone.brokerage / result.phone.mobile. Plain text, already-visible. Smoke samples: 031-237-5200 + 010-7288-5424; recon also measured 02-549-3088 + 010-3781-2991 (참좋은부동산). |
emails | [{value, type}] | Always []. Naver Land has no listing or agent email field (contact is phone + in-site lead form). |
address | {street, unit, locality, region, postalCode, country, full} | 중개사 office address (fallback: listing 소재지). unit = 门牌 and is intended as the Korean 지번 / 호 number (recon samples: 1487-60, 방배로 16, 1668-6). On current smoke items street / unit / locality / region / postalCode are often null and full holds the whole office string (e.g. 경기 화성시 효행구 봉담읍 수영리672 신창A 상가 103호); country is KR. |
geo | {lat, lng} | Listing marker coordinates (same values as legacy latitude / longitude). Supplemental to address, not a replacement. |
person | {name, role} | result.brokerName with role: "공인중개사" (대표 / licensed agent). Smoke: 김주영, 손건우. Recon: 노한준, 장상기, 조영미. |
org | {name, id} | result.brokerageName plus brokerId (fallback: businessRegistrationNumber). Smoke: 단지내 신창,우방공인중개사사무소 / hk501477. |
web | {website, socials[]} | Always website: null and socials: []. Agent payloads only expose profileImageUrl (avatar), not a homepage or social profile. |
leadSource | enum | detail after per-article agent enrich; search on map/list cards before enrich. |
leadReveal | enum | visible — phones and office address are already on the page / agent JSON. No click / xhr reveal path exists. |
leadAbsences | object | Why a sub-field is empty. Current items: emails=本站无, web.website=本站无, web.socials=本站无. |
Legacy listing fields (agentName, realtorId, latitude, longitude, articleUrl) stay in the row. Prefer the structured lead keys above for outreach.
Reveal cost
- Detail / agent fetch is required for phones and named brokers. Keep
scrapeDetails: true(the default). Map cards only show an agency name. - There is no click-reveal and no login wall for phone / address / person / org. The worker does not click "show phone", does not submit the in-site lead form, and does not invent a reveal XHR.
- Cost is one extra same-origin
GET /front-api/v1/article/agent?articleNumber={articleNo}per listing, executed in a headed browser context (bare curl gets 403/429). That adds run time and KR residential proxy usage roughly linearly withmaxItems. - The old mobile article URL
m.land.naver.com/article/info/{articleNo}302s to thefin.landmap. Canonical detail ishttps://fin.land.naver.com/articles/{articleNo}.
Honest limitations
- No emails (本站无). Listings and the agent API have no email /
mailto:field. Contact is phone plus Naver's in-site inquiry form (not submitted). - No website or socials (本站无). Agent records expose
profileImageUrlonly. No LinkedIn / Facebook / Instagram / X / independent homepage. - Search cards are thin. SRP / map markers do not show phone, email, or 门牌 — only the brokerage name. Empty phones on a
leadSource=searchrow are expected unlessscrapeDetailsran. - Structured address parts are incomplete.
address.fullis the reliable office/listing string.street,locality,region, andpostalCodeare typically null.unit(门牌 / 지번 / 호) is filled when the worker can parse it from that string; some enriched rows still leaveunitnull. - rooms / offices / iSale agent surfaces were not separately probed in research (status
未验证). The worker uses the same article-number agent API; treat those markets as same-mechanism, not independently verified. - No click-to-reveal channel. Do not expect a second, fuller phone after a click. Guest already sees the numbers that exist.
Is it legal to scrape Naver Land?
Our scrapers are ethical and do not extract private user data that is not shown on public listing pages. They only extract what Naver Land has chosen to display publicly. You should still comply with Naver terms, applicable Korean and international laws (including personal-data rules for agent contacts), and only scrape when you have a legitimate purpose. If unsure, consult your lawyers.
FAQ
How do I scrape Naver Land apartments for sale in Seoul?
Set location to gangnam (or another preset), channel to BUY, and propertyType to APT or complexes. Keep RESIDENTIAL + KR proxy enabled.
How do I scrape Naver Land jeonse or monthly rent?
Set channel to JEONSE (전세), MONTHLY (월세), or RENT (전세+월세). For rooms, use propertyType: "rooms".
How do I scrape Naver officetels (오피스텔)?
Set propertyType to OPST (or include OBYG for officetel presale rights).
How do I scrape Naver villas, shops, or land?
Use VL / houses for 빌라·주택, SG / offices for 상가, and TJ for 토지. Multi-select with propertyTypes.
How do I scrape Naver 분양 (iSale)?
Set propertyType to ISALE, isale, or 분양 (or include them in propertyTypes / all). The Actor opens isale.land.naver.com and POSTs SYMapBounding.
Standby Live View — start a run via HTTP?
With standby mode, POST /run with Actor input JSON starts a collection (runId, status, consoleUrl). Poll GET /runs/{runId} for status.
Do I need a Naver Land API key?
No. This Actor scrapes the public Naver Land website and returns structured property data — useful when you need a Naver 부동산 data API without an official partnership.
Can I export Naver listings to Google Sheets or Excel?
Yes. Download the Dataset as Excel/CSV, or use Apify integrations and the Dataset API to push results into Sheets, webhooks, or your backend.
Why is a Korean residential proxy required?
Naver Land frequently blocks or challenges non-Korean / datacenter IPs. Cloud runs should use Apify RESIDENTIAL with apifyProxyCountry: "KR".
What if a Naver scrape returns zero results?
Confirm location / cortarNo, keep KR proxy on, try a smaller zoom or another preset, and inspect Key-Value Store ERROR_SUMMARY / OUTPUT / DEBUG_* records.
Tips for better Naver Land scraping
- Prefer
propertyTypesfor multi-market runs; useallonly when you need every LNB channel. - Enable
scrapeDetailsfor apartment 매물 fields; houses/rooms/offices already return articles. - Keep
requestDelayMillisaround 1200–2000 for stable sessions. - Start with small
maxItemsto validate price formatting and category tags before scaling. - Map loading is viewport / cortar driven — not classic page numbers for apartment markers.
Support
Questions or feature requests? Open an issue on the Actor page or contact the developer through Apify. Feedback on additional districts, filters, or export formats is welcome.