{
  "openapi": "3.0.1",
  "info": {
    "title": "Naver Shopping Scraper - Products, Prices & Reviews",
    "description": "Scrape Naver Shopping products by Korean or English keyword, or by URL. Returns 190+ fields per product, including prices, discounts, seller, ratings, reviews, category path, brand, shipping, and cross-mall price comparison.",
    "version": "3.0",
    "x-build-id": "cXWcTXatHhAKn07Xc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~naver-brand-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-naver-brand-store-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/abotapi~naver-brand-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-naver-brand-store-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/abotapi~naver-brand-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-naver-brand-store-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "How you provide the stores. \"Search\" = enter brand store names (slugs). \"URL\" = paste full brand.naver.com store links.",
            "default": "search"
          },
          "brandStores": {
            "title": "Brand stores",
            "type": "array",
            "description": "Naver brand store names (slugs), e.g. \"marschoco\". A full brand.naver.com URL works here too. Multiple supported. Entries that are not a valid slug or URL are skipped with a warning.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Brand store URLs",
            "type": "array",
            "description": "Naver brand store links. Supported: store catalog (/category/ALL, with optional st= sort, page= start page, size=), sub-category (/category/<32-hex id>), /best, in-store search (/search?q=), and a single product (/products/<id>). The bare store root is accepted as a whole-catalog alias. Unsupported hosts or pages are skipped with a warning. Multiple supported.",
            "default": [
              "https://brand.naver.com/marschoco/category/ALL",
              "https://brand.naver.com/marschoco/category/ALL?st=POPULAR&dt=LIST&page=2&size=40",
              "https://brand.naver.com/marschoco/category/fc042bb8ad8641968d876531b33aafb0",
              "https://brand.naver.com/marschoco/best",
              "https://brand.naver.com/marschoco/search?q=%EC%B4%88%EC%BD%9C%EB%A6%BF",
              "https://brand.naver.com/marschoco/products/4592947042"
            ],
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "popular",
              "recent",
              "price_asc",
              "price_desc",
              "review",
              "sales"
            ],
            "type": "string",
            "description": "Catalog ordering.",
            "default": "popular"
          },
          "maxItems": {
            "title": "Max products",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "The single result cap (split across stores). Hard ceiling 100000 products per run; 0 means that ceiling.",
            "default": 20
          },
          "fetchReviews": {
            "title": "Fetch review detail",
            "type": "boolean",
            "description": "Also fetch per-product review detail: the review summary plus individual reviews (reviewer, rating, date, text, option, photos, seller reply, helpful votes). Billed as one review-detail unit per product that returns review data.",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Individual reviews nested on each product when review detail is on. Set 0 for summary stats only. Capped at 200.",
            "default": 20
          },
          "reviewSort": {
            "title": "Review sort",
            "enum": [
              "RANKING",
              "RECENT"
            ],
            "type": "string",
            "description": "Order of the individual reviews.",
            "default": "RANKING"
          },
          "reviewType": {
            "title": "Review type",
            "enum": [
              "ALL",
              "PHOTO",
              "VIDEO"
            ],
            "type": "string",
            "description": "Which reviews to collect.",
            "default": "ALL"
          },
          "proxy": {
            "title": "Proxy",
            "type": "object",
            "description": "Connection configuration. Keep the default selection for reliable results."
          },
          "resumeFromRunId": {
            "title": "Resume from run or dataset ID",
            "type": "string",
            "description": "Skip products already collected by this previous run or dataset."
          },
          "incrementalMode": {
            "title": "Incremental mode",
            "type": "boolean",
            "description": "Track NEW, UPDATED, UNCHANGED, REAPPEARED, and EXPIRED products across scheduled runs of the same catalog. A product is UPDATED when a reported field such as price, discount, stock, status, name, category or delivery changes (changedFields lists them). Run position (rank), crawledAt, review and rating counters (averageRating, totalReviews, premiumReviews, reviewDetail) and image URL parameters never count as a change; they stay in the output. EXPIRED is only emitted after a complete, uncapped scan of every selected store.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Optional name for an incremental monitoring campaign. Leave empty to derive it from the selected stores and options."
          },
          "emitUnchanged": {
            "title": "Emit unchanged products",
            "type": "boolean",
            "description": "Incremental mode only: include products with no detected change.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired products",
            "type": "boolean",
            "description": "Incremental mode only: include products no longer found after a complete catalog scan.",
            "default": false
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Incremental mode only: extra output field names (e.g. stockQuantity) that never count as a change. Matches the name at any depth. Ignored fields stay in the output. Built-in: rank, crawledAt, averageRating, totalReviews, premiumReviews, reviewDetail.",
            "items": {
              "type": "string"
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify → Settings → Integrations, then select it here. Notion gets a page-per-product; other connectors get a best-effort write. Leave empty to skip; never changes the dataset."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL or id of the Notion page under which product pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}