Woodcraft Scraper
Pricing
from $3.00 / 1,000 results
Woodcraft Scraper
Scrape Woodcraft (woodcraft.com) - a leading US woodworking tools, hardware & fasteners retailer. Search products, browse by category (power tools, hardware, router bits, sanding & abrasives, wood & finishing, hand tools), look up exact products by handle/URL, and list the full category taxonomy.
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
12 days ago
Last modified
Categories
Share
Scrape Woodcraft — a leading US woodworking tools, hardware & fasteners retailer covering power tools, router bits, sanding & abrasives, hand tools, machinery, cabinet/furniture/door/drawer hardware, wood & finishing supplies, and project materials. Search products, browse any of the site's 450+ categories, look up exact products by handle or URL, or list the full category taxonomy. HTTP-only via the store's public JSON endpoints. No auth, no proxy, no cookies.
What this actor does
- Four modes:
search,byCollection,byProductHandles,listCollections - Search merges the store's own relevance-ranked predictive search with a broader catalogue scan, so short queries aren't capped at a handful of results
- Category browse across 50+ curated common categories (hardware, power tools, router bits, sanding & abrasives, hand tools, machinery, finishing, project materials) plus any of the site's other 450+ collections via an exact handle override
- Filters: min/max price, in-stock only, on-sale only, brand, keyword (title/vendor/description), sort order
- Rich product data: price range, was-price/discount, stock, brand, product type, tags, all images, all variants (SKU, price, option values, per-variant image, weight), option names
- Empty fields are omitted — no
null/""/[]ever shipped
Output per product
productId,title,handle,vendor(brand),productTypedescription— plain text (HTML stripped)isOnSale,tags[]priceMin,priceMax,currency(USD)wasPrice,discountPercent— when the product is on saleinStock,variantCount,variants[](variantId,title,sku,price,compareAtPrice,available,option1/2/3,image,weightGrams)optionNames[]— e.g.Size,Colorimages[],mainImagesourceUrl,createdAt,updatedAt,publishedAtrecordType: "product",scrapedAt
Output per category (mode=listCollections)
collectionId,title,handle,description,productsCount,imageUrlsourceUrl,publishedAt,updatedAtrecordType: "collection",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byCollection / byProductHandles / listCollections |
searchQuery | string | router bit | Free-text query (mode=search) |
collectionHandle | string | hardware | Curated category dropdown (mode=byCollection) |
customCollectionHandle | string | – | Exact handle for any of the site's other collections; overrides the dropdown |
productHandles | array | – | Product handles or full product URLs (mode=byProductHandles) |
minPrice / maxPrice | number | – | Price range in USD |
inStockOnly | bool | false | Only in-stock products |
onSaleOnly | bool | false | Only discounted products |
brand | string | – | Case-insensitive brand/vendor substring match |
keyword | string | – | Case-insensitive substring match against title/vendor/description — most useful to narrow a byCollection category |
sortBy | string | relevance | relevance / priceAsc / priceDesc / titleAsc / titleDesc / newest |
minProductsCount | int | – | Drop small categories (mode=listCollections) |
maxItems | int | 50 | Hard cap (1–1000) |
Example: search with price + stock filters
{"mode": "search","searchQuery": "chisel","minPrice": 10,"maxPrice": 100,"inStockOnly": true,"sortBy": "priceAsc","maxItems": 40}
Example: browse a category
{"mode": "byCollection","collectionHandle": "router-bits","sortBy": "newest","maxItems": 100}
Example: narrow a broad category with a keyword
{"mode": "byCollection","collectionHandle": "router-bits","keyword": "flush trim","maxItems": 30}
Example: browse a category not in the curated dropdown
{"mode": "byCollection","customCollectionHandle": "bandsaw-blades","maxItems": 50}
Example: lookup exact products
{"mode": "byProductHandles","productHandles": ["whiteside-flush-trim-spiral-router-bit-1-4-sh","https://www.woodcraft.com/products/some-other-product-handle"]}
Example: list the category taxonomy
{"mode": "listCollections","minProductsCount": 100,"maxItems": 200}
Use cases
- Price monitoring — track power tool, router bit and hardware prices over time
- Competitor / market research — benchmark a woodworking tools & hardware retailer's catalogue, pricing and promotions
- Product feed building — import woodworking tools & hardware into a comparison site or marketplace
- Stock availability tracking — flag when a popular tool or bit set goes out of stock
- Category / taxonomy analysis — enumerate every category and its product count
FAQ
Do I need a proxy or login? No. The actor reads the store's own public Shopify JSON endpoints (products.json, collections.json, search/suggest.json) — the same data your browser fetches, no authentication required.
Why is search capped around the requested maxItems but sometimes returns fewer? The store's own predictive-search API returns at most 10 highly relevant matches; the actor extends coverage by scanning the full catalogue and keyword-matching title/brand/type, but very narrow queries may still return fewer than maxItems if that's all that exists.
What currency are prices in? USD ($) — Woodcraft is a US retailer.
What's discountPercent? Computed from wasPrice (the pre-discount price) vs the current priceMin, only present when the product is genuinely discounted.
Why do some products have multiple variants? Products with size/style options (e.g. router bit sets, chisels) expose one variant per combination, each with its own SKU, price and availability.
How do I browse a category that isn't in the dropdown? Set customCollectionHandle to the exact handle from a woodcraft.com/collections/<handle> URL — it overrides the dropdown.
Why does sortBy sometimes only sort within a candidate pool rather than the whole category? The store's own product-listing endpoint doesn't honor a sort parameter, so the actor fetches a bounded pool of matching products (5x maxItems, up to 500+) in the store's own order and sorts that pool itself. For very large categories with a small maxItems, increase maxItems if you need a true full-category top/bottom ranking.
How fresh is the data? Real-time — every request hits the live storefront.