Daangn Scraper $1💰 Listings, Sellers, Regions & Categories
Pricing
from $1.00 / 1,000 listing scrapeds
Daangn Scraper $1💰 Listings, Sellers, Regions & Categories
From $1/1K. Scrape Daangn (당근) marketplace listings by keyword and region. Returns 35+ fields per item including price, status, condition, full image set, region, category and seller profile (nickname, score, reviews). Search and URL modes, category and on-sale filters, price range and sort.
Pricing
from $1.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
43 minutes ago
Last modified
Categories
Share
Daangn Scraper
Collect structured listing data from Daangn (당근), Korea's largest local marketplace, by keyword and region. The scraper returns rich, ready-to-use records: price, status, condition, the full image set, region, category and the seller profile (nickname, score, review count). Run it by keyword, by region, or by pasting Daangn search and detail URLs, and pipe the results straight into your spreadsheet, database or apps.
Why This Scraper?
- 35+ fields per listing, including the full image set, region tree, category and the complete seller profile, not just a title and a price.
- Two ways to run: search by keyword + region, or paste any Daangn search or detail URL.
- Server-side category and on-sale filters plus price-range and sort controls.
- One simple limit: set Max items and the run stops there. No confusing second cap.
- Optional detail enrichment adds description, view/chat/favorite counts and the seller profile per item.
- Optional one-click export into Notion, Linear, Airtable or Apify via MCP connectors.
- Runs on the default datacenter proxy on every plan; switch to Residential (country KR) for the most reliable results.
Data You Get
Sample shape: values are illustrative placeholders, not from a live listing.
| Field | Example |
|---|---|
| id | "0000000000" |
| nodeId | "a0b0c0d0e0f0" |
| url | "https://www.daangn.com/kr/buy-sell/sample-a0b0c0d0e0f0/" |
| title | "iPhone 15 256GB Blue" |
| price | 480000 |
| priceText | "480,000원" |
| isFree | false |
| currency | "KRW" |
| status | "Ongoing" |
| condition | "used" |
| content | "Lightly used, battery health 90%." |
| location | "Sample-dong" |
| region.name | "Sample-dong" |
| region.id | "000" |
| category.name | "Digital" |
| category.id | "1" |
| sellerName | "Jane Doe" |
| user.score | 39.2 |
| user.reviewCount | 23 |
| watchesCount | 12 |
| chatRoomsCount | 6 |
| readsCount | 733 |
| createdAt | "2026-01-01T00:00:00.000+09:00" |
| imageUrl | "https://img.example.com/sample_0.webp" |
How to Use
Search by keyword in one region:
{"mode": "search","searchQueries": ["노트북"],"locations": ["366"],"maxItems": 50,"fetchDetails": true}
Search several keywords across several regions with a price range:
{"mode": "search","searchQueries": ["노트북", "의자"],"locations": ["366", "6187"],"priceMin": 50000,"priceMax": 300000,"sortBy": "price_asc","maxItems": 100}
Paste Daangn URLs directly:
{"mode": "url","urls": ["https://www.daangn.com/kr/buy-sell/s/?search=%EB%85%B8%ED%8A%B8%EB%B6%81®ion_id=366","https://www.daangn.com/kr/buy-sell/sample-a0b0c0d0e0f0/"],"fetchDetails": true,"maxItems": 40}
Track a search over repeated scheduled runs (Incremental mode):
{"mode": "search","searchQueries": ["노트북"],"locations": ["366"],"incrementalMode": true,"emitExpired": true,"maxItems": 0}
Input Parameters
| Field | Type | Description |
|---|---|---|
| mode | string | "search" builds searches from your keywords + regions + filters; "url" uses pasted Daangn URLs. |
| searchQueries | array | Keywords to search for (search mode). Each is scraped independently. |
| locations | array | Numeric Daangn region ids to center the search on. Empty = region resolved from the connection. |
| categoryId | integer | Restrict to one Daangn category id (e.g. 1 Digital, 8 Furniture). Empty = all. |
| onlyOnSale | boolean | Return only listings still on sale (excludes reserved/completed). |
| priceMin | integer | Only listings priced at or above this amount (KRW). |
| priceMax | integer | Only listings priced at or below this amount (KRW). |
| sortBy | string | "recommended", "recent", "price_asc" or "price_desc". |
| urls | array | Daangn search or detail URLs (URL mode). Filter fields are ignored. |
| fetchDetails | boolean | Visit each listing page for description, image set, counts and seller profile. |
| maxItems | integer | The single run cap. Stop after this many listings. 0 = unlimited. |
| maxPages | integer | Safety bound on result pages per query. Empty = unlimited; the run stops at Max items. |
| resumeFromRunId | string | Continue one specific interrupted run: paste a previous run id or dataset id and already-collected listings are skipped. |
| incrementalMode | boolean | Track this same search over repeated scheduled runs; returns only NEW/UPDATED/REAPPEARED (and optionally EXPIRED) listings. Default off. |
| stateKey | string | Optional name for the Incremental mode baseline. Empty = auto-derived from your search settings. |
| emitUnchanged | boolean | Incremental mode: also return (and bill) listings with no change since last run. Default off. |
| emitExpired | boolean | Incremental mode: also return (and bill) listings no longer found, once a run completes a full scan. Default off. |
| proxy | object | Connection settings. Datacenter is the default and works on every plan; Residential (country KR) is the most reliable. |
| maxResidentialMB | integer | Residential traffic budget in MB. After the cap the run continues on the lower-cost datacenter proxy (same data). 0 = unlimited. |
| mcpConnectors | array | Optional MCP connectors to export results into (Notion, Linear, Airtable, Apify). |
| notionParentPageUrl | string | Notion page under which item pages are created (Notion connector only). |
| maxNotifyListings | integer | Cap on items written to each connector per run. Does not affect the dataset. |
Output Example
Sample shape: values are illustrative placeholders, not from a live listing.
{"id": "0000000000","nodeId": "a0b0c0d0e0f0","url": "https://www.daangn.com/kr/buy-sell/sample-a0b0c0d0e0f0/","title": "iPhone 15 256GB Blue","content": "Lightly used, battery health 90%.","description": "Lightly used, battery health 90%.","status": "Ongoing","condition": "used","listingType": "FleamarketArticle","price": 480000,"priceText": "480,000원","isFree": false,"currency": "KRW","countryCode": "KR","createdAt": "2026-01-01T00:00:00.000+09:00","postedAt": "2026-01-01T00:00:00.000+09:00","publishedAt": "2026-01-01T00:00:00.000+09:00","imageUrl": "https://img.example.com/sample_0.webp","images": ["https://img.example.com/sample_0.webp"],"location": "Sample-dong","locationName": null,"regionSlug": "sample-dong-000","searchQuery": "노트북","region": { "id": "000", "name": "Sample-dong", "countryCode": "KR" },"category": { "id": "1", "name": "Digital" },"user": { "nickname": "Jane Doe", "score": 39.2, "reviewCount": 23, "locationName": null },"tradingLocation": { "name": "Sample-dong", "isUserInput": null, "latitude": null, "longitude": null },"sellerName": "Jane Doe","watchesCount": 12,"chatRoomsCount": 6,"readsCount": 733}
Resume & recurring updates
Two separate features cover two separate needs:
resumeFromRunIdcontinues ONE specific interrupted run. Paste the run id or dataset id from a previous run that got cut off (timeout, item cap, connection issue) and this run skips every listing it already collected, so you don't pay to re-scrape and re-download what you already have.incrementalModetracks the SAME search across many scheduled runs on its own — no id to paste. Turn it on and schedule the actor (e.g. daily); each run compares against a baseline it remembers itself (keyed by your search settings, or your own State key) and returns onlychangeType: "NEW","UPDATED"or"REAPPEARED"listings, pluschangedFields,firstSeenAtandlastSeenAt. Unchanged listings are neither returned nor billed unless you turn on Emit unchanged listings. Listings that disappear are only reported as"EXPIRED"(and only if Emit expired listings is on) once a run completes a full, uncapped scan of the search — a run limited by Max items (the default is 20) never reports EXPIRED, since it never proved those listings are actually gone.- The baseline for Incremental mode is keyed on your search settings (mode, keywords, regions, category, on-sale, price range, sort, URLs, fetch details) — not on Max items/Max pages/the residential budget/the connector export cap, so raising a limit keeps your existing baseline instead of starting over and re-billing everything.
- Volatility note: Daangn listings carry live engagement counters (
chatCount,chatRoomsCount,favoriteCount,readsCount,viewCount,watchesCount) and a re-boost timestamp (boostedAt) that change from other users' activity, independent of the listing itself. Incremental mode deliberately ignores these (along with seller reputation fields and the search keyword that found the listing) when deciding NEW/UPDATED/UNCHANGED, so a listing isn't reported as "changed" every run just because someone viewed or bumped it. A real change to price, status, condition, title, description or images always still triggers"UPDATED".
Export to your apps (MCP connectors)
You can optionally pipe each run's results into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector under Apify -> Settings -> API & Integrations, then select it in the mcpConnectors field. Notion receives a rich page per item (set notionParentPageUrl to the parent page); Linear, Airtable and Apify receive a best-effort write or digest. This never changes the dataset output, and any connector error is logged and skipped without affecting the scrape.
If a run returns nothing
Daangn's search occasionally answers with zero listings for a keyword and region that really does have results. The run retries the search on a fresh connection a few times before giving up, and if it still gets nothing it says so in the status message and asks you to run it again shortly. A run like that is treated as an incomplete scan, so in Incremental mode it never marks your tracked listings as EXPIRED and never touches your saved baseline. Running it again a minute later normally returns the full result set.
Plan Requirement
This scraper runs on the default datacenter proxy on any plan, including the free tier, and returns the same Daangn data as residential, so it is the recommended default.
For maximum reliability you can switch the proxy to Apify Residential with country KR (requires a plan that includes Residential proxy access). When on residential, set a Residential traffic budget (MB) to cap spend: once the budget is reached the run continues on the default datacenter proxy for the rest of the run, with identical results.