Browse Wish's category tree, search its product catalog, and pull product detail, related items, and customer reviews — all as normalized JSON from the Crawlora API, with no HTML scraping.
When to use this skill
- "What does X cost on Wish?" or "find X on Wish."
- "Browse Wish's categories" / "what's under [department] on Wish?"
- "Pull the detail/price/rating for this Wish product."
- "What are the reviews like for this Wish product?"
- "Find similar or related items to this Wish product."
Setup (one-time)
- Get a free Crawlora API key (2,000 credits/mo, no card) at https://crawlora.net.
- Set
CRAWLORA_API_KEYin the environment before running the helper. - The helper reads
CRAWLORA_API_KEYfrom the environment and sends requests tohttps://api.crawlora.net/api/v1. Missing/invalid key →401.
How it works
- Browse —
/wish/categoriesreturns Wish's own top navigation/category tree plus each category's nested filter groups where present. It's a static, site-wide taxonomy — no input, doesn't vary by search term. - Search —
/wish/search(query) searches the product catalog by keyword, offset-paginated, returning price, currency, rating, review count, and merchant id per product. Use/wish/suggest(query) first for typeahead search-term ideas if the user's query is vague. - Detail —
/wish/product/{id}(idis the 24-character hexproduct_idfrom a search result or product URL) fetches full product detail: name, description, sold-out state, aggregate rating, images, and every purchasable variation with its own price, currency, inventory, and merchant. - Related items —
/wish/product/{id}/relatedreturns similar-item rails for that product (a general-similarity rail and a faster-shipping subset where eligible). - Reviews —
/wish/product/{id}/reviewsreturns the product's normalized customer reviews. - Compare the JSON fields (price, rating, review count, merchant) across products or reviews and answer.
Full endpoint list, methods, and params: reference/endpoints.md.
Calling the API
# Search Wish (GET, key=value params):
scripts/crawlora.sh /wish/search query="wireless earbuds" count=30 | jq '.'
# Search-term suggestions:
scripts/crawlora.sh /wish/suggest query="wireless ear" | jq '.'
# Product detail:
scripts/crawlora.sh /wish/product/5f8a1c2e9b3d4a001f7e6c21 | jq '.data'
# Reviews:
scripts/crawlora.sh /wish/product/5f8a1c2e9b3d4a001f7e6c21/reviews count=50 | jq '.'
Use scripts/crawlora.sh for all requests; it keeps the API key out of command-line arguments.
Endpoint reference
See reference/endpoints.md for every Wish
endpoint this skill uses (method, path, params, description).
Examples
- Search and compare:
/wish/searchfor a keyword, compare price, rating, and review count across results to shortlist candidates. - Product due diligence:
/wish/product/{id}for price/rating/variations, then/wish/product/{id}/reviewsto summarize what buyers say before recommending it. - Find similar items:
/wish/product/{id}/relatedto pull a product's similar-item rails when the exact item is sold out or the user wants alternatives.
Notes & limits
- Credits / pay-on-success: billed only on
2xx; free tier 2,000 credits/mo. Key at https://crawlora.net. - Public data only — public Wish product/category pages; respect Wish's terms.
- Security: key lives in
CRAWLORA_API_KEYonly — never hardcode, query-param, or commit it. - Product identity is
id(a 24-character hexproduct_id), not a SKU or ASIN — take it from a search result'sproduct_idfield or a product page's URL;/wish/product,/wish/product/related, and/wish/product/reviewsall key off it. An unrecognizedidreturns404on/wish/productbut a normal empty result onrelated/reviews. /wish/searchpagination is offset-based, not page-based:offsetmust be an exact multiple ofcount, up to3 * count(so at most 4 pages reachable per query) — pass a largercount(max 70) rather than paging deep./wish/product/{id}/reviewshas no offset/cursor — the upstream source doesn't support one, so re-request with a largercount(max 200) to get more reviews, not a page/offset param.- A query with no matches, or a product with zero reviews, returns a normal empty result rather than an error.