SaatchiArt.com Artist & Artwork Scraper
Pricing
from $2.55 / 1,000 results
SaatchiArt.com Artist & Artwork Scraper
SaatchiArt.com artist & artwork scraper with real per-artist rollup stats (avg price, medium mix, sold count) from each artist's full catalog, plus delta mode.
Pricing
from $2.55 / 1,000 results
Rating
0.0
(0)
Developer
Artsiom Kunitsyn
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Saatchi Art Scraper — artworks, prices & artist sales data
Scrape artworks and artist profiles from Saatchi Art, one of the world's largest online art marketplaces. Get every artwork's price, size, medium, style and availability, plus per-artist sales statistics: how many works an artist has sold, their average asking price, average price of sold works, and medium mix. Every figure is computed from the artist's full catalog, not a sample.
Use it as a Saatchi Art API alternative: export Saatchi Art data to JSON, CSV or Excel, or pull it straight into Python, Google Sheets or an AI agent. No login and no browser needed.
Contents
- What data can you extract from Saatchi Art?
- Sample output
- Who uses this Saatchi Art scraper?
- How much does it cost to scrape Saatchi Art?
- How to scrape Saatchi Art
- Input
- Input examples
- Track new and sold artworks over time
- Use it from Python or the API
- FAQ
- Related art-market scrapers
What data can you extract from Saatchi Art?
Artworks (entityType: "artworks") | Artists (entityType: "artists") |
|---|---|
| Title, URL, image URL | Full name, profile URL, country, state, city |
| Artist name, id and profile URL | Followers, join date |
| Category, subject, styles | Total artworks in the catalog |
| Mediums and materials | Sold artworks count |
| Price (EUR) | Average asking price (EUR) |
| Availability: available, sold, reserved, unavailable | Average price of sold works (EUR) |
| Height, width, depth (cm), ready to hang | Medium mix across the whole catalog |
| Artist country and city, upload date | Latest artwork: title, price, category |
Every record also carries a change_type (new, changed, unchanged, delisted) so scheduled
runs can report only what changed. The Output tab has a readable Artworks and Artists table
view with the full field list.
Why this Saatchi Art scraper
- Real artist sales stats, not a sample. Sold count and average prices come from each artist's entire catalog, cross-checked against the artist's own stated artwork total.
- Filter to artists who actually sell.
minSoldArtworks: 1skips the majority of artists who have never sold anything. - Full catalog or a targeted slice. Crawl the whole site, browse one category with filters (subject, medium, style, country, availability), fetch every artwork for a list of artists, or pass specific artwork URLs.
- Only pay for what changed. Built-in delta mode on scheduled runs.
Sample output
Real rows from a recent run (artists filtered with minSoldArtworks: 3):
| Artist | Country | Artworks | Sold | Avg. price (EUR) | Avg. sold price (EUR) |
|---|---|---|---|---|---|
| Shawn Mcnulty | United States | 124 | 77 | 2,097 | 2,021 |
| Mania Row | United Kingdom | 265 | 60 | 2,388 | 970 |
| Robin Clare | Jamaica | 68 | 24 | 1,926 | 1,655 |
| Constantin Severin | Romania | 31 | 21 | 6,516 | 6,580 |
| Stephen Gibb | Canada | 41 | 17 | 1,822 | 1,270 |
| Artwork | Artist | Category | Price (EUR) | Size (cm) | Status |
|---|---|---|---|---|---|
| Dutch Treat (For Bill de Kooning) | Gregg Simpson | Painting | 17,860 | 200.7 × 241.3 | available |
| Dinner With Tristan | Gregg Simpson | Painting | 12,165 | 152.4 × 165.1 | available |
| CONFUSED | Hildegarde Handsaeme | Painting | 3,210 | 60 × 60 | available |
| Between | Cynthia Ligeros | Painting | 1,100 | 76.2 × 121.9 | available |
Artwork record (JSON):
{"source": "saatchiart","entity_type": "artworks","external_id": "P1-U476-A11979-T1","url": "https://www.saatchiart.com/art/Painting-Dinner-With-Tristan/476/4942/view","artwork_title": "Dinner With Tristan","artist_id": "476","artist_name": "Gregg Simpson","artist_url": "https://www.saatchiart.com/greggsimpson","category": "Painting","subject": "Still Life","styles": "Surrealism","mediums": "Oil, Other","materials": "Canvas","price_eur": 12165,"original_status": "avail","height_cm": 152.4,"width_cm": 165.1,"depth_cm": 2.54,"country": "Canada","change_type": "new"}
Artist record (JSON):
{"source": "saatchiart","entity_type": "artists","external_id": "88","url": "https://www.saatchiart.com/shawnmcnulty","full_name": "Shawn Mcnulty","country": "United States","state": "MN","city": "Minneapolis","followers_total": 1805,"joined_date": "2010-08-31T18:10:25+00:00","total_artworks": 124,"sold_artworks": 77,"avg_price_eur": 2096.94,"sold_avg_price_eur": 2021.08,"mediums": "acrylic, digital, mixed media, oil, other, paper","latest_artwork_title": "Trope Abstract","latest_artwork_price_eur": 770,"latest_artwork_category": "painting","change_type": "new"}
Known gap: uploaded_at is only filled for artworks found through the category input (the
search path carries a timestamp that artwork pages don't show). It's null otherwise.
Who uses this Saatchi Art scraper?
- Online galleries and art marketplaces: find artists who already sell well online, benchmark pricing, and scout talent to recruit.
- Art-market analysts and researchers: price distributions by medium, style, size and country; sold-vs-asking price gaps; how catalogs grow over time.
- Art advisors and collectors: track specific artists' new work, price changes and sell-through.
- Artists: see how comparable artists price their work.
How much does it cost to scrape Saatchi Art?
Pay per result: you're charged per artwork or artist record delivered, plus a small charge per artist whose full catalog is analyzed for the sales stats. There's no monthly rental and no separate platform fee to estimate. See the Pricing tab for current prices, including automatic discounts on higher Apify plans.
The default run returns 50 records, so trying it costs a fraction of a cent. The monthly credit on Apify's free plan covers a good-sized first dataset.
How to scrape Saatchi Art
- Click Try for free (or open the actor in Apify Console) and go to the Input tab.
- Choose
entityType:artworksorartists. - Optionally set a
categoryplus filters for a faster targeted slice,artistIdsfor specific artists, orminSoldArtworksto keep only artists with sales. maxItemsdefaults to 50, a quick preview. Raise it, or clear it (null) for the full catalog.- Click Start.
- Browse the results in the Output tab, or download them as JSON, CSV, Excel or HTML.
- To track Saatchi Art over time, add a Schedule with
mode: auto. The first run does a full scan; every later run returns only new, changed and delisted items.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
entityType | String | artworks | artworks or artists. |
category | String | (none) | Artworks only. Restrict discovery to one category via a faster search API instead of the full sitemap. The API caps its reported result count at 10,000 whatever a category's true size, so combine it with the filters below to narrow the query enough for complete coverage. The run log says "exhaustive" or "capped". Leave empty for a full sitemap crawl, which is always complete. |
availability | String | avail | Artworks only, category mode. avail, sold, reserved, unavail, or empty for all. |
subject | String | (none) | Artworks only, category mode. e.g. floral, landscape, abstract, portrait. |
mediums | String | (none) | Artworks only, category mode. e.g. oil, acrylic, watercolor, black & white. |
styles | String | (none) | Artworks only, category mode. e.g. realism, abstract expressionism, minimalism. |
country | String | (none) | Artworks only, category mode. Artist's country, e.g. united states, sweden. |
startUrls | Array of strings | (none) | Artworks only. Specific artwork URLs to scrape directly. |
artistIds | Array of strings | (none) | Artworks only. Saatchi Art artist ids: fetches every artwork for exactly those artists. Overrides category (startUrls still wins). Has its own delta-mode scope. |
maxItems | Integer | 50 | Stop after this many records. A full crawl covers hundreds of thousands of artworks or the full artist directory; raise this or clear it for that. |
minSoldArtworks | Integer | 0 | Artists only. Only return artists with at least this many sold artworks. 1 skips artists who have never sold. Filtered-out artists are still tracked internally for delta mode. |
mode | String | auto | auto (recommended): full scan on the first run, changes only after. full: always return everything. incremental: always return only new/changed items. Only an unscoped sitemap crawl can detect delistings or update the baseline. |
impersonate | String | firefox (internal) | Browser fingerprint used for requests. Saatchi Art blocks plain requests; change only if it stops working. |
proxyConfiguration | Object | off | Apify Proxy settings. Not needed normally; try Residential (not datacenter) only if you see blocks. |
Input examples
Full artwork catalog (every artwork's detail page is fetched, so it's slow):
{ "entityType": "artworks", "maxItems": null }
Quick category preview (fast, but a broad category is capped at 10,000 results):
{ "entityType": "artworks", "category": "photography", "maxItems": 200 }
Narrow category query (fast and complete, because it's under the cap):
{ "entityType": "artworks", "category": "photography", "country": "sweden", "subject": "floral", "maxItems": null }
Full artist directory with sales stats:
{ "entityType": "artists", "maxItems": null }
Only artists who have sold at least one work:
{ "entityType": "artists", "minSoldArtworks": 1, "maxItems": null }
Every artwork, sold ones included, for specific artists (get the ids from an artists run):
{ "entityType": "artworks", "artistIds": ["88", "79"], "maxItems": null }
Scheduled tracking run (only new/changed/delisted items since the last run):
{ "entityType": "artworks", "mode": "incremental" }
Track new and sold artworks over time
Every run labels each item new, changed (price or status moved for artworks; catalog size,
sold count or average price moved for artists), unchanged or delisted. The baseline is saved
per entityType (and per category for artworks).
mode: auto(default): the first run for a scope returns everything; later runs return onlynew/changed/delisted.- A
startUrlsrun is always partial and never updates the baseline. Acategoryrun updates it only when narrow enough to be complete; the run log says which.
Use it from Python or the API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("artsiom_k/saatchiart-scraper").call(run_input={"entityType": "artists", "minSoldArtworks": 1, "maxItems": 500})for artist in client.dataset(run["defaultDatasetId"]).iterate_items():print(artist["full_name"], artist["sold_artworks"], artist["avg_price_eur"])
The same works from JavaScript, plain HTTP, Make, Zapier, n8n and Google Sheets integrations. AI agents such as Claude or Cursor can call it through Apify's MCP server.
FAQ
Is there an official Saatchi Art API? Saatchi Art doesn't offer a public data API. This actor works as one: it returns structured Saatchi Art artwork and artist data on demand, via Apify's API or as downloadable files.
Can I get sold artworks and sold prices from Saatchi Art?
Yes. Each artwork has an original_status (avail, sold, reserved, unavail), and each artist
record has sold_artworks and sold_avg_price_eur. To pull the sold works themselves, use
artistIds, or category with availability: "sold".
How many artworks and artists does Saatchi Art have?
Hundreds of thousands of artworks and a very large artist directory. A full crawl covers all of
them; use maxItems, category filters or minSoldArtworks to narrow it.
Why is avg_price_eur different from what's shown on the site?
It's the average across the artist's whole catalog, in Saatchi Art's Central-Europe reference
price, not a single artwork's price.
Can I export Saatchi Art data to Excel or CSV? Yes. Every run's results can be downloaded as JSON, CSV, Excel, XML or HTML from the Output tab, or fetched through the API.
How do I get only new or changed items?
Run it on a schedule with mode: auto (or incremental). See
Track new and sold artworks over time.
Is it legal to scrape Saatchi Art? This actor collects publicly available marketplace data: artwork listings, prices and public artist profile information. Use it for a legitimate purpose and in line with GDPR where personal data is involved.
Something doesn't work or a field is missing? Open an issue on the Issues tab; issues are answered promptly.
Related art-market scrapers
Same design, same output style, so results combine easily:
- Artmajeur Scraper — artworks and artist sales stats from Artmajeur.
- Artfinder Scraper — artworks and sold-item stats from Artfinder.
- Riseart Scraper — artworks and artist stats from Rise Art.
- Artsy Scraper — artists, artworks and full gallery inventories from Artsy.
- ArtBrokerage Scraper — secondary-market listings with provenance and collector demand.
- Dorotheum Scraper — auction results with realized prices back to 1998.
- Artprice Scraper — Artprice's artist directory and marketplace.