Gmarket API & Scraper
The Gmarket API turns gmarket.co.kr, one of Korea's largest open marketplaces, into clean JSON in four actions: search, product/detail, product/reviews and search/suggest.
🤖 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 takes a Korean or English keyword, Gmarket's own orderings (ranking, popular, newest, price low-high, price high-low), a price range in won and a page number. Each row is a listing with its goods code, title, image, sale price, struck list price and discount, brand, seller name with Gmarket's seller badges, shipping fee or free shipping, the Smile Delivery and Star Delivery badges, the same-day dispatch cut-off, and the search index's rating, review and purchase counts. Ad placements are dropped and counted unless you ask for them. product/detail returns the whole listing: the sale price, the list price and the coupon-applied price (쿠폰적용가) with the coupons behind it, the card-payment price, the unit price, reward points, stock status and purchase limit, rating with review, question and purchase counts, the seller, Smile Delivery and whether Star Delivery is Gmarket's warehouse or the seller's, the shipping fee with the free-shipping threshold and delivery estimate, options with their extra charge and stock, images, the description images and the legal product information notice (상품정보 제공고시). product/reviews pages the premium (photo) and general reviews with both counts. A query with no genuine match returns empty instead of Gmarket's page of unrelated popular listings. In a live check on 2026-09-15, 20 of 20 keyword searches and 20 of 20 listings across 18 Gmarket categories succeeded, the search-row price equalled the listing's sale price on 20 of 20, and on 6 products the price, coupon price, rating and review count matched the product page. No Gmarket account, no browser, one ReefAPI key and the standard { ok, data, meta, error } envelope.
One Gmarket listing carries three prices, and the red percentage on the page is not the sale discount
Gmarket shows a sale price, often a struck list price, and a coupon-applied price (쿠폰적용가) that the page computes from the best coupons for a logged-out shopper. The API returns all three apart and says which percentage is which.
| Listing (2026-09-15) | price | list_price | coupon_price | discount_percent / coupon_discount_percent |
|---|---|---|---|---|
| 농심 신라면 + 너구리 + 짜파게티, 20 packs | 27,390 | null | 14,800 | null / 46.0 |
| Apple iPad 11th gen Wi-Fi 128GB | 719,040 | 749,000 | 683,090 | 4.0 / 8.8 |
| 미쟝센 로얄젤리 샴푸 1000ml × 3 | 30,000 | null | 17,400 | null / 42.0 |
| Electric rice cooker (전기밥솥 listing) | 178,490 | 219,000 | 159,660 | 18.5 / 27.1 |
Values in KRW from the 2026-09-15 live run. price is the sale price a shopper pays without coupons and is what a search row shows (equal on 20 of 20 listings checked). coupon_price is what the page shows after its own coupon selection; search rows never carry it. The page's red percentage is measured from the list price (or the sale price when there is none) to the coupon price, and is returned as coupon_discount_percent. card_payment_price needs a specific card, and reward points are points, never a price.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/gmarket/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "샴푸"
}
}{
"ok": true,
"meta": {
"api": "gmarket",
"endpoint": "search",
"mode": "live",
"latency_ms": 1846.6,
"record_count": 60,
"bytes": 2763560,
"cache_hit": false,
"pagination": {
"page": 1,
"total": 20164,
"has_more": true
},
"upstream_attempts": 2
},
"data": {
"results": [
{
"position": 1,
"product_id": "4215560646",
"title": "제이숲 오리지널 실크케라틴 샴푸 1000ml + 오리지널 실크케라틴 트리트먼트 1000ml",
"url": "https://m.gmarket.co.kr/vi/product/4215560646",
"image": "https://gdimg.gmarket.co.kr/4215560646/still/280?ver=1781859186",
"price": 43800,
"currency": "KRW",
"price_label": null,
"list_price": null,
"discount_percent": null,
"discount_badge_percent": null,
"coupon_price": null,
"brand": "제이숲",
"seller": {
"name": "jsoop",
"grades": [
"[trimmed-depth]",
"[trimmed-depth]"
],
"is_official_store": true
},
"shipping_fee": 0,
"free_shipping": true,
"smile_delivery": true,
"delivery_badge": "star_delivery",
"dispatch_note": null,
"search_index_rating": 4.7,
"search_index_review_count": 273,
"search_index_purchase_count": 1515,
"benefit_tags": null,
"event_tags": null,
"is_sold_out": false,
"category_codes": {
"large": "100000071",
"medium": "200000313",
"small": "300002704"
},
"section": "인기 상품이에요",
"is_sponsored": false
},
{
"position": 2,
"product_id": "3580233058",
"title": "(최종결제가16190원)미쟝센 로얄젤리 단백질 샴푸 1000ml 3개",
"url": "https://m.gmarket.co.kr/vi/product/3580233058",
"image": "https://gdimg.gmarket.co.kr/3580233058/still/280?ver=1789000786",
"price": 30000,
"currency": "KRW",
"price_label": null,
"list_price": null,
"discount_percent": null,
"discount_badge_percent": null,
"coupon_price": null,
"brand": "미쟝센",
"seller": {
"name": "아모레퍼시픽바디헤어",
"grades": [
"[trimmed-depth]"
],
"is_official_store": true
},
"shipping_fee": 0,
"free_shipping": true,
"smile_delivery": true,
"delivery_badge": "star_delivery",
"dispatch_note": null,
"search_index_rating": 4.7,
"search_index_review_count": 8496,
"search_index_purchase_count": 34288,
"benefit_tags": null,
"event_tags": null,
"is_sold_out": false,
"category_codes": {
"large": "100000071",
"medium": "200000313",
"small": "300002704"
},
"section": "인기 상품이에요",
"is_sponsored": false
},
{
"position": 3,
"product_id": "4750849689",
"title": "케라시스 퍼퓸 화이트 데이지 샴푸 1L 3개",
"url": "https://m.gmarket.co.kr/vi/product/4750849689",
"image": "https://gdimg.gmarket.co.kr/4750849689/still/280?ver=1785977700",
"price": 27200,
"currency": "KRW",
"price_label": null,
"list_price": null,
"discount_percent": null,
"discount_badge_percent": null,
"coupon_price": null,
"brand": "애경",
"seller": {
"name": "애경-스타배송",
"grades": [
"[trimmed-depth]"
],
"is_official_store": true
},
"shipping_fee": 0,
"free_shipping": true,
"smile_delivery": true,
"delivery_badge": "star_delivery",
"dispatch_note": null,
"search_index_rating": 4.7,
"search_index_review_count": 361,
"search_index_purchase_count": 1573,
"benefit_tags": null,
"event_tags": null,
"is_sold_out": false,
"category_codes": {
"large": "100000071",
"medium": "200000313",
"small": "300002704"
},
"section": "인기 상품이에요",
"is_sponsored": false
}
],
"count": 60,
"sponsored_count": 0,
"sponsored_dropped": 91,
"total_results": 20164,
"total_pages": 50,
"page": 1,
"sort": "relevance",
"query": "샴푸",
"applied_price_range": null,
"dropped_outside_price_range": 0,
"duplicates_dropped": 0,
"keyword_matches_on_page": 60,
"fallback_results_dropped": 0,
"page_overlap_expected": true,
"page_notice": null
}
}What the Gmarket API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search gmarket.co.kr by keyword with the site's sorts and a price range. Each row is a listing: goods code, title, URL, image, sale price, struck list price and discount %, brand, seller name with grade badges and official-store flag, shipping fee / free shipping, Smile Delivery and Star Delivery badges, same-day dispatch note, search-index rating / review / purchase counts, and category codes. Ads are dropped by default and counted. | Pricing teams call search to search gmarket.co.kr by keyword with the site's sorts and a price range. | query, page, sort, price_min, price_max, ... |
| product/detail | The full Gmarket listing by goods code or URL: title, brand, official-store and certification flags, sale price, struck list price and discount, the coupon-applied price (쿠폰적용가) with its coupons, the card-payment price, unit price, reward points, availability and purchase limit, rating, review / question / purchase counts, seller, Smile Delivery and Star Delivery, shipping fee with the free-shipping threshold and delivery estimate, the Gmarket-lowest-price flag and how many sellers list the same product, options with extra charges and stock, images, description, the legal product-information notice (specs) and category codes. | Marketplace operators call product/detail to get the full Gmarket listing by goods code or URL. | product_id, url, max_rotations |
| product/reviews | Customer reviews of a Gmarket listing by goods code or URL: the premium (photo) or general list, paged, with the premium and general counts and the average rating. Each review carries its rating, title, text, the masked author id, date, the purchased option and photos. | Catalog enrichment teams call product/reviews to get customer reviews of a Gmarket listing by goods code or URL. | product_id, url, type, sort, page, ... |
| search/suggest | Gmarket's autocomplete for a partial keyword: up to 10 keyword suggestions. | Retail analysts call search/suggest to get gmarket's autocomplete for a partial keyword. | query, max_rotations |
Call search from your stack
curl -X POST https://api.reefapi.com/gmarket/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"샴푸"}'import requests
r = requests.post(
"https://api.reefapi.com/gmarket/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "샴푸"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/gmarket/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "샴푸"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.gmarket.search with {"query":"샴푸"}.Who uses this API and why
- Brands and distributors in Korea track their listings' sale, list and coupon-applied prices and which sellers carry them.
- Price-monitoring teams compare Gmarket prices and shipping fees for the same product across sellers, using the same-product offer count.
- Cross-border sellers study Smile Delivery and Star Delivery coverage, shipping fees and free-shipping thresholds in a category.
- Review analytics teams pull premium photo reviews and general ratings for Korean consumer products.
Questions developers ask before integrating
Which price should I use: price, list_price or coupon_price?
price is the sale price (판매가 / 할인가) without coupons; it is what a search row shows. list_price is the struck original price, returned only when it is higher than price. coupon_price (쿠폰적용가) is the price after the coupons Gmarket applies for a logged-out shopper, with applied_coupons listing each coupon and its amount; 19 of 20 listings in the live check had one. card_payment_price (결제할인가) needs a specific payment card. reward_points_max and member_extra_reward are points (Smile Club / membership), never a price.
What do Smile Delivery and Star Delivery mean in the data?
smile_delivery is true for Gmarket's Smile Delivery listings. star_delivery says who ships a Star Delivery listing: fulfillment (Gmarket's own warehouse) or seller. On search rows the same facts come as smile_delivery and delivery_badge (star_delivery or seller_star_delivery); both agreed with the listing page on 20 of 20 listings checked. The delivery block adds the shipping fee, the free-shipping threshold (for example 15,000 won), the delivery estimate text and the Jeju / remote-island surcharges when the listing states them.
How do sorting and pages behave?
sort accepts relevance, popular, newest, price_asc and price_desc, Gmarket's own orderings. The price orders search a much wider set of listings (a shampoo search grew from about 16,000 to 272,000 matches and a laptop search starts with laptop bags), so keyword_matches_on_page says how many rows contain a query word. Gmarket's price order is its own and not strictly by the card price: 54 of 59 neighbouring rows were in order. Under relevance, popular and newest, later pages repeat many rows of earlier ones (page 2 of a coffee search shared 32 of 60 rows with page 1); price_asc pages did not overlap. page_overlap_expected says which case applies.
Can I filter by price?
Yes, price_min and price_max in won, using Gmarket's own price filter and re-checking every returned row; a row outside the range is dropped and counted in dropped_outside_price_range (2 of 60 on a camping-chair search). Gmarket ignores a price range when results are sorted by price, so that combination is rejected with INVALID_PARAM instead of returning out-of-range rows.
What happens with ads and with a query that matches nothing?
Gmarket mixes power-click and AI ad placements into the page (up to 91 cards on page 1). They are dropped by default and counted in sponsored_dropped; include_sponsored=true returns them flagged is_sponsored. A query with no genuine match is answered by Gmarket with about 69 unrelated popular listings and a non-zero count; the API returns an empty list and counts them in fallback_results_dropped, and include_fallback_results=true returns them separately. Typos like 노투북 or 샴프 keep their results.
Are the rating and review counts on a search row the same as on the listing?
Not always. Search rows carry search_index_rating, search_index_review_count and search_index_purchase_count from Gmarket's search index, which is rounded and can lag (the review count differed on 3 of 20 listings). product/detail returns the listing's own rating to two decimals and its review, question and purchase counts. product/reviews returns the premium and general review counts separately.
Does it cover Auction or Gmarket Global?
No. The API covers gmarket.co.kr, the Korean site, with prices in KRW. Auction (auction.co.kr) listings are rejected with INVALID_PARAM, and the English Gmarket Global storefront is not covered.
What is the Gmarket API?
Gmarket API is a ReefAPI endpoint group for korea's open marketplace (g마켓): listings with sale, list and coupon-applied prices in won, options, smile delivery and reviews. It returns live JSON through POST requests under /gmarket/v1.
Is the Gmarket API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Gmarket calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Gmarket login or account?
No login to Gmarket 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 Gmarket 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 Gmarket API use?
Gmarket actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Gmarket from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call gmarket actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Gmarket API a Gmarket scraper?
It is the managed alternative to a DIY Gmarket 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 korea's open marketplace (g마켓): listings with sale, list and coupon-applied prices in won, options, smile delivery and reviews back as clean JSON.