IdeelArt Artist & Artwork Scraper avatar

IdeelArt Artist & Artwork Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
IdeelArt Artist & Artwork Scraper

IdeelArt Artist & Artwork Scraper

Scrape IdeelArt.com original abstract-art products (price, medium, dimensions, edition, artist) and a cross-run artist rollup, 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

ideelart-scraper

Scrapes artworks (original abstract-art products) and a cross-run artist rollup from IdeelArt.com, an online gallery specializing exclusively in abstract art sold directly from artist studios โ€” via the site's own real Shopify product data. No login required.

Contents

๐Ÿ”‘ Key features

  • Two entity types, one Actor. Set entityType to artworks or artists.
  • Rich structured product data, not just the page's schema.org JSON-LD โ€” a real medium, material, style, support, technique, edition type, framing, and year come from the store's own Shopify tag data, parsed into real typed fields.
  • A real artist rollup, honestly labeled. IdeelArt has no artist directory or per-artist profile page at all โ€” entityType=artists is a cross-run accumulator fed as a side effect of entityType=artworks runs, so tracked_product_count only reflects what's actually been crawled so far, not a guaranteed-exhaustive total. Run entityType=artworks unscoped at least once before relying on the artist rollup.
  • Delta mode built in. Every artworks 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 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 (~4,000 artworks 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": "ideelart",
"entity_type": "artworks",
"external_id": "9177269240152",
"url": "https://ideelart.com/products/vg1",
"name": "VG1",
"description": "Guillaume Moschini is a French abstract artist mentored by...",
"artist_name": "Guillaume Moschini",
"product_type": "Painting",
"color": "Green",
"material": "Acrylic and ink",
"medium": "Painting",
"style": "Colourful",
"support": "Canvas",
"technique": "Acrylic and ink on canvas",
"edition": "Unique",
"framed": false,
"year": 2011,
"height": 46,
"width": 27,
"thickness": 2,
"currency": "EUR",
"price": 1129.95,
"image_urls": ["https://cdn.shopify.com/s/files/..."],
"change_type": "new"
}

Example artist record:

{
"source": "ideelart",
"entity_type": "artists",
"name": "Guillaume Moschini",
"tracked_product_count": 7,
"tracked_mediums": ["Painting"]
}

๐Ÿ”ง Input

FieldTypeDefaultDescription
entityTypestringartworksartworks or artists.
startUrlsarrayโ€”Specific artwork product URLs to scrape directly instead of the full sitemap. artworks only.
maxItemsinteger50Stop after pushing this many items. Set to null for a full crawl.
modestringautoauto / full / incremental โ€” see Incremental mode.
concurrencyinteger25How many product detail pages to fetch in parallel.
impersonatestringchromecurl_cffi TLS-impersonation target.

๐Ÿ“ฅ Input examples

Default preview (50 artworks):

{ "entityType": "artworks" }

Full artwork catalog:

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

Full artist rollup (run artworks unscoped first):

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

๐Ÿ” Incremental (delta) mode

auto mode does a full scan the first time it runs for entityType=artworks, then only pushes new/changed items on later runs (price/currency are the watched fields). Only an uncapped, unscoped run (no maxItems limit reached, no startUrls, no item errors) can detect delistings or update the baseline. entityType=artists has no delta mode โ€” it's a plain snapshot of the current rollup state.

โ“ FAQ

Why don't height/width/thickness have a unit? A real, honest gap โ€” the source itself never states a unit anywhere checked (the product page, the underlying API response, or the site's own HTML). Given EUR pricing and a European gallery, centimeters is the likely unit, but this isn't confirmed and nothing is guessed.

Why is the artist rollup incomplete right after publishing? It only grows as entityType=artworks runs actually crawl the catalog โ€” run that unscoped (maxItems: null) at least once before relying on entityType=artists for a complete picture.

Does this need a proxy? No โ€” no anti-bot friction was found anywhere on this site while building this Actor (a real burst test came back 100% clean, and a full large-scale run confirmed it holds at real volume).