Zatista.com Artist & Artwork Scraper
Pricing
from $5.00 / 1,000 results
Zatista.com Artist & Artwork Scraper
Scrape Zatista.com original artworks and artist profiles with a real sold/unsold split and per-artist rollup stats. 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
3 days ago
Last modified
Categories
Share
zatista-scraper
Scrapes artist profiles and original artworks from Zatista.com, a US-based curated original-art marketplace โ via the site's own product search API, no login required.
Contents
๐ Key features
- Two entity types, one Actor. Set
entityTypetoartworksorartists. - A genuine sold/unsold split. Every artwork carries a real
soldflag, and every artist rollup includes exactfor_sale_count/sold_count/total_artworksโ computed from two cheap count queries per artist, not a full per-artwork fan-out. - Real bio data. Artist records include location, artist statement, education, professional experience, exhibitions, and artistic influences โ genuinely server-rendered on the artist's own page, not a marketing summary.
- Full descriptions on every artwork, fetched from the artwork's own detail page.
- Delta mode built in. Every run classifies each item as
new,changed,unchanged, ordelistedagainst a persisted baseline. maxItemsdefaults to 50 โ a fast preview, and what keeps an unconfigured run within Apify's automated 5-minute QA check. Zatista's real catalog is substantial (~29,000 for-sale + ~38,700 sold artworks) โ clearmaxItems(null) for a full run.
๐ 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": "zatista","entity_type": "artworks","external_id": "64427","url": "https://www.zatista.com/product/details/64427/In-Between-Raindrops","title": "In Between Raindrops","artist_id": "6333","artist_name": "Nestor Toro","artist_slug": "nestor-toro","artist_url": "https://www.zatista.com/artist/nestor-toro","type": "Painting","medium": "Acrylic","medium_detail": "Acrylic on Canvas","price": 21000,"currency": "USD","sold": false,"total_quantity": 1,"height": 70.0,"width": 60.0,"unit": "in","description": "BOLD Statement Work! This painting conveys motion and energy...","image_url": "https://d1o22ltncixott.cloudfront.net/...","change_type": "new"}
Example artist record:
{"source": "zatista","entity_type": "artists","external_id": "6333","url": "https://www.zatista.com/artist/nestor-toro","name": "Nestor Toro","slug": "nestor-toro","location": "West Hollywood, CA United States","bio_summary": "...","for_sale_count": 863,"sold_count": 781,"total_artworks": 1644,"change_type": "new"}
๐ง Input
| Field | Type | Default | Description |
|---|---|---|---|
entityType | string | artworks | artworks or artists. |
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 | 10 | How many product/artist pages to fetch in parallel (validated live up to 25, no blocking). |
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 }
Full artwork catalog (for-sale and sold):
{ "entityType": "artworks", "maxItems": null }
๐ Incremental (delta) mode
auto mode does a full scan the first time it runs for a given entityType, then only pushes
new/changed items on later runs. Only an uncapped run (no maxItems limit reached) can detect
delistings, sold-status changes, or price changes, or update the baseline.
๐ How to scrape Zatista.com
Zatista's own artist-page and search widgets call a plain JSON endpoint
(/old_search/searchProducts) โ this Actor replicates exactly those calls, the same requests your
own browser makes when you browse the site, just automated and exhaustive. There's no public
artist directory, so both entity types discover their scope by walking this same endpoint across
its for-sale and sold catalogs.
โ FAQ
Is the sold/unsold split real, or estimated?
Real โ every artwork record's sold field and every artist's for_sale_count/sold_count come
directly from Zatista's own for-sale and sold catalogs, not inferred.
Why is subject_id a number instead of a category name?
Zatista's search API resolves type/medium to readable text (e.g. "Painting", "Acrylic") but not
subject_id โ no equivalent mapping was found, so it's passed through as Zatista's own raw
internal code rather than guessed at.
Does this cover Zatista's Canada/UK/Australia/Ireland/New Zealand sites?
No โ this Actor scrapes zatista.com (USD pricing) only. The other-country storefronts share the
same underlying catalog and artist ids but weren't built into this first version.
Does this need a proxy? No โ no anti-bot friction was found anywhere on this site. Cloudflare sits in front, but a plain request with a normal browser User-Agent passes cleanly (tested at concurrency 25, zero blocking).