{
  "data": {
    "id": "dJUrNu0nTry9REFAJ",
    "actId": "RyxNt6M9XZi7gJCQL",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-10-29T12:55:47.846Z",
    "finishedAt": "2026-10-29T12:55:57.454Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 9542,
      "runTimeSecs": 9.542,
      "computeUnits": 0.010602222222222223,
      "imageSizeBytes": 357773312
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Naver Shopping Scraper Input\",\n  \"description\": \"Search Naver Shopping by keyword and collect product prices, ratings, reviews, sellers, delivery and variants.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"searchQueries\": {\n      \"title\": \"Search keywords\",\n      \"type\": \"array\",\n      \"description\": \"One Naver Shopping search per keyword, in Korean or English. Each keyword returns up to 90 product cards, including ads. Leave empty only when an old task supplies a single `keyword`.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": [\n        \"스마트폰\"\n      ]\n    },\n    \"includeAds\": {\n      \"title\": \"Include paid ads\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep sponsored product cards in the results. Ads take a large share of the up to 90 cards, so ads-off runs return the organic subset. Every record carries `isAd`.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"minPrice\": {\n      \"title\": \"Minimum price (KRW)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop fetched products cheaper than this price in Korean Won. Applied after collection, to the products this run fetched.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000\n    },\n    \"maxPrice\": {\n      \"title\": \"Maximum price (KRW)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop fetched products more expensive than this price in Korean Won. Applied after collection, to the products this run fetched.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000\n    },\n    \"sort\": {\n      \"title\": \"Sort products\",\n      \"type\": \"string\",\n      \"description\": \"Order the products this run fetched. Naver's mobile page does not accept a server-side sort, so this is a local sort, not a re-query.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"relevance\",\n        \"priceLow\",\n        \"priceHigh\",\n        \"reviews\"\n      ],\n      \"enumTitles\": [\n        \"Relevance (Naver's order)\",\n        \"Price: low to high\",\n        \"Price: high to low\",\n        \"Most reviews\"\n      ],\n      \"default\": \"relevance\",\n      \"prefill\": \"relevance\"\n    },\n    \"maxItems\": {\n      \"title\": \"Max products\",\n      \"type\": \"integer\",\n      \"description\": \"Total products to save across all keywords, after ad and price filtering (1–1000). The source still caps each keyword at 90 cards.\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 100,\n      \"prefill\": 2\n    }\n  }\n}",
    "readme": "# Naver Shopping Price & Review Scraper\n\nCollect **Naver Shopping** products by keyword — the displayed price and discount, rating and review count, competing seller count, delivery terms, purchase options, category IDs, image and product link. Results come from Naver's public mobile shopping search, with no account, cookie or API key required.\n\n## What this actor does\n\n- **Keyword search at scale**: one search per keyword, in Korean or English, with up to 90 product cards per keyword (ads included; ads-off runs return the organic subset)\n- **30+ card-level fields**: price, original price, discount, rating, reviews, sellers, wishlist saves, delivery, variants, category IDs, images and links\n- **Ads under your control**: ads take a large share of the up to 90 cards (16–50 in our samples), so ads-off runs return the organic subset; every record exposes `isAd`\n- **Local price filter and sort**: keep a KRW price band and order the fetched set by relevance, price or review count\n- **Clean records**: HTML highlight tags are stripped, and empty fields are omitted rather than sent as `null`\n\n## Services and data source\n\nThe actor reads Naver's anonymous mobile integrated search page (`m.search.naver.com/search.naver?where=m_shop`). It does not use the login-gated shopping portal, so it needs no Naver account and no proxy configuration. Each keyword returns the product cards that Naver renders on that page, including marketplace cards, catalog cards and sponsored cards.\n\n## How it works\n\nFor every keyword, the actor fetches the mobile search page once and reads the embedded shopping state. It flattens the product cards, removes duplicates by Naver product ID, drops ads when `includeAds` is false, applies your KRW price band, sorts the remaining products locally, and saves them up to `maxItems`. Multiple keywords are collected in one run, and a product found by more than one keyword is saved once.\n\nThe free mobile page has no pagination, server-side sort or server-side price filter. Sorting and filtering therefore apply to the products this run fetched, not to all of Naver's results.\n\n## Output per product\n\n- `productId` — Naver product ID (`nvMid`), the stable identifier\n- `channelProductId` — the seller's own product ID, when the card has one\n- `productName` — product title with Naver's `<mark>` highlight tags removed\n- `productUrl` — direct seller or marketplace URL; falls back to the Naver catalog page for catalog cards\n- `imageUrl` — product image from Naver's image CDN\n- `mallId`, `mallName` — selling store ID and name; `mallId` is `naver_model` on catalog cards, where `mallName` is omitted\n- `mallBadge` — store badge such as official or certified, when shown\n- `isAd` — `true` for sponsored cards, `false` for organic cards\n- `cardType` — Naver card type (`CATALOG_CARD`, `ORGANIC_CARD`, `AD_CARD`)\n- `searchRank` — Naver's rank within the card's own section (ads and organic cards have separate rank sequences)\n- `position` — consecutive position after filtering, sorting and de-duplication\n- `keyword` — keyword that found the product\n- `price` — displayed selling price in KRW\n- `lowPrice` — same as `price` on this source\n- `originalPrice` — list price before discount, when higher than `price`\n- `discountPercent` — discount rate shown on the card, when greater than zero\n- `highPrice` — highest price across sellers, only when a source card carries it\n- `priceCurrency` — usually `KRW`\n- `brand` — brand or maker, only when the source card carries it\n- `sellerCount` — number of competing sellers, when greater than zero\n- `reviewScore` — average review rating out of 5, when the product has reviews\n- `reviewCount` — total review count, when greater than zero\n- `purchaseCount` — recorded purchase count, when shown\n- `wishlistCount` — number of shoppers who saved the product\n- `purchaseOptions` — variants with `name` and `price`, when the card lists options\n- `categoryId` — leaf category ID\n- `categoryIds` — category IDs grouped as `l`, `m`, `s` and `ss` (large to small)\n- `category` — category names, only when a source card carries them\n- `deliveryFee` — delivery fee in KRW (`0` means free)\n- `freeDelivery` — `true` when delivery is free, `false` when paid\n- `fastDeliveryType` — Naver's fast-delivery label (`NONE`, `TODAY`, `ARRIVAL`, …)\n- `isBrandStore` — `true` for official brand stores\n- `isSmartStore` — `true` for SmartStore products\n- `isOverseas` — `true` for overseas products\n- `recordType` — `product` for every record\n- `scrapedAt` — ISO 8601 timestamp for the run\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `searchQueries` | array | `[]` | One Naver Shopping search per keyword (Korean or English). The actor reads old single-keyword `keyword` tasks too. |\n| `includeAds` | boolean | `true` | Keep sponsored cards. Every record is flagged with `isAd`. |\n| `minPrice` | integer | – | Drop fetched products below this KRW price. |\n| `maxPrice` | integer | – | Drop fetched products above this KRW price. |\n| `sort` | string | `relevance` | `relevance` / `priceLow` / `priceHigh` / `reviews` — local sort of the fetched products. |\n| `maxItems` | integer | `100` | Total products to save across all keywords (1–1000). |\n\n### Example: three keywords, ads off\n\n```json\n{\n    \"searchQueries\": [\"스마트폰\", \"무선이어폰\", \"노트북\"],\n    \"includeAds\": false,\n    \"maxItems\": 150\n}\n```\n\n### Example: price band with cheapest first\n\n```json\n{\n    \"searchQueries\": [\"에어프라이어\"],\n    \"minPrice\": 50000,\n    \"maxPrice\": 200000,\n    \"sort\": \"priceLow\",\n    \"maxItems\": 50\n}\n```\n\n### Example: most-reviewed products for an English query\n\n```json\n{\n    \"searchQueries\": [\"iphone case\"],\n    \"includeAds\": false,\n    \"sort\": \"reviews\",\n    \"maxItems\": 30\n}\n```\n\n### Example: competitive snapshot including ads\n\n```json\n{\n    \"searchQueries\": [\"강아지사료\"],\n    \"includeAds\": true,\n    \"sort\": \"relevance\",\n    \"maxItems\": 90\n}\n```\n\n## Use cases\n\n- **Price monitoring** — capture the current displayed price and discount for a list of Korean keywords\n- **Assortment research** — see which stores and brands appear for a category search\n- **Review intelligence** — sort a fetched set by rating volume to find established products\n- **Delivery benchmarking** — compare free delivery, paid delivery and fast-delivery labels across sellers\n- **Catalog enrichment** — attach Naver category IDs, images and product links to an existing feed\n- **Campaign tracking** — keep ads in the result and separate them later with `isAd`\n\n## Usage cost\n\nYou pay for Apify platform usage under your plan. The actor uses only Naver's public mobile pages: no paid data API, no residential proxy and no external credential. A typical keyword costs one page fetch, small inputs finish in seconds, and `maxItems` bounds the number of saved rows.\n\n## Notes\n\n- Each keyword returns at most **90 product cards**, including ads, because that is the complete set embedded in Naver's mobile page. With `includeAds` off you get the organic subset (roughly 40–75 cards, depending on how many ads Naver inserts).\n- Ads are mixed into the same page; read `isAd` instead of assuming every row is organic.\n- `productName` is Korean or English exactly as Naver shows it; there is no translation step. Naver sometimes includes double spaces, which are kept as shown.\n- `lowPrice` mirrors `price`. `highPrice` is usually absent on this source because a single card shows one displayed price, not every seller's offer.\n- When a keyword's page has no shopping module, that keyword yields zero rows and the run continues with the next keyword.\n- A small number of carrier-subsidy catalog cards have no listed price at all; those records omit `price` rather than inventing one. When their delivery type and fee contradict each other, delivery fields are omitted too.\n- Catalog-card `productUrl` links point at Naver's catalog page, which can redirect to a maintenance page outside Korea; the `productId` and `imageUrl` remain usable.\n- The dataset is written once per run; `scrapedAt` is identical for all rows from that run.\n\n## Limitations\n\n- **90 cards per keyword, not 90 organic products.** Naver's mobile page embeds up to 10 pages of 9 cards, and ads take 16–50 of those cards. With `includeAds` off the source ceiling is the organic subset (roughly 40–75). The page exposes no next page or cursor, so there is no way to request more from this free surface; split a broad market into narrower keywords to cover more products.\n- **No server-side pagination, sort or price filter.** `sort` and `minPrice`/`maxPrice` apply only to the cards fetched in the same run. They do not reorder or paginate Naver's full result set.\n- **No product detail, review text, specifications or stock.** Those live on Naver's shopping portal and product pages, which are gated and return blocks outside Korea. This actor does not ship those modes.\n- **No brand, maker or category names from search cards.** Brand and category names come from detail pages that are not available here. Category IDs are provided instead.\n- **Some keywords return no cards.** Very broad category words can render neither the shopping module nor the explore module, so they produce zero rows.\n- **A few catalog cards have no price.** They are carrier or catalog placeholders without a live offer, so the price fields are omitted. Drop them downstream if your workflow needs a price on every row.\n- **The page shape can change.** The actor parses Naver's embedded shopping state; if Naver changes that structure, the run reports it instead of inventing records.\n\n## FAQ\n\n**What is Naver Shopping?**\nNaver Shopping is South Korea's largest shopping search surface. It groups products from many Korean stores and shows price, reviews, delivery and seller information on one card.\n\n**Why do I get at most 90 cards per keyword?**\nNaver's mobile shopping page contains up to 10 embedded pages of 9 cards, so 90 cards is the source ceiling for each keyword. Ads take 16–50 of those cards, so with ads off you get the remaining organic cards (roughly 40–75). The page does not expose a next-page link or cursor. Run more specific keywords to cover a larger market.\n\n**Why is `sort` described as a local sort?**\nThe free mobile page ignores sort parameters. The actor therefore sorts the products it fetched, which is useful for a single keyword and for a combined multi-keyword result, but it is not a global Naver ranking.\n\n**Why are `brand`, `category` names or `highPrice` sometimes missing?**\nSearch cards do not carry a brand tag, a category name path or every seller's price. The actor omits those fields instead of guessing. Category IDs, seller count and the displayed price are still provided.\n\n**Why is there no review text, star distribution, stock or specification list?**\nThose fields exist only on Naver's product-detail and review pages. Those pages are gated and blocked from outside Korea, so this actor does not offer detail or review modes. The search card still gives the average rating and review count.\n\n**Do I need a Naver account, cookies or a proxy?**\nNo. The actor uses Naver's anonymous mobile search page. There is nothing to log in to and nothing to configure.\n\n**Can I include or exclude ads?**\nYes. Set `includeAds` to `true` or `false`. Every record also carries `isAd` so you can keep a mixed snapshot and filter it later.\n\n**Is the data live?**\nYes. Every run reads the current mobile search page. `scrapedAt` records when the snapshot was taken. Naver may personalize or rotate cards over time, so counts can differ slightly between runs.\n\n**Is this affiliated with Naver?**\nNo. This is an independent third-party actor that reads Naver's public search page. It is not affiliated with or endorsed by Naver Corporation.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "naver-shopping-price-comparison-scraper",
      "title": "Naver Shopping Price & Review Scraper",
      "description": "Search Naver Shopping by keyword and collect up to 90 product cards per query (ads included): price, discount, rating, reviews, sellers, delivery, variants, category IDs, images and links. Toggle ads, filter by KRW price, sort locally.",
      "version": "1.1",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# Naver Shopping Price & Review Scraper\n\nCollect **Naver Shopping** products by keyword — the displayed price and discount, rating and review count, competing seller count, delivery terms, purchase options, category IDs, image and product link. Results come from Naver's public mobile shopping search, with no account, cookie or API key required.\n\n## What this actor does\n\n- **Keyword search at scale**: one search per keyword, in Korean or English, with up to 90 product cards per keyword (ads included; ads-off runs return the organic subset)\n- **30+ card-level fields**: price, original price, discount, rating, reviews, sellers, wishlist saves, delivery, variants, category IDs, images and links\n- **Ads under your control**: ads take a large share of the up to 90 cards (16–50 in our samples), so ads-off runs return the organic subset; every record exposes `isAd`\n- **Local price filter and sort**: keep a KRW price band and order the fetched set by relevance, price or review count\n- **Clean records**: HTML highlight tags are stripped, and empty fields are omitted rather than sent as `null`\n\n## Services and data source\n\nThe actor reads Naver's anonymous mobile integrated search page (`m.search.naver.com/search.naver?where=m_shop`). It does not use the login-gated shopping portal, so it needs no Naver account and no proxy configuration. Each keyword returns the product cards that Naver renders on that page, including marketplace cards, catalog cards and sponsored cards.\n\n## How it works\n\nFor every keyword, the actor fetches the mobile search page once and reads the embedded shopping state. It flattens the product cards, removes duplicates by Naver product ID, drops ads when `includeAds` is false, applies your KRW price band, sorts the remaining products locally, and saves them up to `maxItems`. Multiple keywords are collected in one run, and a product found by more than one keyword is saved once.\n\nThe free mobile page has no pagination, server-side sort or server-side price filter. Sorting and filtering therefore apply to the products this run fetched, not to all of Naver's results.\n\n## Output per product\n\n- `productId` — Naver product ID (`nvMid`), the stable identifier\n- `channelProductId` — the seller's own product ID, when the card has one\n- `productName` — product title with Naver's `<mark>` highlight tags removed\n- `productUrl` — direct seller or marketplace URL; falls back to the Naver catalog page for catalog cards\n- `imageUrl` — product image from Naver's image CDN\n- `mallId`, `mallName` — selling store ID and name; `mallId` is `naver_model` on catalog cards, where `mallName` is omitted\n- `mallBadge` — store badge such as official or certified, when shown\n- `isAd` — `true` for sponsored cards, `false` for organic cards\n- `cardType` — Naver card type (`CATALOG_CARD`, `ORGANIC_CARD`, `AD_CARD`)\n- `searchRank` — Naver's rank within the card's own section (ads and organic cards have separate rank sequences)\n- `position` — consecutive position after filtering, sorting and de-duplication\n- `keyword` — keyword that found the product\n- `price` — displayed selling price in KRW\n- `lowPrice` — same as `price` on this source\n- `originalPrice` — list price before discount, when higher than `price`\n- `discountPercent` — discount rate shown on the card, when greater than zero\n- `highPrice` — highest price across sellers, only when a source card carries it\n- `priceCurrency` — usually `KRW`\n- `brand` — brand or maker, only when the source card carries it\n- `sellerCount` — number of competing sellers, when greater than zero\n- `reviewScore` — average review rating out of 5, when the product has reviews\n- `reviewCount` — total review count, when greater than zero\n- `purchaseCount` — recorded purchase count, when shown\n- `wishlistCount` — number of shoppers who saved the product\n- `purchaseOptions` — variants with `name` and `price`, when the card lists options\n- `categoryId` — leaf category ID\n- `categoryIds` — category IDs grouped as `l`, `m`, `s` and `ss` (large to small)\n- `category` — category names, only when a source card carries them\n- `deliveryFee` — delivery fee in KRW (`0` means free)\n- `freeDelivery` — `true` when delivery is free, `false` when paid\n- `fastDeliveryType` — Naver's fast-delivery label (`NONE`, `TODAY`, `ARRIVAL`, …)\n- `isBrandStore` — `true` for official brand stores\n- `isSmartStore` — `true` for SmartStore products\n- `isOverseas` — `true` for overseas products\n- `recordType` — `product` for every record\n- `scrapedAt` — ISO 8601 timestamp for the run\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `searchQueries` | array | `[]` | One Naver Shopping search per keyword (Korean or English). The actor reads old single-keyword `keyword` tasks too. |\n| `includeAds` | boolean | `true` | Keep sponsored cards. Every record is flagged with `isAd`. |\n| `minPrice` | integer | – | Drop fetched products below this KRW price. |\n| `maxPrice` | integer | – | Drop fetched products above this KRW price. |\n| `sort` | string | `relevance` | `relevance` / `priceLow` / `priceHigh` / `reviews` — local sort of the fetched products. |\n| `maxItems` | integer | `100` | Total products to save across all keywords (1–1000). |\n\n### Example: three keywords, ads off\n\n```json\n{\n    \"searchQueries\": [\"스마트폰\", \"무선이어폰\", \"노트북\"],\n    \"includeAds\": false,\n    \"maxItems\": 150\n}\n```\n\n### Example: price band with cheapest first\n\n```json\n{\n    \"searchQueries\": [\"에어프라이어\"],\n    \"minPrice\": 50000,\n    \"maxPrice\": 200000,\n    \"sort\": \"priceLow\",\n    \"maxItems\": 50\n}\n```\n\n### Example: most-reviewed products for an English query\n\n```json\n{\n    \"searchQueries\": [\"iphone case\"],\n    \"includeAds\": false,\n    \"sort\": \"reviews\",\n    \"maxItems\": 30\n}\n```\n\n### Example: competitive snapshot including ads\n\n```json\n{\n    \"searchQueries\": [\"강아지사료\"],\n    \"includeAds\": true,\n    \"sort\": \"relevance\",\n    \"maxItems\": 90\n}\n```\n\n## Use cases\n\n- **Price monitoring** — capture the current displayed price and discount for a list of Korean keywords\n- **Assortment research** — see which stores and brands appear for a category search\n- **Review intelligence** — sort a fetched set by rating volume to find established products\n- **Delivery benchmarking** — compare free delivery, paid delivery and fast-delivery labels across sellers\n- **Catalog enrichment** — attach Naver category IDs, images and product links to an existing feed\n- **Campaign tracking** — keep ads in the result and separate them later with `isAd`\n\n## Usage cost\n\nYou pay for Apify platform usage under your plan. The actor uses only Naver's public mobile pages: no paid data API, no residential proxy and no external credential. A typical keyword costs one page fetch, small inputs finish in seconds, and `maxItems` bounds the number of saved rows.\n\n## Notes\n\n- Each keyword returns at most **90 product cards**, including ads, because that is the complete set embedded in Naver's mobile page. With `includeAds` off you get the organic subset (roughly 40–75 cards, depending on how many ads Naver inserts).\n- Ads are mixed into the same page; read `isAd` instead of assuming every row is organic.\n- `productName` is Korean or English exactly as Naver shows it; there is no translation step. Naver sometimes includes double spaces, which are kept as shown.\n- `lowPrice` mirrors `price`. `highPrice` is usually absent on this source because a single card shows one displayed price, not every seller's offer.\n- When a keyword's page has no shopping module, that keyword yields zero rows and the run continues with the next keyword.\n- A small number of carrier-subsidy catalog cards have no listed price at all; those records omit `price` rather than inventing one. When their delivery type and fee contradict each other, delivery fields are omitted too.\n- Catalog-card `productUrl` links point at Naver's catalog page, which can redirect to a maintenance page outside Korea; the `productId` and `imageUrl` remain usable.\n- The dataset is written once per run; `scrapedAt` is identical for all rows from that run.\n\n## Limitations\n\n- **90 cards per keyword, not 90 organic products.** Naver's mobile page embeds up to 10 pages of 9 cards, and ads take 16–50 of those cards. With `includeAds` off the source ceiling is the organic subset (roughly 40–75). The page exposes no next page or cursor, so there is no way to request more from this free surface; split a broad market into narrower keywords to cover more products.\n- **No server-side pagination, sort or price filter.** `sort` and `minPrice`/`maxPrice` apply only to the cards fetched in the same run. They do not reorder or paginate Naver's full result set.\n- **No product detail, review text, specifications or stock.** Those live on Naver's shopping portal and product pages, which are gated and return blocks outside Korea. This actor does not ship those modes.\n- **No brand, maker or category names from search cards.** Brand and category names come from detail pages that are not available here. Category IDs are provided instead.\n- **Some keywords return no cards.** Very broad category words can render neither the shopping module nor the explore module, so they produce zero rows.\n- **A few catalog cards have no price.** They are carrier or catalog placeholders without a live offer, so the price fields are omitted. Drop them downstream if your workflow needs a price on every row.\n- **The page shape can change.** The actor parses Naver's embedded shopping state; if Naver changes that structure, the run reports it instead of inventing records.\n\n## FAQ\n\n**What is Naver Shopping?**\nNaver Shopping is South Korea's largest shopping search surface. It groups products from many Korean stores and shows price, reviews, delivery and seller information on one card.\n\n**Why do I get at most 90 cards per keyword?**\nNaver's mobile shopping page contains up to 10 embedded pages of 9 cards, so 90 cards is the source ceiling for each keyword. Ads take 16–50 of those cards, so with ads off you get the remaining organic cards (roughly 40–75). The page does not expose a next-page link or cursor. Run more specific keywords to cover a larger market.\n\n**Why is `sort` described as a local sort?**\nThe free mobile page ignores sort parameters. The actor therefore sorts the products it fetched, which is useful for a single keyword and for a combined multi-keyword result, but it is not a global Naver ranking.\n\n**Why are `brand`, `category` names or `highPrice` sometimes missing?**\nSearch cards do not carry a brand tag, a category name path or every seller's price. The actor omits those fields instead of guessing. Category IDs, seller count and the displayed price are still provided.\n\n**Why is there no review text, star distribution, stock or specification list?**\nThose fields exist only on Naver's product-detail and review pages. Those pages are gated and blocked from outside Korea, so this actor does not offer detail or review modes. The search card still gives the average rating and review count.\n\n**Do I need a Naver account, cookies or a proxy?**\nNo. The actor uses Naver's anonymous mobile search page. There is nothing to log in to and nothing to configure.\n\n**Can I include or exclude ads?**\nYes. Set `includeAds` to `true` or `false`. Every record also carries `isAd` so you can keep a mixed snapshot and filter it later.\n\n**Is the data live?**\nYes. Every run reads the current mobile search page. `scrapedAt` records when the snapshot was taken. Naver may personalize or rotate cards over time, so counts can differ slightly between runs.\n\n**Is this affiliated with Naver?**\nNo. This is an independent third-party actor that reads Naver's public search page. It is not affiliated with or endorsed by Naver Corporation.\n",
      "input": {
        "title": "Naver Shopping Scraper Input",
        "description": "Search Naver Shopping by keyword and collect product prices, ratings, reviews, sellers, delivery and variants.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "One Naver Shopping search per keyword, in Korean or English. Each keyword returns up to 90 product cards, including ads. Leave empty only when an old task supplies a single `keyword`.",
            "editor": "stringList",
            "default": [],
            "prefill": [
              "스마트폰"
            ]
          },
          "includeAds": {
            "title": "Include paid ads",
            "type": "boolean",
            "description": "Keep sponsored product cards in the results. Ads take a large share of the up to 90 cards, so ads-off runs return the organic subset. Every record carries `isAd`.",
            "default": true,
            "prefill": false
          },
          "minPrice": {
            "title": "Minimum price (KRW)",
            "type": "integer",
            "description": "Drop fetched products cheaper than this price in Korean Won. Applied after collection, to the products this run fetched.",
            "minimum": 0,
            "maximum": 100000000
          },
          "maxPrice": {
            "title": "Maximum price (KRW)",
            "type": "integer",
            "description": "Drop fetched products more expensive than this price in Korean Won. Applied after collection, to the products this run fetched.",
            "minimum": 0,
            "maximum": 100000000
          },
          "sort": {
            "title": "Sort products",
            "type": "string",
            "description": "Order the products this run fetched. Naver's mobile page does not accept a server-side sort, so this is a local sort, not a re-query.",
            "editor": "select",
            "enum": [
              "relevance",
              "priceLow",
              "priceHigh",
              "reviews"
            ],
            "enumTitles": [
              "Relevance (Naver's order)",
              "Price: low to high",
              "Price: high to low",
              "Most reviews"
            ],
            "default": "relevance",
            "prefill": "relevance"
          },
          "maxItems": {
            "title": "Max products",
            "type": "integer",
            "description": "Total products to save across all keywords, after ad and price filtering (1–1000). The source still caps each keyword at 90 cards.",
            "minimum": 1,
            "maximum": 1000,
            "default": 100,
            "prefill": 2
          }
        }
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Naver Shopping Price & Review Scraper Output",
        "description": "One record per Naver Shopping product — price and discount, review rating and count, sellers, delivery, variants, category IDs, image and product link.",
        "properties": {
          "products": {
            "type": "string",
            "title": "Naver Shopping products",
            "description": "Dataset containing all scraped Naver Shopping products.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Products",
              "transformation": {
                "fields": [
                  "productName",
                  "price",
                  "originalPrice",
                  "discountPercent",
                  "reviewScore",
                  "reviewCount",
                  "sellerCount",
                  "isAd",
                  "mallName",
                  "productUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.1.1",
    "imageDigest": "1c6ca15a06f4e6a7a6b31f0a315ea7795db5fbda163712a3a2f61f6fa0e40d32",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.010602222222222223
    }
  }
}