{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopee Products Scraper: Prices, Reviews, No Login",
    "description": "Track rival prices on Shopee with no login. Get products, prices, sellers, shop reviews and flash sales from public pages, see what changed since your last run, and export JSON or CSV. Keyword search covers 9 countries.",
    "version": "0.1",
    "x-build-id": "uWIeMBx9r3TIIP4an"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cliqtomedia~shopee-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cliqtomedia-shopee-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/cliqtomedia~shopee-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cliqtomedia-shopee-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/cliqtomedia~shopee-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cliqtomedia-shopee-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": {
          "country": {
            "title": "Country",
            "enum": [
              "th",
              "id",
              "sg",
              "my",
              "ph",
              "vn",
              "tw",
              "br",
              "mx"
            ],
            "type": "string",
            "description": "Choose the Shopee market for keywords. Each pasted URL keeps its own market.",
            "default": "th"
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "auto",
              "search",
              "product",
              "shop",
              "reviews",
              "hints",
              "profile",
              "categories",
              "flash_sale"
            ],
            "type": "string",
            "description": "Auto reads the URL type. Reviews and profiles use shop or product links. Hints use keywords as prefixes. Categories and flash sales use the selected country.",
            "default": "auto"
          },
          "keywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "Product search terms, one per line. Results share one total limit. Each keyword receives a share before remaining results are collected.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": []
          },
          "startUrls": {
            "title": "Shopee URLs",
            "type": "array",
            "description": "HTTPS Shopee search, category, shop or product links, such as https://shopee.co.th/search?keyword=phone%20case. A link that is not on a supported Shopee market is skipped and reported.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": []
          },
          "productUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "HTTPS Shopee product links with shop and product IDs, such as https://shopee.co.th/product/333239573/56366098260. Each page lookup is charged; delivered products use the detailed-product rate. Extra page-data charges can apply.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": []
          },
          "shopUrls": {
            "title": "Shop URLs",
            "type": "array",
            "description": "HTTPS Shopee shop links, such as https://shopee.co.th/shop/333239573. Collect product cards from each shop.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": []
          },
          "categoryUrls": {
            "title": "Category URLs",
            "type": "array",
            "description": "HTTPS Shopee category links, such as https://shopee.co.th/Mobile-Gadgets-cat.11044458. Collect the products shown in each category.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": []
          },
          "shopId": {
            "title": "Shop ID",
            "pattern": "^\\d+$",
            "type": "string",
            "description": "Shopee shop ID. Use it alone for shop products, or add an item ID for one product."
          },
          "itemId": {
            "title": "Product ID",
            "pattern": "^\\d+$",
            "type": "string",
            "description": "Shopee product ID. A shop ID is also required."
          },
          "categoryId": {
            "title": "Category ID",
            "pattern": "^\\d+$",
            "type": "string",
            "description": "Shopee category ID for the chosen market."
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many product rows, categories or keyword hints across the run. A flash-sale item in two promotions is two rows. Explicit links are processed before keywords. Shop profiles and review summaries do not count. Review rows use Max reviews per shop.",
            "default": 10
          },
          "includeSellerDetails": {
            "title": "Add seller name and rating",
            "type": "boolean",
            "description": "Add seller name and rating from public shop pages. Turn on detailed shop metrics for followers and response metrics. One public shop lookup is charged per seller in the run. Detailed shop metrics are a separate option. This lookup is best effort: a blocked shop does not discard the product.",
            "default": true
          },
          "includeShopMetrics": {
            "title": "Add detailed shop metrics",
            "type": "boolean",
            "description": "Add shop followers, response metrics and other available profile fields. One full profile lookup is charged per shop. If a direct page cannot be read, additional page data is charged per started 100 KiB of compressed response, with at least one block per request. The default already adds shop name and rating.",
            "default": false
          },
          "ongoingOnly": {
            "title": "Current flash sale only",
            "type": "boolean",
            "description": "For flash sales, collect the current session only. Turn off to also visit the other sessions listed by Shopee. All sessions share the product limit.",
            "default": true
          },
          "promotionId": {
            "title": "Flash sale promotion ID",
            "pattern": "^\\d+$",
            "type": "string",
            "description": "Optional public flash-sale promotion ID. Leave empty for the current session."
          },
          "includeShopProfile": {
            "title": "Add shop profile row",
            "type": "boolean",
            "description": "For shop links, also return one shop profile row. Product limits count products, not shop profiles.",
            "default": true
          },
          "includeListingPrice": {
            "title": "Look up hidden prices",
            "type": "boolean",
            "description": "For a product URL with hidden prices, look for the same product ID on its shop page and in search. Extra listing pages are charged. A price can still be unavailable.",
            "default": true
          },
          "includeDetails": {
            "title": "Add product details",
            "type": "boolean",
            "description": "Open each product page for descriptions, gallery, categories, attributes and variants. Prices and stock may remain hidden. Each detailed page lookup is charged. A delivered product also uses the product-detail price instead of the product-card price. If a direct page cannot be read, additional page data is charged per started 100 KiB of compressed response, with at least one block per request.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevancy",
              "sales",
              "latest",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Ask Shopee to sort listing results. Sponsored cards and changing prices can affect the order.",
            "default": "relevancy"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Keep cards whose displayed price is at least this amount in the local currency. Products without a price are excluded."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Keep cards whose displayed price is at most this amount in the local currency. Products without a price are excluded."
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep cards with at least this star rating. Products without a rating are excluded."
          },
          "minSold": {
            "title": "Minimum units sold",
            "minimum": 0,
            "type": "number",
            "description": "Keep products with at least this many reported units sold. Products with a hidden sold count are excluded. Adds product-detail lookups."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "used"
            ],
            "type": "string",
            "description": "Ask Shopee for new products, used products, or either.",
            "default": "any"
          },
          "discountedOnly": {
            "title": "Discounted only",
            "type": "boolean",
            "description": "Keep products with a reported discount or a price below the original price.",
            "default": false
          },
          "freeShippingOnly": {
            "title": "Free shipping only",
            "type": "boolean",
            "description": "Ask Shopee for free-shipping listings. Shipping depends on the destination and account.",
            "default": false
          },
          "officialShopOnly": {
            "title": "Shopee Mall only",
            "type": "boolean",
            "description": "Ask Shopee for Shopee Mall listings.",
            "default": false
          },
          "preferredSellerOnly": {
            "title": "Preferred sellers only",
            "type": "boolean",
            "description": "Ask Shopee for preferred sellers.",
            "default": false
          },
          "codAvailableOnly": {
            "title": "Cash on delivery only",
            "type": "boolean",
            "description": "Ask Shopee for products with cash on delivery.",
            "default": false
          },
          "wholesaleOnly": {
            "title": "Wholesale only",
            "type": "boolean",
            "description": "Ask Shopee for wholesale listings.",
            "default": false
          },
          "genuineOnly": {
            "title": "Authentic products only",
            "type": "boolean",
            "description": "Ask Shopee for authenticity-guaranteed listings.",
            "default": false
          },
          "withVideoOnly": {
            "title": "With video only",
            "type": "boolean",
            "description": "Ask Shopee for product listings with video.",
            "default": false
          },
          "shippedFrom": {
            "title": "Shipped from",
            "type": "array",
            "description": "Ask Shopee for listings shipped from these locations. Use location labels from the chosen market.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": []
          },
          "brand": {
            "title": "Brand",
            "type": "array",
            "description": "Keep products with these brand names or IDs. Adds product-detail lookups; products with no reported brand are excluded.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": []
          },
          "includeText": {
            "title": "Name contains",
            "type": "string",
            "description": "Keep product names containing this text. Matching ignores letter case."
          },
          "excludeText": {
            "title": "Name does not contain",
            "type": "string",
            "description": "Exclude product names containing this text. Matching ignores letter case."
          },
          "includeReviews": {
            "title": "Add reviews",
            "type": "boolean",
            "description": "Also collect reviews from the public shop feed. Review requests and delivered reviews are charged. A product link filters the recent shop feed, so older product reviews can be outside that feed.",
            "default": false
          },
          "includeShopSummary": {
            "title": "Add review summary row",
            "type": "boolean",
            "description": "Add a free summary row with the reviews collected, scanned count and feed coverage.",
            "default": true
          },
          "maxReviewsPerShop": {
            "title": "Maximum reviews per shop",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum delivered reviews per shop or product link, up to 100000. Use 0 to continue until the source ends or the run limit is reached.",
            "default": 100
          },
          "starRatings": {
            "title": "Star ratings",
            "minItems": 1,
            "type": "array",
            "description": "Collect these star ratings, from 1 to 5. Stars are processed in the chosen order and share the review limit.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": [
              "1",
              "2",
              "3",
              "4",
              "5"
            ]
          },
          "onlyWithText": {
            "title": "Reviews with text only",
            "type": "boolean",
            "description": "Keep reviews containing a text comment.",
            "default": false
          },
          "onlyWithMedia": {
            "title": "Reviews with media only",
            "type": "boolean",
            "description": "Keep reviews containing photos or videos.",
            "default": false
          },
          "reviewsSince": {
            "title": "Reviews since",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "type": "string",
            "description": "Keep reviews created on or after this ISO date and time, such as 2026-01-01T00:00:00Z."
          },
          "hintExpansion": {
            "title": "Hint expansion",
            "enum": [
              "none",
              "alphabet",
              "alphanumeric"
            ],
            "type": "string",
            "description": "For keyword hints, also try each letter or letter and digit after the prefix. More prefixes require more requests.",
            "default": "none"
          },
          "onlyNew": {
            "title": "New products only",
            "type": "boolean",
            "description": "Return products not delivered by an earlier run using the same history. History read and write fees apply even when no products are returned. Known direct product links can be skipped before fetching.",
            "default": false
          },
          "onlyChanges": {
            "title": "New products and price changes",
            "type": "boolean",
            "description": "Return new products and products with a different displayed price. The first run creates the history. History read and write fees apply even when no prices change.",
            "default": false
          },
          "stateName": {
            "title": "History name",
            "pattern": "^[a-zA-Z0-9_-]{1,40}$",
            "type": "string",
            "description": "History name shared by your monitoring runs. Use a different name for a separate product watchlist.",
            "default": "default"
          },
          "stateRetentionDays": {
            "title": "History retention days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep delivered product history for this many days. Older history expires; the oldest records are also pruned when history storage fills. Monitoring continues.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional proxy for Shopee requests. The default uses direct HTTP. Use datacenter or your own proxy. Residential and Unblocker selections are not accepted here; detailed page requests use an automatic connection and a separate page data price."
          },
          "deliveryConnector": {
            "title": "Send results to (optional)",
            "type": "string",
            "description": "Your Slack, Notion or other MCP connector. After the run the Actor posts a short summary there. Connect services once in Apify Console → MCP connectors."
          },
          "deliveryTarget": {
            "title": "Notion page or channel (optional)",
            "type": "string",
            "description": "Where to post the summary: a Notion page link (each run is added on top of that page) or a Slack channel ID. Leave empty to let the connector decide."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}