Fine Art America Artist & Artwork Scraper
Pricing
from $5.00 / 1,000 results
Fine Art America Artist & Artwork Scraper
Scrape FineArtAmerica.com artist profiles (including agencies/brands) and print-on-demand artworks, with real Followers/Visitors popularity signals and per-product-type pricing. 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
fineartamerica-scraper
Scrapes artist/business profiles and print-on-demand artworks from FineArtAmerica.com, one of the largest print-on-demand art marketplaces โ via the site's own public sitemaps, no login required.
Contents
- Key features
- Output
- Input
- Input examples
- Incremental (delta) mode
- How to scrape FineArtAmerica.com
- FAQ
๐ Key features
- Two entity types, one Actor. Set
entityTypetoartworksorartists. - By far the largest artist directory covered by this collection โ ~300,000 individual artist
profiles plus ~6,000 agency/brand accounts (Alamy, Getty Images, and other stock houses/galleries
share the identical page template). Set
accountTypetoartistorbusinessfor a clean dataset of just one, or leave it atallfor both. - Real popularity signals no sibling Actor exposes:
followersandvisitors(a cumulative profile-view count) on every artist/business record, plus an exacttotal_artworkscount read directly from the page. - Real per-product pricing. Every artwork is print-on-demand โ priced as a range across several product types (canvas print, framed print, metal print, etc.), each with its own SKU and price.
artistIdsinput for a genuinely exhaustive per-artist catalog โ the defaultartworkscrawl samples a large, real (but non-exhaustive) set of the site's own sitemaps; setartistIdsto walk specific artists' full galleries to completion instead.- 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. ClearmaxItems(null) for a full run.
๐ Output
One dataset item per artwork or artist/business, 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": "fineartamerica","entity_type": "artworks","external_id": "25769634","url": "https://fineartamerica.com/featured/poolside-glamour-slim-aarons.html","title": "Poolside Glamour","medium_type": "Photograph","category_path": "Wall Art > Photographs > mountain","artist_name": "Slim Aarons","artist_url": "https://fineartamerica.com/profiles/gettyimages","low_price": 68.97,"high_price": 141.72,"currency": "USD","offer_count": 6,"offers": [{ "sku": "poolside-glamour-canvas-print", "name": "Poolside Glamour Canvas Print", "price": 78.49, "availability": "InStock" }],"comment_count": 5,"change_type": "new"}
Example artist record:
{"source": "fineartamerica","entity_type": "artists","external_id": "aaronblaise","url": "https://fineartamerica.com/profiles/aaronblaise","name": "Aaron Blaise","account_type": "artist","location": "Jensen Beach, FL, United States","total_artworks": 112,"joined_year": "2013","followers": 1562,"visitors": 1438196,"change_type": "new"}
๐ง Input
| Field | Type | Default | Description |
|---|---|---|---|
entityType | string | artworks | artworks or artists. |
artistIds | array | โ | artworks only. Profile slugs or URLs to walk exhaustively instead of the general sample. |
accountType | string | all | artists only. all / artist / business โ filter out agency/brand accounts (or individual 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 pages to fetch in parallel โ validated clean up to 20 at real large-scale on both entity types, see FAQ. |
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/business directory:
{ "entityType": "artists", "maxItems": null }
One artist's complete catalog:
{ "entityType": "artworks", "artistIds": ["aaronblaise"], "maxItems": null }
Individual artists only, no agencies/brands:
{ "entityType": "artists", "accountType": "artist", "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, error-free run can detect delistings, price
changes, or update the baseline.
๐ How to scrape FineArtAmerica.com
FineArtAmerica has no JSON API โ this Actor discovers its scope entirely via the site's own public sitemaps and reads each artwork/profile page's own embedded schema.org data and server-rendered HTML, the same content your browser sees.
โ FAQ
Does this include sold/unsold status?
No โ this is a print-on-demand catalog. Every artwork is reproduced to order, so there's no concept
of a piece selling out; every product offer always shows availability: "InStock".
Is entityType=artworks (default) an exhaustive catalog of the whole site?
No, and it doesn't claim to be โ FineArtAmerica has no exhaustive artwork sitemap, only tiered
"popular"/"grouped"/"new" sitemaps (a large, real sample, but not every artwork on the site). For a
specific artist's complete catalog, use artistIds instead.
Why does entityType=artists include businesses/agencies like Alamy or Getty Images?
FineArtAmerica uses the exact same profile page template for individual artists and
agency/brand/stock-house accounts โ there's no structural reason to split them into separate entity
types. account_type on each record says which; set accountType to artist or business if you
only want one.
Does this need a proxy? No โ no anti-bot friction was found anywhere on this site (plain Apache, no Cloudflare or equivalent challenge).
Why does an occasional item take longer than expected? A real, confirmed-live pattern on this site: individual pages occasionally (a handful per thousand requests) hit a ~30-second connection stall, unrelated to concurrency or rate limiting โ every instance observed so far has self-healed on retry within a couple of short attempts. This is expected, not a sign of blocking.