{
  "openapi": "3.0.1",
  "info": {
    "title": "Coupang Review Scraper — Ratings, Complaints & Sentiment",
    "description": "Scrape Coupang product reviews and get a computed verdict per product: rating distribution, top complaint keywords, per-option rating gaps and a one-line headline. Korean-native. Unofficial tool, not affiliated with Coupang.",
    "version": "1.0",
    "x-build-id": "Ea47t1q5U5fxjnftr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ntriqpro~coupang-review-intelligence/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ntriqpro-coupang-review-intelligence",
        "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/ntriqpro~coupang-review-intelligence/runs": {
      "post": {
        "operationId": "runs-sync-ntriqpro-coupang-review-intelligence",
        "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/ntriqpro~coupang-review-intelligence/run-sync": {
      "post": {
        "operationId": "run-sync-ntriqpro-coupang-review-intelligence",
        "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": [
          "productUrls"
        ],
        "properties": {
          "productUrls": {
            "title": "Coupang product URLs or IDs",
            "type": "array",
            "description": "Coupang product page URLs (https://www.coupang.com/vp/products/…) or bare numeric product IDs. Up to 20 per run — one summary verdict row plus the review rows come back for each product.",
            "items": {
              "type": "string"
            }
          },
          "productLabels": {
            "title": "Product labels (optional)",
            "type": "array",
            "description": "Optional display names, matched to productUrls by position (e.g. [\"우리 제품\", \"경쟁사 A\"]). When set, the verdict headline uses your label — useful when comparing many products.",
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many reviews to collect per product (1–500). The verdict row is computed from the reviews actually collected."
          },
          "sortBy": {
            "title": "Review order",
            "enum": [
              "helpful",
              "recent"
            ],
            "type": "string",
            "description": "\"helpful\" collects Coupang's best-ranked reviews first (default), \"recent\" collects newest first — use it for monitoring fresh feedback.",
            "default": "helpful"
          },
          "maxResults": {
            "title": "Max result rows",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Overall cap on delivered rows (reviews + summaries) for this run."
          },
          "maxRunSecs": {
            "title": "Time budget (seconds)",
            "minimum": 60,
            "maximum": 21600,
            "type": "integer",
            "description": "Soft deadline. When reached, the run stops fetching and delivers everything collected so far."
          },
          "monitorMode": {
            "title": "Monitor mode (weekly change alerts)",
            "type": "boolean",
            "description": "Compare this run with your previous run for the same monitor key and return only what changed — new reviews, edited reviews, deleted reviews, and how far the average rating moved. Every row gets a changeType of new / changed / removed / unchanged. Schedule this Actor weekly to get only what changed. The first run saves a baseline and returns everything. Pair it with \"Newest first\" for the cleanest weekly feed.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key (optional)",
            "type": "string",
            "description": "Name this watch, e.g. \"our-product-weekly\". Runs sharing a key are compared with each other, so you can keep several independent watches. Leave empty and the key is derived from your input automatically — which is what you want when one schedule always sends the same products."
          },
          "includeUnchanged": {
            "title": "Include unchanged reviews",
            "type": "boolean",
            "description": "Monitor mode only. Off by default, so a quiet week returns just the verdict row and the change report. Turn on to also receive every review that has not changed (each one is a result row and is charged).",
            "default": false
          },
          "cookies": {
            "title": "Your Coupang session cookie (optional)",
            "type": "string",
            "description": "Optional. Paste your own Coupang account's session cookie string (from your browser's dev tools, \"Cookie\" request header format: name=value; name2=value2) to run requests as your own logged-in session. Use only your own account — never someone else's. Never logged or stored; used only for this run's requests."
          },
          "skipEmptyReviews": {
            "title": "Skip empty reviews (star-only)",
            "type": "boolean",
            "description": "When true, reviews that have no reviewText AND no survey answers (star-only ratings) are excluded from the output and not charged. Default: false — keeps current behavior. The maxReviewsPerProduct limit applies to exported reviews only; skipped reviews do not count toward it, so more pages are fetched until the limit or run budget is reached.",
            "default": false
          },
          "reviewScope": {
            "title": "Review scope",
            "enum": [
              "product",
              "item",
              "vendorItem"
            ],
            "type": "string",
            "description": "Which reviews to return. \"product\" (default) returns every review on the product page — the behaviour this Actor has always had. \"item\" returns only reviews of the purchase option in your URL's itemId, and \"vendorItem\" only reviews of the seller listing in your URL's vendorItemId. Coupang serves reviews per product and ignores those parameters, so the whole product is read and the rest is filtered out here: you are charged for delivered rows only, and the summary row reports how many were filtered (scopeFilteredOut) and the product total (totalReviewCount). If the URL carries no matching id, that product falls back to \"product\" scope with a scope-param-missing notice.",
            "default": "product"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}