{
  "openapi": "3.0.1",
  "info": {
    "title": "일본 화장품 랭킹 앳코스메 @cosme Top 50 평점·가격",
    "description": "일본 최대 뷰티 리뷰 사이트 @cosme(앳코스메)의 카테고리 하나를 고르면 그 랭킹 Top 50 전체를 한 번에 요약해 줍니다. 평점 대표값과 범위(0~7점), 가격 대표값과 범위, 리뷰 수 중앙값과 최대값, 브랜드 수, 순위 상승/하락/신규 개수, 랭킹 갱신일을 돌려줍니다. 카테고리당 $0.02. @cosme Japan top-50 ranking ratings and prices per category. Unofficial.",
    "version": "0.1",
    "x-build-id": "mZgaOOlxaHUdCxNtq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpmarketdata~cosme-beauty-market-kr/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpmarketdata-cosme-beauty-market-kr",
        "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/jpmarketdata~cosme-beauty-market-kr/runs": {
      "post": {
        "operationId": "runs-sync-jpmarketdata-cosme-beauty-market-kr",
        "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/jpmarketdata~cosme-beauty-market-kr/run-sync": {
      "post": {
        "operationId": "run-sync-jpmarketdata-cosme-beauty-market-kr",
        "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",
        "required": [
          "categories"
        ],
        "properties": {
          "categories": {
            "title": "카테고리 Categories",
            "type": "array",
            "description": "하나 이상의 @cosme 랭킹 카테고리를 '<axis>/<id>' 형식으로 적습니다. 예: 'item/1069'(リキッドクレンジング / 리퀴드 클렌징). axis는 item, effect, skin, age, pickup 중 하나입니다. 랭킹 URL 전체(https://www.cosme.net/categories/item/1069/ranking/)를 붙여 넣어도 자동으로 정규화됩니다. 읽는 것은 메인 랭킹뿐이며 ranking-rise / ranking-age / ranking-skin / ranking-search는 결과 집합 자체가 다르므로 조용히 바꿔치기하지 않고 오류로 알려 줍니다. 카테고리당 $0.02.",
            "default": [
              "item/1069"
            ],
            "items": {
              "type": "string"
            }
          },
          "pagesPerCategory": {
            "title": "카테고리당 랭킹 페이지 수(페이지당 10개)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "랭킹을 얼마나 깊게 읽을지 정합니다. @cosme는 페이지당 10개를 싣고 랭킹은 5페이지에서 끝나므로, 기본값 5가 상위 50개 전체이며 그 뒤는 존재하지 않습니다. 상위 10개만 빠르게 보려면 1로 낮추세요.",
            "default": 5
          },
          "includeIndividualItems": {
            "title": "개별 제품 출력 Include individual products",
            "type": "boolean",
            "description": "기본은 꺼짐: 한 번 실행하면 카테고리 요약 하나당 $0.02 고정입니다. 켜면 랭킹에 오른 제품마다 레코드를 하나씩 더 출력합니다(순위, 순위 등락, 브랜드, 0~7점 평점, 리뷰 수, 모든 용량·가격 쌍, 출시일, 베스트코스메 여부, 제품 URL). 건당 +$0.002. 리뷰 본문, 작성자 이름, 리뷰 사진은 절대 포함되지 않습니다 — README를 보세요.",
            "default": false
          },
          "convertToUsd": {
            "title": "가격을 달러로 환산",
            "type": "boolean",
            "description": "현재 환율(open.er-api.com)로 엔화 통계 옆에 달러 통계를 함께 붙입니다.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}