Article Furniture Scraper
Pricing
from $3.00 / 1,000 results
Article Furniture Scraper
Scrape Article.com's furniture catalog - browse any room/category or search by keyword, get prices (incl. sale), color/finish variants, images, and full product detail (dimensions, materials, reviews) by product ID or URL.
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
2 days ago
Last modified
Categories
Share
Scrape Article.com — the direct-to-consumer modern furniture brand. Browse any room or category (Living Room, Bedroom, Dining & Kitchen, Home Office, Entryway, Outdoor, Decor), browse by named furniture collection/line, search by keyword, or look up full product detail by product ID/URL. Get prices (including active sale and clearance prices), color/finish variants, images, dimensions, materials, review ratings, related products, and alternate size/configuration options. HTTP-only — no login, no cookies, no proxy required.
What this actor does
- Four modes:
byCategory(51 curated rooms/categories),byCollection(any named furniture collection/line, e.g. "Timber", "Ceni"),search(free-text keyword),byProductId(direct product lookup) - Real-time pricing: current price, retail (list) price, active sale price, active clearance price, currency
- Color & finish variants: every fabric/finish option for a product, each with its own product URL and image
- Alternate configurations: non-color product options (e.g. Sofa vs. Loveseat size, Fabric vs. Leather material), each linked to its own product ID
- Cross-sell data: related products (with price/image) and similar-SKU product IDs
- Full product detail: dimensions (W/D/H in inches), materials, care instructions, features, package dimensions, packaged item quantity, assembly-instructions PDF, review count/rating, taxonomy attributes (material, seating type, comfort level, etc.), SEO meta title/description
- Delivery/availability signals: in-stock status, availability status, delivery-risk flag, region shipping restrictions
- Filters: price range, on-sale-only, on-clearance-only, sort order (popularity / price / newest)
- Empty fields are omitted
Output: per-product (mode = byCategory / search / byCollection)
productId,baseProductId,sku,title,slug,productUrlisBundle,onSale,onClearance,isNewProduct,isEtaAtRisk,badges[]currency,price,retailPrice,salePrice,clearancePrice,bundlePrice(multi-item bundle listings only)imageUrl,settingImageUrl,images[],videoUrlcolorVariants[](each:productId,title,colorOrFinish,slug,productUrl,imageUrl),colorVariantCountrestrictedRegions[](state/region codes where shipping is restricted — only present when applicable)recordType: "product",scrapedAt
Output: full product detail (mode = byProductId)
productId,baseProductId,sku,title,marketingTitle,slug,productUrldescription,colorOrFinish,availableCountries[]inStock,status,isMakeToOrder,onSale,onClearance,isNewProduct,isEtaAtRisk,badges[]currency,price,retailPrice,salePrice,clearancePrice,bundlePrice(multi-item bundle products only)collectionId,collectionName,collectionSlug,collectionProductCountreviewCount,reviewRatingcategoryName,categoryBreadcrumb[],categoryBrowseUrlcareInstructions[],features[],specifications[](key/value spec sheet),generalDimensions,materialswidthIn,depthIn,heightIn,packageDimensions(widthIn/depthIn/heightIn),packagedItemQuantityassemblyInstructionsUrlmetaTitle,metaDescriptionimages[],videoUrlcolorVariants[],colorVariantCountconfigurationOptions[](non-color alternate configurations — e.g. size/seating/material — each withattribute,value,productId)configuratorEnabledrelatedProducts[](each:productId,sku,title,slug,productUrl,imageUrl,price,currency),similarProductIds[]restrictedRegions[]taxonomyAttributes[](attribute/value pairs — material, seating type, width bucket, comfort level, room, etc.)recordType: "productDetail",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | byCategory | byCategory / byCollection / search / byProductId |
category | string | 224/living-furniture | Room/category to browse (mode=byCategory) — 51 options covering every room |
collectionId | string | 228/timber | Named collection/line to browse (mode=byCollection), in <id>/<slug> format or a full collection URL |
searchQuery | string | sofa | Free-text keyword (mode=search) |
productIds | array | – | Numeric product IDs or full product URLs (mode=byProductId) |
sortBy | string | popularity | popularity / price-low / price-high / newest |
minPrice | int | – | Drop products priced below this (USD) |
maxPrice | int | – | Drop products priced above this (USD) |
onSaleOnly | bool | false | Only emit products currently on sale |
onClearanceOnly | bool | false | Only emit products currently on clearance (permanently-discounted discontinuing stock — distinct from a temporary sale) |
maxItems | int | 48 | Hard cap (1–1000) |
proxyConfiguration | object | AUTO | Optional; only used as a fallback if the site briefly rate-limits requests |
Example: browse a category, cheapest first
{"mode": "byCategory","category": "27/sofas-sectionals","sortBy": "price-low","maxItems": 50}
Example: search with a price cap and on-sale filter
{"mode": "search","searchQuery": "dining table","maxPrice": 1500,"onSaleOnly": true,"maxItems": 30}
Example: full product detail lookup
{"mode": "byProductId","productIds": ["30333", "https://www.article.com/product/24154/timber-90-leather-sofa-charme-chocolat"]}
Example: browse a named collection/line, clearance only
{"mode": "byCollection","collectionId": "228/timber","onClearanceOnly": true,"maxItems": 20}
Use cases
- Price monitoring — track sale/clearance pricing across Article's catalog over time
- Competitive intelligence — benchmark DTC furniture pricing and product assortment
- Interior design / sourcing — pull dimensions and materials for space planning
- Affiliate / content sites — build furniture roundups with live pricing and images
- Market research — analyze category breadth, new-arrival cadence, and review sentiment
FAQ
Is login required? No. All data is scraped from Article.com's public pages — no account, cookies, or API key needed.
Why do byCategory/search records have fewer fields than byProductId records? The category/search listing pages return a lighter product summary (price, images, color variants). Full specs — dimensions, materials, care instructions, review ratings — are only available on the live product-detail lookup, which the actor fetches directly per product ID.
What currency are prices in? USD. Article also serves Canada in CAD, but the CAD price isn't reachable via a plain URL parameter, so this actor reports US pricing only.
Why are salePrice/clearancePrice sometimes missing? They're only included when the product is actually discounted below its standard price. A product not currently on sale won't have those fields — that's expected, not a data gap.
What does colorVariantCount mean? The number of other color/finish options available for that product (e.g. a sofa offered in 4 fabrics). Each variant is listed in colorVariants[] with its own product URL.
Can I look up a product by URL instead of ID? Yes — mode=byProductId accepts either a bare numeric ID (e.g. 30333) or a full product URL.
What's the difference between byCategory and byCollection? byCategory browses by room/furniture type (e.g. "Sofas", "Coffee Tables") — the taxonomy Article's own navigation menu uses. byCollection browses by a named furniture line/design collection (e.g. "Timber", "Ceni") that can span multiple room categories and product types sharing the same design language. Find a collectionId by first running byCategory/search/byProductId and reading the collectionId/collectionSlug fields on any result, then feed <collectionId>/<collectionSlug> back in as collectionId.
What's the difference between onSaleOnly and onClearanceOnly? Sale items are temporarily discounted (the price recovers later); clearance items are permanently reduced because the SKU is being discontinued. A product can be on sale, on clearance, both, or neither — the two filters are independent and can be combined.
What are configurationOptions[]? Alternate non-color configurations of the same base design — most commonly size/seating variants (e.g. Sofa vs. Loveseat vs. Sectional) or material variants (e.g. Fabric vs. Leather) — each pointing at the specific product ID for that configuration. Color/finish variants are covered separately by colorVariants[] and aren't duplicated here.
What are relatedProducts[] and similarProductIds[]? Article's own "you may also like" and "similar items" recommendations for a product — useful for building product graphs or cross-sell suggestions without additional lookups.
Does byProductId work for bundles (e.g. a rug + rug pad set)? Bundle IDs look like BUNDLE-767. They resolve reliably from byCategory/search (as a lighter summary record), but Article's bundle detail pages don't expose the same structured product data as regular product pages, so byProductId can't return a full detail record for a bundle — it's skipped with a logged notice rather than returning partial/fabricated data.
Is this affiliated with Article? No. This is an independent, third-party actor that reads Article.com's public pages.
Limitations
- Prices and stock reflect what Article's site shows at scrape time and can change without notice.
categorycovers 51 curated rooms/subcategories from Article's own navigation; a handful of very narrow sub-collections (e.g. seasonal campaign pages) aren't included.collectionIdisn't a closed dropdown (Article publishes 300+ collections and periodically adds/retires them), so it's entered as free text rather than a fixed list — get a current, valid value from any product'scollectionId/collectionSlugoutput field.restrictedRegions,isEtaAtRisk,configurationOptions, andrelatedProductsare only present when Article's own data has something to report for that specific product (e.g. most products ship everywhere and aren't region-restricted) — this is expected, not a data gap.- The site applies a short-lived rate limit to bursts of rapid requests; the actor retries automatically and this is not user-visible under normal use.
- The first page of results (~48-50 items) is always reliable for both
byCategoryandsearch. Article's own pagination backend intermittently (non-deterministically) takes a moment to make page 2+ available — a source-side quirk, not specific to this actor. The actor retries automatically and never returns duplicate records, but a run with a highmaxItemscan occasionally return somewhat fewer items than requested if a deep page doesn't become available within the retry budget. Re-running the same request typically fills in the gap. sortBy=price-high/price-lowreflects Article's own search ranking, which occasionally interleaves a small number of items slightly out of strict price order (e.g. bundled "sets" priced alongside individual pieces) — the actor passes the sort straight through without re-ordering client-side, so this matches what Article's own site shows for the same query.