Yiwugo APIen.yiwugo.com ↗
Search wholesale products and fetch full listings from en.yiwugo.com. Get prices, MOQ, supplier info, specifications, and price tiers via 2 endpoints.
What is the Yiwugo API?
The Yiwugo API provides access to wholesale product data from en.yiwugo.com, the English-language portal for the Yiwu wholesale market, through 2 endpoints. The search_products endpoint returns up to 50 products per page including price ranges, minimum order quantities, and supplier names, while get_product delivers structured detail records with tiered pricing, specifications, and multiple images for any individual listing.
curl -X GET 'https://api.parse.bot/scraper/f54a28ef-0cb8-402a-beab-a584a3a6b393/search_products?query=headphones' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace en-yiwugo-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Yiwugo English Marketplace SDK — search, browse, drill down."""
from parse_apis.en_yiwugo_com_api import Yiwugo, InputFormatInvalid
client = Yiwugo()
# Search for wholesale headphones — limit total items fetched.
for item in client.product_summaries.search(query="headphones", limit=5):
print(f"{item.product_name} ¥{item.price_min}–{item.price_max} MOQ: {item.moq}")
# Drill into the first result for full details (price tiers, specs, images).
hit = client.product_summaries.search(query="plush toys", limit=1).first()
if hit is not None:
try:
product = hit.details()
except InputFormatInvalid as e:
# Raised when the product URL is malformed or the page no longer exists.
print(f"Could not fetch details: {e.message}")
product = None
if product is not None:
print(f"\n{product.product_name}")
print(f" Supplier: {product.supplier_name} (rating: {product.supplier_rating})")
for tier in product.price_tiers:
print(f" {tier.min_quantity} → {tier.unit_price}")
for spec in product.specifications:
print(f" {spec.key}: {spec.value}")
print("\nexercised: product_summaries.search / ProductSummary.details / products.get")
Search for products on en.yiwugo.com by keyword. Returns paginated results with 50 products per page. Results include product IDs, names, prices, MOQ, supplier info, images, and location/category.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. Each page returns up to 50 products. |
| queryrequired | string | Search keyword (e.g. 'headphones', 'plush toys'). |
{
"type": "object",
"fields": {
"page": "Current page number",
"query": "The search query used",
"products": "Array of product objects with product_id, product_name, price_min, price_max, moq, supplier_name, supplier_id, image_url, product_url, category",
"total_results": "Total number of matching products"
},
"sample": {
"data": {
"page": 1,
"query": "headphones",
"products": [
{
"moq": "5 piece",
"category": "Jinhua City,Zhejiang Province",
"image_url": "https://ywgimg.yiwugo.com/product/shop_303930/normal/0/20260415/mMtxa5KmXGz8mPgj.jpg?x-oss-process=image/resize,m_lfit,h_280,w_280",
"price_max": "21.6",
"price_min": "19.8",
"product_id": "984904991",
"product_url": "https://en.yiwugo.com/product/detail/984904991.html?q=headphones&label=0",
"supplier_id": "73333946",
"product_name": "good-looking ear glowing bluetooth headphone head-mounted gaming headsets wireless stereo long battery life universal phone",
"supplier_name": "Miba Kitchenware"
}
],
"total_results": 5728
},
"status": "success"
}
}About the Yiwugo API
Search Products
The search_products endpoint accepts a query string (e.g. 'plush toys', 'LED strips') and an optional page integer for pagination. Each page returns up to 50 product objects. Each object includes product_id, product_name, price_min, price_max, moq (minimum order quantity), supplier_name, supplier_id, image_url, and location and category metadata. The total_results field tells you how many matching products exist across all pages, which is useful for building pagination logic.
Product Detail
The get_product endpoint takes a product_url — typically obtained from search_products results — and returns the full listing record. Response fields include price_tiers (an array of objects with min_quantity and unit_price), specifications (key-value pairs for attributes like material, dimensions, or color), images (an array of image URLs), moq, category from the breadcrumb path, supplier_name, supplier_url, and a description text field. Note that description may be null when the supplier has published a description as an image rather than text.
Data Coverage and Scope
Yiwugo lists products across a wide range of wholesale categories including electronics, toys, hardware, textiles, and household goods. The price_tiers field is particularly useful for sourcing decisions, since Yiwu suppliers typically offer quantity-based pricing that is not fully captured by a simple min/max price range. The supplier_url from get_product links directly to the supplier's shop page on en.yiwugo.com for further cross-referencing.
The Yiwugo API is a managed, monitored endpoint for en.yiwugo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when en.yiwugo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official en.yiwugo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a wholesale price comparison tool using
price_tiersfromget_productacross multiple supplier listings. - Monitor MOQ and price range changes for a set of product categories by periodically querying
search_products. - Populate a sourcing database with supplier names, IDs, and shop URLs for Yiwu-based manufacturers.
- Extract product specifications for catalog enrichment or structured comparison across SKUs.
- Identify category-level supplier density by paginating through
search_productsand countingtotal_resultsper query. - Feed product images and names into an import/export marketplace that lists Yiwu wholesale goods.
- Research minimum order requirements across product types using the
moqfield before contacting suppliers.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does en.yiwugo.com offer an official developer API?+
What does `price_tiers` in `get_product` actually contain?+
min_quantity (the order quantity threshold) and a unit_price (the per-unit price at or above that quantity). Suppliers on Yiwugo typically define two to five tiers, so the first tier reflects the price at MOQ and subsequent tiers reflect bulk discounts. The search_products endpoint only returns price_min and price_max summaries; the full tier structure requires a call to get_product.What happens when a product description is image-based?+
description field in get_product returns null when the supplier has published their description as an embedded image rather than plain text. The images array will still contain available product photo URLs, but no text description is extracted in that case.Does the API return supplier contact details such as phone numbers or email addresses?+
supplier_name and supplier_url (the shop page link) from get_product, and supplier_name and supplier_id from search_products. Direct contact fields are not included. You can fork this API on Parse and revise it to add an endpoint that retrieves contact information from the supplier's shop page.Is there a way to filter `search_products` results by category or price range?+
search_products endpoint currently accepts only a query keyword and a page number. Category and price filtering are not exposed as parameters. You can fork this API on Parse and revise it to add filter parameters that narrow results by category or price.