Ars Mundi Artist & Artwork Scraper avatar

Ars Mundi Artist & Artwork Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Ars Mundi Artist & Artwork Scraper

Ars Mundi Artist & Artwork Scraper

Scrape Arsmundi.de artworks (paintings/sculptures/jewelry) 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

Artsiom Kunitsyn

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

ars-mundi-scraper

Scrapes both artworks (paintings/sculptures/jewelry) and artist profiles from Arsmundi.de, a German art gallery/marketplace, via the site's own sitemap and real schema.org microdata β€” no login required.

Contents

πŸ”‘ Key features

  • Two entity types, one Actor. Set entityType to artworks or artists.
  • A real availability signal. Every artwork is classified as for_sale (has a price), price_on_request (price-on-request, still genuinely for sale), reserved (temporarily unavailable), or sold β€” the same real signal confirmed on this Actor's sibling kunsthaus-artes-scraper (same underlying platform); see the FAQ below for its confirmed status on this specific site.
  • Rich, structured fields from real schema.org microdata β€” SKU, artist name, dimensions (mm), GTIN-13 barcode, and a pipe-delimited edition/medium/framing summary, all read directly from the page's own structured data rather than scraped from display text.
  • 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.
  • 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.
  • maxItems defaults 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 (~2,700 artworks or ~900 artists as of this build).

Not included yet: artist records are base bio data only (name + short biography) β€” no artwork rollup (total/avg price/sold count). See the FAQ below for why.

πŸ“‹ 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": "arsmundi",
"entity_type": "artworks",
"external_id": "IN-688439.R1",
"url": "https://www.arsmundi.de/salvador-dali-bild-die-meditative-rose-1958-gerahmt-688439-r1/",
"title": "Bild \"Die meditative Rose\" (1958), gerahmt",
"artist_name": "Salvador DalΓ­",
"artist_url": "https://www.arsmundi.de/kuenstler/dali-salvador/",
"artist_id": "9999e6142ed82e47dbf87be816301147",
"price": 480,
"currency": "EUR",
"availability_status": "for_sale",
"width_mm": 610,
"height_mm": 720,
"gtin13": "4044991560613",
"image_url": "https://www.arsmundi.de/thumbnails/g0/85/d6/1619633493/688439.R1_1_320x320.jpg",
"change_type": "new"
}

Example artist record:

{
"source": "arsmundi",
"entity_type": "artists",
"external_id": "0199abc1234de5f6a7b8c9d0e1f2a3b4",
"url": "https://www.arsmundi.de/kuenstler/heber-peter/",
"name": "Peter Heber",
"bio": "Peter Heber ...",
"change_type": "new"
}

πŸ”§ Input

FieldTypeDefaultDescription
entityTypestringartworksartworks or artists.
startUrlsarrayβ€”Specific artwork/artist URLs to scrape directly instead of the full sitemap.
maxItemsinteger50Stop after pushing this many items. Set to null for a full crawl.
modestringautoauto / full / incremental β€” see Incremental mode.
concurrencyinteger12How many detail pages to fetch in parallel.
impersonatestringchromecurl_cffi TLS-impersonation target.
proxyConfigurationobjectoffApify Proxy config β€” not needed; no anti-bot friction found.

πŸ“₯ Input examples

Default preview (50 artworks):

{ "entityType": "artworks" }

Full artist directory:

{ "entityType": "artists", "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. Only an uncapped, unscoped run (no maxItems limit reached, no startUrls, no item errors) can detect delistings or update the baseline.

πŸ”— You might also like

  • SaatchiArt Artist & Artwork Scraper β€” the same entity-type design pointed at a first, independent art marketplace, with a real per-artist rollup (avg price, medium mix, sold count) computed from an artist's full catalog.
  • Artmajeur Artist & Artwork Scraper β€” a second independent art marketplace source, same rollup-stats design.
  • Artsper Artist & Artwork Scraper β€” a third, independent art marketplace source, same design.
  • Artfinder Artist & Artwork Scraper β€” a fourth, independent art marketplace source, same design.
  • Artsy Artist, Artwork & Gallery Scraper β€” a fifth, independent art marketplace source, plus a genuine dealer/gallery angle (real represented-artist rollups per gallery) this collection doesn't otherwise have.
  • Bluethumb Artist & Artwork Scraper β€” a sixth, independent art marketplace source (Australia's largest), with real per-artist sold/available/total counts read from a single profile-page fetch, no rollup fan-out needed.
  • Riseart Artist & Artwork Scraper β€” a seventh, independent art marketplace source, built entirely on the site's own public GraphQL search API (no HTML scraping, no per-item detail fetch), with a real per-artist rollup (total artworks, avg price, for-sale vs. enquire-only split).
  • Kunsthaus ARTES Artist & Artwork Scraper β€” an eighth, independent art marketplace source (a sibling German gallery running the same underlying platform as this Actor).
  • Artprice.com Artist & Artwork Scraper β€” a tenth, independent art marketplace source, built on Artprice.com's own public unauthenticated JSON APIs (artist directory + current marketplace listings), with real per-artist rollup stats and multi-currency pricing (EUR/USD/GBP/CNY/BTC/ETH) on every artwork.

❓ FAQ

Does this Actor tell me how many artworks an artist has sold? No. This Actor's sibling kunsthaus-artes-scraper (the same underlying platform) investigated this thoroughly and confirmed the site has no per-artist "all works by this artist" listing anywhere β€” not on the bio page, not through the generic listing widgets, and not through the platform's own dedicated "artist directory" component either (referenced on the page but never actually rendered there). Given both sites share the identical page template, the same conclusion is expected to hold here; entityType: "artists" gives base bio data only.

Is the "reserved"/"sold"/"price-on-request" status confirmed on this specific site? Partially. for_sale is confirmed on many real Ars Mundi listings. The other three states use the same parsing logic as this Actor's sibling kunsthaus-artes-scraper (confirmed to run on the same underlying platform, same page template, same German status text) β€” but a live sample of 140 real product pages during this build, including a targeted sample of well-known/high-value artists, did not turn up a real example of any of them on Ars Mundi specifically. They may be rarer here, or the current catalog may simply not have one right now. Reported honestly rather than presented as fully verified β€” if you spot one, the field is there and should be correct, but treat it as less-battle-tested than for_sale.

Why do some artists have no bio? A real, confirmed absence on the site itself: well-known artists (e.g. Friedensreich Hundertwasser) have a real biography block on their profile page, but many lesser-known artists simply don't β€” the block is entirely absent from the page, not just empty. A real 20-artist sample during this build came back with 17/20 missing a bio for exactly this reason.

Why do some artworks have no artist_url or dimensions? Both are real, confirmed absences on the site itself, not scraping gaps: some artists don't have a dedicated bio page linked from their artwork pages, and some listings describe their size only in free text (short_info/description), not as separate structured width/height fields.

Does this need a proxy? No β€” no anti-bot friction was found anywhere on this site while building this Actor.