Naver Brand Store Product Details Scraper
Pricing
from $1.66 / 1,000 item extracteds
Naver Brand Store Product Details Scraper
Extract supplied Naver Brand Store product URLs into prices, immediate discounts, product-level stock, images, review totals, brand/model and delivery details for recurring selected-product snapshots.
Pricing
from $1.66 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract Naver Brand Store product details from supplied product URLs into reusable snapshots of public prices, product-level stock, images, review totals, brand/model and delivery information. Designed for Korean ecommerce teams monitoring a selected assortment without repeating keyword discovery.
This Actor supports brand.naver.com only. It does not scrape SmartStore, individual SKU options, review text, seller contact details or price history. It is independent of and not affiliated with Naver.
Who is it for?
Korean ecommerce pricing analysts and merchandising teams maintaining a known Brand Store assortment can collect repeatable snapshots for their own reports. For keyword discovery or option-level inventory, choose a different product.
Why use it?
Maintain the same product watchlist across scheduled runs. Each product has a stable product ID and canonical URL so you can compare snapshots in your own spreadsheet or database. Public immediate discounts are separated from the listed price. Stock is explicitly product-level, not a promise that a particular size or color can be purchased.
Getting started
- Copy a public Brand Store product URL.
- Add it to
productUrls; do not supply store homepages or keyword searches. - Choose
maxItemsand run the Actor. - Inspect the Products dataset view and export JSON, CSV or Excel using Apify.
- For recurring checks, schedule the same input and compare
productIddownstream.
{"productUrls": ["https://brand.naver.com/lumena/products/13244298880","https://brand.naver.com/pictory/products/4108300313"],"maxItems": 2}
Input parameters
| Parameter | Behavior |
|---|---|
productUrls | Required array of 1–100 HTTPS Brand Store product URLs. Query strings/fragments are removed and duplicate canonical URLs are requested once. All entries are validated, including entries beyond the limit. |
maxItems | Global limit on unique supplied products requested in first appearance order. Default 10; range 1–100. Zero and unlimited are invalid. |
No proxy credentials or extra paid-service accounts are needed. Korean residential proxy routing is included and paid by the operator. There is no search, filter or discovery mode.
Extracted data
| Fields | Meaning |
|---|---|
productId, url, storeSlug, storeName, name | Public product identity and store display name |
currency, salePrice | KRW and listed product price before immediate discount |
discountedPrice, discountPercent | Public immediate discount; excludes personalized membership/coupon benefits |
stockQuantity, saleStatus, inStock | Source-reported product-level quantity/status; inStock requires positive stock and SALE |
brand, model, category | Public manufacturer/brand metadata and category path |
images | Representative and additional public image URLs; image files are not downloaded |
reviewCount, averageRating | Aggregate review totals and rating, not individual reviews |
deliveryFeeType, deliveryFee, deliveryCarrier, deliveryAttribute | Public base shipping information, not a destination quote |
scrapedAt | ISO timestamp of extraction |
Unavailable scalar fields are null. Missing image lists are empty arrays. Conditional shipping thresholds and destination surcharges are not modeled. The default dataset contains one row per successfully extracted unique product.
Output example
A local public Lumena product snapshot returned the following values; values can change between runs:
{"productId": "13244298880","url": "https://brand.naver.com/lumena/products/13244298880","storeSlug": "lumena","name": "루메나 프리미엄 휴대용 무선 냉각선풍기 FAN JET ULTRA PLUS","currency": "KRW","salePrice": 74900,"discountedPrice": 59900,"discountPercent": 20,"stockQuantity": 267,"saleStatus": "SALE","inStock": true,"brand": "루메나","model": "FAN JET ULTRA PLUS","reviewCount": 20790,"averageRating": 4.83,"deliveryFeeType": "FREE","deliveryFee": 0,"deliveryCarrier": "한진택배"}
How much does it cost to extract Naver Brand Store product details?
A one-time start event and one item event per delivered product apply. Invalid inputs are rejected before the start event. Failed requests, retries and duplicate URLs have no separate item charge. A later failed product can leave previously delivered and charged rows in a failed run.
The start fee is $0.012 per valid run. Product event prices depend on your Apify Store spend tier:
| Tier | Per product |
|---|---|
| FREE | $0.0031855 |
| BRONZE | $0.00277 |
| SILVER | $0.0021606 |
| GOLD / PLATINUM / DIAMOND | $0.001662 |
At BRONZE, estimated Actor event charges are $0.01477 for 1 product, $0.0397 for 10, and $0.289 for 100. Platform usage, taxes and adjustments can affect your final bill. Spend tiers reflect qualifying aggregate monthly Apify Store spend, not this Actor's private volume schedule. Infrastructure and proxy costs are paid by the operator; no off-platform payment is required.
Limits and failure behavior
Up to three attempts per product use fresh Korean residential proxy sessions, with a 30-second request timeout. Products are processed sequentially. Blocked pages, malformed state and mismatched product IDs are errors, not successful empty snapshots. A deleted/unavailable product or exhausted retries fails the run. Any existing rows are partial output; inspect run status before treating an export as complete. The platform timeout and spending limit can also end collection before the input limit.
Integrations
Send snapshots to Google Sheets for a selected-product price watchlist, or to a warehouse keyed by productId and scrapedAt. Use Apify schedules for recurring collection and webhooks to initiate downstream comparisons after successful completion. This Actor itself does not store historical comparisons or send price-change alerts.
API usage
Use your own Apify token outside URLs where possible. Do not share credentials in input or logs.
curl -X POST -H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \'https://api.apify.com/v2/acts/automation-lab~naver-brand-store-product-details/runs' \-d '{"productUrls":["https://brand.naver.com/lumena/products/13244298880"],"maxItems":1}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/naver-brand-store-product-details').call({productUrls: ['https://brand.naver.com/lumena/products/13244298880'], maxItems: 1,});const { items } = await client.dataset(run.defaultDatasetId).listItems({ limit: 10 });console.log(items);
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/naver-brand-store-product-details').call(run_input={'productUrls': ['https://brand.naver.com/lumena/products/13244298880'], 'maxItems': 1})print(client.dataset(run['defaultDatasetId']).list_items(limit=10).items)
MCP setup
For Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/naver-brand-store-product-details"
For Claude Desktop, Cursor, and VS Code, use the client's supported HTTP MCP configuration and Apify authentication:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/naver-brand-store-product-details"}}}
Example prompt: “Extract these two Brand Store product URLs and compare their public immediate-discount prices. Do not interpret product-level stock as SKU stock.”
Reading MCP results safely
Discover actual tool names and argument schemas with scoped tools/list; the selection also exposes run/data helpers, not just one tool. Consumer prompt recipe:
- Invoke this Actor once with the supplied
productUrlsandmaxItems. If usingcall-actor, choosewaitSecs=30(allowed 0–45); configure the client request timeout above that wait plus transport margin, within a 120-second total deadline. Save the returned run ID, status and storage IDs; these are metadata, not rows. - If nonterminal, use
get-actor-runfor that same run ID, with 2/4/8-second backoff capped at 10 seconds. On client timeout, recover the known run's status instead of restarting. If the run ID is unknown, report uncertainty and do not blindly rerun. At the total deadline, report pending with the ID and stop polling. Report terminal failures honestly; any rows from them are partial, not complete successful results. - After success, use
get-dataset-itemswith the returneddefaultDatasetId, explicitlimit=20, initialoffset=0, andfieldsprojectingproductId,url,name,currency,salePrice,discountedPrice,stockQuantity,saleStatus,inStock,scrapedAtfor this price comparison. Encode arguments as the discovered schema requires. Prefer untransformed JSON; continue at sourceoffset=20, then 40, etc., using pagination metadata rather than filtered/transformed row counts. - Admit at most 100 source rows and 64 KiB of serialized UTF-8 result content across all pages, whichever comes first. Enforce the byte ceiling host-side before model injection, including oversized rows/pages: omit or summarize them with disclosure. If the client cannot intercept oversized responses, do not claim a hard byte guarantee or request unbounded data. Stop at exhaustion or budget and report admitted row count, continuation source offset and partial/truncated status. Keep full exports/downloads in Apify storage or downstream processing outside model context.
These are consumer context budgets, not Actor collection limits. They do not reduce collected fields or promise client-independent token savings.
Data handling and responsible use
No AI model is used during extraction or to generate product values. The Actor requests public product pages through Apify's Korean residential proxy, emits only selected product fields, and does not collect seller contacts or reviewer identities. Product URLs are canonicalized to remove tracking queries. No cookies or sessions are stored for later runs.
Failed operations send sanitized diagnostic input, exceptions and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed; diagnostic reports are retained for 30 days. Dataset and run-log retention follows your Apify account settings; delete the run storages in Apify when no longer needed. No operator-maintained product archive is created.
Legality and responsible use
Use data responsibly under applicable laws and source terms. Public availability does not grant unlimited reuse rights. This Actor uses Apify's standard end-user terms and makes no affiliation or endorsement claim.
FAQ and troubleshooting
Does it support SmartStore or reviews? No. SmartStore, SKU options and review text are outside this product contract.
Why did a product fail? It may have been removed, access-restricted or challenged by Naver. Verify the URL in a browser and inspect the failed run log. Existing output from a failed run is partial.
Why is stock null or different from an option selector? The field is source-reported product-level stock. Missing values stay null and can differ from individual option quantities.
Can I monitor changes? Schedule recurring snapshots and compare them downstream. The Actor does not create a history database or alert service.
Related Actors and support
Use Naver Shopping Product Scraper for keyword discovery rather than supplied-product snapshots. For help, open an issue on this Actor's Apify Store Issues tab with a public product URL, input and run link. Do not include secrets.