christies.com APIchristies.com ↗
Access Christie's auction results, lot details, artist data, estimates, prices realized, departments, and private sale categories via a structured API.
curl -X GET 'https://api.parse.bot/scraper/e8837cb2-ff50-4fc7-a2af-52d73e7eda50/get_auction_results_overview?year=2025&month=2' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetch auctions held in a specific month and year. Returns a list of auctions with metadata including title, date, location, sale total, and type.
| Param | Type | Description |
|---|---|---|
| year | integer | Year (e.g., 2025) |
| month | integer | Month (1-12) |
{
"type": "object",
"fields": {
"total": "integer count of auctions returned",
"auctions": "array of auction objects with keys: auction_id, sale_number, title, date, location, sale_total, type, url, status"
},
"sample": {
"data": {
"total": 16,
"auctions": [
{
"url": "https://onlineonly.christies.com/sso?SaleID=30939&SaleNumber=23978",
"date": "14 – 28 February",
"type": "Online",
"title": "First Open | Post-War & Contemporary Art",
"status": "Closed",
"location": "New York",
"auction_id": "30939",
"sale_total": "USD 2,022,552",
"sale_number": "23978"
}
]
},
"status": "success"
}
}About the christies.com API
The Christie's API provides 7 endpoints covering auction discovery, lot browsing, and artwork research across Christie's catalog. Use get_auction_lots to paginate through every lot in a sale, or get_lot_detail to retrieve provenance, dimensions, medium, literature references, and multiple images for a single artwork. The API handles both live and online-only auctions and exposes historical sale totals alongside individual price-realized data.
Auction Discovery and Results
The get_auction_results_overview endpoint accepts a year and month and returns a list of auctions with fields including auction_id, sale_number, title, date, location, sale_total, and type. This makes it straightforward to build a monthly calendar of Christie's sales or track aggregate results over time. The get_auction_detail endpoint accepts a full auction URL and returns richer metadata: sale_id, description, image_url, and an is_online boolean that distinguishes traditional saleroom events from online-only auctions.
Browsing and Searching Lots
Once you have a sale_id (from get_auction_detail or extracted directly from a known auction URL), get_auction_lots paginates through all lots in that sale at up to 100 per page. Each lot object includes lot_number, artist_name, lot_title, estimate_low, estimate_high, estimate_txt, and price_realized. For keyword-driven workflows, search_lots accepts a query string and an is_past boolean to toggle between sold and upcoming lots, returning artist_name, estimate, price_realized, image_url, and a direct url to the lot page.
Lot-Level Detail
The get_lot_detail endpoint fetches the full record for a single artwork using its lot URL. Response fields cover medium, dimensions, work_year, provenance, exhibited, literature, and an images array of full-resolution URLs. These are the fields typically needed for provenance research, catalogue raisonné cross-referencing, or building detailed artwork records in a database.
Departments and Private Sales
get_departments returns a flat list of department names and their Christie's URLs — useful for building category navigation or scoping searches to a specific collecting area. get_private_sales returns a categories array with id, primary_title, category_name, url, and image for each private sale category currently listed on the site.
- Track monthly auction results by sale total using
get_auction_results_overviewwith year and month filters. - Build a lot browser for a specific sale using
get_auction_lotswith paginated lot estimates and prices realized. - Research artwork provenance and exhibition history by pulling
provenanceandexhibitedfields fromget_lot_detail. - Search historical sold lots by artist name using
search_lotswithis_past: trueto surface price records. - Aggregate department-level category data from
get_departmentsto build a collecting-area navigation layer. - Monitor private sale inventory by category using
get_private_salesto track available categories and their images. - Compare estimate ranges to hammer prices across a sale by combining
get_auction_lotsestimate andprice_realizedfields.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Christie's offer an official public developer API?+
What does `get_lot_detail` return that `get_auction_lots` does not?+
get_auction_lots returns summary fields — lot_number, artist_name, lot_title, estimate range, and price_realized. get_lot_detail adds the full artwork record: medium, dimensions, work_year, provenance, exhibited, literature, and an images array with multiple image URLs. You need the lot's URL to call get_lot_detail, which can be constructed from the lot listing or retrieved via search_lots.Does the API return buyer's premium or final settlement amounts?+
price_realized and sale_total as reported in Christie's listings, which typically reflect the hammer price. Buyer's premium breakdowns and final settlement figures are not included in the response fields. You can fork this API on Parse and revise it to add an endpoint that extracts those figures if they appear on specific lot or results pages.Is there a way to filter auctions by department or collecting area?+
get_auction_results_overview filters only by year and month — department-level filtering is not a supported input parameter. get_departments returns department names and URLs but does not cross-reference auction IDs. You can fork this API on Parse and revise it to add a department-filtered auction listing endpoint.What is the pagination behavior for `get_auction_lots`?+
page parameter to step through results. The response includes a total field with the full lot count for the sale, so you can calculate the number of pages needed before iterating. Either sale_id or url must be provided; if only url is given, the sale ID is extracted from it automatically.