{
  "openapi": "3.0.1",
  "info": {
    "title": "📊 Naver DataLab Shopping Insight",
    "description": "Collect shopping trend data from Naver DataLab API — Korea's #1 e-commerce intelligence. Category trends, keyword trends, demographic breakdowns (age, gender, device). Official API-based, fast & reliable.",
    "version": "1.0",
    "x-build-id": "ldbid8YKjcgxcJnbe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hanpro~naver-datalab-shopping-insight/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hanpro-naver-datalab-shopping-insight",
        "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/hanpro~naver-datalab-shopping-insight/runs": {
      "post": {
        "operationId": "runs-sync-hanpro-naver-datalab-shopping-insight",
        "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/hanpro~naver-datalab-shopping-insight/run-sync": {
      "post": {
        "operationId": "run-sync-hanpro-naver-datalab-shopping-insight",
        "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": {
          "naverClientId": {
            "title": "Naver Client ID",
            "type": "string",
            "description": "Your Naver API Client ID. Get it FREE at https://developers.naver.com → My Application → Register → Select 'DataLab (Shopping Insight)'"
          },
          "naverClientSecret": {
            "title": "Naver Client Secret",
            "type": "string",
            "description": "Your Naver API Client Secret. Found in your application settings at developers.naver.com"
          },
          "queryMode": {
            "title": "Query Mode",
            "enum": [
              "category",
              "keyword",
              "full_analysis",
              "popular_keywords"
            ],
            "type": "string",
            "description": "Choose what to analyze: 'category' for shopping category trends, 'keyword' for keyword search trends within a category, 'full_analysis' for comprehensive analysis with all breakdowns, 'popular_keywords' for Top 500 trending keywords ranking (no API key needed).",
            "default": "category"
          },
          "startDate": {
            "title": "Start Date",
            "type": "string",
            "description": "Start date for the analysis period (YYYY-MM-DD). Minimum: 2017-08-01",
            "default": "2025-01-01"
          },
          "endDate": {
            "title": "End Date",
            "type": "string",
            "description": "End date for the analysis period (YYYY-MM-DD).",
            "default": "2026-03-29"
          },
          "timeUnit": {
            "title": "Time Unit",
            "enum": [
              "date",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Time granularity for the trend data.",
            "default": "month"
          },
          "analysisTypes": {
            "title": "Analysis Types",
            "type": "array",
            "description": "Which analyses to run. 'trend' = overall trend, 'device' = PC vs Mobile, 'gender' = Male vs Female, 'age' = age group breakdown.",
            "items": {
              "type": "string"
            },
            "default": [
              "trend"
            ]
          },
          "categories": {
            "title": "Shopping Categories",
            "type": "array",
            "description": "Categories to analyze (max 3). Each needs a 'name' and 'param' (category code). Common codes: 50000000=Fashion, 50000002=Beauty, 50000003=Digital, 50000004=Furniture/Interior, 50000006=Food, 50000008=Living/Health. Find codes from Naver Shopping URL cat_id parameter.",
            "default": [
              {
                "name": "패션의류",
                "param": [
                  "50000000"
                ]
              },
              {
                "name": "화장품/미용",
                "param": [
                  "50000002"
                ]
              }
            ]
          },
          "keywordCategory": {
            "title": "Keyword Category Code",
            "type": "string",
            "description": "Category code to search keywords within (used in 'keyword' mode). Example: '50000000' for Fashion.",
            "default": "50000000"
          },
          "keywords": {
            "title": "Keywords to Track",
            "type": "array",
            "description": "Keywords to analyze within the category (max 5). Each needs a 'name' (display label) and 'param' (array with exactly 1 search term). To compare multiple terms, add them as separate keyword objects.",
            "default": [
              {
                "name": "원피스",
                "param": [
                  "원피스"
                ]
              },
              {
                "name": "니트",
                "param": [
                  "니트"
                ]
              }
            ]
          },
          "device": {
            "title": "Device Filter",
            "enum": [
              "",
              "pc",
              "mo"
            ],
            "type": "string",
            "description": "Filter by device type. Empty = all devices.",
            "default": ""
          },
          "gender": {
            "title": "Gender Filter",
            "enum": [
              "",
              "m",
              "f"
            ],
            "type": "string",
            "description": "Filter by gender. Empty = all genders.",
            "default": ""
          },
          "ages": {
            "title": "Age Group Filter",
            "type": "array",
            "description": "Filter by age groups. Empty array = all ages. Codes: '10'=10s, '20'=20s, '30'=30s, '40'=40s, '50'=50s, '60'=60+",
            "items": {
              "type": "string"
            },
            "default": []
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}