Wish API endpoint
Returns a Wish product's related-item rails: shelves of similar products, grouped by rail (e.g. general similar items, a faster-shipping-eligible subset). id is taken from a search result's product_id field or a product page's URL. A faster-shipping rail with no eligible items, or a nonexistent id, returns a normal, empty result rather than an error.
/wish/product/{id}/relatedid is required, a 24-character hex Wish product id taken from a search result's product_id field or a product page's URL (e.g. 68b46c0356ea5dba05e9f755). count is optional, 1 to 70, defaults to 10 -- applies per rail.
Notable response behavior:
shelves always includes a similar rail (general related items) and, when eligible items exist, an express rail (a faster-shipping-eligible subset). feed_mode on each shelf identifies which rail it is; title/subtitle are Wish's own display text when available.express rail can be a well-formed, empty shelf (items: [], has_more: false) for a product with no faster-shipping-eligible similar items -- this is normal, not an error, and shelves may then contain only the similar rail.id returns 400 before any upstream request is made. An unrecognized (but well-formed) id returns a normal 200 with an empty similar shelf rather than an error -- Wish's own related-items source does not distinguish an unknown product id from a known one.price and currency_code reflect the requester's own localized pricing (e.g. a Hong Kong-geolocated request sees HKD prices); they are not always US dollars.| Field | Filled in, of 2 checked | Values in the sample |
|---|---|---|
| feed_mode | 2 | “similar” and 1 other value |
| title | 2 | “Similar Items” and 1 other value |
| has_more | 2 | true in 2 of 2 |
| items | 1 | median 2 entries |
| subtitle | 1 | “Similar Items with 5-7 Day Shipping” |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Wish product id, a 24-character hex id from a search result's product_id field | 68b46c0356ea5dba05e9f755 | |
| count | integer | No | 10 | Number of items to return per rail, 1 to 70, defaults to 10 | 10 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/wish/product/68b46c0356ea5dba05e9f755/related?count=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"product_id": "68b46c0356ea5dba05e9f755",
"shelves": [
{
"feed_mode": "similar",
"title": "Similar Items",
"has_more": true,
"items": [
{
"product_id": "5d795cac54553612b72abd6c",
"name": "New 2pcs Disc Detainer Locksmith Tools Lock Picks Set Padlock Tool",
"price": 59.64,
"currency_code": "HKD",
"rating": 5,
"merchant_id": "56cddd431e15ff78d61e0041",
"image_url": "https://canary.contestimg.wish.com/api/webimage/5d795cac54553612b72abd6c-normal.jpg",
"url": "https://www.wish.com/product/5d795cac54553612b72abd6c"
}
]
},
{
"feed_mode": "express",
"title": "Faster Shipping",
"subtitle": "Similar Items with 5-7 Day Shipping",
"has_more": false,
"items": []
}
],
"source_url": "https://www.wish.com/api/related-feed/get",
"fetched_at": "2026-08-11T13:56:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/wish.relatedItemsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | wish.RelatedItemsResponse | No | ||||
| data.fetched_at | string | No | ||||
| data.product_id | string | No | ||||
| data.shelves | array | No | ||||
| data.shelves[].feed_mode | string | No | similar | |||
| data.shelves[].has_more | boolean | No | ||||
| data.shelves[].items | array | No | ||||
| data.shelves[].items[].currency_code | string | No | ||||
| data.shelves[].items[].image_url | string | No | ||||
| data.shelves[].items[].merchant_id | string | No | ||||
| data.shelves[].items[].name | string | No | ||||
| data.shelves[].items[].price | number | No | ||||
| data.shelves[].items[].product_id | string | No | ||||
| data.shelves[].items[].rating | number | No | ||||
| data.shelves[].items[].review_count | integer | No | ||||
| data.shelves[].items[].url | string | No | ||||
| data.shelves[].subtitle | string | No | Similar Items with 5-7 Day Shipping | |||
| data.shelves[].title | string | No | Faster Shipping | |||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/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/wish/product/68b46c0356ea5dba05e9f755/related?count=10" \
-H "x-api-key: $CRAWLORA_API_KEY"