Joongna Scraper: Korea Secondhand Marketplace (중고나라)
Pricing
from $2.50 / 1,000 results
Joongna Scraper: Korea Secondhand Marketplace (중고나라)
Scrape Joongna (중고나라), Korea's largest secondhand marketplace: keyword search and category browse for product names, KRW prices, images, wish/chat counts, and sale status as clean JSON. Powered by Joongna's search API. No seller identity collected.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Seok June Park
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Joongna Scraper 🛍️
Scrape secondhand listings from Joongna (중고나라) — Korea's largest-breadth peer-to-peer secondhand marketplace — as clean, structured JSON. Get product names, KRW prices, images, wishlist & chat engagement counts, free-shipping flags, and listing timestamps in one call.
Built for secondhand price research, resale & arbitrage sourcing, and Korean-market demand analysis.
Try it free. Apify's free plan includes $5 of monthly platform credit — roughly 2,000 results from this actor, no credit card required. Set your input, click Start, and export JSON/CSV/Excel.
What it does
This actor pulls listing data directly from Joongna's public search API (the same one that powers web.joongna.com), so results are fast and complete — no fragile HTML scraping in the happy path. Two modes:
- Search — every listing matching a keyword (e.g.
nike,아이폰,jordan 1). - Category — browse the newest / most-relevant listings in a top-level Joongna category (e.g. Women's fashion, Digital/Electronics, Star goods).
Four sort orders are supported: recommended/relevance, newest, price low→high, and price high→low.
Privacy first: this actor collects item data only. It never emits seller nicknames, IDs, store handles, profiles, or manner-temperature. Item, price, image, and public engagement counts only.
Input
| Field | Type | Description |
|---|---|---|
mode | string | "search" or "category". |
query | string | Search mode: the keyword to search for. Required in search mode. |
categorySeq | integer | Category mode: the Joongna top-level category id (required). |
order | string | "score" (recommended), "date" (newest), "price_asc", or "price_dsc". Default score. |
maxItems | integer | Max listings to collect. Default 100. |
proxyConfiguration | object | Proxy settings. Apify RESIDENTIAL recommended for large runs. |
Common category IDs
| ID | Category |
|---|---|
1 | Women's fashion |
2 | Men's fashion |
6 | Beauty |
8 | Digital / Electronics |
10 | Sports / Leisure |
21 | Star goods (K-pop) |
Input example
{"mode": "search","query": "나이키","order": "date","maxItems": 100}
{"mode": "category","categorySeq": 1,"order": "score","maxItems": 200}
Output
Each listing is one dataset record. Prices are in KRW (Korean won).
{"source": "joongna","listing_id": "229960164","name": "나이키 두들 스니커즈 화이트 32","price_krw": 190000,"status": "selling","category": null,"region": null,"free_shipping": false,"wish_count": 8,"chat_count": 4,"url": "https://web.joongna.com/product/229960164","image_url": "https://img2.joongna.com/media/original/2026/06/24/1782273653522xD4_01ech.jpg","listed_at": "2026-07-09T13:23:45+09:00","scraped_at": "2026-07-09T13:23:54+09:00"}
A full 25-item sample from a real run is in samples/sample-output.json.
| Field | Meaning |
|---|---|
source | Always "joongna". |
listing_id | Joongna listing id (seq). |
name | Listing title. |
price_krw | Asking price (KRW). |
status | Sale status. The search feed only returns on-sale items, so this is effectively always "selling" (see Known limitations). |
category | Always null from the search feed — see Known limitations. |
region | Always null from the search feed — see Known limitations. |
free_shipping | Whether the listing ships free (parcel fee is 0). |
wish_count | Number of users who wishlisted the listing. A real demand signal. |
chat_count | Number of buyer chats opened on the listing. A real demand signal. |
url | Listing page URL. |
image_url | First product image (clean original asset). |
listed_at | Listing sort/refresh time (KST, UTC+9). |
scraped_at | ISO-8601 timestamp (KST, UTC+9). |
Known limitations (honest)
regionis not available from Joongna's search feed — the API returns an empty location for listing rows, so this field is alwaysnull. It is kept for schema compatibility only.categoryname is not returned on search rows. Use category mode with acategorySeqto scope results to a category instead of reading it off each row.statusdoes not vary in practice: the search API only returns on-sale listings, sostatusis always"selling". Reserved/sold listings are not exposed by this feed.
These fields are documented, not billed on — pricing reflects only the fields that reliably populate (name, price, image, wish/chat counts, free shipping, timestamps).
Use cases
- Secondhand price research — track asking prices for sneakers, electronics, luxury goods, and K-pop goods across Korea's broadest secondhand marketplace.
- Resale & arbitrage sourcing — surface underpriced or high-demand listings (sort by newest or price, rank by
wish_count/chat_count). - Demand analysis — measure listing volume and engagement (wishlists, chats) for a product or category over time.
- AI agents & datasets — feed structured secondhand data into pricing models, sourcing dashboards, or LLM agents.
❓ FAQ
Is it legal to scrape this data? This actor collects only public, non-personal catalog data — the same listings any visitor to web.joongna.com sees without logging in. No personal data is collected (no seller nicknames, ids, or profiles). You are responsible for how you use the data; see the legality note below.
What does it cost in practice? $2.50 per 1,000 results (launch pricing) + a few cents of platform usage. Example: a 500-result daily pull costs about $1.25/day. Apify's free $5 monthly credit covers ~2,000 results.
Do I need to configure proxies? No — the default settings work out of the box. For large runs or if you see repeated HTTP 403/429 errors, optionally enable Apify Proxy with the RESIDENTIAL group (see the proxy recommendation below).
How fresh is the data? Every run scrapes the live site at run time. Schedule the actor for recurring snapshots.
What is NOT included?
No seller data of any kind (privacy by design), and no region or per-row category name — Joongna's search feed doesn't return them, so they are null. Only on-sale listings are exposed, so status is effectively always "selling".
🇰🇷 More Korean data actors
This actor is part of a suite of Korean-platform scrapers by the same maintainer:
- bunjang-scraper — Bunjang (번개장터) secondhand marketplace listings.
- encar-scraper — Encar used-car listings with prices and specs.
- pocamarket-scraper — K-pop photocard market prices from Pocamarket.
Browse all: apify.com/kdatafactory
Rate limiting & legality
- The actor collects only public, non-authenticated data. It never logs in and never touches private endpoints.
- No personal data is collected — no seller nicknames, store ids, profiles, or manner-temperature. Item, price, image, and public engagement data only.
- Requests are rate-limited: one page at a time with a ≥ 500 ms delay between requests, to stay gentle on Joongna's servers.
- You are responsible for using the data in line with Joongna's terms of service and applicable law.
⚠️ Proxy recommendation
Joongna may block datacenter IPs or high request volumes. For reliable runs — especially at higher maxItems — enable Apify Proxy with the RESIDENTIAL group. The actor automatically uses the proxy configuration you provide (via proxyConfiguration in input) and, if a proxy tunnel fails, falls back to a direct connection rather than hanging. If you see repeated API HTTP 403/429 errors in the log, switch on residential proxy.
If this actor saves you time, a rating on the Store page helps a solo maintainer a lot. Found an issue? Open it in the Issues tab — I respond fast.