Skip to content

September 23, 2026 · 12 min read

Blick Art Materials Scraper: Pull Data from 237 Categories (2026)

By Crawlerbros Engineering Team

With 66 runs in its lifetime, the Blick Art Materials Scraper extracts detailed art-supply listings from dickblick.com, including product titles, brands, prices, category paths, descriptions, images, and ratings. This tool does not require proxies, cookies, or user logins to gather data from the retailer's catalog. It handles category browsing, keyword search, and exact SKU lookups, delivering structured data directly from the frontend. This tool is for developers, price monitors, and affiliate marketers who need clean retail data; it is not for those looking to scrape Michaels or JOANN.

What does a Blick Art Materials Scraper run cost?

Each result costs $0.005 on the free tier, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.01 per GB of Actor memory.

Apify plan Per result Per 1,000 results
FREE $0.005 $5.00
BRONZE $0.00433 $4.33
SILVER $0.00367 $3.67
GOLD $0.003 $3.00
PLATINUM $0.003 $3.00
DIAMOND $0.003 $3.00

The price of $0.005 per result means your bill scales directly with the maxItems input. Setting a low maxItems value of 5 is the cheapest way to confirm that the scraper returns your required fields before executing large runs. Utilizing category-browse mode is more cost-effective than SKU lookups because it returns summary families rather than charging for every individual color and size variant.

How do you run Blick Art Materials Scraper from the API?

The schema marks 1 of its 12 controls as required: mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.

Call the synchronous endpoint to start a run and receive dataset items in one request:

curl -X POST "https://api.apify.com/v2/acts/crawlerbros~blick-art-materials-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"byCategory","categoryPath":"/categories/painting/tempera-paint/","searchQuery":"yarn","productUrls":[],"onSaleOnly":false,"inStockOnly":false,"maxItems":20}'

The same run from Python, using the official client:

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run_input = {
  "mode": "byCategory",
  "categoryPath": "/categories/painting/tempera-paint/",
  "searchQuery": "yarn",
  "productUrls": [],
  "onSaleOnly": False,
  "inStockOnly": False,
  "maxItems": 20
}

run = client.actor("crawlerbros~blick-art-materials-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

And from Node.js:

import { ApifyClient } from 'apify-client'

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })

const input = {
  "mode": "byCategory",
  "categoryPath": "/categories/painting/tempera-paint/",
  "searchQuery": "yarn",
  "productUrls": [],
  "onSaleOnly": false,
  "inStockOnly": false,
  "maxItems": 20
}

const run = await client.actor('crawlerbros~blick-art-materials-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)

That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.

Which Blick Art Materials Scraper inputs matter, and which can you skip?

The mode control determines whether the scraper runs a category browse, a search, or a direct URL lookup. Most users should focus on the categoryPath dropdown to query established catalog paths, while leaving the customCategoryPath field empty during initial testing. The brand and price filters should only be used when you need to narrow down huge search results to save on platform charges.

  • mode (string): What to fetch. Default: "byCategory".
  • categoryPath (string): Department or category to browse. Default: "/categories/painting/tempera-paint/".
  • customCategoryPath (string): Exact category URL path, e.g. /categories/painting/tempera-paint/kids/. Overrides the Category dropdown above when set. Use this to reach a narrower subcategory not listed in the dropdown.
  • searchQuery (string): Keyword to search for across Blick's product catalog (matched against product title, brand, and description). Default: "yarn".
  • productUrls (array): Full product URLs (e.g. https://www.dickblick.com/products/blick-tempera-cakes/) or bare slugs (e.g. blick-tempera-cakes). Default: [].
  • brand (string): Only include products whose brand contains this text (case-insensitive), e.g. Blick, Crayola, Golden.
  • minPrice (integer): Drop products priced below this amount.
  • maxPrice (integer): Drop products priced above this amount.
  • minRating (integer): Drop products rated below this (1-5 stars). Products without a rating are always included.
  • onSaleOnly (boolean): Only include products currently on sale. Default: false.
  • inStockOnly (boolean): Only include in-stock items (mode=byProductUrl; category/search results do not expose per-SKU stock status). Default: false.
  • maxItems (integer): Hard cap on emitted records. Default: 30.

Fixed-choice controls: mode accepts byCategory, search, byProductUrl; categoryPath accepts /categories/books/, /categories/books/art-education/, /categories/books/ceramics-sculpture/, /categories/books/coffee-table/, /categories/books/coloring/, /categories/books/crafts/.

Change a single control per run and diff the result against the last sample, sorting records into accepted, uncertain, and excluded. A control that increases volume without improving decision quality still bills at $0.005 per result.

What does Blick Art Materials Scraper return?

The output records are structured as productSummary for broad runs and product for variant lookups, making them perfect for competitive analysis or building affiliate feeds. However, they conspicuously do not contain full, written customer reviews, as the scraper only extracts the aggregate rating and ratingCount. Highly customized variations like specific custom paint mixes will not contain individual descriptions if the retailer does not list them.

The Actor does not publish a per-field output list, so treat the first run as the specification: collect a small sample and record which fields are present before anything downstream depends on them.

How do you build the workflow end to end?

Open Blick Art Materials Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

  1. Select byCategory for the mode property to begin targeting a broad department.
  2. Pick a pre-defined category path from the categoryPath dropdown menu, such as /categories/painting/tempera-paint/.
  3. Set the maxItems limit to a low value of 5 for your initial test run to keep costs negligible.
  4. Execute the run and inspect the returned dataset in the platform console.
  5. Verify that the recordType field contains productSummary and check that priceMin and priceMax are present.
  6. Switch the mode property to byProductUrl to prepare for high-fidelity variant extraction.
  7. Input a specific product URL like https://www.dickblick.com/products/blick-tempera-cakes/ into the productUrls array.
  8. Run the Actor again and confirm that the returned recordType is product and contains a valid itemSku.

How do you apply it? Three worked playbooks

These are Blick Art Materials Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

Use case 1: Price monitoring

Outcome: track price and sale status for specific art-supply SKUs over time

Configure: Set mode to "byProductUrl", populate productUrls with "https://www.dickblick.com/products/blick-tempera-cakes/", and set inStockOnly to true.

Working method: Execute the run first for a single product family to check the structures. Inspect the returned dataset to ensure you receive one record for each color and size variant, then compare the price values against your target inventory list.

Deliverable: A CSV file listing individual SKU variants with their exact price, availability, and itemSku values.

Stop condition: The availability field returns OutOfStock on all records or the price field is missing.

Use case 2: Catalog research

Outcome: pull a full department's product lineup for competitive analysis

Configure: Set mode to "byCategory", select "/categories/painting/watercolor-paint/" in categoryPath, and set maxItems to 30.

Working method: Run the extraction to gather the top-ranking items from the category page. Compare the product family IDs and categoryPath fields in the output to map out competitor offerings within that specific department.

Deliverable: A JSON dataset containing productSummary records with title, brand, and the price range fields priceMin and priceMax.

Stop condition: The output contains fewer than 5 records when querying a major, populated department.

Use case 3: Affiliate content

Outcome: build "best of" and buying-guide content from real, current pricing and ratings

Configure: Set mode to "byCategory", set customCategoryPath to "/categories/painting/kids/watercolor/", and set maxItems to 20.

Working method: Execute the initial run targeting the deep path to bypass broad category summaries. Verify that the returned breadcrumbs match the targeted subcategory, then extract the imageUrls and shortDescription for content building.

Deliverable: An exported spreadsheet containing clean titles, representative image URLs, and short descriptions formatted for affiliate site injection.

Stop condition: The custom category URL returns a 404 error and the dataset contains zero records.

What breaks, and how do you design around it?

  • Test a small, representative input against your acceptance criteria before increasing scope.

When you encounter the limits of server-rendered listings on category pages, you should target narrower subcategories using the customCategoryPath override. When looking up specific variant details, use direct URL lists in byProductUrl mode to bypass category-page constraints entirely. If a specific product page contains hundreds of variants, increase your maxItems input to prevent truncation.

When should you not use Blick Art Materials Scraper?

Do not use this scraper if your target is Michaels or JOANN. Michaels blocks all cloud-based requests, returning HTTP 403 Access Denied errors even when using proxies, and JOANN redirects directly to Michaels. In this scenario, you must look for a different retailer or write a custom browser-based crawler utilizing expensive, paid residential proxy networks. Additionally, do not use this tool if you need to perform deep text analysis of customer reviews, because this scraper only collects the summary numerical ratings. Finally, if your application demands real-time inventory updates with sub-second API responses, this scraper will not work, as it is a web crawler subject to live page load speeds.

What should you check before trusting the output?

  • Confirm that the brand field is populated and matches your filter string if you configured the brand input.
  • Check that the rating field is omitted entirely rather than set to zero when a product has no reviews.
  • Halt the scheduled run if the price field returns null or undefined on more than 10 percent of product records.
  • Ensure that every record returned under byProductUrl mode contains a populated availability field such as InStock.

None of this proves a record is correct. It gives a scheduled Blick Art Materials Scraper run defined points where it should stop instead of quietly passing bad data downstream.

Frequently asked questions

How much does it cost to run a typical batch of 1,000 products?

At the standard free tier rate, retrieving 1,000 results costs $5.00, which equates to $0.005 per result. This price can be optimized further depending on your tier, down to $3.00 per 1,000 results on the Gold, Platinum, or Diamond plans.

Why does the category scraper return fewer products than the website displays?

Blick's category pages only server-render the first batch of items, while the rest are loaded via client-side JavaScript. To get complete coverage of a larger department, use customCategoryPath to browse its specific, narrow subcategories individually.

Can I retrieve the exact price for a specific color or size of paint?

Yes. While byCategory mode returns a broad price range, setting the mode to byProductUrl and providing the specific product URL will return one detailed record per SKU, complete with individual prices, colors, and availability states.

Do I need to buy a residential proxy network to use this scraper?

No proxy is needed. The scraper operates successfully without proxies or cookies because dickblick.com allows direct public requests, which is why it serves as an excellent alternative to highly protected craft sites like Michaels.

What happens when a product has no customer ratings or reviews?

When Blick does not provide a rating value for a product, the scraper completely omits the rating and ratingCount fields from the output record rather than returning zero, keeping your data clean.

Where to go next

Start with the Blick Art Materials Scraper Actor page for the current input schema, pricing tier, and run history.

If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:

Readers running Blick Art Materials Scraper commonly pair it with:

  • YachtWorld Scraper Scrape YachtWorld - the world's largest yacht & boat marketplace.
  • DoorDash Restaurant Scraper Extract restaurant info + complete menus from DoorDash store pages like name, address, cuisine, breadcrumbs, FAQ, and full menu sections with item names, descriptions, and prices.
  • AliExpress Scraper Scrape AliExpress search results, product details, store profiles, and customer reviews.
  • StockX Scraper Scrape StockX, sneakers, apparel, accessories, electronics, collectibles, trading cards.
  • Yandex Market Scraper Scrape product listings, prices, seller offers, and reviews from Yandex Market, Russia's largest e-commerce platform.
  • Shein Product Scraper Scrape product details from Shein (us.shein.com) by direct product URL.
  • Flippa Scraper Scrape digital asset listings from Flippa.com including websites, ecommerce stores, SaaS, apps, and domains.
  • Screwfix Trade & Industrial Supply Catalog Scraper Scrape Screwfix.com - the UK's largest trade tool, hardware, and industrial/MRO supply catalog.

Related guides:

Resources

  • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-23.

  • Actor last updated by its maintainers on 2026-07-21.

  • Run outcome figures cover the 30 day public window ending 2026-09-23.

  • Blick Art Materials Scraper on Apify

● Featured actors

Blick Art Materials Scraper

Scrape Blick Art Materials (dickblick.com) - a leading US arts, crafts & art-supplies retailer. Browse by category, look up products by URL, or search by keyword. Get title, price, brand, category, description, images, availability, and ratings.

Run on Apify ↗