{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopee Scraper — Products, Prices & Sellers",
    "description": "Scrape Shopee product listings in Singapore, Malaysia, the Philippines, Thailand, Vietnam, Indonesia, Brazil and Mexico. Returns flat records with price, previous price, discount, rating, seller and Shopee link where available.",
    "version": "0.2",
    "x-build-id": "hfm7aB8fXwS7aFIL7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~shopee-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-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/khadinakbar~shopee-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-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/khadinakbar~shopee-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-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": "Shopee country",
            "enum": [
              "SG",
              "MY",
              "PH",
              "TH",
              "VN",
              "ID",
              "BR",
              "MX"
            ],
            "type": "string",
            "description": "Use this when selecting the Shopee marketplace: SG, MY, PH, TH, VN, ID, BR or MX. Defaults to SG and controls currency and which Shopee listings are returned. Taiwan is not supported.",
            "default": "SG"
          },
          "countries": {
            "title": "Several marketplaces in one run",
            "maxItems": 8,
            "uniqueItems": true,
            "type": "array",
            "description": "Use this to run the same searches in several Shopee marketplaces at once, for example BR, SG and ID. Each row carries a country column. Leave empty to use the single Country field. Accepted values: BR, SG, MY, ID, MX, TH, PH, VN. Prices stay in each marketplace's own currency.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Use this when you want Shopee products from keywords such as wireless earbuds or fone bluetooth. Enter one query per line; each search returns about 20 to 43 Shopee listings with price and rating. Defaults to an empty list and works together with Start URLs.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Use this for Shopee search URLs such as https://shopee.sg/search?keyword=keyboard, or full product URLs that end in the product name and IDs, such as https://shopee.com.br/Product-Name-i.1103946075.19899586753 (looked up by name; returned only on a close title match). Short /product/<shop>/<item> URLs contain no name and cannot be looked up.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "shopItemIds": {
            "title": "Shop item IDs (batch lookup)",
            "type": "array",
            "description": "Not supported: shop and item ID pairs contain no product name, so they are listed as unresolved and not charged. Use a keyword search or a full product URL instead. Format: a list of objects like {\"item_id\": 27041370670, \"shop_id\": 88201679}.",
            "default": []
          },
          "maxProducts": {
            "title": "Maximum products",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Use this to cap the number of product records returned and charged. Accepted range is 1 to 5000 products; default is 50, or the number of Shop item IDs supplied so a batch is never truncated. The actor stops charging once this cap is reached. This is not a page count. Free Apify plan runs return up to 50 results per run. One search returns up to about 100 listings; add more searches for more.",
            "default": 50
          },
          "includeRawData": {
            "title": "Include raw data",
            "type": "boolean",
            "description": "Use this for debugging Shopee schema changes or building custom downstream parsers. Defaults to false to keep MCP output compact and stable. When true, each record may include a trimmed rawData object from Shopee responses. This is not needed for normal product exports.",
            "default": false
          },
          "enrichProducts": {
            "title": "Add Shopee links, IDs and specifications",
            "type": "boolean",
            "description": "Use this to add the real Shopee product URL, shop ID, item ID, extra images and a specification list to keyword-search rows. It is on by default. It only works for the rows where the data source provides a product ID, which varies a lot by search, and it adds roughly a minute to a run. Turn it off for the fastest run. It is included in the per-product price.",
            "default": true
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Use this to keep only listings priced at or above this amount, in the marketplace's own currency. Listings without a price are dropped. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Use this to keep only listings priced at or below this amount, in the marketplace's own currency. Listings without a price are dropped. Leave empty for no maximum."
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Use this to keep only listings rated at least this many stars (0 to 5). Listings with no rating are dropped."
          },
          "minRatingCount": {
            "title": "Minimum number of ratings",
            "minimum": 0,
            "type": "integer",
            "description": "Use this to keep only listings with at least this many ratings. Listings with no rating count are dropped."
          },
          "discountedOnly": {
            "title": "Discounted listings only",
            "type": "boolean",
            "description": "Use this to keep only listings that show a previous price higher than the current price.",
            "default": false
          },
          "includeKeywords": {
            "title": "Title must contain one of",
            "type": "array",
            "description": "Use this to keep only listings whose title contains at least one of these words or phrases. Case and accents are ignored.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Title must not contain",
            "type": "array",
            "description": "Use this to drop listings whose title contains any of these words or phrases, for example case, cover or replica. Case and accents are ignored.",
            "items": {
              "type": "string"
            }
          },
          "sortResults": {
            "title": "Sort results",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "rating_desc",
              "discount_desc"
            ],
            "type": "string",
            "description": "Use this to order the rows: relevance (as returned), lowest price, highest price, best rating or biggest discount. Sorting is done within each marketplace, because prices in different currencies cannot be compared. The Maximum products cap is applied after sorting, so lowest price returns the cheapest listings found.",
            "default": "relevance"
          },
          "trackPriceChanges": {
            "title": "Track price changes between runs",
            "type": "boolean",
            "description": "Use this to compare each search with your previous run of the same search and add trackedPreviousPrice, priceChange, priceChangePct, firstSeenAt and previousRunAt to the listings that appeared in both runs. Google returns a rotating subset of Shopee listings for broad searches, so tracking works best for specific searches such as a model name; broad searches will only match some listings. History is kept in a key-value store named shopee-price-history in your own account. The first run has nothing to compare with. Schedule the Actor to monitor prices.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}