ArtBrokerage.com Artist & Artwork Scraper avatar

ArtBrokerage.com Artist & Artwork Scraper

Pricing

from $4.25 / 1,000 results

Go to Apify Store
ArtBrokerage.com Artist & Artwork Scraper

ArtBrokerage.com Artist & Artwork Scraper

Scrape ArtBrokerage.com listings and artist profiles, with rich per-listing condition/provenance detail and real buyer-demand signals. No login required.

Pricing

from $4.25 / 1,000 results

Rating

0.0

(0)

Developer

Artsiom Kunitsyn

Artsiom Kunitsyn

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

ArtBrokerage Scraper — secondary-market art listings, provenance & collector demand

Scrape artwork listings and artist profiles from ArtBrokerage.com, a US secondary-market art marketplace where collectors resell original paintings, limited-edition prints and photography. Every listing comes with price (or price range), condition, edition, signature, framing, provenance and certificate of authenticity. Every artist comes with a collector demand signal: how many named collectors are actively asking to buy that artist's work.

Export ArtBrokerage data to JSON, CSV or Excel, or pull it into Python, Google Sheets or an AI agent. No login and no proxy needed.

Contents

What data can you extract from ArtBrokerage?

Listings (entityType: "artworks")Artists (entityType: "artists")
Title, URL, image URL, yearName, profile URL, location
Artist name and profile URLBio
Category (original painting, limited edition print, watercolor, panorama, ...)Number of works for sale
Medium, size (in and cm), framed sizeRecently sold count and titles
Edition (e.g. "From the edition of 250"), hand-signedCollector wanted count (named buy requests)
Price, or price range for tiered listings, currencyBroker wanted count
Sold flag
Condition, framing status
Provenance, purchased from, owner's story
Certificate of authenticity source
Styles and collections (e.g. "Blue Chip - Post War - MASTERS")

Every record also carries a change_type (new, changed, unchanged, delisted). The Output tab has readable Artworks and Artists table views with the full field list.

Why this ArtBrokerage scraper

  • Provenance and condition on every listing, which most art-marketplace scrapers don't carry.
  • A real buyer-demand signal. collector_wanted_count counts genuine named-collector buy requests per artist.
  • For-sale and sold status on every listing, with tiered prices read as a min/max range instead of being dropped.
  • Complete catalog: about 40,000 listings and 5,800 artists, discovered from the site's own sitemaps.
  • Only pay for what changed on scheduled runs.

Sample output

Real rows from a recent run:

ListingArtistCategoryPrice (USD)YearProvenance
Moonlit Dreams 1M - Archival Photographic PrintPeter LikPanorama4,5002018Original Peter Lik Gallery, March 2018
Anchor Man 2000 59x71 - Acrylic on CanvasRobert DeyberOriginal Painting7,501–10,0002000Original owner
Homage to Genius Series: Einstein 1996Steve KaufmanLimited Edition Print2,7001996Martin Lawrence Gallery, Sherman Oaks, CA
Untitled Portrait Watercolor 34x28Itzchak TarkayWatercolor3,501–5,000—Purchased at an auction in Denver, 2004
Terrace at Dusk 1999 - Framed GicleeOtto AguiarLimited Edition Print1,5001999Purchased on a cruise, June 2002; original owner

Listing record (JSON):

{
"source": "artbrokerage",
"entity_type": "artworks",
"external_id": "120261",
"url": "https://www.artbrokerage.com/Larry-Rivers/Madama-Butterfly-1978-120261",
"title": "Madama Butterfly 1978",
"artist_name": "Larry Rivers",
"artist_url": "https://www.artbrokerage.com/Larry-Rivers",
"category": "Limited Edition Print",
"medium": "Mixed Media Work in Eight Colors in Lithography And Three Colors",
"size_raw": "22.75x30.5 in | 58x77 cm",
"height_in": 22.75,
"width_in": 30.5,
"edition": "From the edition of 250",
"sold": false,
"price": 2700.0,
"currency": "USD",
"price_note": "Mixed Media - Blue Chip",
"year": "1978",
"condition": "Excellent",
"purchased_from": "Gallery",
"provenance": "Circle Gallery, NY",
"certificate_of_authenticity": "Art Brokerage",
"art_styles": ["Contemporary"],
"art_collections": ["Well Priced", "Blue Chip - Post War - MASTERS"],
"change_type": "new"
}

Artist record (JSON):

{
"source": "artbrokerage",
"entity_type": "artists",
"external_id": "Pablo-Picasso",
"url": "https://www.artbrokerage.com/Pablo-Picasso",
"name": "Pablo Picasso",
"location": "Spain",
"for_sale_count": 151,
"recent_sold_count": 16,
"broker_wanted_count": 4,
"collector_wanted_count": 7,
"change_type": "new"
}

Who uses this ArtBrokerage scraper?

  • Art dealers and resellers: find underpriced secondary-market works, and see which artists collectors are asking for.
  • Appraisers and art advisors: comparable asking prices by artist, medium, edition and condition.
  • Art-market analysts: secondary-market supply and pricing for popular gallery artists (Park West, Martin Lawrence and similar cruise/gallery-market names are well represented).
  • Collectors: watch specific artists for new listings and price drops.

How much does it cost?

Pay per result: you're charged per listing or artist record delivered. There's no monthly rental. 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 ArtBrokerage.com

  1. Click Try for free (or open the actor in Apify Console) and go to the Input tab.
  2. Choose entityType: artworks (listings) or artists.
  3. maxItems defaults to 50, a quick preview. Clear it (null) for the full catalog.
  4. Click Start.
  5. Browse the results in the Output tab, or download them as JSON, CSV, Excel or HTML.
  6. To track ArtBrokerage over time, add a Schedule with mode: auto.

The site is slow to respond (several seconds per page), so a full crawl takes a few hours. That's normal, not a block.

Input

FieldTypeDefaultDescription
entityTypestringartworksartworks or artists.
maxItemsinteger50Stop after this many records. null for a full crawl.
modestringautoauto / full / incremental. See Track new, sold and repriced listings.
concurrencyinteger10Pages fetched in parallel. Capped at 8 for entityType=artists whatever you set (see FAQ).
impersonatestringchromeBrowser fingerprint used for requests.
proxyConfigurationobjectoffApify Proxy settings. Not needed.

Input examples

Default preview (50 listings):

{ "entityType": "artworks" }

Full listing catalog:

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

Full artist directory with collector demand:

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

Track new, sold and repriced listings

auto mode does a full scan the first time it runs for an entityType, then returns only new and 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.

Use it from Python or the API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("artsiom_k/artbrokerage-scraper").call(
run_input={"entityType": "artists", "maxItems": None}
)
for artist in client.dataset(run["defaultDatasetId"]).iterate_items():
if artist.get("collector_wanted_count"):
print(artist["name"], artist["collector_wanted_count"], artist["for_sale_count"])

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

Does ArtBrokerage have an API? No. ArtBrokerage has no public API or JSON feed. This actor reads the same pages your browser shows and returns them as structured data, so it works as an ArtBrokerage API.

Why is price empty on some for-sale listings? Some (usually higher-value) listings show a price tier instead of an exact figure: literal "$$$$$$$" characters with the real range only in a tooltip. The actor reads that range into price_min/price_max and leaves price empty, since no single figure exists.

What's the difference between broker_wanted_count and collector_wanted_count? broker_wanted_count is ArtBrokerage's own standing "we'll help you sell this artist" interest. It shows a low count for nearly every artist, even ones with nothing for sale, so it isn't a real demand signal. collector_wanted_count counts genuine named-collector buy requests and only appears once at least one exists. That's the field to watch.

Does this include realized (sold) prices? No. A sold listing on ArtBrokerage shows only a "SOLD" tag, without a price. An artist's "Recently Sold" section is a short capped preview, also without prices, so recent_sold_count is not a lifetime total. For realized auction prices, see the Dorotheum Scraper.

What's the odd text in price_note, like "23 Watchers" or "Inquire"? ArtBrokerage's own text next to the price. It's kept as-is (decorative emoji removed) because it sometimes carries a watcher count or a negotiability hint, but it's free text.

Some sizes look implausible (e.g. "1312x1034 in"). That's a data-entry error on ArtBrokerage's own page (a missing decimal point), passed through unchanged. The cm value is derived from the same wrong inch value.

Does it need a proxy? No. The site has no anti-bot protection; it's simply slow, so a full crawl takes hours.

Why is entityType=artists capped at concurrency 8? Artist pages are light, so higher concurrency produces a request rate that makes the site block the rest of the run (concurrency 20 failed within 3 minutes in testing; 8 ran clean across 4,500+ artist pages). The actor enforces the safe value automatically.

Can I export ArtBrokerage data to Excel or CSV? Yes: JSON, CSV, Excel, XML or HTML from the Output tab, or through the API.

Is it legal to scrape ArtBrokerage? This actor collects publicly available listing data. 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.