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

Shein API & Scraper

Shein API returns live Shein data as clean JSON for shein The primary endpoint, search, returns matching records including goods id, name, price, list price and discount pct.

4 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.

Developers reach for it when they need to track product listings, prices, availability, variants and reviews without maintaining one-off scraping code or separate API contracts. If you were about to build or fix a Shein scraper, this API is the maintained alternative — it returns the same data as clean JSON, with the proxies, rotation and anti-bot handling already solved. This page covers the live example, request shape, response shape and available actions: search, product/detail, price, category/browse. Every request uses the same ReefAPI envelope, one API key and one shared credit pool, so it fits alongside the rest of your data stack.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/shein/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "summer dress",
    "max_results": 20
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "shein",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 2804.5,
    "record_count": 20,
    "bytes": 0,
    "cache_hit": false,
    "market": "us",
    "price_basis": "listing",
    "price_note": "Card prices are the offer shown on Shein's listing for one shopper session and equal the product page price for that session. Shein runs price tests, so a different session can see a different promotional price for the same product (list_price is the same for everyone). If a card price could not be verified it is returned as null (counted in rows_price_withheld), never estimated.",
    "pages_from_one_session": "[redacted-secret]",
    "result_count": 16054,
    "charged_credits": 4,
    "version": "0.3.0"
  },
  "data": {
    "query": "summer dress",
    "results": [
      {
        "goods_id": "458057728",
        "goods_sn": "sz260112133381631268128",
        "spu": "z2601121333816312",
        "name": "Aloruh Women's Solid Color Sleeveless Mini Dress, Suitable For Beach Vacation,Dresses For Women Summer",
        "url": "https://us.shein.com/Aloruh-Women-s-Solid-Color-Sleeveless-Mini-Dress-Suitable-For-Beach-Vacation-Dresses-For-Women-Summer-p-458057728.html",
        "image": "https://img.ltwebstatic.com/v4/j/pi/2026/05/02/f8/17776852344d34295349aad8f43f4fbd32e5a672d8_thumbnail_405x552.jpg",
        "images": [
          "https://img.ltwebstatic.com/v4/j/pi/2026/05/02/29/1777685233ba0e65ec6e79aec758b0e3935b4921ef_thumbnail_405x552.jpg",
          "https://img.ltwebstatic.com/v4/j/pi/2026/05/02/45/17776852360ca06eed24f98fcf6bfdd05c8b860495_thumbnail_405x552.jpg",
          "https://img.ltwebstatic.com/v4/j/pi/2026/05/02/65/177768523835c3fa46efbfe001e6968718dffd62fb_thumbnail_405x552.jpg"
        ],
        "price": 15.22,
        "price_display": "$15.22",
        "list_price": 18.29,
        "list_price_display": "$18.29",
        "discount_pct": "17",
        "currency_code": "USD",
        "in_stock": true,
        "stock": null,
        "is_clearance": true,
        "rating": 4.61,
        "reviews_count": 1001,
        "fit_true_size_pct": "95%",
        "fit_runs_large_pct": "1%",
        "fit_runs_small_pct": "4%",
        "category": "Women Mini Dresses",
        "category_id": "12475",
        "brand": "Aloruh",
        "brand_code": "1blsm",
        "store_name": "Aloruh",
        "store_code": "4534970445",
        "mall_code": "1",
        "colors": [
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          },
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          },
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          }
        ],
        "color_count": 22,
        "promotions": [
          {
            "type_id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "ends": "[trimmed-depth]"
          }
        ],
        "video_url": null
      },
      {
        "goods_id": "106108756",
        "goods_sn": "sz25060944373589399",
        "spu": "z250418642699",
        "name": "Wandoria Women's Summer Olive Green Boho Casual Vacation Holiday Dress,Shirred Bust Tiered Skirt A-Line Backless Adjustable Tie Neck Bamboo Knot Beach Dress",
        "url": "https://us.shein.com/Wandoria-Women-s-Summer-Olive-Green-Boho-Casual-Vacation-Holiday-Dress-Shirred-Bust-Tiered-Skirt-A-Line-Backless-Adjustable-Tie-Neck-Bamboo-Knot-Beach-Dress-p-106108756.html",
        "image": "https://img.ltwebstatic.com/v4/j/pi/2025/06/23/64/175067005651b4eef9c4d3bfea0941db9a8e5daa55_thumbnail_405x552.jpg",
        "images": [
          "https://img.ltwebstatic.com/v4/j/pi/2025/06/23/73/17506700583693445051b5a3bf7e636359c4bfd530_thumbnail_405x552.jpg",
          "https://img.ltwebstatic.com/v4/j/pi/2025/06/23/e4/1750670059332329e4fb2d4ebb6ae09bbb710b19fa_thumbnail_405x552.jpg",
          "https://img.ltwebstatic.com/v4/j/pi/2026/04/14/7e/1776157333dbea41579324d39bb09bc61ef44c6285_thumbnail_405x552.jpg"
        ],
        "price": 14.7,
        "price_display": "$14.70",
        "list_price": 19.39,
        "list_price_display": "$19.39",
        "discount_pct": "24",
        "currency_code": "USD",
        "in_stock": true,
        "stock": null,
        "is_clearance": true,
        "rating": 4.72,
        "reviews_count": 1001,
        "fit_true_size_pct": "93%",
        "fit_runs_large_pct": "5%",
        "fit_runs_small_pct": "2%",
        "category": "Women Mini Dresses",
        "category_id": "12475",
        "brand": "Wandoria",
        "brand_code": "19wzx",
        "store_name": "Wandoria",
        "store_code": "7340826820",
        "mall_code": "1",
        "colors": [
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          },
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          },
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          }
        ],
        "color_count": 37,
        "promotions": [
          {
            "type_id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "ends": "[trimmed-depth]"
          }
        ],
        "video_url": null
      },
      {
        "goods_id": "437684992",
        "goods_sn": "sz260305181873185810848",
        "spu": "z2603051818731858",
        "name": "Pariaura Minimalist White Linen Sleeveless V-Neck Dress / Relaxed A-Line Dress / Korean Soft Style / Daily Commute Short Dress",
        "url": "https://us.shein.com/Pariaura-Minimalist-White-Linen-Sleeveless-V-Neck-Dress-Relaxed-A-Line-Dress-Korean-Soft-Style-Daily-Commute-Short-Dress-p-437684992.html",
        "image": "https://img.ltwebstatic.com/v4/j/dps/PS2026092323589/33ff1c4521f5200c6b1f5a9f0f2bf592f991b7f9c6b7c45f3efcc8fad0387b21_thumbnail_405x552.jpg",
        "images": [
          "https://img.ltwebstatic.com/v4/j/dps/PS2026092323589/65008bb6a2cdb7a6f4b699f3f343281a72bfe06d9e8d1962b12592b2abdb73b3_thumbnail_405x552.jpg",
          "https://img.ltwebstatic.com/v4/j/dps/PS2026092323589/0b8e2785bb0d29596c53be973d0f5ac220766e7deb412bbc96c0d6c5dcb65c52_thumbnail_405x552.jpg",
          "https://img.ltwebstatic.com/v4/j/dps/PS2026092323589/caf4755e3bec6cb2dd812203ba060a9c1ac81e84f3ff18cdf9221fa553d9b0bc_thumbnail_405x552.jpg"
        ],
        "price": 18.42,
        "price_display": "$18.42",
        "list_price": 21.49,
        "list_price_display": "$21.49",
        "discount_pct": "14",
        "currency_code": "USD",
        "in_stock": true,
        "stock": null,
        "is_clearance": true,
        "rating": 4.57,
        "reviews_count": 379,
        "fit_true_size_pct": "83%",
        "fit_runs_large_pct": "11%",
        "fit_runs_small_pct": "6%",
        "category": "Women Mini Dresses",
        "category_id": "12475",
        "brand": "Pariaura",
        "brand_code": "12xn4",
        "store_name": null,
        "store_code": "7361015617",
        "mall_code": "1",
        "colors": [
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          },
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          },
          {
            "goods_id": "[trimmed-depth]",
            "color": "[trimmed-depth]",
            "image": "[trimmed-depth]"
          }
        ],
        "color_count": 11,
        "promotions": [
          {
            "type_id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "ends": "[trimmed-depth]"
          }
        ],
        "video_url": null
      }
    ],
    "page": 1,
    "has_next": true,
    "category_id": null
  }
}
Actions

What the Shein API does

ActionDescriptionConcrete use caseKey params
searchReturn JSON product cards from the selected storefront with local prices, currency and product URLs. Global and regional search support page=1 and up to 40 results. US search retains pagination. Source totals can exceed returned rows; there is no automatic regional pagination. Global is the default.Pricing teams call search to get jSON product cards from the selected storefront with local prices, currency and product URLs.query, market, max_results, page, limit, ...
product/detailRead a complete selected regional product page in its local currency, by product id or URL. Includes current page prices, all published SKUs with size and stock, total stock, images, and available size charts, attributes and description. These fields are included by default. sizes[] carries each size's price, list_price and base_price next to its stock. Shein runs price tests: two shopper sessions can see different promotional prices for the same product. price is the offer of the session that read the page; base_price (the price before any promotion) and list_price are the same for every session, and price_test_applied tells whether the test discount is in price. Shein shows stock up to 20 per SKU: a stock of 20 means 20 or more (stock_is_minimum / total_stock_is_minimum). colors[] lists the colour variants with name, goods_id and swatch image. Optional fields/exclude shape the response; the raw source blocks are about 95% of its size. Unavailable global SKU prices are null and sku_prices_complete is false. Missing product prices return an error without additional price lookup requests. Prices can change; no global product is successful without a verified positive product price. Global is the default; an explicit market wins, otherwise a product URL selects its storefront. NOT_FOUND means the selected storefront returned a product 404. UPSTREAM_HTTP with error.detail.reason=global_offer_price_unavailable means a complete priced offer could not be supplied; it does not mean the product is free or permanently removed. These outcomes are not retried within the call. Transient failures remain retryable; inspect error.retryable. Billing: a verified NOT_FOUND (error.detail.reason=product_not_found) costs 4 credits per request, including when the product is absent from the selected market. The response stays ok=false and includes meta.charged_credits=4. Timeouts, capacity limits, blocked requests, parsing errors and unavailable-price errors are not charged.Marketplace operators call product/detail to read a complete selected regional product page in its local currency, by product id or URL.market, url, fields, exclude
priceRead current price and stock from the selected regional product page in its local currency. Returns only price and availability fields, including total stock. Prices reflect the offer at retrieval time and can change. It reads the same product page as product/detail. Shein runs price tests, so price can differ between sessions; base_price (before any promotion) is the same for every session and is the stable value for change detection. Missing product prices return an error without additional price lookup requests. Global is the default; an explicit market wins, otherwise a product URL selects its storefront. NOT_FOUND means the selected storefront returned a product 404. UPSTREAM_HTTP with error.detail.reason=global_offer_price_unavailable means a complete priced offer could not be supplied; it does not mean the product is free or permanently removed. These outcomes are not retried within the call. Transient failures remain retryable; inspect error.retryable. Billing: a verified NOT_FOUND (error.detail.reason=product_not_found) costs 4 credits per request, including when the product is absent from the selected market. The response stays ok=false and includes meta.charged_credits=4. Timeouts, capacity limits, blocked requests, parsing errors and unavailable-price errors are not charged.Catalog enrichment teams call price to read current price and stock from the selected regional product page in its local currency.market, url
category/browseShein refuses its category shelf for API clients, so this action reports that plainly instead of returning an empty or invented shelf. Measured 2026-09-25: the shelf endpoint refuses every request for a category id while the search endpoint answers normally in the same second from the same client, and the category page itself answers with a challenge. The error is not retryable, is never charged, and names the working route: call `search` with a keyword plus the same id as `category_id`, which returns the same product cards restricted to that category and its sub-categories. A keyword is required because Shein serves no products for a keyword-less category request.Retail analysts call category/browse to get shein refuses its category shelf for API clients, so this action reports that plainly instead….category_id, market, url, page, limit
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/shein/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"summer dress","max_results":20}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.shein.search with {"query":"summer dress","max_results":20}.
Use cases

Who uses this API and why

  • Pricing teams use Shein to get jSON product cards from the selected storefront with local prices, currency and product URLs.
  • Marketplace operators use Shein to read a complete selected regional product page in its local currency, by product id or URL.
  • Catalog enrichment teams use Shein to read current price and stock from the selected regional product page in its local currency.
  • Retail analysts use Shein to get shein refuses its category shelf for API clients, so this action reports that plainly instead….
FAQ

Questions developers ask before integrating

What is the Shein API?

Shein API is a ReefAPI endpoint group for shein It returns live JSON through POST requests under /shein/v1.

Is the Shein API free to try?

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

Do I need a Shein login or account?

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

Shein actions currently cost 1-4 credits per successful call. Verified SHEIN NOT_FOUND responses on product/detail and price cost 4 credits; timeout, blocked and capacity errors remain free. All APIs draw from one credit pool.

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

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

Is the Shein API a Shein scraper?

It is the managed alternative to a DIY Shein scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same shein back as clean JSON.

Why does my Shein scraper keep getting blocked?

Most Shein scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked calls are free.

docs / shein

Shein

Shein

base /shein/v14 endpoints
post/shein/v1/product/detail4 credits

Read a complete selected regional product page in its local currency, by product id or URL. Includes current page prices, all published SKUs with size and stock, total stock, images, and available size charts, attributes and description. These fields are included by default. sizes[] carries each size's price, list_price and base_price next to its stock. Shein runs price tests: two shopper sessions can see different promotional prices for the same product. price is the offer of the session that read the page; base_price (the price before any promotion) and list_price are the same for every session, and price_test_applied tells whether the test discount is in price. Shein shows stock up to 20 per SKU: a stock of 20 means 20 or more (stock_is_minimum / total_stock_is_minimum). colors[] lists the colour variants with name, goods_id and swatch image. Optional fields/exclude shape the response; the raw source blocks are about 95% of its size. Unavailable global SKU prices are null and sku_prices_complete is false. Missing product prices return an error without additional price lookup requests. Prices can change; no global product is successful without a verified positive product price. Global is the default; an explicit market wins, otherwise a product URL selects its storefront. NOT_FOUND means the selected storefront returned a product 404. UPSTREAM_HTTP with error.detail.reason=global_offer_price_unavailable means a complete priced offer could not be supplied; it does not mean the product is free or permanently removed. These outcomes are not retried within the call. Transient failures remain retryable; inspect error.retryable. Billing: a verified NOT_FOUND (error.detail.reason=product_not_found) costs 4 credits per request, including when the product is absent from the selected market. The response stays ok=false and includes meta.charged_credits=4. Timeouts, capacity limits, blocked requests, parsing errors and unavailable-price errors are not charged.

ParameterAllowed / rangeDescription
goods_idoptional—Product id. Supply either goods_id or a product URL.
urloptional—Full product URL (alternative to goods_id).
market = globaloptionalglobal · us · uk · de · fr · es · it · nl · pl · pt · se · tr · sa · ae · kwExplicit market takes precedence. Otherwise infer from the product URL; id-only defaults to global. Global uses www.shein.com in USD; availability and shipping are destination-dependent. An unavailable global product price returns an error without additional price lookup requests.
fieldsoptional—Return only these product keys (goods_id is always kept). Optional; the default is the full record. Applied keys are echoed in meta.field_selection.
excludeoptional—Drop these product keys. The raw source blocks (sale_attributes, skus, price_details, product_details, image_details, color_images, size_chart) are about 95% of a detail response; their useful values are already typed in sizes[], colors[], attributes[] and the price fields.
Try in playground →
post/shein/v1/price2 credits

Read current price and stock from the selected regional product page in its local currency. Returns only price and availability fields, including total stock. Prices reflect the offer at retrieval time and can change. It reads the same product page as product/detail. Shein runs price tests, so price can differ between sessions; base_price (before any promotion) is the same for every session and is the stable value for change detection. Missing product prices return an error without additional price lookup requests. Global is the default; an explicit market wins, otherwise a product URL selects its storefront. NOT_FOUND means the selected storefront returned a product 404. UPSTREAM_HTTP with error.detail.reason=global_offer_price_unavailable means a complete priced offer could not be supplied; it does not mean the product is free or permanently removed. These outcomes are not retried within the call. Transient failures remain retryable; inspect error.retryable. Billing: a verified NOT_FOUND (error.detail.reason=product_not_found) costs 4 credits per request, including when the product is absent from the selected market. The response stays ok=false and includes meta.charged_credits=4. Timeouts, capacity limits, blocked requests, parsing errors and unavailable-price errors are not charged.

ParameterAllowed / rangeDescription
goods_idoptional—Product id. Supply either goods_id or a product URL.
urloptional—Full product URL (alternative to goods_id).
market = globaloptionalglobal · us · uk · de · fr · es · it · nl · pl · pt · se · tr · sa · ae · kwExplicit market takes precedence. Otherwise infer from the product URL; id-only defaults to global. Global uses www.shein.com in USD; availability and shipping are destination-dependent. An unavailable global product price returns an error without additional price lookup requests.
Try in playground →
post/shein/v1/category/browse1 credit

Shein refuses its category shelf for API clients, so this action reports that plainly instead of returning an empty or invented shelf. Measured 2026-09-25: the shelf endpoint refuses every request for a category id while the search endpoint answers normally in the same second from the same client, and the category page itself answers with a challenge. The error is not retryable, is never charged, and names the working route: call `search` with a keyword plus the same id as `category_id`, which returns the same product cards restricted to that category and its sub-categories. A keyword is required because Shein serves no products for a keyword-less category request.

ParameterAllowed / rangeDescription
category_idrequired—Shein category id (the number in a /-c-<id>.html URL), or pass the category URL. Pass it to `search` as `category_id` together with a keyword.
market = usoptionalus · uk · de · fr · es · itWhich Shein storefront to read. Prices and availability are per-storefront.
page = 1optional1–Result page. Empty page = end of list.
limit = 100optional1–120Rows per page (max 120).
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.