Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Wish API page →
E-commerce & Marketplaces

Wish API & Scraper

The Wish API turns wish.com, the cross-border value marketplace, into clean JSON in six actions.

6 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

search returns about 30 products a page with the product id, title, URL, image, the price Wish charges, the struck-through price where the merchant published one, the discount computed from those two, the rating, the review count, the merchant id and Wish's own variant summary such as "7 colors, 4 sizes". product opens one product: the price, the list price, the shipping cost and the two added together as total_price, every colour and size variation with its own price, shipping, merchant-declared stock and purchase cap, plus the merchant, the category path, the images, the description, the origin country, the shipping weight and the 1-5 star histogram. reviews returns buyer reviews with the rating, the comment, the date and which variation was bought, and no reviewer personal data. similar returns the related-products grid, merchant returns a store's name and rating, and trending returns the logged-out home feed. Shipping is a first-class field because on Wish it is a large share of what the buyer pays: across the 8 products checked on 2026-09-23 every one shipped at 2.99 USD, which on an 8.09 USD item is 27 percent of the total. On those 8 products the price matched the price Wish prints on its own grid 8 times out of 8, and the struck-through price matched 8 times out of 8. One ReefAPI key, no Wish account, and the standard { ok, data, meta, error } envelope.

Reference

Wish prices a product per variation, and the shipping is charged on top

A Wish listing is a set of colour and size variations, each with its own price, its own shipping and its own merchant-declared stock. The headline price is the cheapest variation; the struck-through price belongs to that same variation. The API returns each figure under its own name so the number you store is the number a shopper pays.

Product (2026-09-23, US storefront)priceshippingWhat the API returns
Spiked Punk Dog Collar, 22 variations8.09 USD2.99 USDprice 8.09, price_max 9.56, shipping 2.99, total_price 11.08, list_price null
Large Dogs Choke Training Collar, 3 variations7.57 USD2.99 USDprice 7.57, price_max 7.74, list_price 10.21, discount_percent 25.9
PlusAcc Waterproof iPhone Case, 68 variations12.39 USD2.99 USDprice 12.39, list_price 18.38, total_price 15.38, variant_count 68

A product with no reviews has no rating: Wish sends 5.0 together with a review count of 0, and the API returns rating null and review_count 0 rather than a perfect score nobody gave. Across 180 search rows only 13 carried a real rating.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/wish/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "wireless earbuds",
    "limit": 10,
    "market": "US"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "wish",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 6912.7,
    "record_count": 10,
    "bytes": 426825,
    "cache_hit": false,
    "stop_reason": "limit_reached",
    "pages": 1,
    "non_product_cards_dropped": 0,
    "storefront": "US",
    "currency": "USD",
    "upstream_requests": 2,
    "charged_credits": 3,
    "version": "1.0.0"
  },
  "data": {
    "query": "wireless earbuds",
    "storefront": "US",
    "currency": "USD",
    "total_found": 3036,
    "returned": 10,
    "results": [
      {
        "product_id": "62396dd267a0f45ff1a43acd",
        "name": "New Lightweight Wireless Bluetooth 5.2 Sport Earphones Headphones Ear Hook Run Earbuds with Mic",
        "url": "https://www.wish.com/c/62396dd267a0f45ff1a43acd",
        "price": 4.95,
        "price_display": "$4.95",
        "currency": "USD",
        "list_price": null,
        "list_price_display": null,
        "discount_percent": null,
        "price_usd": 4.95,
        "rating": 4.06,
        "review_count": 70,
        "merchant_id": "5b2220b943b3b6128889add7",
        "variant_summary": "5 colors",
        "is_flash_sale": null,
        "flash_sale_ends_at": null,
        "image": "https://canary.contestimg.wish.com/api/webimage/62396dd267a0f45ff1a43acd-medium.jpg?cache_buster=3f965f0cada8dd5400416f866053f712"
      },
      {
        "product_id": "619e0e0d22a35fec5da924fb",
        "name": "Wireless Waterproof Earbuds Fit For iPhone",
        "url": "https://www.wish.com/c/619e0e0d22a35fec5da924fb",
        "price": 12.41,
        "price_display": "$12.41",
        "currency": "USD",
        "list_price": null,
        "list_price_display": null,
        "discount_percent": null,
        "price_usd": 12.41,
        "rating": 3.89,
        "review_count": 18,
        "merchant_id": "56c9764336288a1372e489b2",
        "variant_summary": null,
        "is_flash_sale": null,
        "flash_sale_ends_at": null,
        "image": "https://canary.contestimg.wish.com/api/webimage/619e0e0d22a35fec5da924fb-medium.jpg?cache_buster=cb4fe15d5f52a4c002b25c2a50998cdd"
      },
      {
        "product_id": "6a62d1307e61bdcf5a205db3",
        "name": "Bluetooth 5.2 Ear Hook Wireless Sport Earbuds Lightweight Running Headphones With Mic, Sweat Resistant Earphones For Sports Fitness Cycling",
        "url": "https://www.wish.com/c/6a62d1307e61bdcf5a205db3",
        "price": 6.67,
        "price_display": "$6.67",
        "currency": "USD",
        "list_price": null,
        "list_price_display": null,
        "discount_percent": null,
        "price_usd": 6.67,
        "rating": null,
        "review_count": 0,
        "merchant_id": "692672c758bab6b5f77626bd",
        "variant_summary": "5 colors",
        "is_flash_sale": null,
        "flash_sale_ends_at": null,
        "image": "https://canary.contestimg.wish.com/api/webimage/6a62d1307e61bdcf5a205db3-medium.jpg?cache_buster=9bb219a0729bceb2753298517fc246f3"
      }
    ],
    "filters_applied": null,
    "rows_examined": 30,
    "filtered_out": null,
    "next_offset": 30
  }
}
Actions

What the Wish API does

ActionDescriptionConcrete use caseKey params
searchKeyword search across Wish with price, rating, shipping, deal and merchant-tier filters. Returns the price charged, the strikethrough price where Wish publishes one, rating, review count and merchant id.Pricing teams call search to get keyword search across Wish with price, rating, shipping, deal and merchant-tier filters.query, market, limit, max_pages, min_price, ...
productFull product record: price, list price, SHIPPING COST and total, every colour/size variation with its own price and stock, merchant, categories, images, description and rating histogram.Marketplace operators call product to get full product record.product_id, market, max_variants
reviewsBuyer reviews for a product with the 1-5 star histogram. No reviewer personal data is returned.Catalog enrichment teams call reviews to get buyer reviews for a product with the 1-5 star histogram.product_id, market, limit, offset
similarThe related-products grid Wish shows under a product.Retail analysts call similar to get the related-products grid Wish shows under a product..product_id, market, limit
merchantA Wish store's display name, average rating and rating count.Pricing teams call merchant to get a Wish store's display name, average rating and rating count..merchant_id, market
trendingWish's logged-out home feed — what the site puts in front of a new visitor in the chosen storefront.Marketplace operators call trending to get wish's logged-out home feed.market, limit, offset
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/wish/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"wireless earbuds","limit":10,"market":"US"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.wish.search with {"query":"wireless earbuds","limit":10,"market":"US"}.
Use cases

Who uses this API and why

  • Landed-cost price monitoring across a cross-border marketplace, with shipping and the item price kept apart instead of merged.
  • Competitive pricing research on low-cost goods: the charged price, the merchant's struck-through price and the discount computed from both.
  • Variant-level catalogue building: every colour and size with its own price, shipping, stock and purchase cap, up to several hundred per product.
  • Merchant due diligence: the store behind a listing with its rating, rating count, positive-feedback summary and business country.
  • Review mining for product quality signals, with the star histogram and the variation each review refers to, and no personal data to handle.
FAQ

Questions developers ask before integrating

Is the price the amount a buyer actually pays?

price is what Wish charges for the cheapest variation, in the storefront's currency, and shipping is charged on top of it. total_price is the two added together. On the 8 products checked on 2026-09-23 the price matched the figure Wish prints on its own product grid 8 times out of 8. Where variations differ, price_max carries the dearest one.

Why does shipping get its own field?

Because on Wish it is a large part of the bill. All 8 products checked on 2026-09-23 shipped at 2.99 USD, which on an 8.09 USD collar is 27 percent of what the buyer pays. product returns shipping, shipping_max, total_price and the flat-rate threshold, and every variation carries its own shipping figure.

How often is there a struck-through list price?

Less than half the time. Across 180 search rows in 6 categories, 73 carried a list price, which is 41 percent, and it varies sharply by category: 26 of 30 for wireless earbuds and 0 of 30 for running shoes. When there is none the field is null, never 0 and never a copy of the selling price.

Can I filter a search by price or rating?

Yes, with min_price, max_price and min_rating, and those are applied by this API to the rows it retrieves, not by Wish. Wish's own search accepts filter tokens and returns the identical results either way, so passing them on would be pretending. Raise max_pages to widen the pool and read filtered_out and rows_examined to see exactly what was removed: on a dog collar search, max_price 10 kept 34 of 71 rows and min_price 20 kept 7.

What does market do, and which values work?

It picks the Wish storefront the product is priced against, and it genuinely changes the answer: the same product came back as 12.39 USD with a 18.38 list price and 68 variations on US, and as 81.00 CNY with no list price and 1 variation on CN. US is the default and the reliable one; any is the cheapest and reports whichever storefront served it; GB is best-effort and returns MARKET_UNAVAILABLE when it cannot be reached. Every response states storefront and currency, so a number is never ambiguous.

How many results can I get for one query?

Wish serves about 30 usable products per page and the API walks up to 8 pages, so up to 150 rows per call with limit and max_pages. total_found is Wish's own match count and it is passed through untouched, but Wish runs an experiment on that number and the same query reported 156,961 on one call and a flat 500 on another, so do not use it for paging maths. Use next_offset.

Does Wish publish how many units have sold?

No. Wish exposes a num_bought counter that saturates at 10, and a product with 107 reviews still reports 10, so it is not a sales figure and this API does not return one. It also publishes no verified stock total: total_inventory reads 50 on every product. What is real is each variation's merchant-declared inventory and max_purchase_quantity, and both are returned as what they are.

What personal data comes back with reviews?

None. Wish's own review rows carry the reviewer's full name, user id, Facebook uid, signup date and profile pictures; none of that is returned. A review comes back as its rating, title, comment, date, the colour and size bought, the photo count, the helpful-vote counts and the reviewer's country code. Reviews are also thin on many listings: 4 products sampled returned 1, 2, 1 and 0 reviews.

What is the Wish API?

Wish API is a ReefAPI endpoint group for cross-border value marketplace: the price charged, the shipping on top, variants, merchant and reviews. It returns live JSON through POST requests under /wish/v1.

Is the Wish API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Wish calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Wish login or account?

No login to Wish is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Wish data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Wish API use?

Wish actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Wish from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call wish actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / wish

Wish

Cross-border value marketplace: the price charged, the shipping on top, variants, merchant and reviews.

base /wish/v16 endpoints
post/wish/v1/product3 credits

Full product record: price, list price, SHIPPING COST and total, every colour/size variation with its own price and stock, merchant, categories, images, description and rating histogram.

ParameterAllowed / rangeDescription
product_idrequiredWish product id, or any wish.com product URL.
market = USoptionalUS · GB · CN · anyStorefront to price against.
max_variants = 100optional1–400Variations to return. Wish publishes up to several hundred per product; `variant_count` always states the true total.
Try in playground →
post/wish/v1/reviews2 credits

Buyer reviews for a product with the 1-5 star histogram. No reviewer personal data is returned.

ParameterAllowed / rangeDescription
product_idrequiredWish product id, or any wish.com product URL.
market = anyoptionalUS · GB · CN · anyStorefront. Reviews do not vary by market; 'any' is cheapest.
limit = 30optional1–100How many reviews to return.
offset = 0optional0–1000Where to start, for paging.
Try in playground →
post/wish/v1/similar3 credits

The related-products grid Wish shows under a product.

ParameterAllowed / rangeDescription
product_idrequiredWish product id, or any wish.com product URL.
market = USoptionalUS · GB · CN · anyStorefront to price against.
limit = 30optional1–60How many related products to return.
Try in playground →
post/wish/v1/merchant2 credits

A Wish store's display name, average rating and rating count.

ParameterAllowed / rangeDescription
merchant_idrequiredWish merchant id, as returned by `search` (`merchant_id`) or `product` (`merchant.merchant_id`).
market = anyoptionalUS · GB · CN · anyStorefront. Store data does not vary by market.
Try in playground →