# SSG API — SSG.COM (쓱닷컴) Korea: E-mart, Traders, Shinsegae Mall search, prices, stock, delivery and reviews

> Keyword search on SSG.COM across E-mart, Traders, early-morning delivery, Shinsegae Mall, department store and marketplace sellers. Each row: regular price, discounted price, unit price, member and card benefit, stock count, sold-out flag, mall and who sells it, the delivering E-mart store, delivery type (쓱배송 / 새벽배송) and promise, rating and review count. Filters: mall, sort (7), price range, delivery type, benefit, sold-out exclusion, category, page.
> ReefAPI engine `ssg` · 4 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/ssg/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/ssg/v1/search — 3 credits
Keyword search on SSG.COM across E-mart, Traders, early-morning delivery, Shinsegae Mall, department store and marketplace sellers. Each row: regular price, discounted price, unit price, member and card benefit, stock count, sold-out flag, mall and who sells it, the delivering E-mart store, delivery type (쓱배송 / 새벽배송) and promise, rating and review count. Filters: mall, sort (7), price range, delivery type, benefit, sold-out exclusion, category, page.

**Parameters:**
- `query` (string, required) — Search keyword (Korean or English), e.g. 우유, 라면, 노트북. Full-width or styled characters are normalised with NFKC before sending.
- `mall` (enum, optional) — The catalogue of one SSG mall (the site's own mall filter). A mall's catalogue also carries goods cross-listed from another mall (E-mart and Traders show Shinsegae-mall goods, more of them under price sorts), so each row keeps its own `mall` / `sold_by` and meta.off_mall_rows counts them. For E-mart store goods only use delivery=ssg_delivery; for early-morning goods delivery=early_morning. [one of: emart, traders, shinsegae, department, early_morning]
- `sort` (enum, optional, default "recommended") — Sort order (the site's own sorts). [one of: recommended, sales, price_asc, price_desc, discount, newest, reviews]
- `min_price` (integer, optional) — Lowest shown price in KRW (the site's own price range filter on the card price).
- `max_price` (integer, optional) — Highest shown price in KRW.
- `delivery` (enum, optional) — Delivery / channel filter (배송). [one of: ssg_delivery, early_morning, traders_delivery, store_pickup, today_dispatch, department, department_quick, domestic_only, overseas_direct]
- `benefit` (enum, optional) — Benefit filter (혜택). [one of: free_shipping, discounted, department_sale, n_plus_1, flyer]
- `exclude_sold_out` (boolean, optional) — Leave out sold-out products (품절제외).
- `category_id` (string, optional) — SSG display category id (digits), from the `categories` action or a search facet, e.g. 6000094123 흰우유.
- `page` (integer, optional, default 1) — Result page, 40 rows per page, 1-100.

**Returns:** results[] {item_id, site_no, mall, mall_name, title, full_title, brand, url, image, images[], price (regular), discount_price, discount_percent, source_discount_rate, coupon_applied, price_from, currency, unit_price, unit, member_benefit_krw, card_discount_texts[], multi_buy_texts[], rental, monthly_fee_text, stock_qty, sold_out, min_order_qty, max_order_qty, sold_by (emart|traders|ssg|seller), vendor_id, store_no, store_name, store_defaulted, delivery_types[], delivery_promise, shipping_text, early_morning_available, early_morning_stock_qty, rating, review_count, badges[] {type, text}, ad_marked} + total (the site's count) + page + has_more

**Example request body:**
```json
{
  "query": "우유"
}
```

### POST https://api.reefapi.com/ssg/v1/product — 3 credits
One SSG item by id: its live listing record (regular / discounted / unit price, member and card benefits, stock count, mall, seller kind and vendor id, delivering store, delivery type and promise, early-morning availability and stock) plus its review summary (average rating, total, photo / video counts, attribute percentages, the site's AI summary) and every other mall listing of the same item.

**Parameters:**
- `item_id` (string, required) — SSG item id (10-13 digits), exactly as `item_id` in search rows, or an ssg.com item URL (…itemView.ssg?itemId=…).
- `site_no` (string, optional) — The row's `site_no` when the same item is listed in several malls (e.g. 6001 E-mart vs 7009 early-morning; price and stock can differ per listing). Default: the listing the site returns first.

**Returns:** product {item_id, site_no, mall, mall_name, title, full_title, brand, url, image, images[], price (regular), discount_price, discount_percent, source_discount_rate, coupon_applied, price_from, currency, unit_price, unit, member_benefit_krw, card_discount_texts[], multi_buy_texts[], rental, monthly_fee_text, stock_qty, sold_out, min_order_qty, max_order_qty, sold_by (emart|traders|ssg|seller), vendor_id, store_no, store_name, store_defaulted, delivery_types[], delivery_promise, shipping_text, early_morning_available, early_morning_stock_qty, rating, review_count, badges[] {type, text}, ad_marked, review_summary {average_rating, total, photo_review_count, video_review_count, attribute_summary[], ai_summary, positive_ratio_percent}} + other_listings[] (other listings of the same item the lookup returned)

**Example request body:**
```json
{
  "item_id": "1000277628967"
}
```

### POST https://api.reefapi.com/ssg/v1/reviews — 3 credits
Buyer reviews of one SSG item, 30 per page: rating, text, date, masked buyer id, option, store, attribute answers (taste, packaging, freshness …), photos; plus the total, average and attribute percentages.

**Parameters:**
- `item_id` (string, required) — SSG item id (10-13 digits), exactly as `item_id` in search rows, or an ssg.com item URL (…itemView.ssg?itemId=…).
- `site_no` (string, optional) — The row's `site_no` when the same item is listed in several malls (e.g. 6001 E-mart vs 7009 early-morning; price and stock can differ per listing). Default: the listing the site returns first.
- `sort` (enum, optional, default "recommended") — Review order. [one of: recommended, newest, rating_high, rating_low]
- `filter` (enum, optional, default "all") — Only photo or video reviews. [one of: all, photo, video]
- `page` (integer, optional, default 1) — Review page (30 per page).

**Returns:** results[] {review_id, rating, text, date, author, option, store_name, site_no, review_type, attributes[] {group, value}, images[], has_video} + total + average_rating + photo_review_count + video_review_count + attribute_summary[] + ai_summary + page + has_more

**Example request body:**
```json
{
  "item_id": "1000277628967"
}
```

### POST https://api.reefapi.com/ssg/v1/categories — 3 credits
The SSG category tree around one display category: the category, its parent, its sub-categories, its sibling categories, the top-level departments, the category's brands and item count. Use a returned `category_id` as `category_id` in search.

**Parameters:**
- `category_id` (string, required) — SSG display category id (digits), e.g. 6000092898 우유/유제품. Level-1 and deeper ids work; the top-level department ids in `top_level` are landing pages the source does not serve here.

**Returns:** category {category_id, name, level, url} + parent + children[] + siblings[] + top_level[] + brands[] {brand_id, name} + item_count

**Example request body:**
```json
{
  "category_id": "6000092898"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=ssg
- Human docs page: https://reefapi.com/docs/ssg
- Overview page: https://reefapi.com/ssg-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
