LUMAS Artist & Artwork Scraper
Pricing
from $5.00 / 1,000 results
LUMAS Artist & Artwork Scraper
Scrape LUMAS.com limited-edition photography artworks (with per-size edition size, signature type, and remaining-stock data) and artist profiles, with built-in delta mode. No login required.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Artsiom Kunitsyn
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
lumas-scraper
Scrapes both artworks (limited-edition photography, one record per artwork with a per-size breakdown) and artist profiles from LUMAS.com, a global limited-edition photography gallery network โ via the site's own sitemap and real embedded structured data. No login required.
Contents
๐ Key features
- Two entity types, one Actor. Set
entityTypetoartworksorartists. - Real per-size edition-size and remaining-stock tracking โ a genuinely different data shape from every other art-marketplace Actor in this collection. Each artwork is offered in 1-3+ distinct sizes, each with its own price, availability, and edition size โ some sizes are a numbered "Edition of: N" (with a signature type: Signed, Studio Stamp, ...), others are a genuine Open Edition with no cap at all, confirmed live on the same artwork.
- A real, best-effort "stock left" count, read from the page's own analytics data for whichever
size is shown by default โ present for most artworks, and honestly
null(not guessed) when the site itself doesn't report it (confirmed: this correlates with Open Edition sizes, which have no capped stock to report). - A real three-state per-size availability signal (
for_sale/limited_availability/sold), aggregated honestly across a multi-size artwork's own sizes โ some artworks have one size sold out while another is still in stock. - Delta mode built in. Every run classifies each item as
new,changed,unchanged, ordelistedagainst a persisted baseline โ pay for what changed, not a full re-scrape every time. - Confirmed-dead listings are never re-fetched. A removed artwork or artist returns a plain HTTP 404 on this site โ tracked in a persisted registry so a future run skips it without a wasted request.
artistUrlsinput. ScopeentityType=artworksto a specific artist's own catalog (e.g. from a priorentityType=artistsrun) โ reuses that artist's own embedded artwork list, no separate discovery pass needed.maxItemsdefaults to 50 โ a fast, cheap preview, and what keeps an unconfigured run within Apify's automated 5-minute QA check. Clear it (null) for a full crawl (~5,046 artworks or ~604 artists as of this build).
๐ Output
One dataset item per artwork or artist, depending on entityType โ see
.actor/dataset_schema.json for the full field list.
Example artwork record:
{"source": "lumas","entity_type": "artworks","external_id": "pictures/3deluxe/bergen01_violet","url": "https://www.lumas.com/pictures/3deluxe/bergen01_violet/","title": "Bergen.01 (violet)","artist_name": "3deluxe","artist_url": "https://www.lumas.com/artist/3deluxe/","date_created": "2009","image_url": "https://img.lumas.com/showimg_dde01_desktop.jpg","currency": "USD","price_min": 760,"price_max": 1432,"availability_status": "for_sale","sold": false,"has_open_edition_size": false,"sizes": [{"sku": "DDE02","price": 760,"list_price": 950,"on_sale": true,"currency": "USD","availability": "for_sale","width_mm": 1080,"height_mm": 290,"edition_size": 100,"signature": "Studio Stamp","mounting": "Mounted under acrylic glass","framing_label": "depth 0.08\" glossy, 11.4 x 42.5\" (External dimensions)","stock_left": 49},{"sku": "DDE01","price": 1432,"list_price": 1790,"on_sale": true,"currency": "USD","availability": "for_sale","width_mm": 1800,"height_mm": 490,"edition_size": 100,"signature": "Studio Stamp","mounting": "Mounted under acrylic glass","framing_label": "depth 0.08\" glossy, 19.3 x 70.9\" (External dimensions)","stock_left": null}],"change_type": "new"}
Example artist record:
{"source": "lumas","entity_type": "artists","external_id": "660","url": "https://www.lumas.com/artist/3deluxe/","name": "3deluxe","bio": "3DIMENSIONAL LUXURY Finding pictures in the clouds is one of the best exercises...","image_url": "https://img-lumas.b-cdn.net/showimg_dde-header_full.jpg","is_active": true,"artwork_urls": ["https://www.lumas.com/pictures/3deluxe/bergen01_violet/", "..."],"artwork_count": 10,"change_type": "new"}
๐ง Input
| Field | Type | Default | Description |
|---|---|---|---|
entityType | string | artworks | artworks or artists. |
startUrls | array | โ | Specific artwork/artist URLs to scrape directly instead of the full sitemap. |
artistUrls | array | โ | artworks only: scope to these artists' own catalogs (reuses each artist page's embedded artwork list). |
maxItems | integer | 50 | Stop after pushing this many items. Set to null for a full crawl. |
mode | string | auto | auto / full / incremental โ see Incremental mode. |
concurrency | integer | 20 | How many detail pages to fetch in parallel. |
impersonate | string | chrome | curl_cffi TLS-impersonation target. |
proxyConfiguration | object | off | Apify Proxy config โ not needed; no anti-bot friction found. |
๐ฅ Input examples
Default preview (50 artworks):
{ "entityType": "artworks" }
Full artist directory:
{ "entityType": "artists", "maxItems": null }
All artworks by specific artists:
{ "entityType": "artworks", "artistUrls": ["https://www.lumas.com/artist/3deluxe/"], "maxItems": null }
๐ Incremental (delta) mode
auto mode does a full scan the first time it runs for a given entityType/scope, then only pushes
new/changed items on later runs โ including price changes and sold-out transitions
(price_min/price_max/availability_status are the watched fields). Only an uncapped, unscoped
run (no maxItems limit reached, no startUrls/artistUrls, no item errors) can detect delistings
or update the baseline.
โ FAQ
Why is stock_left null for most sizes?
This is a real, honest limitation, not a scraping gap: the site's own page only reports a
remaining-stock count for whichever single size is shown by default when the page loads โ every
other size on the same artwork genuinely has no stock-left data available from the page itself.
It's also null for Open Edition sizes, since there's no capped stock to report.
Why do some sizes have no edition_size?
That's a real Open Edition โ a size with no fixed cap at all, confirmed live to exist alongside
numbered "Edition of: N" sizes on the very same artwork. has_open_edition_size flags this at the
artwork level; check each entry in sizes for the per-size detail.
Does this need a proxy? No โ no anti-bot friction was found anywhere on this site while building this Actor (a real 150-request concurrent burst at concurrency 40 came back 100% clean).
Does this cover LUMAS's other regional storefronts (lumas.de, lumas.co.uk, etc.)?
Not in this build โ it's scoped to www.lumas.com (USD pricing) only. The site has at least 9
other regional/currency storefronts sharing the same catalog; a future version could add those.