{
  "openapi": "3.0.1",
  "info": {
    "title": "Lazada Scraper [Only $1💰] | SEA Prices | Reviews | Data",
    "description": "Monitor Lazada prices and extract product, seller and review data across six Southeast Asia markets (Singapore, Malaysia, Thailand, Indonesia, Philippines, Vietnam). Track price, original price, discount, rating, units sold, seller, brand and LazMall flag per keyword. Pay only per result.",
    "version": "0.1",
    "x-build-id": "Ry2eKOPBbY2Ronm8U"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~lazada-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-lazada-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/ahmed_jasarevic~lazada-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-lazada-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/ahmed_jasarevic~lazada-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-lazada-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",
        "required": [
          "mode",
          "country"
        ],
        "properties": {
          "mode": {
            "title": "Run mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "How to start scraping:\n\n- **Search by keyword** — run one or more search queries on the selected country sites.\n- **Crawl specific URLs** — walk the exact Lazada pages you provide (search or product URLs).",
            "default": "search"
          },
          "country": {
            "title": "Country sites",
            "type": "array",
            "description": "Pick one or more Lazada country sites (multi-select dropdown). Each selected market is searched with every keyword below.",
            "items": {
              "type": "string",
              "enum": [
                "SG",
                "MY",
                "TH",
                "ID",
                "PH",
                "VN"
              ],
              "enumTitles": [
                "Singapore (lazada.sg)",
                "Malaysia (lazada.com.my)",
                "Thailand (lazada.co.th)",
                "Indonesia (lazada.co.id)",
                "Philippines (lazada.com.ph)",
                "Vietnam (lazada.vn)"
              ]
            },
            "default": [
              "SG"
            ]
          },
          "queries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Only used in **Search by keyword** mode. One or more keywords to search for on Lazada (e.g. \"headphone\", \"iphone 15\"). Each keyword is searched in every selected country.",
            "default": [
              "headphone"
            ],
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Lazada URLs",
            "type": "array",
            "description": "Only used in **Crawl specific URLs** mode. Paste one or more Lazada URLs:\n\n- Search URL: `https://www.lazada.sg/catalog/?q=iphone`\n- Product URL: `https://www.lazada.sg/products/pdp-i2866897728.html`\n\nThe country is detected from the domain; URLs outside the selected country sites are skipped.",
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerKeyword": {
            "title": "Max items per keyword / URL",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of products to scrape per keyword per country (search mode) or per URL (URL mode). The search API returns up to 80 products per page.",
            "default": 40
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Drop products whose average rating is below this value (0–5). Set to 0 to keep everything.",
            "default": 0
          },
          "fetchReviews": {
            "title": "Fetch product reviews",
            "type": "boolean",
            "description": "Scrape each product's top customer reviews. Reviews are stored as individual records in a separate **Reviews** dataset, so they stay out of the products dataset. **Tip:** the reviews API is protected by stricter anti-bot checks than search — to reliably fetch reviews, enable the **Apify Residential** proxy in the Proxy configuration below.",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on the number of reviews scraped per product when **Fetch product reviews** is on. Lazada's reviews API returns ~5 reviews per page, so larger values simply crawl more pages.",
            "default": 10
          },
          "reviewConcurrency": {
            "title": "Review fetch concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many products are fetching reviews at the same time. Each product uses its own proxy IP, so modest values are safe; 3 is a good default. Lower to 1 (fully sequential) if you see empty reviews without a residential proxy, raise up to 5 for speed with proxies enabled.",
            "default": 3
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by the crawler. **Default: Apify Residential** — Lazada blocks datacenter IPs and gates the reviews API harder than search; residential proxies are required for reliable runs. Review requests automatically rotate residential IPs up to 4 times per page.",
            "default": {
              "useApifyProxy": true,
              "groups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}