Pandamart API endpoint
Returns one product's full detail by ID: the same fields a shelf/search result carries plus category_id and, for weighable/grocery items, per-unit pricing and nutrition attributes. Resolves the store's page slug internally, so only the darkstore code and product ID are needed.
/pandamart/store/productReturns one product's full detail by ID: the same fields a shelf/search result carries (name, description, price, stock, availability, discount badge) plus category_id and, for weighable/grocery items, per-unit pricing and nutrition attributes.
The product-detail page's URL needs the store's own page slug, not just its code (a wrong or missing slug silently redirects to the store's home page instead of 404ing). This endpoint resolves the real slug itself via a store lookup, so only the darkstore code and product ID are needed — no slug parameter.
Query parameters:
market (optional, default sg) — Delivery Hero market the store belongs to. One of sg, pk, bd, hk, my, ph.code (required) — darkstore code, from /pandamart/search's code field, e.g. wsg7.product_id (required) — product ID, from a search/products/categories response's id field, e.g. 43741159.An unknown code or product_id returns 404.
Response includes market, code, id, name, description, image_url, price, original_price, sku, stock_amount, is_available, discount_badge (present only when the item currently has a discount label), category_id, and attributes (present only when the upstream reports it — base_unit, base_content_value, price_per_base_unit, nutrition_grade, each present only when non-zero/non-empty).
| Field | In the sample | Value in the sample |
|---|---|---|
| market | Has a value | “sg” |
| code | Has a value | |
| id | Has a value | |
| name | Has a value | “brightfarms Fresh Farm Eggs 15S x 60g” |
| description | Has a value | 283 characters |
| image_url | Has a value | foodpanda.dhmedia.io |
| price | Has a value | 4.6 |
| original_price | Has a value | 5.2 |
| sku | Has a value | |
| stock_amount | Has a value | 179 |
| is_available | Has a value | true |
| discount_badge | Has a value | “11% off” |
| category_id | Has a value | |
| attributes.base_unit | Has a value | “KG” |
| attributes.base_content_value | Has a value | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| market | string | No | sg | Delivery Hero market the store belongs to. One of sg, pk, bd, hk, my, ph. Defaults to sg. Allowed values: sg, pk, bd, hk, my, ph. | sg |
| code | string | Yes | Darkstore code, from /pandamart/search's code field | wsg7 | |
| product_id | string | Yes | Product ID, from a search/products/categories response's id field | 8012454 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/pandamart/store/product?market=sg&code=wsg7&product_id=8012454" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"market": "sg",
"code": "wsg7",
"id": "43741159",
"name": "brightfarms Fresh Farm Eggs 15S x 60g",
"description": "- Handy size 15 pcs fresh eggs\n- Cost effective for scrambled, fried, hard-boiled, soft-boiled, omelettes etc\n- Convenient 15s packing ideal for family daily needs and easy storage\n- Daily produced from Malaysia farms of the highest quality for budget and daily consumers\n- Low sugar",
"image_url": "https://foodpanda.dhmedia.io/image/darkstores/nv-global-catalog/sg/bb4cd103-d19e-40db-8bb4-705ca794e28b.jpg",
"price": 4.6,
"original_price": 5.2,
"sku": "3JKPN6",
"stock_amount": 138,
"is_available": true,
"discount_badge": "11% off",
"category_id": "d5e9c8cc-292b-4c61-9d6f-89b2152a53c1",
"attributes": {
"base_unit": "KG",
"base_content_value": 1
}
}
}Request schema
No body schema
Response schema
#/definitions/pandamart.productDetailResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | pandamart.ProductDetailResponse | No | ||||
| data.attributes | pandamart.ProductAttributes | No | ||||
| data.attributes.base_content_value | number | No | ||||
| data.attributes.base_unit | string | No | ||||
| data.attributes.nutrition_grade | string | No | ||||
| data.attributes.price_per_base_unit | number | No | ||||
| data.category_id | string | No | ||||
| data.code | string | No | ||||
| data.description | string | No | ||||
| data.discount_badge | string | No | ||||
| data.id | string | No | ||||
| data.image_url | string | No | ||||
| data.is_available | boolean | No | ||||
| data.market | string | No | ||||
| data.name | string | No | ||||
| data.original_price | number | No | ||||
| data.price | number | No | ||||
| data.sku | string | No | ||||
| data.stock_amount | integer | No | ||||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/pandamart/store/product?market=sg&code=wsg7&product_id=8012454" \
-H "x-api-key: $CRAWLORA_API_KEY"