LightInTheBox Scraper
Pricing
from $3.00 / 1,000 results
LightInTheBox Scraper
Scrape LightInTheBox - a global marketplace with millions of products across electronics, watches, fashion, home & garden. Search by keyword, browse categories, fetch product detail pages with full specs, prices, ratings and reviews.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Scrape LightInTheBox (lightinthebox.com) — one of the world's largest cross-border online marketplaces with millions of products across electronics, watches, fashion, home & garden, wedding and party supplies. Search by keyword, browse any of 4,000+ categories, fetch full product detail pages with specifications and reviews, or feed your own URLs. HTTP-only against the site's server-rendered pages — no auth, no cookies, no proxy required (optional Apify proxy for heavy runs).
Transport note: lightinthebox.com is protected by an Akamai edge that blocks plain HTTP clients (403 "Access Denied"). This actor therefore uses browser-fingerprint impersonation (curl_cffi, TLS fingerprint of Chrome/Safari/Edge, rotated across retries), which is why it keeps working where plain
httpx/requestsclients get blocked.
What this actor does
- Four modes:
search,byCategory,byProductIds,byUrls - Full product data: price, original price, discount %, rating, review count, availability, brand, images, specifications, selling points, customer reviews
- 20 market locales: English, German, French, Spanish, Italian, Portuguese, Japanese, Russian, Dutch, Arabic, Norwegian, Danish, Swedish, Finnish, Hebrew, Polish, Czech, Greek, Romanian, Hungarian
- Sorting: relevance, popularity, price low-to-high, price high-to-low
- Filters: price range, minimum rating, minimum review count, title keyword
- Automatic pagination (60 products per page) up to a page cap
- Empty fields are omitted — every record is compact and null-free
Output per product card (mode = search / byCategory)
productId— numeric LightInTheBox product IDtitle,brandproductUrl— canonical product page URLprice— current price (USD)originalPrice— pre-discount price, when showndiscountPercent— savings %, when original price is showncurrency—USDratingValue— average rating (0–5)reviewCount— number of ratingsimageUrl— main product image (CDN, hotlink-free)inStock— availabilityposition— rank on the results pagequery/categoryId— the search term or category that produced the recordsourceUrl— the page the record came fromrecordType: "productCard",scrapedAt
Output per product detail (mode = byProductIds / byUrls, or includeFullDetails)
Everything from the card plus:
description— when the page carries onespecifications— key/value map (gender, type, material, size, etc.)sellingPoints[]— selling-point bulletsmpn,sku,color,sizeimageUrls[]— all gallery images at full sizepriceValidUntil,itemConditionreviews[]— rating, date, body and author of featured reviewscategories[]— category breadcrumb (name + URL)recordType: "product",scrapedAt
Output per failure
When a product or page cannot be fetched after retries, a typed record is emitted:
recordType: "error",errorType(fetch_failed/not_found/parse_failed/invalid_url),message,sourceUrl,scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byCategory / byProductIds / byUrls |
searchQuery | string | watch | Keyword to search for (mode=search) |
category | string | – | Top-level category dropdown, e.g. women-s-clothing_71 (mode=byCategory) |
categoryUrl | string | – | Full URL of any category page, incl. sub-categories (mode=byCategory) |
productIds | array | – | Numeric product IDs, e.g. ["10116681"] (mode=byProductIds) |
startUrls | array | – | Product / category / search URLs (mode=byUrls) |
language | string | en | Market locale: en de fr es it pt ja ru nl ar no da sv fi he pl cz gr ro hu |
sortBy | string | relevance | relevance / popularity / priceLowToHigh / priceHighToLow |
minPrice | number | 0 | Keep products priced ≥ this value (USD) |
maxPrice | number | 100000 | Keep products priced ≤ this value (USD) |
minRating | number | 0 | Keep products rated ≥ this value (0–5) |
minReviewCount | integer | 0 | Keep products with ≥ this many reviews |
containsKeyword | string | – | Keep products whose title contains this text (case-insensitive) |
includeFullDetails | boolean | false | Also fetch each product's detail page and emit full records |
maxItems | integer | 50 | Max records to emit (1–10 000) |
maxPages | integer | 20 | Max result pages per query (60 products/page) |
proxyConfiguration | object | AUTO | Optional — works without proxy |
Example: keyword search
{"mode": "search","searchQuery": "led lights","language": "en","sortBy": "priceLowToHigh","minPrice": 5,"maxItems": 100}
Example: browse a category with details
{"mode": "byCategory","category": "watches_35798","includeFullDetails": true,"minRating": 4.5,"maxItems": 20}
Example: fetch specific products
{"mode": "byProductIds","productIds": ["10116681", "9767734", "9340231"],"language": "de"}
Example: full catalog crawl from your own URLs
{"mode": "byUrls","startUrls": [{"url": "https://www.lightinthebox.com/en/c/quartz-watches_113738"},{"url": "https://www.lightinthebox.com/en/p/lige-men-quartz-watch_p10116681.html"},{"url": "https://www.lightinthebox.com/en/search?q=smart+watch"}],"maxItems": 500}
Use cases
- Price intelligence — track LightInTheBox pricing, discounts and availability over time
- Marketplace monitoring — watch new arrivals and best sellers across categories
- Product research — enrich competitor/comparison databases with specs and ratings
- Dropshipping research — discover products, margins (price vs original price) and social proof (rating + review count) in one pass
- Brand & category analytics — aggregate rating distributions and review volumes per category
- E-commerce migration — pull a full product catalog for storefront prototyping
FAQ
What is the data source?
This actor scrapes the public product listing and detail pages of LightInTheBox (lightinthebox.com), a global multi-category online marketplace. All data comes from the site's server-rendered HTML and its embedded structured data (schema.org Product markup).
Is this actor affiliated with LightInTheBox?
No. This is an independent third-party actor built on the public website.
Data source history — why was this actor created?
This actor replaces the original "Bonanza (bonanza.com)" marketplace slot on this marketplace:
- Bonanza → Fruugo: the original Bonanza slot was first replaced by Fruugo (fruugo.com), which is the same category (global multi-category marketplace).
- Fruugo → LightInTheBox: Fruugo hard-blocks all Apify cloud egress — direct and AUTO proxy requests return HTTP 403 with a ~6 KB Cloudflare WAF block body across every market (including us/il), making it unusable from the Apify platform. It was therefore replaced by LightInTheBox (lightinthebox.com), another global multi-category marketplace (electronics, watches, fashion, home & garden) that serves its pages to datacenter IPs without any bot challenge.
The old FruugoScraper folder was left untouched in the repository; this actor is a fresh, independent build.
Does it require a proxy, API key or cookies?
No. LightInTheBox serves full server-rendered HTML to plain HTTP clients. The actor works on the free plan with zero credentials. A proxy configuration is offered as an optional escalation if you scrape at very high volume and hit rate limits.
Are the image URLs accessible?
Yes. Product images are served from the litb-cgis.rightinthebox.com CDN and respond with 200 image/jpeg to plain anonymous requests — no Referer, cookies or signed tokens needed.
How many products are available?
LightInTheBox lists hundreds of thousands of products across 4,000+ categories (per its public category sitemap) in 20 languages.
How does pagination work?
Search and category pages show 60 products per page. The actor follows ?page=2, ?page=3, … automatically until results run out or maxPages is reached.
Why are some fields missing on some records?
LightInTheBox only renders certain fields for certain products (e.g. no rating on brand-new items, no original price when there is no discount). Missing values are omitted rather than filled with placeholders — this keeps every record clean and reliable.
How fresh is the data?
Every record is scraped live at run time and carries a scrapedAt UTC timestamp. Nothing is cached between runs.
What about reviews?
Full review lists are loaded by the site's front-end JavaScript; the server-rendered page embeds a few featured reviews per product, which the actor captures. Review counts come from the product's structured data.
Limitations
- Full review lists are client-side only; only the featured reviews embedded in the page markup are captured.
- Category pages and search pages are limited to 60 products per page; the actor respects the same pagination the website exposes.
- The site's filtering (price, brand, etc.) is applied client-side; the actor therefore filters results locally, which limits filtering to the pages it actually crawled.