Bluethumb.com.au Artist & Artwork Scraper avatar

Bluethumb.com.au Artist & Artwork Scraper

Under maintenance

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Bluethumb.com.au Artist & Artwork Scraper

Bluethumb.com.au Artist & Artwork Scraper

Under maintenance

Bluethumb.com.au artist & artwork scraper with real per-artist sold/available/total counts read straight from each artist's profile page, no per-artwork fan-out, plus delta mode.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Artsiom Kunitsyn

Artsiom Kunitsyn

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

bluethumb-scraper

Scrapes both artworks and artist profiles from Bluethumb.com.au, Australia's largest online art marketplace โ€” including real per-artist sold/available/total artwork counts read straight from each artist's own profile page, no extra fetches needed.

Contents

๐Ÿ”‘ Key features

  • Two entity types, one Actor. Set entityType to artworks or artists โ€” no need for two separate scrapers to build a full picture of an artist and their work.
  • Real per-artist rollup stats, with no per-artwork fan-out. total_artworks, sold_artworks, and available_artworks are all read directly from a single request to the artist's own profile page โ€” Bluethumb computes these server-side already. Unlike some other art marketplace scrapers in this collection, filtering artists by minSoldArtworks costs nothing extra here.
  • Delta mode built in. Every run classifies each item as new, changed, unchanged, or delisted against a persisted baseline โ€” pay for what changed, not a full re-scrape every time.
  • Exhaustive when you ask for it. With no startUrls, discovery walks the site's own sitemaps โ€” every artwork (~500K) and every artist (~19K) โ€” but maxItems defaults to 50 (a fast preview, and what keeps an unconfigured run within Apify's automated 5-minute QA check), so clear it (null) for a real full crawl.
  • Confirmed-dead listings are never re-fetched. A removed artwork or artist doesn't return a 404 or 410 on this site โ€” it silently serves a generic fallback page with HTTP 200. This Actor detects that from the page's own content (a missing product/profile data block, not a status code) and persists it, so a future run skips it without a wasted request.

๐Ÿ“‹ Output

One dataset item per artwork or artist, depending on entityType โ€” see .actor/dataset_schema.json for the full field list, or the Output tab's Artworks / Artists views for a readable table.

Example artwork record:

{
"source": "bluethumb",
"entity_type": "artworks",
"external_id": "a-girl-and-her-cat-1137403",
"url": "https://bluethumb.com.au/kimmagee/Artwork/a-girl-and-her-cat-1137403",
"title": "A Girl and Her Cat",
"artist_name": "kim magee",
"artist_url": "https://bluethumb.com.au/kimmagee",
"price": 350.0,
"currency": "AUD",
"availability_status": "for_sale",
"medium": "Acrylic Paint",
"category_tags": "Animal Cat People & Portrait",
"width_cm": 60.0,
"height_cm": 75.0,
"depth_cm": 2.0,
"weight_kg": 3.0,
"change_type": "new"
}

Example artist record:

{
"source": "bluethumb",
"entity_type": "artists",
"external_id": "kimmagee",
"url": "https://bluethumb.com.au/kimmagee",
"name": "kim magee",
"state": "VIC",
"country": "AU",
"total_artworks": 411,
"verified_artworks": 32,
"sold_artworks": 168,
"available_artworks": 28,
"followers": 41,
"tier": "starter",
"change_type": "new"
}

Results can be downloaded as JSON, CSV, or Excel from the Console's Output tab, or pulled via the Apify API/dataset endpoint.

Known gaps:

  • awards/exhibitions/education/galleries/prizes exist on Bluethumb's own artist data but were empty on every artist sampled while building this Actor (7 artists, a mix of catalog sizes) โ€” not currently exposed as output fields since no populated example was ever seen to confirm the real shape. May be revisited if a customer needs them.
  • category_tags and dimensions/weight are parsed from the artwork page's own meta description tag (Bluethumb doesn't expose them as separately labeled fields) โ€” reliable on every artwork sampled, but a page missing that tag entirely would leave these fields null rather than erroring.

โš™๏ธ Input

See .actor/input_schema.json for the full JSON schema.

ParameterTypeDefaultDescription
entityTypeStringartworksartworks or artists.
startUrlsArray of strings(none)Specific artist or artwork URLs to scrape directly, instead of discovering via the full site sitemap. No persisted delta tracking across runs for this scope.
maxItemsInteger50Stop after pushing this many dataset items. Clear it (null) for a full, uncapped crawl.
minSoldArtworksInteger0Artists only. Only push artist records with at least this many sold artworks. Artists are still fully tracked internally either way; this only filters what's pushed.
modeStringautoauto (recommended): full scan on the first run, incremental after. full: always push every item and refresh the baseline. incremental: always push only new/changed items.
impersonateStringchrome (internal)curl_cffi TLS-impersonation target โ€” a hedge, not a requirement (see FAQ).
proxyConfigurationObject{"useApifyProxy": false}Apify Proxy config. Off by default โ€” no anti-bot friction was found on any route this Actor uses.

๐Ÿงช Input examples

Full artwork catalog scan (exhaustive, every artwork's detail page is fetched):

{ "entityType": "artworks", "maxItems": null }

Full artist directory, with rollup stats:

{ "entityType": "artists", "maxItems": null }

Artists with at least one sold artwork only:

{ "entityType": "artists", "minSoldArtworks": 1, "maxItems": null }

Scheduled tracking run โ€” full, uncapped run (maxItems cleared โ€” required for the baseline to save and delistings to be detected):

{ "entityType": "artworks", "mode": "incremental", "maxItems": null }

๐Ÿ”„ Incremental (delta) mode

Every run classifies each item as new, changed (price or availability moved, for artworks; sold/available/total counts moved, for artists), unchanged, or delisted, using a state baseline persisted in a named Apify Key-Value Store scoped to entityType.

  • mode: auto (default) โ€” first run for a scope pushes everything (full); later runs push only new/changed/delisted (incremental).
  • A startUrls-scoped run is always partial and never updates the baseline.
  • A confirmed-gone artwork/artist is recorded and never fetched again on any future run, regardless of mode or scope. Doesn't count toward the baseline-save/delisted-detection gate, since it's a trustworthy, already-understood outcome rather than an ambiguous failure.

๐Ÿš€ How to scrape Bluethumb.com.au

  1. Open the Bluethumb Artist & Artwork Scraper in Apify Console and go to the Input tab.
  2. Pick entityType (artworks or artists).
  3. maxItems defaults to 50 (a quick preview) โ€” clear it (set to null) for a full, uncapped run.
  4. Click Start.
  5. When the run finishes, browse results in the Output tab, or download as JSON/CSV/Excel, or fetch them via the API.
  6. To track over time instead of scraping once: create a Schedule with mode: auto โ€” the first run does a full scan, every run after only bills what actually changed.

๐Ÿ”— You might also like

โ“ FAQ

Is it legal to scrape Bluethumb.com.au? It's legal to collect publicly available marketplace data such as artwork listings, prices, and public artist profile information. Scrape it only with a legitimate purpose under applicable privacy law.

How do I get only new/changed items? Use mode: auto (or incremental) on a schedule โ€” see Incremental mode.

Does this Actor use Bluethumb's internal search API? No โ€” that endpoint (/api/listings?...) is genuinely Cloudflare-challenged, confirmed while building this Actor with both a plain request and browser TLS impersonation. Not needed anyway: the site's own sitemaps are exhaustive for both artworks and artists, and every route this Actor actually uses returned clean responses in testing.

Search keywords

bluethumb scraper, australian art marketplace scraper, artist data scraper, artwork data scraper, art price data, art market analytics, art collector data feed