Woodcraft Scraper avatar

Woodcraft Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Woodcraft Scraper

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

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

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), productType
  • description — plain text (HTML stripped)
  • isOnSale, tags[]
  • priceMin, priceMax, currency (USD)
  • wasPrice, discountPercent — when the product is on sale
  • inStock, variantCount, variants[] (variantId, title, sku, price, compareAtPrice, available, option1/2/3, image, weightGrams)
  • optionNames[] — e.g. Size, Color
  • images[], mainImage
  • sourceUrl, createdAt, updatedAt, publishedAt
  • recordType: "product", scrapedAt

Output per category (mode=listCollections)

  • collectionId, title, handle, description, productsCount, imageUrl
  • sourceUrl, publishedAt, updatedAt
  • recordType: "collection", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch / byCollection / byProductHandles / listCollections
searchQuerystringrouter bitFree-text query (mode=search)
collectionHandlestringhardwareCurated category dropdown (mode=byCollection)
customCollectionHandlestringExact handle for any of the site's other collections; overrides the dropdown
productHandlesarrayProduct handles or full product URLs (mode=byProductHandles)
minPrice / maxPricenumberPrice range in USD
inStockOnlyboolfalseOnly in-stock products
onSaleOnlyboolfalseOnly discounted products
brandstringCase-insensitive brand/vendor substring match
keywordstringCase-insensitive substring match against title/vendor/description — most useful to narrow a byCollection category
sortBystringrelevancerelevance / priceAsc / priceDesc / titleAsc / titleDesc / newest
minProductsCountintDrop small categories (mode=listCollections)
maxItemsint50Hard 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.