DHgate API

Search DHgate, then read any listing's quantity price ladder, minimum order, stock and shipping to your country

DHgate is a cross-border marketplace where Chinese sellers sell to buyers worldwide, often in bulk, with the unit price falling as the order quantity rises.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a DHgate endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
D
/dhgate/v1

5 active endpoints, on 1, 2 and 3 credit tiers.

  • POST/dhgate/v1/search
  • POST/dhgate/v1/product
  • POST/dhgate/v1/sku_price
  • POST/dhgate/v1/reviews
  • POST/dhgate/v1/store

What DHgate endpoints does ReefAPI ship?

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

5 endpoints

search

3 cr

Search DHgate products by keyword with the source's own filters.

required
query
optional
category, min_price, max_price, free_shipping, sold_per_piece, max_moq, on_sale, rating_4_up, ship_from, ship_to, sort, page

product

3 cr

Full DHgate product by item_id or URL.

required
—
optional
item_id, url, ship_to

sku_price

1 cr

The quantity price ladder of ONE variant (SKU) of a DHgate product.

required
item_id, sku_id
optional
ship_to

reviews

1 cr

Buyer reviews of a DHgate product, 10 per page.

required
item_id
optional
sort, with_photos, page

store

2 cr

A DHgate seller's store.

required
store_id
optional
page

Every parameter, every allowed value →

DHgate API

5 of 5 endpoints, ready to run

View docs ↗

Phone cases between 1 and 5 USD, best sellers first

3 credits1 required · 3 optional
POST/dhgate/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.

How the DHgate API works

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

01
Authenticate
x-api-key header

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

02
Call
POST /dhgate/v1/…

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

03
Pay
1 or 2 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

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

From a product word to supplier quotes at your order quantity

Search with DHgate's filters, open the listings that fit, and read the price you would pay for your quantity and destination.

01search?query=phone
GET/dhgate/v1/search?query=phone
case&max_moq=10&free_shipping=true&sort=best_selling

Products with price range, discount, minimum order, units sold, rating, sponsored flag and the seller's store id. category_facets gives category ids with counts.

02product?item_id=<item_id>&ship_to=US
GET/dhgate/v1/product?item_id=<item_id>&ship_to=US

The quantity price ladder, minimum order, lot size, every variant with its stock, shipping cost and delivery days to the US, and the seller's feedback, transactions and on-time delivery rate.

03sku_price?item_id=<item_id>&sku_id=<sku_id>
GET/dhgate/v1/sku_price?item_id=<item_id>&sku_id=<sku_id>

The ladder of the exact variant you want, when it differs from the default one.

04reviews?item_id=<item_id>
GET/dhgate/v1/reviews?item_id=<item_id>

Read the reviews, and see which ones are DHgate's automatic 5-star defaults.

A landed-cost view per supplier: unit price at your quantity, shipping to your market, delivery time and how trustworthy the seller and its ratings are.

request
curl -X POST https://api.reefapi.com/dhgate/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"phone case","sort":"best_selling"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "dhgate",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

What a DHgate field actually contains

Fields that read differently from how they look. Every row was measured against live DHgate pages on 2026-10-14.

FieldWhat it holds
item_idDHgate's item code, the number at the end of a product address (…/1037834063.html). Pass it unchanged to product, sku_price and reviews; a product URL works too. Search to product returned the same id on 16 of 16 rows.
price_min, price_max (search)The range DHgate prints on the search card. The low end is the price per unit at the largest order-quantity tier, not the price of one piece: 146.08 on a card whose single-piece price is 176.29. On 15 of 15 products the card's low end equalled the cheapest tier in product's price_tiers.
price_tiersThe quantity ladder: min_qty, max_qty (null = and up), the current price and the list price before the promotion. It belongs to one variant, named in price_tiers_sku_id; other variants can cost more, and sku_price returns their ladder. The ladder matched DHgate's own variant-price endpoint on 12 of 12 products.
priced_per, units_per_lotSome items are sold in lots. When priced_per is lot, every price and quantity on that product counts lots of units_per_lot units: one LED strip listing costs 4.24 per lot of 5 meters with a minimum order of 30 lots, which the search card shows as 0.85 per meter and 150 meters. min_order_units and price_per_unit give the per-unit view.
shippingCost, free flag, method and delivery days to the ship_to country you pass (default US). DHgate prices shipping by destination: one phone shipped free to Germany, the UK, France and Australia and for US $10.31 to the US on the same day. The product prices themselves did not change by country.
rating.default_review_count, is_platform_defaultDHgate gives a 5-star review in the buyer's name when the buyer does not review in time. On one phone 91 of 106 reviews were these defaults. reviews flags each one.
rating.no_purchase_review_countReviews DHgate counts that are not tied to a purchase on the listing: 3,519 of 3,527 on one smartwatch. The search card's review_count can be far lower than the product's (8 against 3,527) because it does not include them.
sponsoredTrue on paid placements. On best-match pages 10 of 50 rows are sponsored; filtered pages and other sort orders carry none.

All prices are US dollars. Search totals are DHgate's own and depend on the sort: best match counts loosely related items too (66,408 for "phone case"), every other sort counts 47,152. When nothing matches, DHgate shows recommended look-alikes instead; this API returns no results, sets no_match and puts those rows in recommended_instead.

DHgate coverage, measured

Every number below was read from live DHgate responses on 2026-10-14, in two consecutive runs of 86 calls each, 86 of 86 answered as expected in both.

Market

Worldwide, prices in US dollars. "phone case" matched 66,408 products in best-match order; in best-selling order "sneakers" counted 70,718, "wedding dress" 34,946, "wireless earbuds" 3,663.

Filters that bite

66,408 → 1-5 USD 5,484, up to 3 USD 3,247, free shipping 32,339, on sale 20,918, 4 stars and up 5,251, minimum order up to 10 61,774, US warehouse 115, category 105 56,529.

Price accuracy

Card price range, pre-discount price, discount, minimum order and units sold matched the product page on 15 of 15 products; the product's lowest price matched the page's structured offer price on 12 of 12 and the ladder matched DHgate's variant-price endpoint on 12 of 12.

Identity

Search to product returned the same id and the same seller store on 16 of 16 rows.

Shipping by country

One phone: free to Germany, the UK, France and Australia, US $10.31 to the US, 30-61 days. Prices did not change with the destination.

Limits

Search needs words; pages 1-101 of 40 products; the search card's review count can be far below the product's; only the default shipping method per country; prices in US dollars only.

What people build with DHgate

The jobs this data is most often used for.

5

endpoints

1/2/3

credits per call

01

Find the order quantity at which a supplier's unit price drops enough for your margin, from the quantity price ladder.

02

Compare dropshipping costs per destination: product price plus shipping cost and delivery days to each market you sell in.

03

Shortlist suppliers by positive feedback, transactions, on-time delivery rate and years on DHgate before ordering samples.

04

Spot inflated ratings by reading how many reviews are platform defaults or not tied to a purchase.

What DHgate data costs

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

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 491 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

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/dhgate/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"phone case","sort":"best_selling"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/dhgate/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "phone case",
  "sort": "best_selling"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up DHgate.

Get a free key →
Do I need a DHgate account?▾

No. Everything is read logged out, and you call reefapi.com from anywhere.

How do I get the price for 100 pieces?▾

Call product and read price_tiers: find the tier whose min_qty and max_qty include 100. For another variant, call sku_price with its sku_id from product's variants.

Is the shipping cost for my country?▾

Pass ship_to with a two-letter code (US, DE, GB, AU …). Without it the API uses US. If DHgate offers no shipping to that country for the item, shipping is null and a warning says so.

Which search filters are there?▾

Category, price range, free shipping, sold per piece, maximum minimum-order, on sale, 4 stars and up, ships from the US warehouse, destination country. Each was checked against the unfiltered count in the same run: 66,408 → 1-5 USD 5,484, free shipping 32,339, on sale 20,918, 4 stars and up 5,251, minimum order up to 10 61,774, US warehouse 115, category 105 56,529.

How deep can I page?▾

40 products per page (50 on best-match pages, 10 of them sponsored), pages 1 to 101. Past page 101 DHgate returns nothing.

Can I get every review?▾

Yes, 10 per page with sort default or most_helpful and an only-with-photos switch; pages tells you how many pages exist. Buyer names are as DHgate masks them.

Can I list everything one seller sells?▾

Yes. Take seller.store_id from any search row or product and call store; it returns the store's rating summary and its catalogue, 24 products per page.

What is not returned?▾

Every shipping method per country (only the one DHgate shows by default), the brand filter, the seller's own review page, and prices in currencies other than US dollars.

What is the DHgate API?▾

DHgate API is a ReefAPI endpoint group for china-to-global wholesale marketplace: quantity price ladders, moq, variants with stock, shipping by country, sellers and reviews. It returns live JSON through POST requests under /dhgate/v1.

Is the DHgate API free to try?▾

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

Do I need a DHgate login or account?▾

No login to DHgate 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 DHgate 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 DHgate API use?▾

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

Can I call DHgate from an AI assistant or MCP client?▾

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

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 490 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-10-14.