iPrice APIiprice.my ↗
Access iPrice Malaysia product listings, price comparisons, coupons, flash sales, brand/store data, and news articles via a single REST API with 9 endpoints.
What is the iPrice API?
The iPrice Malaysia API exposes 9 endpoints covering product search, category browsing, brand listings, store directories, flash sale deals, coupon codes, and news articles across Malaysian online retailers. The search_products endpoint returns paginated results with per-product title, price, currency, store, and image fields, letting you query thousands of listings from a single call.
curl -X GET 'https://api.parse.bot/scraper/9a07fc78-2b92-4504-b960-fe70fa18cbaa/search_products?page=1&query=laptop' \ -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 iprice-my-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: iPrice Malaysia SDK — price comparison across Malaysian retailers."""
from parse_apis.iprice_malaysia_api import IPrice, Category, NotFoundError
iprice = IPrice()
# Search for products across all Malaysian retailers
for product in iprice.products.search(query="laptop", limit=5):
print(product.title, product.price, product.symbol, product.store.name)
# Browse categories and drill into one for its products
cat = iprice.categories.list(limit=1).first()
if cat:
print(cat.name, cat.key, cat.click_count)
for product in cat.products(limit=3):
print(product.title, product.price, product.currency)
# List all available brands
for brand in iprice.brands.list(limit=5):
print(brand.name, brand.key)
# Get flash sale deals
for deal in iprice.flashsaleproducts.list(limit=3):
print(deal.title, deal.price, deal.orign_price, deal.state)
# Typed error handling around a constructible category lookup
try:
phones = iprice.category("mobile_phone")
for p in phones.browse(limit=2):
print(p.title, p.shop.name)
except NotFoundError as exc:
print(f"Category not found: {exc}")
# Get latest news articles
for article in iprice.articles.list(limit=3):
print(article.title, article.category, article.time)
print("exercised: products.search / categories.list / category.products / brands.list / flashsaleproducts.list / category.browse / articles.list")
Full-text search across Malaysian online retailers (Shopee, Lazada, AliExpress, TikTok Shop, etc.). Returns paginated product listings with price, store, shop, and currency for each item. Also includes store-level aggregation in `filter` and a recommended product group when available. 25 items per page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based) |
| queryrequired | string | Search keyword (e.g. 'laptop', 'iphone 15', 'air conditioner') |
{
"type": "object",
"fields": {
"list": "array of product objects with title, price, currency, store, shop, and image",
"size": "integer number of products per page (25)",
"total": "integer total number of matching products",
"filter": "object mapping store identifiers to store metadata including name, count, and image",
"result": "boolean indicating success",
"total_page": "integer total number of pages"
},
"sample": {
"data": {
"list": [
{
"oid": "78944731.4981752514",
"shop": {
"name": "famegrabber",
"location": "W.P. Kuala Lumpur"
},
"image": "https://img2.biggo.com/190x,sbHylat8uazwjK7IbwyTd6uUypmUWcd_gtV2inhkrfK4/https://cf.shopee.com.my/file/bd459aec2d2b1b58337ea9f5d977a93d",
"price": 389,
"store": {
"name": "Shopee",
"image": "https://biggo-site-type.ap-south-1.linodeobjects.com/my_bid_shopeemy_1630386346"
},
"title": "Dell Core Core i5 / i3 Laptop HDMI Webcam Laptop Latitude E6420/E6430/E5420",
"nindex": "my_bid_shopeemy",
"symbol": "RM",
"currency": "MYR"
}
],
"size": 25,
"total": 641610,
"filter": {
"my_bid_shopeemy": {
"name": "Shopee",
"count": 551640,
"image": "https://biggo-site-type.ap-south-1.linodeobjects.com/my_bid_shopeemy_1630386346"
}
},
"result": true,
"total_page": 25665
},
"status": "success"
}
}About the iPrice API
Product Search and Category Browsing
The search_products endpoint accepts a query string and an optional page integer, returning an array of product objects alongside a filter map that groups results by store identifier — useful for narrowing down which retailers carry a given item. The get_products_by_category endpoint works the same way but scopes results to a category_key obtained from get_categories, which returns every category's key and name. get_product_detail takes a product slug and returns price ranges across stores, giving you a cross-retailer view for a specific product group.
Stores, Brands, and Deals
get_all_stores returns a flat list of every retailer on iPrice Malaysia, including each store's name, image, tags, and coupon_count. get_brand_list delivers an alphabetically indexed object mapping letters to arrays of brand objects, each with a name and key. get_flash_sale_products is paginated and returns an empty list when no active sales are running — so callers should check the size field before processing results.
Coupons and News
get_coupons returns an array of coupon objects, each carrying store, num_offers, discount, url, slug, and logo — enough to build a working deals page without supplemental lookups. get_news_articles delivers article objects with title, url, category, time, and image, covering tech and shopping topics published by iPrice Malaysia. Neither endpoint takes input parameters, so they always return the current full set.
Pagination and Response Envelope
All paginated endpoints share a consistent envelope: list for the item array, total for the full match count, total_page for page count, and a boolean result indicating success. The search_products and get_flash_sale_products endpoints additionally return a size field reflecting items per page.
The iPrice API is a managed, monitored endpoint for iprice.my — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when iprice.my 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 iprice.my 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 price-comparison widget showing the cheapest Malaysian retailer for a given product using
search_productsand thefilterstore map. - Populate a deals aggregator with live coupon codes from
get_coupons, displaying each store'snum_offersanddiscountfields. - Render a Malaysian brand directory indexed A–Z using the alphabetically keyed
dataobject fromget_brand_list. - Send flash sale alerts to users by polling
get_flash_sale_productsand checking whethersizeis greater than zero. - Display a store directory page with retailer logos and coupon counts pulled directly from
get_all_stores. - Feed a tech news section with iPrice editorial content using
title,category,time, andimagefromget_news_articles. - Scope product browsing to a specific vertical by chaining
get_categoriesto retrieve keys and thenget_products_by_categoryto fetch listings.
| 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 iPrice Malaysia have an official public developer API?+
What does `get_product_detail` return, and how does it differ from `search_products`?+
get_product_detail takes a product slug and returns a list of matching product objects showing price and store details across all retailers carrying that product group — focused on cross-store price comparison for one item. search_products takes an open-ended query string and returns a broader paginated set of results with a filter object breaking down matches by store, making it better suited for keyword discovery.Does the API cover product reviews or user ratings?+
Is the flash sale endpoint reliable when no sales are active?+
get_flash_sale_products explicitly returns an empty list array with a size of zero when no flash sales are running. The result field will still be true. Callers should gate downstream processing on size > 0 rather than assuming a non-empty list.Does the API support filtering products by price range or specific stores?+
search_products nor get_products_by_category accept price-range or store-filter parameters directly. The filter field in search_products responses does expose store-level metadata you can use for client-side grouping, but server-side filtering by price is not currently available. You can fork the API on Parse and revise it to add price-range or store-scoped filtering as an endpoint parameter.