Every LC Waikiki size, its stock and the price you actually pay
The LC Waikiki API turns lcw.com and the 20 other LC Waikiki country shops into clean JSON in four actions: search, product/detail, product/reviews and suggest.
4 active endpoints, on 1 and 2 credit tiers.
- POST/lcw/v1/search
- POST/lcw/v1/product/detail
- POST/lcw/v1/product/reviews
- POST/lcw/v1/suggest
What LC Waikiki endpoints does ReefAPI ship?
4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
LC Waikiki API
3 of 4 endpoints, ready to run
100 products a page: option id, product code, title, brand, URL, images, grid price, struck price, campaign price and final price, campaigns, category path, and every filter the shop offers for the result.
{ "ok": true, "meta": { "api": "lcw", "endpoint": "search", "mode": "live", "latency_ms": 2465.5, "record_count": 100, "cache_hit": false }, "data": { "results": [ { "position": 1, "option_id": 5248220, "model_id": 8773168, "product_code": "W60084Z4-Q6K", "model_code": "W60084Z4", "title": "Polo Yaka Erkek Çocuk Pike Tişört 2'li", "brand": "LCW Kids", "url": "https://www.lcw.com/polo-yaka-erkek-cocuk-pike-tisort-2li-beyaz-o-5248220", "image": "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/8773168/v1/l_20262-w60084z4-q6k_a.jpg", "images": [ "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/8773168/v1/l_20262-w60084z4-q6k_a.jpg", "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/8773168/v1/l_20262-w60084z4-q6k_a1.jpg", "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/8773168/v1/l_20262-w60084z4-q6k_a2.jpg" ], "color_hex": "#ffffff", "price": 759.99, "price_display": "759,99 TL", "original_price": null, "campaign_price": null, "campaign_label": null, "campaign_discount_percent": null, "campaign_ends_at": null, "final_price": 759.99, "lowest_price_30_days": 759.99, "currency": "TRY", "campaigns": [ { "campaign_id": 263939, "label": "3 AL %5, 5 AL %10!", "starts_at": "2026-09-03T07:00:00Z", "ends_at": "2026-09-18T20:59:00Z", "url": "https://www.lcw.com/kampanya-urun-listesi/263939" } ], "search_index_stock_count": 1312, "in_stock": true, "search_index_rating": 5, "search_index_review_count": 4, "rating_scale": 5, "category": "Tişört-Genç Erkek", "category_path": [ "Çocuk", "Giyim", "Tişört-Erkek Çocuk" ], "product_group": "Çocuk", "seller": { "id": 1, "name": "LC Waikiki" }, "is_outlet": false }, { "position": 2, "option_id": 5284205, "model_id": 9086677, "product_code": "W6AN26Z1-HPN", "model_code": "W6AN26Z1", "title": "Desenli Kız Çocuk 2'li Tişört", "brand": "LCW Kids", "url": "https://www.lcw.com/desenli-kiz-cocuk-2li-tisort-lacivert-o-5284205", "image": "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/9086677/v1/l_20262-w6an26z1-hpn_u.jpg", "images": [ "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/9086677/v1/l_20262-w6an26z1-hpn_u.jpg", "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/9086677/v1/l_20262-w6an26z1-hpn_u1.jpg", "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/9086677/v1/l_20262-w6an26z1-hpn_u2.jpg" ], "color_hex": "#29304E", "price": 599.99, "price_display": "599,99 TL", "original_price": null, "campaign_price": null, "campaign_label": null, "campaign_discount_percent": null, "campaign_ends_at": null, "final_price": 599.99, "lowest_price_30_days": 599.99, "currency": "TRY", "campaigns": [ { "campaign_id": 263939, "label": "3 AL %5, 5 AL %10!", "starts_at": "2026-09-03T07:00:00Z", "ends_at": "2026-09-18T20:59:00Z", "url": "https://www.lcw.com/kampanya-urun-listesi/263939" } ], "search_index_stock_count": 1219, "in_stock": true, "search_index_rating": 4.83, "search_index_review_count": 6, "rating_scale": 5, "category": "Tişört-Kız Bebek", "category_path": [ "Bebek", "Giyim", "Tişört-Kız Bebek" ], "product_group": "Bebek", "seller": { "id": 1, "name": "LC Waikiki" }, "is_outlet": false }, { "position": 3, "option_id": 5248549, "model_id": 8770837, "product_code": "W60081Z4-Q6K", "model_code": "W60081Z4", "title": "Polo Yaka Erkek Çocuk Pike Tişört", "brand": "LCW Kids", "url": "https://www.lcw.com/polo-yaka-erkek-cocuk-pike-tisort-beyaz-o-5248549", "image": "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/8770837/v7/l_20262-w60081z4-q6k_5.jpg", "images": [ "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/8770837/v7/l_20262-w60081z4-q6k_5.jpg", "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/8770837/v4/l_20262-w60081z4-q6k-56-170_a.jpg", "https://img-lcwaikiki.mncdn.com/mnpadding/600/800/ffffff/pim/productimages/20262/8770837/v4/l_20262-w60081z4-q6k-56-170_a1.jpg" ], "color_hex": "#ffffff", "price": 399.99, "price_display": "399,99 TL", "original_price": null, "campaign_price": null, "campaign_label": null, "campaign_discount_percent": null, "campaign_ends_at": null, "final_price": 399.99, "lowest_price_30_days": 399.99, "currency": "TRY", "campaigns": [ { "campaign_id": 263939, "label": "3 AL %5, 5 AL %10!", "starts_at": "2026-09-03T07:00:00Z", "ends_at": "2026-09-18T20:59:00Z", "url": "https://www.lcw.com/kampanya-urun-listesi/263939" } ], "search_index_stock_count": 3846, "in_stock": true, "search_index_rating": 2.25, "search_index_review_count": 4, "rating_scale": 5, "category": "Tişört-Genç Erkek", "category_path": [ "Çocuk", "Giyim", "Tişört-Erkek Çocuk" ], "product_group": "Çocuk", "seller": { "id": 1, "name": "LC Waikiki" }, "is_outlet": false } ], "count": 100, "total_results": 36404, "total_pages": 365, "page": 1, "served_page": 1, "page_size": 100, "sort": "relevance", "applied_filters": null, "available_filters": [ { "key": "m_61", "title": "Cinsiyet", "values": [ { "value": "7", "label": "Erkek", "count": 15727, "selected": false }, { "value": "2", "label": "Erkek Bebek", "count": 797, "selected": false }, { "value": "5", "label": "Erkek Çocuk", "count": 5316, "selected": false } ] }, { "key": "m_5", "title": "Ürün Tipi", "values": [ { "value": "6", "label": "Atlet", "count": 950, "selected": false }, { "value": "20030", "label": "Body", "count": 720, "selected": false }, { "value": "19373", "label": "Crop", "count": 314, "selected": false } ] }, { "key": "m_size", "title": "Beden", "values": [ { "value": "303", "label": "Standart", "count": 68, "selected": false }, { "value": "183", "label": "XXS", "count": 89, "selected": false }, { "value": "236", "label": "XS", "count": 3758, "selected": false } ] } ], "breadcrumb": [ { "name": "tişört", "url": null } ], "category_name": "Tişört-Genç Erkek", "did_you_mean": null, "no_match_notice": null, "page_notice": null, "fallback_results_dropped": 0, "duplicate_rows_dropped": 0, "country": "tr", "currency": "TRY", "route": "keyword", "resolved_url": null } }
How the LC Waikiki API works
LC Waikiki is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 252 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Filter a category by colour, then watch which sizes sell out
The shop's filters come back with every search, so the second call is already narrowed. The third call is where the per-size stock lives.
{"url": "https://www.lcw.com/erkek-tisort-t-345"}100 products and available_filters. Find the colour you want in the m_color filter and note its value id.
{"url": "https://www.lcw.com/erkek-tisort-t-345", "filters": {"m_color": "141"}}The same category in that colour only: 708 products instead of 8,755 on 2026-09-15. Take results[].option_id.
{"option_id": "<results[0].option_id>"}variants[] has one row per size with stock_count and final_price; color_options[] marks sold-out sibling colours. price, campaign_price, final_price and original_price matched the search row on 45 of 45 products checked.
Search once per category and colour, then one detail call per garment you track, with the grid price, the campaign price and the per-size stock kept apart all the way through.
curl -X POST https://api.reefapi.com/lcw/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"tişört"}'{
"ok": true,
"data": { … },
"meta": {
"api": "lcw",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}LC Waikiki shows three prices, and its price sort follows the lowest
An LC Waikiki product can carry a grid price, a struck-through original price and a campaign price such as "Sepette İndirim" (in-basket discount). The API keeps them apart as price, original_price and campaign_price, plus final_price, the one you pay. The product page's headline shows the campaign price, not the grid price. On 2026-09-15 a price_asc page was in perfect order by final_price and had 30 rows out of order by price.
| Product (lcw.com) | price (grid) | campaign_price | original_price (struck) | final_price |
|---|---|---|---|---|
| Baskılı %100 Pamuklu Kadın Tişört | 299.99 TRY | 199.99 TRY (Sepette İndirim) | 399.99 TRY | 199.99 TRY |
| Slim Fit Modal Kumaş Tişört /02 | 249.99 TRY | 199.99 TRY (Sepette İndirim) | 359.99 TRY | 199.99 TRY |
| Bisiklet Yaka Baskılı Erkek Çocuk Tişört 3'lü | 599.99 TRY | 399.99 TRY (Sepette İndirim) | null, none shown | 399.99 TRY |
| Polo Yaka Erkek Çocuk Pike Tişört 2'li | 759.99 TRY | null, no campaign | null | 759.99 TRY |
A multi-buy offer such as "3 AL %5, 5 AL %10!" is not a price: it comes back in campaigns[] with its dates and campaign URL and never changes a price field. Every product page compared on 2026-09-15 showed final_price as its headline price, and price matched the grid price the search result showed on 45 of 45 products.
21 shops, three prices, sizes, and what LC Waikiki leaves out
Measured on 2026-09-15 across all 21 LC Waikiki shops: 48 searches, 45 product pages, 12 review calls and 8 product pages compared against the page itself. Three of these lines go against us.
tr (lcw.com) plus ro, ua, ba, rs, bg, de, al, mk, ru, fr, gr, hr, it, me, xk, kz, eg, ma, ge and iq. Every shop answered live searches and product pages, and the currency on every row matched the shop: TRY, RON, UAH, BAM, RSD, EUR, ALL, MKD, RUB, KZT, EGP, MAD, GEL or IQD.
price is the grid price, original_price the struck price when one is shown, campaign_price the campaign price with its label (for example Sepette İndirim), and final_price the one you pay. The product page's headline is the campaign price. On 8 product pages compared, final_price equalled the headline on all 8 and price equalled the page's own grid price on all 8.
Every size row has its own stock count and price; trousers have one row per waist and length pair. On 8 pages compared, the product's stock equalled the sum of its sizes on all 8. Sold-out sibling colours are flagged in color_options.
Each search returns every filter with value ids and counts; passing one back narrowed a 36,663-result search to 2,407. The price sorts follow final_price: a price_asc page had 0 rows out of order by final_price and 30 by price.
For a search it cannot match, LC Waikiki shows about 24 unrelated recommended products. The API returns no results, says how many padded rows it dropped, and a page past the end is also empty.
The stock, rating and review count on a search row are named search_index_* because they come from the listing index: the stock matched the product page on 21 of 45 products and the review count on 8 of 15 rated ones. product/detail and product/reviews carry the page's own figures.
For products whose reviews are pooled with sibling options, the pooled list is not reachable by the option's own id. The response flags it and returns the page's rating, count and newest reviews instead of an empty list or someone else's reviews.
gtin13 is a single barcode for the colour option, not one per size. On the non-Turkish shops the products checked printed no ratings, so rating is null there rather than 0. Multi-buy campaigns come on search rows, not on product/detail.
What people build with LC Waikiki
The jobs this data is most often used for.
endpoints
credits per call
Fashion price-monitoring teams track the grid price, the campaign price and the final price per product across LC Waikiki's 21 country shops.
Replenishment and assortment analysts watch which sizes of a garment sell out, from per-size stock counts and sold-out colour siblings.
Catalog teams pull composition, materials, attributes, care instructions and the model's measurements for size guides.
Product teams read review text with the size bought and the reviewer's height and weight to judge whether a garment runs small or large.
What LC Waikiki 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 →- 1,000 free credits on signup, no card
- One key, all 252 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 -X POST https://api.reefapi.com/lcw/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"tişört"}'import requests
r = requests.post(
"https://api.reefapi.com/lcw/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "tişört"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up LC Waikiki.
Get a free key →Which LC Waikiki countries does it cover, and in which currency?▾
21 shops through one country parameter: tr (lcw.com, Turkish lira), ro, ua, ba, rs, bg, de, al, mk, ru, fr, gr, hr, it, me, xk, kz, eg, ma, ge and iq. Prices come back in each shop's currency: TRY, RON, UAH, BAM, RSD, EUR, ALL, MKD, RUB, KZT, EGP, MAD, GEL or IQD, always as a number with the shop's own formatted string beside it. Each of the 21 was checked with live searches and product pages on 2026-09-15, and the currency matched the shop on every row. Option ids are shared across shops, but each shop lists only what it sells. LC Waikiki's Polish and Azerbaijani addresses did not answer as shops, so they are not included.
How is stock reported?▾
Per size. product/detail returns variants[], one row per size with its own stock count, in_stock flag and price; for trousers each row is a waist and length pair (a jeans option returned 17 of them). stock_count on the product is the sum of its sizes, and color_options[] tells you which sibling colours are sold out. The stock figure on a search row is the listing's own index number and is named search_index_stock_count, because it differed from the product page's size sum on 24 of 45 products checked. Use product/detail when the exact count matters.
Why is the rating on a search row called search_index_rating?▾
Because it is the listing index's figure, not the product page's. On 2026-09-15 the review count on a search row matched the product page on 8 of 15 rated products, and 5 products that the page shows as rated had no rating in the search row. product/detail returns the rating and count exactly as the product page prints them (one decimal, for example 3.8), and product/reviews returns the exact average (3.75) with the 1-5 breakdown.
Can I use the shop's own filters?▾
Yes. Every search returns available_filters: each filter's key (m_color, m_size, m_8 for brand, m_price, m_campaigntype for discounted items), its title and every value with its id and product count. Pass them back as filters, for example {"m_color": "141"}. On 2026-09-15 that colour filter narrowed "tişört" from 36,663 results to 2,407, the discounted-items filter to 16,980, and the same colour filter on a category page to 708 with page 2 served. Pages are 100 products each, and page 1 and page 2 shared no products.
Why does a nonsense search return nothing when the shop shows products?▾
Because those products are not results. When LC Waikiki finds nothing it fills the page with about 24 unrelated recommended products. The API returns an empty result with no_match_notice and the number of padded rows it dropped, so a monitoring job never records unrelated products as matches. A page past the end also comes back empty.
Does product/reviews return every review?▾
For almost every product, yes: 100 reviews a page, newest first, with page and total_pages (a 112-review dress returned 100 on page 1 and the remaining 12 on page 2). Each review has its stars, text, date, the size bought, the reviewer's height and weight when given, likes and photos; reviewer names are never returned. Some products share one review pool with sibling options, and that pool is not reachable by the option's own id. For those the response says so in reviews_source and reviews_note and returns the rating, the count and the newest reviews the product page prints.
What does LC Waikiki not publish here?▾
A barcode per size (there is one gtin13 per colour option), multi-buy campaigns on the product page (they are on search rows), the full pooled review list for products that share reviews with siblings, and reviews on most non-Turkish shops, whose product pages printed no ratings for the products checked. Model measurements only exist where a model wears the garment, so baby, children's, home and stationery items return none.
What is the LC Waikiki API?▾
LC Waikiki API is a ReefAPI endpoint group for lc waikiki in 21 countries: every size's stock and price, campaign prices and reviews. It returns live JSON through POST requests under /lcw/v1.
Is the LC Waikiki API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. LC Waikiki calls use the same shared credit balance as every other ReefAPI engine.
Do I need a LC Waikiki login or account?▾
No login to LC Waikiki 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 LC Waikiki 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 LC Waikiki API use?▾
LC Waikiki 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 LC Waikiki from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call lcw actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the LC Waikiki API a LC Waikiki scraper?▾
It is the managed alternative to a DIY LC Waikiki 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 lc waikiki in 21 countries: every size's stock and price, campaign prices and reviews back as clean JSON.
91 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling LC Waikiki, you are one call away from the rest of the category — no second contract, no second integration.
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.
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 251 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-15.