{
  "openapi": "3.0.1",
  "info": {
    "title": "Temu Product Scraper | $3/1K | Prices & Sold Count",
    "description": "Scrape Temu product listings in real-time — title, price, original price, rating, reviews, sold count, shop, images. Perfect for dropshipping research.",
    "version": "3.1",
    "x-build-id": "qgdph3tGcfnlEFMpz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apivault_labs~temu-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apivault_labs-temu-product-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/apivault_labs~temu-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-apivault_labs-temu-product-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/apivault_labs~temu-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-apivault_labs-temu-product-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": {
          "searchKeywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "Search Temu by keyword (e.g. 'wireless earbuds', 'kitchen gadgets'). The number of results and available fields vary by keyword, region, and current marketplace availability. Combine with sort and price filters below.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "relevance",
              "top_sales",
              "newest",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "How Temu sorts search results. 'Top sales' surfaces proven bestsellers (best for dropshipping research).",
            "default": "relevance"
          },
          "region": {
            "title": "Region / Country",
            "enum": [
              "us",
              "uk",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "au",
              "ca",
              "br",
              "mx",
              "jp",
              "kr",
              "pl",
              "se",
              "at",
              "be",
              "pt",
              "cz",
              "ie"
            ],
            "type": "string",
            "description": "Target country for Temu search. Prices, availability and trending products differ by region. US = default.",
            "default": "us"
          },
          "maxProductsPerKeyword": {
            "title": "Max products per keyword",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "How many products to collect per search keyword (1-300). Each is a billable result.",
            "default": 50
          },
          "minPrice": {
            "title": "Min price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop products below this USD price. 0 = no filter.",
            "default": 0
          },
          "maxPrice": {
            "title": "Max price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop products above this USD price. 0 = no filter.",
            "default": 0
          },
          "productUrls": {
            "title": "Temu Product URLs (optional)",
            "type": "array",
            "description": "Optional — scrape specific products by URL. Accepts ANY format: full SEO URLs (…-g-<id>.html), short app links (goods.html?goods_id=…), bare numeric IDs, or Temu share links. All are resolved automatically. Leave empty if using Search keywords.",
            "items": {
              "type": "string"
            }
          },
          "extractTitle": {
            "title": "Product Title",
            "type": "boolean",
            "description": "Extract product name / title.",
            "default": true
          },
          "extractPrice": {
            "title": "Price",
            "type": "boolean",
            "description": "Current price (raw text). Auto-parsed into priceUsd / currency.",
            "default": true
          },
          "extractOriginalPrice": {
            "title": "Original Price",
            "type": "boolean",
            "description": "Original price before discount (raw text).",
            "default": true
          },
          "extractDiscount": {
            "title": "Discount %",
            "type": "boolean",
            "description": "Discount percentage displayed on the listing.",
            "default": true
          },
          "extractRating": {
            "title": "Rating",
            "type": "boolean",
            "description": "Star rating 1-5.",
            "default": true
          },
          "extractReviewsCount": {
            "title": "Reviews Count",
            "type": "boolean",
            "description": "Number of reviews (auto-parsed into reviewsCountInt).",
            "default": true
          },
          "extractSoldCount": {
            "title": "Sold Count (Temu's signature metric)",
            "type": "boolean",
            "description": "Collect the sold-count label when it is publicly available. Bucketed labels such as 10K+ are parsed as a lower bound and marked in the output.",
            "default": true
          },
          "extractShop": {
            "title": "Shop / Seller",
            "type": "boolean",
            "description": "Seller / shop name.",
            "default": true
          },
          "extractDescription": {
            "title": "Description",
            "type": "boolean",
            "description": "Product description.",
            "default": true
          },
          "extractCategory": {
            "title": "Category",
            "type": "boolean",
            "description": "Category breadcrumb from Temu.",
            "default": true
          },
          "extractShipping": {
            "title": "Shipping Info",
            "type": "boolean",
            "description": "Shipping time / free-shipping badge (auto-parsed into freeShipping bool).",
            "default": true
          },
          "extractAvailability": {
            "title": "Stock Status",
            "type": "boolean",
            "description": "In-stock / limited stock flag.",
            "default": true
          },
          "extractImage": {
            "title": "Main Image",
            "type": "boolean",
            "description": "Main product image URL.",
            "default": true
          },
          "extractImages": {
            "title": "Image Gallery",
            "type": "boolean",
            "description": "Extract all product image URLs (up to 10) — needed for Shopify CSV migration with multiple images.",
            "default": true
          },
          "extractVariants": {
            "title": "Variants (color, size, ...)",
            "type": "boolean",
            "description": "Extract variant options like Color: Red, Blue / Size: S, M, L. Critical for full Shopify migration.",
            "default": true
          },
          "extractEnrichment": {
            "title": "Enrichment layers",
            "type": "boolean",
            "description": "Apply all 14 dropshipping intelligence layers (price normalizer, demand score, margin estimator, auto-category, hot product score, trend detection, risk flags). Free — no extra cost.",
            "default": true
          },
          "extractOutreachLinks": {
            "title": "Outreach / research links",
            "type": "boolean",
            "description": "Build one-click URLs to AliExpress, Amazon, eBay, Google Shopping, TikTok, YouTube reviews, Pinterest for product validation.",
            "default": true
          },
          "retailMarkup": {
            "title": "Retail markup multiplier",
            "type": "string",
            "description": "Multiplier applied to Temu cost to estimate retail price (e.g. 3.0 = 3× markup, industry rule for Amazon/Shopify dropshipping). Lower for eBay/Mercari (1.8-2.2). Higher for niche/branded (4.0-6.0).",
            "default": "3.0"
          },
          "minDemandScore": {
            "title": "Min demand score filter",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Drop products below this demand score (0-100). 0 = no filter.",
            "default": 0
          },
          "minHotProductScore": {
            "title": "Min hot-product score filter",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Drop products below this hotProductScore (0-100). 0 = no filter. Recommend ≥55 for premium-only catalog.",
            "default": 0
          },
          "onlyTrending": {
            "title": "Only trending products",
            "type": "boolean",
            "description": "Keep only products that match the Actor's current trend criteria. Products without enough source signals may be excluded.",
            "default": false
          },
          "onlyFreeShipping": {
            "title": "Only free-shipping products",
            "type": "boolean",
            "description": "Keep only products with free shipping (max margin for dropshippers).",
            "default": false
          },
          "exportFormat": {
            "title": "Export format",
            "enum": [
              "default",
              "shopify-csv",
              "google-merchant"
            ],
            "type": "string",
            "description": "default = full JSON (all fields). shopify-csv = Shopify Product CSV ready to import. google-merchant = Google Shopping feed row.",
            "default": "default"
          },
          "writeSummary": {
            "title": "Write SUMMARY + TOP_PRODUCTS",
            "type": "boolean",
            "description": "Free aggregate records to KV store: SUMMARY (avg price, margin, top categories) + TOP_PRODUCTS (top 20 by hotProductScore — your daily bestseller digest).",
            "default": true
          },
          "topProductsN": {
            "title": "TOP_PRODUCTS size",
            "minimum": 5,
            "maximum": 100,
            "type": "integer",
            "description": "How many top products to include in the TOP_PRODUCTS KV record.",
            "default": 20
          },
          "maxRetries": {
            "title": "Retries on transient failure",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "Retry count when a request returns a transient failure.",
            "default": 1
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Maximum number of products processed in parallel. The default is recommended for most runs.",
            "default": 3
          },
          "timeout": {
            "title": "Timeout per request (seconds)",
            "minimum": 15,
            "maximum": 60,
            "type": "integer",
            "description": "Maximum processing time allowed for each product request.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}