Wish API

The price Wish charges, and the shipping it charges on top

endpoints
6
credits per call
2–3

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

POST/wish/v1/search
Real result, captured Sep 23, 20263 of 10
namepricereview_countvariant_summary
New Lightweight Wireless Bluetooth 5.2 Sport Earphones Headphon…4.95 USD705 colors
Wireless Waterproof Earbuds Fit For iPhone12.41 USD18—
Bluetooth 5.2 Ear Hook Wireless Sport Earbuds Lightweight Runni…6.67 USD05 colors
6 active endpoints, on 2 and 3 credit tiers.search · product · reviews · similar · merchant · trendingDetails ↓OpenAPI 3.0 spec ↗

3 credits per call≈ $3/1,000 calls1,000 free credits, no card

Get a free API key
Try it live

Run the call yourself, on the real endpoint

Change a parameter and press Try it. The response on the right is what your code will receive.

Wish API

3 of 6 endpoints, ready to run

View docs ↗

About 30 products a page: id, title, URL, image, the price charged, the struck-through price where there is one, the discount, rating, review count, merchant id and Wish's own variant summary.

3 credits1 required · 6 optional
POST/wish/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

Try every endpoint in the playground

Endpoints

What Wish endpoints does ReefAPI ship?

6 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

  • search

    3 cr

    Keyword search across Wish with price, rating, shipping, deal and merchant-tier filters.

    required
    query
    optional
    market, limit, max_pages, min_price, max_price, min_rating
  • product

    3 cr

    Full product record.

    required
    product_id
    optional
    market, max_variants
  • reviews

    2 cr

    Buyer reviews for a product with the 1-5 star histogram.

    required
    product_id
    optional
    market, limit, offset
  • similar

    3 cr

    The related-products grid Wish shows under a product.

    required
    product_id
    optional
    market, limit
  • merchant

    2 cr

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

    required
    merchant_id
    optional
    market
  • trending

    3 cr

    Wish's logged-out home feed.

    required
    —
    optional
    market, limit, offset

Every parameter, every allowed value →

Missing a Wish endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
How it works

How the Wish API works

Wish is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

Authenticate01
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 632 engines.

Call02
POST /wish/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

Pay03
2 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and nothing is cached: every call reads the source live.

Read04
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Recipe

From a keyword to the landed cost of one product

Two calls take you from a search to the price, the shipping and every variation of a single listing.

01search
POST/wish/v1/search
{"query": "wireless earbuds", "limit": 30, "market": "US"}

About 30 products with the price charged, the struck-through price where there is one, the rating and the merchant id. Take results[].product_id. In the 2026-09-23 check, 6 of 6 searches returned a full 30 rows.

02product
POST/wish/v1/product
{"product_id": "<results[0].product_id>", "market": "US"}

price, shipping and total_price, plus every colour and size with its own price and merchant-declared stock. On 8 products checked, the price matched the figure Wish prints on its own grid 8 of 8, and the struck-through price 8 of 8.

03reviews
POST/wish/v1/reviews
{"product_id": "<results[0].product_id>", "limit": 30}

Buyer reviews with the star histogram and the variation each one refers to. Many Wish listings have few or no reviews: 4 products sampled returned 1, 2, 1 and 0.

The landed cost of one listing - price, shipping and total - with every colour and size priced separately, plus whatever buyer reviews that listing has.

request
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"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "wish",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}
Fields

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.

Coverage

What Wish publishes, and what it does not

wish.com, priced against the storefront you choose. Measured on 2026-09-23 across 26 live calls in six actions, 180 search rows in 6 categories, 8 products compared against Wish's own printed price and 6 ids round-tripped. Four of these lines go against us.

The price matched Wish's own figure 8 of 8

On 8 products across 6 categories, price equalled the amount Wish prints on its own product grid, and the struck-through list price matched on 8 of 8 as well. Search ids resolved to the same product 6 of 6.

Shipping is returned, not implied

All 8 products checked shipped at 2.99 USD on top of the item price, which on an 8.09 USD item is 27 percent of the total. product returns shipping, shipping_max, total_price and the flat-rate threshold, and every variation carries its own.

Variants carry their own price and stock

From 1 to 393 variations per product, each with its colour, size, price, list price, shipping, merchant-declared inventory, purchase cap and delivery window. max_variants caps what is returned; variant_count always gives the true total.

Storefront changes the answer, and it is always stated

The same product returned 12.39 USD with a 18.38 list price and 68 variations on the US storefront, and 81.00 CNY with no list price and 1 variation on CN. Every response carries storefront and currency.

Against us: a list price only 41 percent of the time

73 of 180 search rows carried a struck-through price, and it swings by category: 26 of 30 for wireless earbuds, 0 of 30 for running shoes. Where the merchant published none, list_price is null rather than 0.

Against us: most listings have no rating

Only 13 of 180 search rows had a real rating. Wish sends 5.0 with a review count of 0 on unreviewed products; the API returns rating null and review_count 0 instead of a perfect score. On the product record, rating was present on 3 of 8 and the star histogram on 3 of 8.

Against us: no units sold, no verified stock total

Wish publishes no sales figure. Its num_bought counter saturates at 10 and a product with 107 reviews still reads 10, so it is not returned. total_inventory reads 50 on every product and is not returned either; what is real is each variation's merchant-declared inventory and purchase cap.

Against us: Wish's own search has no filters and no sort

Wish accepts filter tokens, including its own published ones, and returns identical results with and without them, so none are passed on. min_price, max_price and min_rating are applied by this API to the rows it retrieved, and filtered_out and rows_examined report exactly what was removed. There is no sort order, so none is offered.

Paging, and a total to distrust

About 30 usable products per page, up to 8 pages, so up to 150 rows per call. total_found is Wish's own count passed through untouched, but Wish experiments on it: the same query reported 156,961 on one call and a flat 500 on another. Page with next_offset.

Reviews with the reviewer as Wish publishes them

Rating, title, comment, date, the colour and size bought, photo count, helpful votes and country code, plus the 1-5 star histogram. Each review also carries the reviewer's name, short name, user id, Facebook uid, signup date, locale, profile picture and review count, and the transaction and merchant ids, as Wish's own review rows hold them.

Use cases

What people build with Wish

The jobs this data is most often used for.

01

Landed-cost price monitoring across a cross-border marketplace, with shipping and the item price kept apart instead of merged.

02

Competitive pricing research on low-cost goods: the charged price, the merchant's struck-through price and the discount computed from both.

03

Variant-level catalogue building: every colour and size with its own price, shipping, stock and purchase cap, up to several hundred per product.

04

Merchant due diligence: the store behind a listing with its rating, rating count, positive-feedback summary and business country.

6

endpoints

2/3

credits per call

Pricing

What Wish data costs

The cheapest call here is 2 credits, so $15/mo (Pro) buys 5,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

$0.67–$1.50 / 1,000 credits
Full pricing →
  • 1,000 free credits on signup, no card
  • One key, all 632 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire
no credit card1,000 free credits · instant API key · pay by card or crypto
Quickstart

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
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"}'
python
import os
import requests

REEF_KEY = os.environ["REEF_KEY"]

r = requests.post(
    "https://api.reefapi.com/wish/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
        "query": "wireless earbuds",
        "limit": 10,
        "market": "US"
    },
    timeout=90,
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Wish.

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 comes back about the reviewer?▾

What Wish's own review rows carry: the reviewer's name and short name, user id, Facebook uid, signup date, locale, profile picture and review count, plus the transaction and merchant ids, next to the 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.

Contact

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 631 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-23.