Com APIpconline.com.cn ↗
Access PConline product data via API: search products, list categories, fetch full specs, and get retailer pricing for tech hardware listed on pconline.com.cn.
What is the Com API?
The PConline API provides 6 endpoints covering China's major tech product comparison database, returning product names, prices, specifications, and retailer mall pricing. Starting with get_product_categories to discover available categories, you can drill down through list_products_by_category, retrieve granular specs via get_product_specs, and pull per-retailer pricing via get_product_price — all from a single structured source.
curl -X GET 'https://api.parse.bot/scraper/f7f45adc-1a2d-46a2-8ce2-d2bce794cae0/search_products?query=iPhone' \ -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 pconline-com-cn-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.
"""PConline Product API — browse categories, list products, drill into specs and pricing."""
from parse_apis.pconline_product_api import PConline, Category_, ProductNotFound
client = PConline()
# List all available product categories
for cat in client.categories.list(limit=5):
print(cat.name, cat.url)
# Browse mobile products with the Category enum
product = client.products.list(category=Category_.MOBILE, limit=1).first()
if product:
print(product.name, product.price_text, product.score)
# Drill into full detail for this product
detail = product.detail.get()
print(detail.full_name, detail.price, detail.available_versions)
# Get technical specifications
specs = product.specs.get()
print(specs.specs)
# Get retailer pricing
pricing = product.pricing.get()
print(pricing.reference_price)
for mp in pricing.mall_prices:
print(mp.mall, mp.price)
# Typed error handling
try:
bogus = client.product(url="https://product.pconline.com.cn/mobile/fake/0000000.html")
bogus.detail.get()
except ProductNotFound as exc:
print(f"Not found: {exc.url}")
print("exercised: categories.list / products.list / detail.get / specs.get / pricing.get")
Search for products by keyword. Note: may be blocked by slider captcha on some IPs.
| Param | Type | Description |
|---|---|---|
| page | string | Page number |
| queryrequired | string | Search keyword |
{
"type": "array",
"fields": {
"url": "string",
"name": "string",
"price": "string",
"score": "string",
"description": "string"
},
"sample": {
"status": "blocked",
"message": "Blocked by ip_ban",
"block_type": "ip_ban"
}
}About the Com API
Category and Product Discovery
The get_product_categories endpoint returns all top-level categories from the PConline product homepage as an array of objects with name and url. Once you have a category, list_products_by_category accepts a category slug (verified values include mobile, notebook, tabletpc, dc, smartwatch, lcd_tv, and ele) and an optional page parameter for pagination. Each result object contains name, url, price, description, and score.
Product Detail and Specifications
get_product_detail takes a full canonical product URL and returns a structured object with name, full_name, price, available_versions, key_specs, mall_prices, and related_articles. For deeper technical data, get_product_specs accepts the same product URL — the endpoint automatically converts it to the specs page variant — and returns a flat object where each key is a spec name and each value is the corresponding spec string.
Pricing and Search
get_product_price converts a product URL to the price page and returns reference_price alongside a mall_prices array. Each entry in that array carries mall, product_name, price, and a direct url to the retailer listing. Note that mall_prices may be empty for products not yet commercially released. The search_products endpoint accepts a query string and optional page, returning name, url, price, score, and description for matched products; some IP ranges may encounter slider captcha challenges that affect this endpoint's reliability.
The Com API is a managed, monitored endpoint for pconline.com.cn — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pconline.com.cn 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 pconline.com.cn 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 Chinese tech market price tracker by polling
get_product_priceacross a list of product URLs and loggingreference_priceandmall_pricesover time. - Aggregate full hardware specification sheets for laptops or smartphones using
get_product_specsto feed a product comparison tool. - Monitor new product launches in a category by periodically calling
list_products_by_categorywith themobileornotebookslug and detecting new entries. - Enrich an e-commerce catalog with PConline
scoreandkey_specsby matching product names fromsearch_productsresults. - Collect retailer diversity data by extracting the
mallfield fromget_product_priceresponses to see which Chinese retailers stock a given product. - Populate a product database with structured
available_versionsfromget_product_detailto surface configuration variants for a specific model. - Cross-reference
related_articlesreturned byget_product_detailto identify editorial coverage for specific hardware releases.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does PConline have an official developer API?+
What does `get_product_specs` actually return, and how is it different from `get_product_detail`?+
get_product_specs returns a flat key-value object where every key is a technical specification name (e.g. screen size, battery capacity, processor model) and every value is the corresponding string. get_product_detail returns higher-level summary data including name, full_name, price, available_versions, and mall_prices — it includes key_specs but that is a shorter subset, not the full specification sheet.Are there any reliability quirks I should know about for the search endpoint?+
search_products may be blocked by a slider captcha depending on the originating IP address. If you need reliable product discovery, using list_products_by_category with a known category slug is the more stable path, as that endpoint does not carry the same captcha risk noted in the description.Does the API return user reviews or ratings beyond the product score?+
score field in listing and search results, but individual user reviews, review text, and review counts are not exposed across any of the 6 endpoints. You can fork this API on Parse and revise it to add an endpoint targeting the product review pages.Can I retrieve pricing history or price trends for a product?+
get_product_price returns the current reference_price and active mall_prices, with no historical pricing data in the response. You can fork this API on Parse and revise it to store and expose snapshots if you need trend data.