Weidian Product Detail API avatar

Weidian Product Detail API

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Weidian Product Detail API

Weidian Product Detail API

Extract detailed product data from Weidian, including title, price, reviews, specifications, images, options, and categories. Perfect for market research, e-commerce insights, and data-driven decision-making

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Pizani

Pizani

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

🛍️ Weidian Product Scraper

This Actor extracts product data from Weidian (微店) and returns a ready-to-use JSON. No browser is used — the data comes from JSON APIs, so runs are fast and cheap.


✨ What it does

  • Accepts a Weidian product_url (or a bare item ID).
  • Extracts title (translated + original Chinese), price (USD and CNY), domestic shipping fee, stock, images and SKU variants (sizes/colours with per-SKU price and stock).
  • Collects store data (name, numeric ID and shop URL).
  • Pushes the result to the Dataset (Output tab).

🔧 Input

{
"product_url": "https://weidian.com/item.html?itemID=4281670129"
}

All of these are accepted:

  • https://weidian.com/item.html?itemID=4281670129
  • https://shop1826085585.v.weidian.com/item.html?itemID=7331453669
  • 4281670129 (bare item ID)

🧾 Example Output

{
"sellerInfo": {
"shopTitle": "H12纯原总仓",
"shopID": "1826085585",
"shopLink": "https://shop1826085585.v.weidian.com"
},
"productInfo": {
"urlproduct": "https://weidian.com/item.html?itemID=7331453669",
"title": "N378310",
"titleCN": "🔑N378310",
"price": "35.33",
"priceCNY": "210.0",
"shippingFee": "10",
"minOrderQuantity": 1,
"totalStock": 9986,
"imgList": [
"https://si.geilicdn.com/weidian1790815530-3d59000001932b9007680a20e672_1080_1620.jpg",
"... more images ..."
],
"atributtes": {
"Model Size-NK/AJ": "36, 36.5, 38, 38.5, 39, US7=40, US8=41, US9=42.5"
},
"options": [
{
"name": "36",
"imgUrl": null,
"price": "35.33",
"priceCNY": "210.0",
"stock": 666,
"skuNo": "124463963907"
}
]
}
}

🧩 Field Reference

  • sellerInfo.shopTitle: Store name (original Chinese).
  • sellerInfo.shopID: Numeric Weidian shop ID.
  • sellerInfo.shopLink: Store URL, built as https://shop{shopID}.v.weidian.com.
  • productInfo.urlproduct: Item URL.
  • productInfo.title / titleCN: Translated title / original Chinese title.
  • productInfo.price / priceCNY: Base price in USD / CNY.
  • productInfo.shippingFee: Domestic shipping fee in CNY — a Weidian-specific field; 0 means the seller ships free inside China.
  • productInfo.minOrderQuantity: Minimum order quantity (usually 1).
  • productInfo.totalStock: Total stock across all SKUs.
  • productInfo.imgList: List of image URLs (main image first).
  • productInfo.atributtes: Variation groups with every available value — e.g. {"Model Size": "36, 37, 38"}. Weidian items have no spec sheet, so this is derived from the SKUs.
  • productInfo.options[]: SKU variants — name, imgUrl, price (USD), priceCNY, stock, skuNo.

⚠️ Notes on Weidian

Behaviour
Spec sheetDoes not exist on Weidian — atributtes is built from the SKU variation groups instead
SKU imagesWeidian rarely attaches an image per variant, so options[].imgUrl is often null
ShippingshippingFee exists only on Weidian (Taobao/1688 do not expose it)
Removed itemsWeidian sellers delete listings constantly; a removed item makes the run fail with a clear message
TitlesMany sellers use codes like 🔑N378310 as the title — that is the real listing title, not a parsing error

The Actor queries two independent APIs in parallel and merges them, because each one carries only half of the data: one provides the translated title, the SKU labels and the shop name; the other provides the numeric shop ID and the total stock. If one is unavailable the run still succeeds with whatever the other returned, and a third API is used as a last resort.


🛠️ How to use via API

import os
import time
import json
import requests
API_TOKEN = "YOUR_APIFY_API_KEY"
ACTOR_ID = "pizani~weidian-product-scraper"
PRODUCT_URL = "https://weidian.com/item.html?itemID=4281670129"
output_dir = "./scraped_results"
os.makedirs(output_dir, exist_ok=True)
output_file = os.path.join(output_dir, "product_data.json")
run_resp = requests.post(
f"https://api.apify.com/v2/acts/{ACTOR_ID}/runs?token={API_TOKEN}",
json={"product_url": PRODUCT_URL}
)
run_data = run_resp.json()
run_id = run_data.get("data", {}).get("id")
if not run_id:
raise Exception(f"Failed to start Actor: {run_data}")
status_url = f"https://api.apify.com/v2/actor-runs/{run_id}?token={API_TOKEN}"
while True:
status_resp = requests.get(status_url).json()
status = status_resp.get("data", {}).get("status")
if status in {"SUCCEEDED", "FAILED", "ABORTED", "TIMED-OUT"}:
break
time.sleep(5)
items_url = (
"https://api.apify.com/v2/datasets/"
f"{status_resp['data']['defaultDatasetId']}"
f"/items?clean=true&format=json&token={API_TOKEN}"
)
result = requests.get(items_url).json()
with open(output_file, "w", encoding="utf-8") as f:
json.dump(result, f, ensure_ascii=False, indent=4)

ℹ️ Notes

  • Fields can vary depending on the product and site availability.
  • USD prices come from the upstream agent's exchange rate; priceCNY is the seller's actual price.