{
  "openapi": "3.0.1",
  "info": {
    "title": "Naver Shopping Scraper - Prices, Stock, Sellers & Reviews",
    "description": "Scrape Naver Shopping (네이버쇼핑) by keyword, category, catalogue or product link from $0.90 per 1,000 products: price, discount, stock, store, rating, reviews, delivery, categories. Add Smart Store and Brand Store records, every seller's offer, review stats and reviews. Monitor new products. No login.",
    "version": "0.1",
    "x-build-id": "55szyDUSjEBUenriT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/topapi~naver-shopping-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-topapi-naver-shopping-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/topapi~naver-shopping-scraper/runs": {
      "post": {
        "operationId": "runs-sync-topapi-naver-shopping-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/topapi~naver-shopping-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-topapi-naver-shopping-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "title": "🔤 Keywords",
            "type": "array",
            "description": "Search terms as a Korean shopper types them, e.g. \"무선 이어폰\", \"캠핑의자\", \"airpods\". Korean terms match far more products: Naver titles are Korean.",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "🔗 Links or ids",
            "type": "array",
            "description": "Search links (search.shopping.naver.com/ns/search?query=…, sort kept), category links, catalogue links (…/catalog/<id>), store product links (smartstore.naver.com/<store>/products/<id>, brand.naver.com/<store>/products/<id>), or bare nvMid / catalogue ids.",
            "items": {
              "type": "string"
            }
          },
          "categoryIds": {
            "title": "🗂️ Category ids",
            "type": "array",
            "description": "Browse a Naver Shopping category instead of searching, e.g. \"50000151\" (laptops). Any level works; every row carries lCatId, mCatId, sCatId and ssCatId.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "REL",
              "PURCHASE",
              "REVIEW",
              "LOW_PRICE",
              "HIGH_PRICE",
              "RECENT"
            ],
            "type": "string",
            "description": "The order Naver lists products in (네이버 랭킹순 / 구매많은순 / 리뷰많은순 / 낮은 가격순 / 높은 가격순 / 등록일순). Newest reaches only recently listed products.",
            "default": "REL"
          },
          "minPrice": {
            "title": "Minimum price (KRW)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products selling at or above this price after the seller's discount, e.g. 30000."
          },
          "maxPrice": {
            "title": "Maximum price (KRW)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products selling at or below this price after the seller's discount, e.g. 100000. With 'Price: low to high' the search stops once prices pass it."
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only products with at least this average review score (0-5), e.g. 4.5."
          },
          "minReviews": {
            "title": "Minimum review count",
            "minimum": 0,
            "type": "integer",
            "description": "Only products with at least this many reviews, e.g. 100."
          },
          "freeShippingOnly": {
            "title": "Free shipping only",
            "type": "boolean",
            "description": "Only products Naver marks as free delivery (무료배송)."
          },
          "fastDeliveryOnly": {
            "title": "Fast delivery only",
            "type": "boolean",
            "description": "Only products with a today / tomorrow arrival promise (오늘출발, 도착보장)."
          },
          "officialStoresOnly": {
            "title": "Official stores only",
            "type": "boolean",
            "description": "Only Brand Stores and stores Naver certifies as official (공식인증)."
          },
          "brandStoresOnly": {
            "title": "Brand Stores only",
            "type": "boolean",
            "description": "Only products sold by a Naver Brand Store (브랜드스토어)."
          },
          "inStockOnly": {
            "title": "In stock only",
            "type": "boolean",
            "description": "Leave out products whose stock is 0."
          },
          "excludeOverseas": {
            "title": "Exclude overseas sellers",
            "type": "boolean",
            "description": "Leave out products shipped from abroad (해외직구)."
          },
          "brandName": {
            "title": "Brand or maker name",
            "type": "string",
            "description": "Only products whose name or catalogue name contains this text, e.g. \"삼성\" or \"LG\"."
          },
          "excludeKeywords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Leave out products whose name contains any of these words, e.g. \"중고\" (used), \"리퍼\" (refurbished).",
            "items": {
              "type": "string"
            }
          },
          "includeDetail": {
            "title": "Store record",
            "type": "boolean",
            "description": "The store's own record of the product (Smart Store and Brand Store): category names, brand, maker, model, stock, seller/Naver discount split, delivery company, seller tags, the disclosure table (상품정보제공고시), and the store's company, CEO, business type, grade and sales count."
          },
          "includeSellers": {
            "title": "Every seller's offer",
            "type": "boolean",
            "description": "For price-comparison (catalogue) products: every seller's offer, cheapest first, with price, delivery fee, total, rating, reviews and link; plus the lowest price."
          },
          "maxSellersPerProduct": {
            "title": "Max seller offers per product",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many seller offers to keep per catalogue product, cheapest first (1-100).",
            "default": 30
          },
          "includeReviewStats": {
            "title": "Review stats",
            "type": "boolean",
            "description": "Star breakdown (1-5), photo / video / text / best review counts, the last six months' count and score, and the topic votes Naver shows (e.g. 성능: 좋아요 89%)."
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Buyer reviews of each product as their own rows (type \"review\"): score, text, date, option bought, photos, videos, repurchase flag. $0.00045 per review."
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many reviews to collect for each product (1-5000).",
            "default": 20
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "RANKING",
              "RECENT",
              "HIGHEST",
              "LOWEST"
            ],
            "type": "string",
            "description": "Which reviews come first. Lowest score first is the fastest way to complaints.",
            "default": "RANKING"
          },
          "reviewStars": {
            "title": "Review stars",
            "enum": [
              "all",
              "5",
              "4",
              "3",
              "2",
              "1"
            ],
            "type": "string",
            "description": "Only reviews with exactly this score.",
            "default": "all"
          },
          "reviewsWithMediaOnly": {
            "title": "Photo / video reviews only",
            "type": "boolean",
            "description": "Only reviews that carry photos or videos (포토/동영상 리뷰)."
          },
          "reviewsSince": {
            "title": "Reviews since",
            "type": "string",
            "description": "Only reviews written on or after this date (YYYY-MM-DD). Pairs with Newest first and a schedule."
          },
          "monitorMode": {
            "title": "Only new products",
            "type": "boolean",
            "description": "Deliver only products not delivered by an earlier run with the same monitor store, among the top ranks set by 'Max products per search'. Pairs with a daily schedule; a run with nothing new charges nothing."
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that remembers delivered products, e.g. \"earbuds-daily\". Use one name per watch list."
          },
          "emitChanges": {
            "title": "Also price and stock changes",
            "type": "boolean",
            "description": "In monitor mode, also deliver known products whose price changed or that sold out / came back, with changeType, previousPrice and priceChangePct."
          },
          "trackProducts": {
            "title": "Track my products' rank",
            "type": "array",
            "description": "Your products (nvMid, Smart Store product number or catalogue id). Free rank rows per keyword and sort in the RANK_SUMMARY record: rank, price and gap to #1.",
            "items": {
              "type": "string"
            }
          },
          "trackStores": {
            "title": "Track my stores' rank",
            "type": "array",
            "description": "Store names or Smart Store ids, e.g. \"필립스 오디오 공식몰\" or \"philipsav_official\". Free rows: best rank, products in the list and their ranks.",
            "items": {
              "type": "string"
            }
          },
          "maxProductsPerKeyword": {
            "title": "Max products per search",
            "minimum": 1,
            "maximum": 60000,
            "type": "integer",
            "description": "Products to deliver per keyword, link or category (in monitor mode: how many top ranks to watch). Naver lists 10,000 per sort order; above that the run continues with the other sort orders (up to 60,000), skipping repeats.",
            "default": 100
          },
          "maxItems": {
            "title": "Max products in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many products across all searches. 0 = no total cap.",
            "default": 0
          },
          "compact": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Core fields only (name, prices, rating, reviews, stock, store, delivery, categories, link): smaller rows for spreadsheets, AI agents and MCP."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Keep the default: the actor tries the cheapest route first and uses Korean residential IPs only where Naver needs them. A proxy of your own is used for every call.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "KR"
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Detail and review requests in flight at once (1-16).",
            "default": 6
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}