SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%

Connectors: whisky/wine/art auctions and marketplaces (7 sources, agent O)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Simon-Pierre Boucher committed 17 days ago (Sep 7, 2026) parent 5259690

41 changed files +9,268 −0

added connectors/api/idealwine/_smoke.ts +19 −0
@@ -0,0 +1,19 @@
1 +import { createRouter, createCrawlContext, ConnectorMetaSchema } from '@rareindex/connectors';
2 +import { saveFixture } from '@rareindex/connectors/testing';
3 +import metaJson from './meta.json' with { type: 'json' };
4 +import createConnector from './index.js';
5 +
6 +const save = process.argv.includes('--save');
7 +const meta = ConnectorMetaSchema.parse(metaJson);
8 +const connector = createConnector(meta);
9 +const router = createRouter({ firecrawlApiKey: process.env.FIRECRAWL_API_KEY, scrapflyApiKey: process.env.SCRAPFLY_API_KEY });
10 +const ctx = createCrawlContext({ router, meta, options: { mode: 'probe', limit: 2 } });
11 +let i = 0;
12 +for await (const raw of connector.crawl(ctx)) {
13 + const out = await connector.normalize({ ...raw, externalId: raw.externalId ?? null, fetchedAt: raw.fetchedAt ?? new Date() });
14 + console.log(`raw ${raw.externalId} (${raw.engine}) → ${out.length} records (${out.filter((r) => r.kind === 'price_observation').length} observations)`);
15 + for (const r of out.filter((r) => r.kind === 'price_observation').slice(0, 3)) console.log(' ', JSON.stringify(r).slice(0, 420));
16 + if (save && i < 2) saveFixture(meta.id, i === 0 ? 'bordeaux-page-1' : 'bordeaux-page-2', { raw: { url: raw.url, externalId: raw.externalId ?? null, kind: raw.kind, engine: raw.engine, fetchedAt: raw.fetchedAt ?? new Date(), payload: raw.payload }, expect: { minCount: 40, kinds: ['catalog_item', 'price_observation'], requiredFields: ['attributes.name'] }, note: 'Captured live from idealwine.com /en/cote/bordeaux (plain HTTPS)' });
17 + i++;
18 +}
19 +console.log('engineStats', ctx.engineStats, 'anomalies', ctx.anomalies);
added connectors/api/idealwine/index.test.ts +43 −0
@@ -0,0 +1,43 @@
1 +import { describe, expect, it } from 'vitest';
2 +import { ConnectorMetaSchema } from '@rareindex/connectors';
3 +import { loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';
4 +import metaJson from './meta.json' with { type: 'json' };
5 +import createConnector, { parseCotePage, producerFromSlug } from './index.js';
6 +
7 +const connector = createConnector(ConnectorMetaSchema.parse(metaJson));
8 +
9 +describe('idealwine', () => {
10 + runFixtureSuite(connector, it, expect);
11 +
12 + it('emits a catalog item + EUR guide_value observation per wine vintage', async () => {
13 + const fx = loadFixture('idealwine', 'bordeaux-page-1');
14 + const out = await connector.normalize(fx.raw);
15 + const obs = out.filter((r) => r.kind === 'price_observation');
16 + const items = out.filter((r) => r.kind === 'catalog_item');
17 + expect(obs.length).toBe(items.length);
18 + expect(obs.length).toBeGreaterThan(20);
19 + for (const r of obs) {
20 + if (r.kind !== 'price_observation') continue;
21 + expect(r.currency).toBe('EUR');
22 + expect(r.priceKind).toBe('guide_value');
23 + expect(r.price).toBeGreaterThan(0);
24 + expect(r.attributes.categorySlug).toBe('wine');
25 + expect(r.attributes.set).toBeTruthy();
26 + expect(r.attributes.identifiers.idealwine_ref).toMatch(/^\d+-/);
27 + expect(r.sourceUrl).toMatch(/^https:\/\/www\.idealwine\.com\/en\/wine-prices\//);
28 + }
29 + });
30 +
31 + it('parses cards and producer slugs', () => {
32 + const html = `<div class="cote_gridItem___dC3b"><div class="cote_breadCrumpRegion__xzjeq">Bordeaux<!-- --> &gt; Pessac-Léognan</div><div class="cote_nameWine__v1UwE">Abeille de Fieuzal<!-- --> <span class="cote_colorDisplay__VWf8N">(<!-- -->Red<!-- -->)</span></div><img src="https://www.idealwine.com/media/x.jpg"/><div class="VintageRatingsCards_container__m_TZj"><a href="/en/wine-prices/120055-2021-Bottle-Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red"><div class="VintageRatingsCards_cote__H0Z2A">2021<!-- --> <span><span class="Price_units__UHpM6">€<!-- -->13</span></span></div></a><a href="/en/wine-prices/120055-2020-Bottle-Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red"><div class="VintageRatingsCards_cote__H0Z2A">2020 <span><span>€1,250</span></span></div></a></div></div><a href="/en/cote/bordeaux?page=58">58</a>`;
33 + const p = parseCotePage(html, 'u', 'bordeaux', 1);
34 + expect(p.totalPages).toBe(58);
35 + expect(p.wines).toHaveLength(1);
36 + expect(p.wines[0]).toMatchObject({ wineId: '120055', name: 'Abeille de Fieuzal', color: 'Red', region: 'Bordeaux', appellation: 'Pessac-Léognan' });
37 + expect(p.wines[0]!.vintages).toEqual([
38 + { vintage: 2021, priceEur: 13, url: 'https://www.idealwine.com/en/wine-prices/120055-2021-Bottle-Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red', ref: '120055-2021' },
39 + { vintage: 2020, priceEur: 1250, url: 'https://www.idealwine.com/en/wine-prices/120055-2020-Bottle-Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red', ref: '120055-2020' },
40 + ]);
41 + expect(producerFromSlug('Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red')).toBe('Bordeaux Pessac Leognan Chateau de Fieuzal');
42 + });
43 +});
added connectors/api/idealwine/index.ts +149 −0
@@ -0,0 +1,149 @@
1 +import { z } from 'zod';
2 +import { BaseConnector, html as H, type ConnectorMeta, type CrawlContext, type RawRecordInput, type RawRecordLike } from '@rareindex/connectors';
3 +import { AssetAttributesSchema, NormalizedCatalogItemSchema, NormalizedPriceObservationSchema, parsePrice, type NormalizedRecord } from '@rareindex/shared';
4 +
5 +/**
6 + * iDealwine "cote" (Price Estimate) pages — per-vintage auction-derived reference prices for
7 + * French and Italian wines. One raw record per index page; normalise → one catalog_item per
8 + * wine-vintage plus one guide_value observation (EUR / bottle).
9 + */
10 +
11 +const BASE = 'https://www.idealwine.com';
12 +const PARSER_VERSION = '1.0.0';
13 +
14 +export const VintageSchema = z.object({ vintage: z.number().nullable(), priceEur: z.number(), url: z.string(), ref: z.string() });
15 +export const WineSchema = z.object({ wineId: z.string(), name: z.string(), color: z.string().nullable(), region: z.string().nullable(), appellation: z.string().nullable(), producerSlug: z.string().nullable(), image: z.string().nullable(), vintages: z.array(VintageSchema) });
16 +export const PagePayloadSchema = z.object({ kind: z.literal('cote_page'), url: z.string(), region: z.string(), page: z.number(), totalPages: z.number().nullable(), wines: z.array(WineSchema) });
17 +export type PagePayload = z.infer<typeof PagePayloadSchema>;
18 +
19 +/** Parse a /en/cote/<region> page (cards with per-vintage estimates). */
20 +export function parseCotePage(htmlText: string, url: string, region: string, page: number): PagePayload {
21 + const $ = H.load(htmlText);
22 + const wines: z.infer<typeof WineSchema>[] = [];
23 + const pages = [...htmlText.matchAll(/\/en\/cote\/[a-z-]+\?page=(\d+)/g)].map((m) => Number(m[1]));
24 + const totalPages = pages.length ? Math.max(...pages) : null;
25 + $('[class*="cote_gridItem"]').each((_, el) => {
26 + const $el = $(el);
27 + const crumb = H.text($el.find('[class*="cote_breadCrumpRegion"]')) ?? '';
28 + const [reg, app] = crumb.split('>').map((s) => s.trim());
29 + const nameEl = $el.find('[class*="cote_nameWine"]').first();
30 + const color = H.text(nameEl.find('[class*="cote_colorDisplay"]'))?.replace(/[()]/g, '').trim() ?? null;
31 + nameEl.find('[class*="cote_colorDisplay"]').remove();
32 + const name = H.text(nameEl);
33 + const image = $el.find('img').attr('src') ?? null;
34 + const vintages: z.infer<typeof VintageSchema>[] = [];
35 + let wineId: string | null = null;
36 + let producerSlug: string | null = null;
37 + $el.find('a[href*="/en/wine-prices/"]').each((__, a) => {
38 + const href = $(a).attr('href') ?? '';
39 + const m = href.match(/\/en\/wine-prices\/(\d+)-(\d{4}|NV|[^-]+)-Bottle-(.+)$/i);
40 + const id = href.match(/\/en\/wine-prices\/(\d+)-/)?.[1] ?? null;
41 + const vTxt = H.text($(a).find('[class*="VintageRatingsCards_cote"]')) ?? '';
42 + const vintage = vTxt.match(/^(\d{4})/)?.[1] ?? null;
43 + const priceTxt = vTxt.match(/€\s*[\d\s.,]+/)?.[0] ?? null;
44 + const price = priceTxt ? parsePrice(priceTxt.replace(/\s/g, ''), 'EUR')?.amount ?? null : null;
45 + if (!id || !price) return;
46 + wineId ??= id;
47 + if (!producerSlug && m?.[3]) producerSlug = m[3]!;
48 + vintages.push({ vintage: vintage ? Number(vintage) : null, priceEur: price, url: BASE + href, ref: href.replace(/^\/en\/wine-prices\//, '').split('-Bottle-')[0]! });
49 + });
50 + if (!name || !wineId || vintages.length === 0) return;
51 + wines.push({ wineId, name, color, region: reg ?? null, appellation: app ?? null, producerSlug, image: image && !image.includes('_no_picture') ? (image.startsWith('http') ? image : BASE + image) : null, vintages });
52 + });
53 + return { kind: 'cote_page', url, region, page, totalPages, wines };
54 +}
55 +
56 +/** "Chateau-de-Fieuzal-red" → "Château de Fieuzal" is not recoverable exactly; keep a readable producer label without guessing accents. */
57 +export function producerFromSlug(slug: string | null): string | null {
58 + if (!slug) return null;
59 + const s = slug.replace(/-(red|white|rose|sparkling|sweet)$/i, '').replace(/^(Second-Wine-|Cru-bourgeois-)/i, '');
60 + const label = s.replace(/-/g, ' ').trim();
61 + return label || null;
62 +}
63 +
64 +export class IdealwineConnector extends BaseConnector {
65 + readonly version = '1.0.0';
66 + readonly parserVersion = PARSER_VERSION;
67 + protected override minIntervalMs = 2000;
68 +
69 + async *crawl(ctx: CrawlContext): AsyncIterable<RawRecordInput> {
70 + const regions = z.array(z.string()).parse(this.meta.config.regions ?? ['bordeaux']);
71 + const pages = Number(this.meta.config.pagesPerRegion ?? 3);
72 + const cursor = (ctx.options.cursor ?? {}) as { next?: Record<string, number> };
73 + const next: Record<string, number> = { ...(cursor.next ?? {}) };
74 + let count = 0;
75 + for (const region of regions) {
76 + const start = ctx.options.mode === 'backfill' ? (next[region] ?? 1) : 1;
77 + for (let page = start; page < start + pages; page++) {
78 + if (ctx.signal?.aborted || this.reached(ctx, count)) return void (await ctx.setCursor({ next }));
79 + const url = `${BASE}/en/cote/${region}${page > 1 ? `?page=${page}` : ''}`;
80 + await this.throttle();
81 + const res = await ctx.fetch(url, {
82 + engines: ['api'],
83 + responseType: 'text',
84 + expect: ['title', 'price', 'currency'],
85 + parse: (r) => {
86 + const p = r.html ? parseCotePage(r.html, url, region, page) : null;
87 + const w = p?.wines[0];
88 + return w ? { title: w.name, price: w.vintages[0]?.priceEur ?? null, currency: 'EUR' } : null;
89 + },
90 + });
91 + const payload = res.success && res.html ? parseCotePage(res.html, url, region, page) : null;
92 + if (!payload || payload.wines.length === 0) {
93 + ctx.anomaly(payload ? 'empty_page' : 'page_fetch_failed', `${url}: ${res.error ?? res.httpStatus}`);
94 + next[region] = 1;
95 + break;
96 + }
97 + count++;
98 + yield { url, externalId: `cote:${region}:${page}`, kind: 'price_observation', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt };
99 + next[region] = payload.totalPages && page >= payload.totalPages ? 1 : page + 1;
100 + }
101 + }
102 + await ctx.setCursor({ next });
103 + }
104 +
105 + async normalize(raw: RawRecordLike): Promise<NormalizedRecord[]> {
106 + const p = PagePayloadSchema.parse(raw.payload);
107 + const out: NormalizedRecord[] = [];
108 + const observationDate = new Date(Date.UTC(raw.fetchedAt.getUTCFullYear(), raw.fetchedAt.getUTCMonth(), raw.fetchedAt.getUTCDate()));
109 + for (const w of p.wines) {
110 + for (const v of w.vintages) {
111 + const attributes = AssetAttributesSchema.parse({
112 + categorySlug: 'wine',
113 + brand: producerFromSlug(w.producerSlug),
114 + series: w.region,
115 + set: w.appellation,
116 + name: w.name,
117 + year: v.vintage,
118 + color: w.color,
119 + size: '75cl',
120 + country: /italie|italy/i.test(p.region) ? 'IT' : 'FR',
121 + identifiers: { idealwine_wine_id: w.wineId, idealwine_ref: v.ref },
122 + metadata: { region_page: p.region },
123 + });
124 + const base = {
125 + connectorId: this.meta.id,
126 + sourceId: this.meta.sourceId,
127 + sourceUrl: v.url,
128 + externalId: v.ref,
129 + rawTitle: `${w.name}${v.vintage ? ` ${v.vintage}` : ''}${w.appellation ? ` · ${w.appellation}` : ''}${w.color ? ` (${w.color})` : ''}`,
130 + description: null,
131 + imageUrls: w.image ? [w.image] : [],
132 + attributes,
133 + grade: { grader: null, grade: null, qualifier: null, certificationNumber: null },
134 + condition: { condition: null, conditionRaw: null, completeness: null },
135 + observedAt: raw.fetchedAt,
136 + confidence: 0.75,
137 + parserVersion: PARSER_VERSION,
138 + };
139 + out.push(NormalizedCatalogItemSchema.parse({ kind: 'catalog_item', ...base, releaseDate: null }));
140 + out.push(NormalizedPriceObservationSchema.parse({ kind: 'price_observation', ...base, priceKind: 'guide_value', price: v.priceEur, currency: 'EUR', observationDate, sampleSize: null }));
141 + }
142 + }
143 + return out;
144 + }
145 +}
146 +
147 +export default function createConnector(meta: ConnectorMeta) {
148 + return new IdealwineConnector(meta);
149 +}
added connectors/api/idealwine/meta.json +33 −0
@@ -0,0 +1,33 @@
1 +{
2 + "id": "idealwine",
3 + "displayName": "iDealwine Price Estimate (wine price index)",
4 + "sourceId": "idealwine",
5 + "sourceName": "iDealwine",
6 + "sourceType": "pricing_guide",
7 + "sourceUrl": "https://www.idealwine.com",
8 + "module": "api/idealwine",
9 + "enginePriority": ["api", "firecrawl", "scrapfly"],
10 + "categories": ["wine"],
11 + "regions": ["FR", "EU"],
12 + "languages": ["en", "fr"],
13 + "currency": ["EUR"],
14 + "supportsListings": false,
15 + "supportsSold": false,
16 + "supportsAuctions": false,
17 + "supportsImages": true,
18 + "supportsCatalog": true,
19 + "supportsPopulation": false,
20 + "supportsLookup": false,
21 + "refreshFrequencyMinutes": 10080,
22 + "priority": "medium",
23 + "trustScore": 0.85,
24 + "attributionRequired": true,
25 + "termsUrl": "https://www.idealwine.com/en/cgv",
26 + "accessNotes": "Public price-index pages (/en/cote/<region>?page=N) of iDealwine, the leading French wine auction house: each card lists a wine (region > appellation, colour, producer picture) with the iDealwine Price Estimate per vintage in EUR per 75 cl bottle. The estimate is computed by iDealwine from auction results (hammer price INCLUDING buyer's premium, updated weekly from 3M+ French auction prices since 1992) — we store it as a guide_value price observation, never as a transaction. Plain HTTPS with the RareIndex user agent; robots.txt disallows only /api/, account and login paths. No timestamp is published per estimate, so observationDate = fetch date (confidence 0.75). 2 s politeness delay; regions and pages per run are configurable.",
27 + "enabled": true,
28 + "schemaVersion": "1.0",
29 + "config": {
30 + "regions": ["bordeaux", "bourgogne", "rhone", "champagne", "loire", "italie", "alsace", "languedoc", "provence", "jura"],
31 + "pagesPerRegion": 3
32 + }
33 +}
added connectors/api/lyon-turnbull/_smoke.ts +23 −0
@@ -0,0 +1,23 @@
1 +import { createRouter, createCrawlContext, ConnectorMetaSchema } from '@rareindex/connectors';
2 +import { saveFixture } from '@rareindex/connectors/testing';
3 +import metaJson from './meta.json' with { type: 'json' };
4 +import createConnector from './index.js';
5 +
6 +const save = process.argv.includes('--save');
7 +const meta = ConnectorMetaSchema.parse(metaJson);
8 +const connector = createConnector(meta);
9 +const router = createRouter({ firecrawlApiKey: process.env.FIRECRAWL_API_KEY, scrapflyApiKey: process.env.SCRAPFLY_API_KEY });
10 +const ctx = createCrawlContext({ router, meta, options: { mode: 'probe', limit: 2 } });
11 +let i = 0;
12 +for await (const raw of connector.crawl(ctx)) {
13 + const out = await connector.normalize({ ...raw, externalId: raw.externalId ?? null, fetchedAt: raw.fetchedAt ?? new Date() });
14 + const sales = out.filter((r) => r.kind === 'sale');
15 + console.log(`raw ${raw.externalId} (${raw.engine}) → ${out.length} records, ${sales.length} sales`);
16 + for (const r of sales.slice(0, 3)) console.log(' ', JSON.stringify(r).slice(0, 420));
17 + if (save && i < 2) {
18 + const p = raw.payload as { lots: unknown[] };
19 + saveFixture(meta.id, `auction-${raw.externalId}`, { raw: { url: raw.url, externalId: raw.externalId ?? null, kind: raw.kind, engine: raw.engine, fetchedAt: raw.fetchedAt ?? new Date(), payload: { ...(raw.payload as object), lots: p.lots.slice(0, 60) } }, expect: { minCount: 20, kinds: ['sale', 'auction_lot'], requiredFields: ['attributes.categorySlug', 'rawTitle'] }, note: 'Captured live from lyonandturnbull.com (plain HTTPS, lots trimmed to 60)' });
20 + }
21 + i++;
22 +}
23 +console.log('engineStats', ctx.engineStats, 'anomalies', ctx.anomalies);
added connectors/api/lyon-turnbull/index.test.ts +38 −0
@@ -0,0 +1,38 @@
1 +import { describe, expect, it } from 'vitest';
2 +import { ConnectorMetaSchema } from '@rareindex/connectors';
3 +import { listFixtures, loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';
4 +import metaJson from './meta.json' with { type: 'json' };
5 +import createConnector, { categoryForAuction, parsePastAuctions, premiumFor } from './index.js';
6 +
7 +const connector = createConnector(ConnectorMetaSchema.parse(metaJson));
8 +
9 +describe('lyon-turnbull', () => {
10 + runFixtureSuite(connector, it, expect);
11 +
12 + it('emits GBP hammer-price sales for sold lots and auction_lot records for unsold ones', async () => {
13 + const name = listFixtures('lyon-turnbull')[0]!;
14 + const fx = loadFixture('lyon-turnbull', name);
15 + const out = await connector.normalize(fx.raw);
16 + const sales = out.filter((r) => r.kind === 'sale');
17 + expect(sales.length).toBeGreaterThan(5);
18 + for (const r of sales) {
19 + if (r.kind !== 'sale') continue;
20 + expect(r.currency).toBe('GBP');
21 + expect(r.buyerPremiumIncluded).toBe(false);
22 + expect(r.auctionHouse).toBe('Lyon & Turnbull');
23 + expect(Array.isArray(r.attributes.metadata.premium_tiers)).toBe(true);
24 + if (r.attributes.metadata.premium_estimate !== null) expect(r.attributes.metadata.premium_estimate).toBeGreaterThan(0);
25 + expect(r.saleDate.getFullYear()).toBeGreaterThanOrEqual(2020);
26 + }
27 + });
28 +
29 + it('helpers', () => {
30 + const html = `<script id="__NEXT_DATA__" type="application/json">${JSON.stringify({ props: { pageProps: { auctionsListData: [{ title: 'Scotland Collected ', saleNumber: '908', date: '19 & 20 August 2026', amsDate: '2026-08-19T09:00:00.000Z', arrowLink: '/auctions/scotland-collected-908' }] } } })}</script>`;
31 + expect(parsePastAuctions(html)).toEqual([{ saleNumber: '908', title: 'Scotland Collected', subtitle: null, date: '19 & 20 August 2026', amsDate: '2026-08-19T09:00:00.000Z', link: '/auctions/scotland-collected-908' }]);
32 + expect(categoryForAuction('Fine Jewellery')).toBe('jewelry');
33 + expect(categoryForAuction('1925: Celebrating Art Deco')).toBe('design_furniture');
34 + expect(categoryForAuction('Rare Books, Manuscripts, Maps & Photographs')).toBe('books');
35 + expect(premiumFor(10000, [{ percent: 27, amount_over: 0 }, { percent: 26, amount_over: 20000 }])).toBe(2700);
36 + expect(premiumFor(30000, [{ percent: 27, amount_over: 0 }, { percent: 26, amount_over: 20000 }])).toBe(8000);
37 + });
38 +});
added connectors/api/lyon-turnbull/index.ts +257 −0
@@ -0,0 +1,257 @@
1 +import { z } from 'zod';
2 +import { BaseConnector, html as H, type ConnectorMeta, type CrawlContext, type RawRecordInput, type RawRecordLike } from '@rareindex/connectors';
3 +import { AssetAttributesSchema, NormalizedAuctionLotSchema, NormalizedSaleSchema, extractYear, type NormalizedRecord } from '@rareindex/shared';
4 +
5 +/**
6 + * Lyon & Turnbull — auction results embedded as JSON in each auction page. One raw record per
7 + * auction (compact lot list); normalise → one sale per sold lot (hammer price, GBP) and one
8 + * auction_lot for unsold lots.
9 + */
10 +
11 +const BASE = 'https://www.lyonandturnbull.com';
12 +const PARSER_VERSION = '1.0.0';
13 +
14 +export const PastAuctionSchema = z.object({ saleNumber: z.string(), title: z.string(), subtitle: z.string().nullable(), date: z.string().nullable(), amsDate: z.string().nullable(), link: z.string() });
15 +export type PastAuction = z.infer<typeof PastAuctionSchema>;
16 +
17 +export const LotSchema = z.object({
18 + uuid: z.string(),
19 + lotNo: z.string(),
20 + title: z.string(),
21 + subTitle: z.string().nullable(),
22 + low: z.number().nullable(),
23 + high: z.number().nullable(),
24 + hammer: z.number().nullable(),
25 + status: z.string().nullable(),
26 + sessionDate: z.string().nullable(),
27 + image: z.string().nullable(),
28 +});
29 +export const AuctionPayloadSchema = z.object({
30 + kind: z.literal('auction_results'),
31 + url: z.string(),
32 + auction: PastAuctionSchema,
33 + currency: z.string(),
34 + status: z.string().nullable(),
35 + premiumTiers: z.array(z.object({ percent: z.number(), amount_over: z.number() })),
36 + lots: z.array(LotSchema),
37 +});
38 +export type AuctionPayload = z.infer<typeof AuctionPayloadSchema>;
39 +
40 +/** Past auctions from the /auctions/past-auctions __NEXT_DATA__ (`auctionsListData`). */
41 +export function parsePastAuctions(htmlText: string): PastAuction[] {
42 + const data = H.nextData(htmlText) as { props?: { pageProps?: { auctionsListData?: Array<Record<string, unknown>> } } } | null;
43 + const list = data?.props?.pageProps?.auctionsListData ?? [];
44 + return list
45 + .map((a) => ({
46 + saleNumber: String(a.saleNumber ?? ''),
47 + title: String(a.title ?? '').trim(),
48 + subtitle: a.subtitle ? String(a.subtitle) : null,
49 + date: a.date ? String(a.date) : null,
50 + amsDate: a.amsDate ? String(a.amsDate) : null,
51 + link: String(a.arrowLink ?? ''),
52 + }))
53 + .filter((a) => a.link.startsWith('/auctions/') && a.saleNumber);
54 +}
55 +
56 +function num(v: unknown): number | null {
57 + if (v === null || v === undefined || v === '') return null;
58 + const n = Number(v);
59 + return Number.isFinite(n) && n > 0 ? n : null;
60 +}
61 +
62 +/** Extract the embedded lots JSON ("lots":[...]) plus auction status/currency/premium tiers from an auction page. */
63 +export function parseAuctionPage(htmlText: string, url: string, auction: PastAuction): AuctionPayload | null {
64 + const data = H.nextData(htmlText) as Record<string, unknown> | null;
65 + let lotsRaw: Array<Record<string, unknown>> | null = null;
66 + let auctionRaw: Record<string, unknown> | null = null;
67 + const visit = (o: unknown, depth: number): void => {
68 + if (!o || typeof o !== 'object' || depth > 8 || (lotsRaw && auctionRaw)) return;
69 + if (Array.isArray(o)) {
70 + for (const x of o) visit(x, depth + 1);
71 + return;
72 + }
73 + const rec = o as Record<string, unknown>;
74 + if (!lotsRaw && Array.isArray(rec.lots) && rec.lots.length && typeof (rec.lots[0] as Record<string, unknown>).lot_no !== 'undefined') {
75 + lotsRaw = rec.lots as Array<Record<string, unknown>>;
76 + auctionRaw = rec;
77 + }
78 + for (const v of Object.values(rec)) visit(v, depth + 1);
79 + };
80 + if (data) visit(data, 0);
81 + if (!lotsRaw) {
82 + // fallback: the JSON may be inlined outside __NEXT_DATA__
83 + const i = htmlText.indexOf('"lots":[');
84 + if (i < 0) return null;
85 + const literal = H.inlineJson(htmlText.slice(i - 1), '"lots"');
86 + if (!literal || !Array.isArray((literal as { lots?: unknown }).lots)) return null;
87 + lotsRaw = (literal as { lots: Array<Record<string, unknown>> }).lots;
88 + auctionRaw = literal as Record<string, unknown>;
89 + }
90 + const a = auctionRaw as Record<string, unknown>;
91 + const first = lotsRaw![0]!;
92 + // Premium tiers live on the auction object (sibling of `lots`) or on each lot's financeItem.
93 + const tierSource = (Array.isArray(a.premiums) ? a.premiums : Array.isArray((a.auction as { premiums?: unknown } | undefined)?.premiums) ? (a.auction as { premiums: unknown[] }).premiums : Array.isArray((first.financeItem as { premium_tiers?: unknown } | undefined)?.premium_tiers) ? (first.financeItem as { premium_tiers: unknown[] }).premium_tiers : []) as Array<{ percent?: number; amount_over?: number }>;
94 + const premiums = tierSource.map((p) => ({ percent: Number(p.percent ?? 0), amount_over: Number(p.amount_over ?? 0) }));
95 + const currencySymbol = ((first.auction as { currency?: { symbol?: string } } | undefined)?.currency?.symbol ?? (a.currency as { symbol?: string } | undefined)?.symbol ?? '£');
96 + const currency = currencySymbol === '£' ? 'GBP' : currencySymbol === '€' ? 'EUR' : currencySymbol === '$' ? 'USD' : 'GBP';
97 + const status = typeof a.status === 'string' ? a.status : ((first.auction as { status?: string } | undefined)?.status ?? null);
98 + const lots = lotsRaw!.map((l) => {
99 + const title = (l.title as { en?: string } | undefined)?.en ?? (typeof l.title === 'string' ? l.title : '');
100 + const sub = ((l.dynamic_fields as { en?: { sub_title?: string } } | undefined)?.en?.sub_title ?? null) as string | null;
101 + const img = (l.images as Array<{ data?: { original?: { url?: string }; sm?: { url?: string } } }> | undefined)?.[0]?.data;
102 + return {
103 + uuid: String(l.uuid ?? ''),
104 + lotNo: String(l.lot_no ?? ''),
105 + title: String(title).trim(),
106 + subTitle: sub ? String(sub).trim() : null,
107 + low: num(l.low),
108 + high: num(l.high),
109 + hammer: num(l.hammer_price) ?? num((l.financeItem as { hammer_price?: unknown } | undefined)?.hammer_price),
110 + status: typeof l.status === 'string' ? l.status : null,
111 + sessionDate: typeof l.session_date === 'string' ? l.session_date : null,
112 + image: img?.original?.url ?? img?.sm?.url ?? null,
113 + };
114 + });
115 + return { kind: 'auction_results', url, auction, currency, status, premiumTiers: premiums, lots: lots.filter((l) => l.title && l.lotNo) };
116 +}
117 +
118 +const TITLE_CATEGORY: Array<[RegExp, string]> = [
119 + [/jewel/i, 'jewelry'],
120 + [/silver|objets de vertu/i, 'silver'],
121 + [/whisky|spirits|wine/i, 'whisky'],
122 + [/watch|clock|horolog/i, 'watches'],
123 + [/book|manuscript|map/i, 'books'],
124 + [/photograph/i, 'photography'],
125 + [/contemporary|modern made|post-war|prints|editions|modern british/i, 'contemporary_art'],
126 + [/design|art deco|art nouveau|decorative arts|furniture|form through time/i, 'design_furniture'],
127 + [/asian|chinese|japanese|islamic|african|tribal|ceramic|porcelain|glass/i, 'antiques'],
128 + [/scottish|paintings|pictures|old master|fine art|art/i, 'art'],
129 +];
130 +
131 +export function categoryForAuction(title: string): string {
132 + return TITLE_CATEGORY.find(([re]) => re.test(title))?.[1] ?? 'antiques';
133 +}
134 +
135 +/** Lot-level refinements for cross-category sales (natural history, watches inside mixed auctions…). */
136 +const LOT_CATEGORY: Array<[RegExp, string]> = [
137 + [/meteorite/i, 'meteorites'],
138 + [/fossil|ammonite|trilobite|dinosaur|mammoth|megalodon/i, 'fossils'],
139 + [/mineral|crystal|quartz|amethyst|geode|specimen/i, 'minerals'],
140 + [/wristwatch|pocket watch|chronograph/i, 'other_watches'],
141 + [/rolex/i, 'rolex'],
142 + [/patek philippe/i, 'patek_philippe'],
143 + [/omega/i, 'omega'],
144 +];
145 +export function categoryForLot(auctionCategory: string, title: string): string {
146 + return LOT_CATEGORY.find(([re]) => re.test(title))?.[1] ?? auctionCategory;
147 +}
148 +
149 +/** Buyer's premium for a hammer price from tiered percentages (each tier applies to the slice above `amount_over`). */
150 +export function premiumFor(hammer: number, tiers: Array<{ percent: number; amount_over: number }>): number | null {
151 + if (!tiers.length) return null;
152 + const sorted = [...tiers].sort((a, b) => a.amount_over - b.amount_over);
153 + let total = 0;
154 + for (let i = 0; i < sorted.length; i++) {
155 + const from = sorted[i]!.amount_over;
156 + const to = sorted[i + 1]?.amount_over ?? Infinity;
157 + if (hammer <= from) break;
158 + total += (Math.min(hammer, to) - from) * (sorted[i]!.percent / 100);
159 + }
160 + return Math.round(total * 100) / 100;
161 +}
162 +
163 +export class LyonTurnbullConnector extends BaseConnector {
164 + readonly version = '1.0.0';
165 + readonly parserVersion = PARSER_VERSION;
166 + protected override minIntervalMs = 2000;
167 +
168 + async *crawl(ctx: CrawlContext): AsyncIterable<RawRecordInput> {
169 + const pastUrl = String(this.meta.config.pastAuctionsUrl ?? `${BASE}/auctions/past-auctions`);
170 + const perRun = Number(this.meta.config.auctionsPerRun ?? 3);
171 + const cursor = (ctx.options.cursor ?? {}) as { done?: string[] };
172 + const done = new Set<string>(cursor.done ?? []);
173 + const list = await ctx.fetch(pastUrl, { engines: ['api'], responseType: 'text', minQuality: 0, timeoutMs: 60_000 });
174 + if (!list.success || !list.html) {
175 + ctx.anomaly('past_list_failed', list.error ?? String(list.httpStatus));
176 + return;
177 + }
178 + const auctions = parsePastAuctions(list.html).sort((a, b) => (b.amsDate ?? '').localeCompare(a.amsDate ?? ''));
179 + let fetched = 0;
180 + let count = 0;
181 + for (const auction of auctions) {
182 + if (ctx.signal?.aborted || this.reached(ctx, count) || fetched >= perRun) break;
183 + if (done.has(auction.saleNumber) && ctx.options.mode !== 'backfill') continue;
184 + const url = BASE + auction.link;
185 + await this.throttle();
186 + fetched++;
187 + const res = await ctx.fetch(url, {
188 + engines: ['api'],
189 + responseType: 'text',
190 + timeoutMs: 60_000,
191 + expect: ['title', 'price', 'currency', 'status'],
192 + parse: (r) => {
193 + const p = r.html ? parseAuctionPage(r.html, url, auction) : null;
194 + const sold = p?.lots.find((l) => l.hammer);
195 + return p ? { title: p.lots[0]?.title, price: sold?.hammer ?? null, currency: sold ? p.currency : null, status: p.status } : null;
196 + },
197 + });
198 + const payload = res.success && res.html ? parseAuctionPage(res.html, url, auction) : null;
199 + if (!payload) {
200 + ctx.anomaly('auction_parse_failed', `${auction.saleNumber}: ${res.error ?? res.httpStatus}`);
201 + continue;
202 + }
203 + if (payload.status && payload.status !== 'completed') {
204 + // still live/published — results not final yet
205 + continue;
206 + }
207 + count++;
208 + done.add(auction.saleNumber);
209 + await ctx.setCursor({ done: [...done].slice(-400) });
210 + yield { url, externalId: auction.saleNumber, kind: 'sale', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt };
211 + }
212 + }
213 +
214 + async normalize(raw: RawRecordLike): Promise<NormalizedRecord[]> {
215 + const p = AuctionPayloadSchema.parse(raw.payload);
216 + const categorySlug = categoryForAuction(`${p.auction.title} ${p.auction.subtitle ?? ''}`);
217 + const out: NormalizedRecord[] = [];
218 + for (const lot of p.lots) {
219 + const saleDateIso = lot.sessionDate ?? p.auction.amsDate;
220 + const saleDate = saleDateIso ? new Date(saleDateIso) : null;
221 + const lotUrl = `${BASE}${p.auction.link}/lot/${lot.lotNo}`;
222 + const yearHint = lot.subTitle ? extractYear(lot.subTitle) : null;
223 + const attributes = AssetAttributesSchema.parse({
224 + categorySlug: categoryForLot(categorySlug, `${lot.title} ${lot.subTitle ?? ''}`),
225 + name: lot.title,
226 + year: yearHint,
227 + identifiers: { lt_lot_uuid: lot.uuid, lt_lot: `${p.auction.saleNumber}/${lot.lotNo}` },
228 + metadata: { sale_number: p.auction.saleNumber, auction_title: p.auction.title, sub_title: lot.subTitle, estimate_low: lot.low, estimate_high: lot.high, premium_tiers: p.premiumTiers, premium_estimate: lot.hammer ? premiumFor(lot.hammer, p.premiumTiers) : null },
229 + });
230 + const base = {
231 + connectorId: this.meta.id,
232 + sourceId: this.meta.sourceId,
233 + sourceUrl: lotUrl,
234 + externalId: `${p.auction.saleNumber}:${lot.lotNo}`,
235 + rawTitle: lot.subTitle ? `${lot.title} — ${lot.subTitle}` : lot.title,
236 + description: null,
237 + imageUrls: lot.image ? [lot.image] : [],
238 + attributes,
239 + grade: { grader: null, grade: null, qualifier: null, certificationNumber: null },
240 + condition: { condition: null, conditionRaw: null, completeness: null },
241 + observedAt: raw.fetchedAt,
242 + confidence: 0.9,
243 + parserVersion: PARSER_VERSION,
244 + };
245 + if (lot.hammer && saleDate && lot.status !== 'unsold') {
246 + out.push(NormalizedSaleSchema.parse({ kind: 'sale', ...base, saleType: 'auction', saleDate, price: lot.hammer, currency: p.currency, buyerPremiumIncluded: false, quantity: 1, isBundle: false, location: 'United Kingdom', auctionHouse: 'Lyon & Turnbull', lotNumber: lot.lotNo }));
247 + } else {
248 + out.push(NormalizedAuctionLotSchema.parse({ kind: 'auction_lot', ...base, auctionHouse: 'Lyon & Turnbull', auctionName: p.auction.title, lotNumber: lot.lotNo, startsAt: saleDate, endsAt: saleDate, estimateLow: lot.low, estimateHigh: lot.high, currentBid: null, currency: p.currency, status: 'ended', location: 'United Kingdom' }));
249 + }
250 + }
251 + return out;
252 + }
253 +}
254 +
255 +export default function createConnector(meta: ConnectorMeta) {
256 + return new LyonTurnbullConnector(meta);
257 +}
added connectors/api/lyon-turnbull/meta.json +33 −0
@@ -0,0 +1,33 @@
1 +{
2 + "id": "lyon-turnbull",
3 + "displayName": "Lyon & Turnbull (auction results)",
4 + "sourceId": "lyon-turnbull",
5 + "sourceName": "Lyon & Turnbull",
6 + "sourceType": "auction_house",
7 + "sourceUrl": "https://www.lyonandturnbull.com",
8 + "module": "api/lyon-turnbull",
9 + "enginePriority": ["api", "firecrawl", "scrapfly"],
10 + "categories": ["art", "contemporary_art", "photography", "design_furniture", "antiques", "jewelry", "silver", "watches", "other_watches", "books", "whisky", "porcelain", "glass_crystal", "clocks", "scientific_instruments"],
11 + "regions": ["GB"],
12 + "languages": ["en"],
13 + "currency": ["GBP"],
14 + "supportsListings": false,
15 + "supportsSold": true,
16 + "supportsAuctions": true,
17 + "supportsImages": true,
18 + "supportsCatalog": false,
19 + "supportsPopulation": false,
20 + "supportsLookup": false,
21 + "refreshFrequencyMinutes": 1440,
22 + "priority": "medium",
23 + "trustScore": 0.9,
24 + "attributionRequired": true,
25 + "termsUrl": "https://www.lyonandturnbull.com/auctions/buy-sell/buy",
26 + "accessNotes": "Edinburgh/London/Glasgow auction house. Past auctions are listed in the public /auctions/past-auctions page (Next.js __NEXT_DATA__: title, sale number, date, link); each auction page embeds the full lot list as JSON (lot number, title, sub-title, estimate, hammer_price, status sold/unsold, images, buyer's premium tiers). Plain HTTPS with the RareIndex user agent; robots.txt disallows only /account, /auth, /search and collection_* paths. We store the HAMMER price (buyer_premium_included=false) and record the published premium tiers in metadata; sale date = auction session date. No login, no bidder data. 2 s politeness delay.",
27 + "enabled": true,
28 + "schemaVersion": "1.0",
29 + "config": {
30 + "pastAuctionsUrl": "https://www.lyonandturnbull.com/auctions/past-auctions",
31 + "auctionsPerRun": 3
32 + }
33 +}
added connectors/api/saatchi-art/_smoke.ts +21 −0
@@ -0,0 +1,21 @@
1 +import { createRouter, createCrawlContext, ConnectorMetaSchema } from '@rareindex/connectors';
2 +import { saveFixture } from '@rareindex/connectors/testing';
3 +import metaJson from './meta.json' with { type: 'json' };
4 +import createConnector from './index.js';
5 +
6 +const save = process.argv.includes('--save');
7 +const meta = ConnectorMetaSchema.parse(metaJson);
8 +const connector = createConnector(meta);
9 +const router = createRouter({ firecrawlApiKey: process.env.FIRECRAWL_API_KEY, scrapflyApiKey: process.env.SCRAPFLY_API_KEY });
10 +const ctx = createCrawlContext({ router, meta, options: { mode: 'probe', limit: 2, categories: ['contemporary_art'] } });
11 +let i = 0;
12 +for await (const raw of connector.crawl(ctx)) {
13 + const out = await connector.normalize({ ...raw, externalId: raw.externalId ?? null, fetchedAt: raw.fetchedAt ?? new Date() });
14 + console.log(`raw ${raw.externalId} (${raw.engine}) → ${out.length} listings`);
15 + for (const r of out.slice(0, 3)) console.log(' ', JSON.stringify(r).slice(0, 420));
16 + if (save && i < 2) saveFixture(meta.id, i === 0 ? 'paintings-page-1' : 'paintings-page-2', { raw: { url: raw.url, externalId: raw.externalId ?? null, kind: raw.kind, engine: raw.engine, fetchedAt: raw.fetchedAt ?? new Date(), payload: raw.payload }, expect: { minCount: 20, kinds: ['listing'], requiredFields: ['price', 'currency', 'attributes.brand'] }, note: 'Captured live from saatchiart.com __NEXT_DATA__' });
17 + i++;
18 +}
19 +const looked = await connector.lookup('https://www.saatchiart.com/art/Painting-Octhopuses/626451/10544327/view', ctx);
20 +console.log('lookup →', looked.length ? JSON.stringify((await connector.normalize({ ...looked[0]!, externalId: looked[0]!.externalId ?? null, fetchedAt: new Date() }))[0]).slice(0, 300) : 'none');
21 +console.log('engineStats', ctx.engineStats, 'anomalies', ctx.anomalies);
added connectors/api/saatchi-art/index.test.ts +34 −0
@@ -0,0 +1,34 @@
1 +import { describe, expect, it } from 'vitest';
2 +import { ConnectorMetaSchema } from '@rareindex/connectors';
3 +import { loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';
4 +import metaJson from './meta.json' with { type: 'json' };
5 +import createConnector, { parseBrowsePage } from './index.js';
6 +
7 +const connector = createConnector(ConnectorMetaSchema.parse(metaJson));
8 +
9 +describe('saatchi-art', () => {
10 + runFixtureSuite(connector, it, expect);
11 +
12 + it('maps artworks to USD fixed-price listings with artist, medium and size', async () => {
13 + const fx = loadFixture('saatchi-art', 'paintings-page-1');
14 + const out = await connector.normalize(fx.raw);
15 + expect(out.length).toBe(25);
16 + for (const r of out) {
17 + if (r.kind !== 'listing') throw new Error('expected listing');
18 + expect(r.currency).toBe('USD');
19 + expect(r.listingType).toBe('fixed_price');
20 + expect(['available', 'sold', 'unknown']).toContain(r.availability);
21 + expect(r.attributes.identifiers.saatchi_artwork_id).toMatch(/^\d+$/);
22 + expect(r.attributes.brand).toBeTruthy();
23 + expect(r.sourceUrl).toMatch(/^https:\/\/www\.saatchiart\.com\/art\//);
24 + }
25 + });
26 +
27 + it('parses __NEXT_DATA__ browse pages', () => {
28 + const html = `<script id="__NEXT_DATA__" type="application/json">${JSON.stringify({ props: { pageProps: { initialState: { searchProvider: { serverSideData: { totalResults: 2, results: [{ artworkId: '1', artworkTitle: 'A', artworkOriginalUrl: '/art/Painting-A/1/1/view', artistFirstName: 'jane', artistLastName: 'doe', category: 'Painting', mediums: ['oil'], materials: ['canvas'], dimensions: { widthInCentimeters: 10, heightInCentimeters: 20 }, listPriceInCents: 123400, originalArtworkStatus: 'sold', imageUrl: 'https://i/x.jpg' }] } } } } } })}</script>`;
29 + const p = parseBrowsePage(html, 'u', { path: '/paintings', category: 'contemporary_art' }, 1)!;
30 + expect(p.totalResults).toBe(2);
31 + expect(p.works[0]).toMatchObject({ artworkId: '1', title: 'A', listPriceCents: 123400, status: 'sold', widthCm: 10 });
32 + expect(parseBrowsePage('<html></html>', 'u', { path: '/x', category: 'art' }, 1)).toBeNull();
33 + });
34 +});
added connectors/api/saatchi-art/index.ts +202 −0
@@ -0,0 +1,202 @@
1 +import { z } from 'zod';
2 +import { BaseConnector, html as H, type ConnectorMeta, type CrawlContext, type RawRecordInput, type RawRecordLike } from '@rareindex/connectors';
3 +import { AssetAttributesSchema, NormalizedListingSchema, type NormalizedRecord } from '@rareindex/shared';
4 +
5 +/**
6 + * Saatchi Art — original artworks listed for sale. One raw record per browse page (25 works);
7 + * normalise → one listing per artwork (USD list price; sold works → availability 'sold').
8 + */
9 +
10 +const BASE = 'https://www.saatchiart.com';
11 +const PARSER_VERSION = '1.0.0';
12 +
13 +const SeedSchema = z.object({ path: z.string(), category: z.string() });
14 +type Seed = z.infer<typeof SeedSchema>;
15 +
16 +export const WorkSchema = z.object({
17 + artworkId: z.string(),
18 + url: z.string(),
19 + title: z.string(),
20 + artistFirstName: z.string().nullable(),
21 + artistLastName: z.string().nullable(),
22 + artistId: z.number().nullable(),
23 + category: z.string().nullable(),
24 + mediums: z.array(z.string()),
25 + materials: z.array(z.string()),
26 + styles: z.array(z.string()),
27 + subject: z.string().nullable(),
28 + widthCm: z.number().nullable(),
29 + heightCm: z.number().nullable(),
30 + depthCm: z.number().nullable(),
31 + listPriceCents: z.number().nullable(),
32 + status: z.string().nullable(),
33 + sku: z.string().nullable(),
34 + image: z.string().nullable(),
35 + countryName: z.string().nullable(),
36 + uploadedAt: z.number().nullable(),
37 +});
38 +export const PagePayloadSchema = z.object({ kind: z.literal('browse_page'), url: z.string(), seed: SeedSchema, page: z.number(), totalResults: z.number().nullable(), works: z.array(WorkSchema) });
39 +export type PagePayload = z.infer<typeof PagePayloadSchema>;
40 +
41 +export function parseBrowsePage(htmlText: string, url: string, seed: Seed, page: number): PagePayload | null {
42 + const data = H.nextData(htmlText) as { props?: { pageProps?: { initialState?: { searchProvider?: { serverSideData?: { results?: Array<Record<string, unknown>>; totalResults?: number } } } } } } | null;
43 + const ssd = data?.props?.pageProps?.initialState?.searchProvider?.serverSideData;
44 + if (!ssd?.results) return null;
45 + const works = ssd.results
46 + .map((r) => {
47 + const dims = (r.dimensions as { widthInCentimeters?: number; heightInCentimeters?: number; depthInCentimeters?: number } | undefined) ?? {};
48 + const path = String(r.artworkOriginalUrl ?? '');
49 + return {
50 + artworkId: String(r.artworkId ?? ''),
51 + url: path.startsWith('http') ? path : BASE + path,
52 + title: String(r.artworkTitle ?? '').trim(),
53 + artistFirstName: r.artistFirstName ? String(r.artistFirstName) : null,
54 + artistLastName: r.artistLastName ? String(r.artistLastName) : null,
55 + artistId: typeof r.artistId === 'number' ? r.artistId : null,
56 + category: r.category ? String(r.category) : null,
57 + mediums: Array.isArray(r.mediums) ? (r.mediums as unknown[]).map(String) : [],
58 + materials: Array.isArray(r.materials) ? (r.materials as unknown[]).map(String) : [],
59 + styles: Array.isArray(r.styles) ? (r.styles as unknown[]).map(String) : [],
60 + subject: r.subject ? String(r.subject) : null,
61 + widthCm: typeof dims.widthInCentimeters === 'number' ? dims.widthInCentimeters : null,
62 + heightCm: typeof dims.heightInCentimeters === 'number' ? dims.heightInCentimeters : null,
63 + depthCm: typeof dims.depthInCentimeters === 'number' ? dims.depthInCentimeters : null,
64 + listPriceCents: typeof r.listPriceInCents === 'number' ? r.listPriceInCents : null,
65 + status: r.originalArtworkStatus ? String(r.originalArtworkStatus) : null,
66 + sku: r.sku ? String(r.sku) : null,
67 + image: r.imageUrl ? String(r.imageUrl) : null,
68 + countryName: r.countryName ? String(r.countryName) : null,
69 + uploadedAt: typeof r.artworkUploadedDate === 'number' ? r.artworkUploadedDate : null,
70 + };
71 + })
72 + .filter((w) => w.artworkId && w.title);
73 + return { kind: 'browse_page', url, seed, page, totalResults: typeof ssd.totalResults === 'number' ? ssd.totalResults : null, works };
74 +}
75 +
76 +function titleCase(s: string): string {
77 + return s.replace(/\b\w/g, (c) => c.toUpperCase());
78 +}
79 +
80 +export class SaatchiArtConnector extends BaseConnector {
81 + readonly version = '1.0.0';
82 + readonly parserVersion = PARSER_VERSION;
83 + override readonly urlPatterns = [/saatchiart\.com\/(?:en-[a-z]+\/)?art\/[^/]+\/\d+\/\d+\/view/];
84 + protected override minIntervalMs = 2000;
85 +
86 + async *crawl(ctx: CrawlContext): AsyncIterable<RawRecordInput> {
87 + const seeds = z.array(SeedSchema).parse(this.meta.config.seeds ?? []);
88 + const pages = Number(this.meta.config.pagesPerSeed ?? 4);
89 + let count = 0;
90 + for (const seed of seeds) {
91 + if (ctx.options.categories?.length && !ctx.options.categories.includes(seed.category)) continue;
92 + for (let page = 1; page <= pages; page++) {
93 + if (ctx.signal?.aborted || this.reached(ctx, count)) return;
94 + const url = `${BASE}${seed.path}${page > 1 ? `?page=${page}` : ''}`;
95 + await this.throttle();
96 + const res = await ctx.fetch(url, {
97 + engines: ['api'],
98 + responseType: 'text',
99 + expect: ['title', 'price', 'currency', 'images'],
100 + parse: (r) => {
101 + const p = r.html ? parseBrowsePage(r.html, url, seed, page) : null;
102 + const w = p?.works[0];
103 + return w ? { title: w.title, price: w.listPriceCents, currency: 'USD', images: w.image ? [w.image] : [] } : null;
104 + },
105 + });
106 + const payload = res.success && res.html ? parseBrowsePage(res.html, url, seed, page) : null;
107 + if (!payload || payload.works.length === 0) {
108 + ctx.anomaly(payload ? 'empty_page' : 'page_fetch_failed', `${url}: ${res.error ?? res.httpStatus}`);
109 + break;
110 + }
111 + count++;
112 + yield { url, externalId: `browse:${seed.path}:${page}`, kind: 'listing', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt };
113 + }
114 + }
115 + }
116 +
117 + async lookup(url: string, ctx: CrawlContext): Promise<RawRecordInput[]> {
118 + const res = await ctx.fetch(url, { engines: ['api'], responseType: 'text', minQuality: 0 });
119 + if (!res.success || !res.html) return [];
120 + const data = H.nextData(res.html) as { props?: { pageProps?: { initialState?: { page?: { data?: { pdpArtwork?: Record<string, unknown>; artwork?: Record<string, unknown> } } } } } } | null;
121 + const a = data?.props?.pageProps?.initialState?.page?.data?.pdpArtwork ?? data?.props?.pageProps?.initialState?.page?.data?.artwork;
122 + if (!a) return [];
123 + const dims = (a.dimensions as { widthInCentimeters?: number; heightInCentimeters?: number; depthInCentimeters?: number; width?: number; height?: number; depth?: number } | undefined) ?? {};
124 + const artist = (a.artist as { firstName?: string; lastName?: string; id?: number } | undefined) ?? {};
125 + const work: z.infer<typeof WorkSchema> = {
126 + artworkId: String(a.artworkId ?? a.id ?? url.match(/\/(\d+)\/view/)?.[1] ?? ''),
127 + url,
128 + title: String(a.title ?? a.artworkTitle ?? ''),
129 + artistFirstName: artist.firstName ?? (a.artistFirstName ? String(a.artistFirstName) : null),
130 + artistLastName: artist.lastName ?? (a.artistLastName ? String(a.artistLastName) : null),
131 + artistId: artist.id ?? null,
132 + category: a.category ? String(a.category) : null,
133 + mediums: Array.isArray(a.mediums) ? (a.mediums as unknown[]).map(String) : [],
134 + materials: Array.isArray(a.materials) ? (a.materials as unknown[]).map(String) : [],
135 + styles: Array.isArray(a.styles) ? (a.styles as unknown[]).map(String) : [],
136 + subject: a.subject ? String(a.subject) : null,
137 + widthCm: dims.widthInCentimeters ?? dims.width ?? null,
138 + heightCm: dims.heightInCentimeters ?? dims.height ?? null,
139 + depthCm: dims.depthInCentimeters ?? dims.depth ?? null,
140 + listPriceCents: typeof a.listPriceInCents === 'number' ? a.listPriceInCents : typeof a.price === 'number' ? Math.round(a.price * 100) : null,
141 + status: a.originalArtworkStatus ? String(a.originalArtworkStatus) : null,
142 + sku: a.sku ? String(a.sku) : null,
143 + image: a.imageUrl ? String(a.imageUrl) : null,
144 + countryName: null,
145 + uploadedAt: null,
146 + };
147 + if (!work.artworkId || !work.title) return [];
148 + const payload: PagePayload = { kind: 'browse_page', url, seed: { path: 'lookup', category: work.category?.toLowerCase() === 'photography' ? 'photography' : 'contemporary_art' }, page: 0, totalResults: null, works: [work] };
149 + return [{ url, externalId: `artwork:${work.artworkId}`, kind: 'listing', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt }];
150 + }
151 +
152 + async normalize(raw: RawRecordLike): Promise<NormalizedRecord[]> {
153 + const p = PagePayloadSchema.parse(raw.payload);
154 + const out: NormalizedRecord[] = [];
155 + for (const w of p.works) {
156 + const artist = [w.artistFirstName, w.artistLastName].filter(Boolean).map((s) => titleCase(String(s))).join(' ') || null;
157 + const size = w.widthCm && w.heightCm ? `${w.widthCm} × ${w.heightCm}${w.depthCm ? ` × ${w.depthCm}` : ''} cm` : null;
158 + const categorySlug = w.category?.toLowerCase() === 'photography' ? 'photography' : p.seed.category;
159 + const attributes = AssetAttributesSchema.parse({
160 + categorySlug,
161 + brand: artist,
162 + name: w.title,
163 + material: [...w.mediums, ...w.materials].join(', ') || null,
164 + size,
165 + country: w.countryName ? titleCase(w.countryName) : null,
166 + identifiers: { saatchi_artwork_id: w.artworkId, ...(w.sku ? { saatchi_sku: w.sku } : {}) },
167 + metadata: { category: w.category, styles: w.styles, subject: w.subject, artist_id: w.artistId, uploaded_at: w.uploadedAt ? new Date(w.uploadedAt * 1000).toISOString() : null, unique_original: true },
168 + });
169 + out.push(
170 + NormalizedListingSchema.parse({
171 + kind: 'listing',
172 + connectorId: this.meta.id,
173 + sourceId: this.meta.sourceId,
174 + sourceUrl: w.url,
175 + externalId: w.artworkId,
176 + rawTitle: artist ? `${artist} — ${w.title}` : w.title,
177 + description: null,
178 + imageUrls: w.image ? [w.image] : [],
179 + attributes,
180 + grade: { grader: null, grade: null, qualifier: null, certificationNumber: null },
181 + condition: { condition: null, conditionRaw: null, completeness: null },
182 + observedAt: raw.fetchedAt,
183 + confidence: 0.85,
184 + parserVersion: PARSER_VERSION,
185 + listingType: 'fixed_price',
186 + price: w.listPriceCents !== null ? w.listPriceCents / 100 : null,
187 + currency: w.listPriceCents !== null ? 'USD' : null,
188 + seller: artist,
189 + location: w.countryName ? titleCase(w.countryName) : null,
190 + quantity: 1,
191 + listedAt: w.uploadedAt ? new Date(w.uploadedAt * 1000) : null,
192 + availability: w.status === 'sold' ? 'sold' : w.status === 'avail' ? 'available' : 'unknown',
193 + }),
194 + );
195 + }
196 + return out;
197 + }
198 +}
199 +
200 +export default function createConnector(meta: ConnectorMeta) {
201 + return new SaatchiArtConnector(meta);
202 +}
added connectors/api/saatchi-art/meta.json +40 −0
@@ -0,0 +1,40 @@
1 +{
2 + "id": "saatchi-art",
3 + "displayName": "Saatchi Art (original artworks for sale)",
4 + "sourceId": "saatchi-art",
5 + "sourceName": "Saatchi Art",
6 + "sourceType": "marketplace",
7 + "sourceUrl": "https://www.saatchiart.com",
8 + "module": "api/saatchi-art",
9 + "enginePriority": ["api", "firecrawl", "scrapfly"],
10 + "categories": ["art", "contemporary_art", "photography"],
11 + "regions": ["US", "GB", "EU"],
12 + "languages": ["en"],
13 + "currency": ["USD"],
14 + "supportsListings": true,
15 + "supportsSold": false,
16 + "supportsAuctions": false,
17 + "supportsImages": true,
18 + "supportsCatalog": true,
19 + "supportsPopulation": false,
20 + "supportsLookup": true,
21 + "refreshFrequencyMinutes": 1440,
22 + "priority": "medium",
23 + "trustScore": 0.7,
24 + "attributionRequired": true,
25 + "termsUrl": "https://www.saatchiart.com/termsofservice",
26 + "accessNotes": "Public category browse pages (/paintings, /photography, /sculpture, /prints … with ?page=N) served as Next.js pages whose __NEXT_DATA__ carries 25 artworks per page: title, artist, category, mediums, materials, dimensions (cm), list price (USD cents), availability status (avail/sold), SKU and image. Plain HTTPS with the RareIndex user agent. robots.txt only disallows filter/sort query parameters (?category=, ?sort= …) which we do not use — pagination via ?page= is allowed. Listing asks are NOT transactions; sold works keep their last list price as a listing marked sold (no sale date is published, so no sale record is created). 2 s politeness delay.",
27 + "enabled": true,
28 + "schemaVersion": "1.0",
29 + "config": {
30 + "seeds": [
31 + { "path": "/paintings", "category": "contemporary_art" },
32 + { "path": "/photography", "category": "photography" },
33 + { "path": "/sculpture", "category": "contemporary_art" },
34 + { "path": "/prints", "category": "contemporary_art" },
35 + { "path": "/drawings", "category": "contemporary_art" },
36 + { "path": "/collage", "category": "contemporary_art" }
37 + ],
38 + "pagesPerSeed": 4
39 + }
40 +}
added connectors/api/scotch-whisky-auctions/_smoke.ts +19 −0
@@ -0,0 +1,19 @@
1 +import { createRouter, createCrawlContext, ConnectorMetaSchema } from '@rareindex/connectors';
2 +import { saveFixture } from '@rareindex/connectors/testing';
3 +import metaJson from './meta.json' with { type: 'json' };
4 +import createConnector from './index.js';
5 +
6 +const save = process.argv.includes('--save');
7 +const meta = ConnectorMetaSchema.parse(metaJson);
8 +const connector = createConnector(meta);
9 +const router = createRouter({ firecrawlApiKey: process.env.FIRECRAWL_API_KEY, scrapflyApiKey: process.env.SCRAPFLY_API_KEY });
10 +const ctx = createCrawlContext({ router, meta, options: { mode: 'probe', limit: 2 } });
11 +let i = 0;
12 +for await (const raw of connector.crawl(ctx)) {
13 + const out = await connector.normalize({ ...raw, externalId: raw.externalId ?? null, fetchedAt: raw.fetchedAt ?? new Date() });
14 + console.log(`raw ${raw.externalId} (${raw.engine}) → ${out.length} sales`);
15 + for (const r of out.slice(0, 3)) console.log(' ', JSON.stringify(r).slice(0, 420));
16 + if (save && i < 2) saveFixture(meta.id, i === 0 ? 'auction-page-1' : 'auction-page-2', { raw: { url: raw.url, externalId: raw.externalId ?? null, kind: raw.kind, engine: raw.engine, fetchedAt: raw.fetchedAt ?? new Date(), payload: raw.payload }, expect: { minCount: 10, kinds: ['sale'], requiredFields: ['saleDate', 'price', 'currency', 'attributes.brand'] }, note: 'Captured live from scotchwhiskyauctions.com (plain HTTPS)' });
17 + i++;
18 +}
19 +console.log('engineStats', ctx.engineStats, 'anomalies', ctx.anomalies);
added connectors/api/scotch-whisky-auctions/index.test.ts +45 −0
@@ -0,0 +1,45 @@
1 +import { describe, expect, it } from 'vitest';
2 +import { ConnectorMetaSchema } from '@rareindex/connectors';
3 +import { loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';
4 +import metaJson from './meta.json' with { type: 'json' };
5 +import createConnector, { parseAuctionList, parseLotPage, whiskyFacts } from './index.js';
6 +
7 +const connector = createConnector(ConnectorMetaSchema.parse(metaJson));
8 +
9 +describe('scotch-whisky-auctions', () => {
10 + runFixtureSuite(connector, it, expect);
11 +
12 + it('maps lots to GBP hammer-price auction sales dated by the auction end', async () => {
13 + const fx = loadFixture('scotch-whisky-auctions', 'auction-page-1');
14 + const out = await connector.normalize(fx.raw);
15 + expect(out.length).toBeGreaterThanOrEqual(10);
16 + for (const r of out) {
17 + if (r.kind !== 'sale') throw new Error('expected sale');
18 + expect(r.currency).toBe('GBP');
19 + expect(r.buyerPremiumIncluded).toBe(false);
20 + expect(r.saleType).toBe('auction');
21 + expect(['whisky', 'rum', 'cognac']).toContain(r.attributes.categorySlug);
22 + expect(r.attributes.identifiers.swa_item).toMatch(/^\d+$/);
23 + expect(r.sourceUrl).toMatch(/^https:\/\/www\.scotchwhiskyauctions\.com\/auctions\/\d+-/);
24 + }
25 + });
26 +
27 + it('parses list and lot pages', () => {
28 + const list = `<a href="/auctions/230-the-181st-auction/" class="auction"><h4>The 181st Auction</h4><h5>Ended July 12, 2026</h5><h6>There are 4926 lots in this auction</h6></a><a href="/auctions/232-the-183rd-auction/" class="auction"><h4>The 183rd Auction</h4><h5>Ends September 13, 2026</h5><h6>There are 4624 lots in this auction</h6></a>`;
29 + const auctions = parseAuctionList(list);
30 + expect(auctions).toHaveLength(2);
31 + expect(auctions[0]).toMatchObject({ id: '230', slug: 'the-181st-auction', ended: true, lotCount: 4926, endedOn: '2026-07-12T00:00:00.000Z' });
32 + expect(auctions[1]!.ended).toBe(false);
33 + const page = `<select><option>Page 1 of 247</option></select><div id="lots"><a href="/auctions/230-the-181st-auction/885566-on-a-saw-mill/" class="lot"><div class="aucimg" style="background-image: url('https://x/img.jpg');"></div><h4>Macallan 1989 18 Year Old Gran Reserva 70cl</h4><h6>Lot no 181-02514</h6><div><p class="sold">Sold for £1,250 in July 2026</p></div></a></div>`;
34 + const p = parseLotPage(page, 'u', auctions[0]!, 1);
35 + expect(p.totalPages).toBe(247);
36 + expect(p.lots[0]).toMatchObject({ itemId: '885566', lotNo: '181-02514', priceGbp: 1250, image: 'https://x/img.jpg' });
37 + });
38 +
39 + it('extracts whisky facts without guessing', () => {
40 + expect(whiskyFacts('Macallan 1989 18 Year Old Gran Reserva 70cl')).toMatchObject({ brand: 'Macallan', age: 18, vintage: 1989, size: '70cl', categorySlug: 'whisky' });
41 + expect(whiskyFacts('Springbank 10 Year Old 75cl')).toMatchObject({ brand: 'Springbank', age: 10, vintage: null });
42 + expect(whiskyFacts('Appleton Estate 21 Year Old Rum')).toMatchObject({ categorySlug: 'rum', age: 21 });
43 + expect(whiskyFacts('Hennessy XO Cognac 1L')).toMatchObject({ categorySlug: 'cognac', size: '1L' });
44 + });
45 +});
added connectors/api/scotch-whisky-auctions/index.ts +223 −0
@@ -0,0 +1,223 @@
1 +import { z } from 'zod';
2 +import { BaseConnector, html as H, type ConnectorMeta, type CrawlContext, type RawRecordInput, type RawRecordLike } from '@rareindex/connectors';
3 +import { parseSourceDate, AssetAttributesSchema, NormalizedSaleSchema, type NormalizedRecord } from '@rareindex/shared';
4 +
5 +/**
6 + * Scotch Whisky Auctions — monthly online whisky auctions (Glasgow) with a public archive of
7 + * results. One raw record per lot-list page; normalise → one sale per lot with a "Sold for" price.
8 + */
9 +
10 +const BASE = 'https://www.scotchwhiskyauctions.com';
11 +const PARSER_VERSION = '1.0.0';
12 +
13 +export const AuctionSchema = z.object({ id: z.string(), slug: z.string(), title: z.string(), endedOn: z.string().nullable(), lotCount: z.number().nullable(), ended: z.boolean() });
14 +export type Auction = z.infer<typeof AuctionSchema>;
15 +
16 +export const LotSchema = z.object({ itemId: z.string(), url: z.string(), title: z.string(), lotNo: z.string().nullable(), soldText: z.string().nullable(), priceGbp: z.number().nullable(), image: z.string().nullable() });
17 +export const PagePayloadSchema = z.object({ kind: z.literal('lot_page'), url: z.string(), auction: AuctionSchema, page: z.number(), totalPages: z.number().nullable(), lots: z.array(LotSchema) });
18 +export type PagePayload = z.infer<typeof PagePayloadSchema>;
19 +
20 +/** Parse /auctions/ : cards "The 181st Auction · Ended July 12, 2026 · There are 4926 lots in this auction". */
21 +export function parseAuctionList(htmlText: string): Auction[] {
22 + const $ = H.load(htmlText);
23 + const out: Auction[] = [];
24 + $('a.auction').each((_, a) => {
25 + const href = $(a).attr('href') ?? '';
26 + const m = href.match(/^\/auctions\/(\d+)-([^/]+)\/?$/);
27 + if (!m) return;
28 + const title = H.text($(a).find('h4')) ?? '';
29 + const status = H.text($(a).find('h5')) ?? '';
30 + const lots = H.text($(a).find('h6'))?.match(/(\d[\d,]*)\s+lots/i)?.[1] ?? null;
31 + const ended = /^Ended\b/i.test(status);
32 + const dateTxt = status.replace(/^(Ended|Ends)\s*/i, '');
33 + const d = parseSourceDate(dateTxt);
34 + out.push({ id: m[1]!, slug: m[2]!, title, endedOn: d ? d.toISOString() : null, lotCount: lots ? Number(lots.replace(/,/g, '')) : null, ended });
35 + });
36 + return out;
37 +}
38 +
39 +/** Parse an auction lot-list page (20 lots): title, lot number, "Sold for £100 in July 2026", image. */
40 +export function parseLotPage(htmlText: string, url: string, auction: Auction, page: number): PagePayload {
41 + const $ = H.load(htmlText);
42 + const totalPages = Number(htmlText.match(/Page \d+ of (\d+)/)?.[1]) || null;
43 + const lots: z.infer<typeof LotSchema>[] = [];
44 + $('a.lot').each((_, a) => {
45 + const href = $(a).attr('href') ?? '';
46 + const m = href.match(/\/auctions\/\d+-[^/]+\/(\d+)-[^/]*\/?$/);
47 + if (!m) return;
48 + const title = H.text($(a).find('h4'));
49 + if (!title) return;
50 + const lotNo = H.text($(a).find('h6'))?.replace(/^Lot no\s*/i, '') ?? null;
51 + const soldText = H.text($(a).find('p.sold')) ?? null;
52 + const price = soldText?.match(/Sold for £([\d,]+(?:\.\d+)?)/i)?.[1] ?? null;
53 + const bg = $(a).find('.aucimg').attr('style') ?? '';
54 + const image = bg.match(/url\('([^']+)'\)/)?.[1] ?? null;
55 + lots.push({ itemId: m[1]!, url: BASE + href.replace(/\/?$/, '/'), title, lotNo, soldText, priceGbp: price ? Number(price.replace(/,/g, '')) : null, image });
56 + });
57 + return { kind: 'lot_page', url, auction, page, totalPages, lots };
58 +}
59 +
60 +const SIZE_RE = /(\d+(?:\.\d+)?)\s?(cl|ml|l|litre|liter)s?\b/i;
61 +const AGE_RE = /(\d{1,2})\s*[- ]?\s*(?:year|yo\b|y\.?o\.?)/i;
62 +const VINTAGE_RE = /\b(19[2-9]\d|20[0-2]\d)\b(?!\s*(?:year|yo))/i;
63 +
64 +export interface WhiskyFacts {
65 + brand: string | null;
66 + age: number | null;
67 + vintage: number | null;
68 + size: string | null;
69 + categorySlug: 'whisky' | 'rum' | 'cognac';
70 +}
71 +
72 +/** Heuristic facts from a lot title ("Macallan 1989 18 Year Old Gran Reserva 70cl"). Unknown → null, never guessed. */
73 +export function whiskyFacts(title: string): WhiskyFacts {
74 + const t = title.replace(/[‘’]/g, "'");
75 + const categorySlug: WhiskyFacts['categorySlug'] = /\brum\b|\brhum\b/i.test(t) ? 'rum' : /\bcognac\b|\barmagnac\b/i.test(t) ? 'cognac' : 'whisky';
76 + const age = t.match(AGE_RE)?.[1] ? Number(t.match(AGE_RE)![1]) : null;
77 + const vintage = t.match(VINTAGE_RE)?.[1] ? Number(t.match(VINTAGE_RE)![1]) : null;
78 + const sizeM = t.match(SIZE_RE);
79 + const size = sizeM ? `${sizeM[1]}${sizeM[2]!.toLowerCase().startsWith('l') ? 'L' : sizeM[2]!.toLowerCase()}` : null;
80 + // Brand = leading words before the first digit / age / "Year" / "-" ; keep 1–4 words
81 + const lead = t.split(/\s+(?=\d)|\s+-\s+|\s+\(/)[0] ?? t;
82 + const words = lead.replace(/^['"]|['"]$/g, '').trim().split(/\s+/).filter(Boolean);
83 + const brand = words.length ? words.slice(0, Math.min(words.length, 4)).join(' ') : null;
84 + return { brand: brand && /[a-z]/i.test(brand) ? brand : null, age, vintage, size, categorySlug };
85 +}
86 +
87 +export class ScotchWhiskyAuctionsConnector extends BaseConnector {
88 + readonly version = '1.0.0';
89 + readonly parserVersion = PARSER_VERSION;
90 + override readonly urlPatterns = [/scotchwhiskyauctions\.com\/auctions\/\d+-[^/]+\/\d+-/];
91 + protected override minIntervalMs = 2000;
92 +
93 + async *crawl(ctx: CrawlContext): AsyncIterable<RawRecordInput> {
94 + const listUrl = String(this.meta.config.auctionsUrl ?? `${BASE}/auctions/`);
95 + const auctionsPerRun = Number(this.meta.config.auctionsPerRun ?? 2);
96 + const pagesPerRun = Number(this.meta.config.pagesPerRun ?? 12);
97 + const cursor = (ctx.options.cursor ?? {}) as { progress?: Record<string, number>; complete?: string[] };
98 + const progress: Record<string, number> = { ...(cursor.progress ?? {}) };
99 + const complete = new Set<string>(cursor.complete ?? []);
100 +
101 + const list = await ctx.fetch(listUrl, { engines: ['api'], responseType: 'text', minQuality: 0 });
102 + if (!list.success || !list.html) {
103 + ctx.anomaly('auction_list_failed', list.error ?? String(list.httpStatus));
104 + return;
105 + }
106 + let auctions = parseAuctionList(list.html).filter((a) => a.ended);
107 + // newest first; incremental = newest auctions not yet complete, backfill = continue with older ones
108 + auctions.sort((a, b) => Number(b.id) - Number(a.id));
109 + if (ctx.options.mode !== 'backfill') auctions = auctions.slice(0, 6);
110 + let count = 0;
111 + let pagesFetched = 0;
112 + let auctionsTouched = 0;
113 + for (const auction of auctions) {
114 + if (complete.has(auction.id)) continue;
115 + if (auctionsTouched >= auctionsPerRun) break;
116 + auctionsTouched++;
117 + let page = (progress[auction.id] ?? 0) + 1;
118 + for (;;) {
119 + if (ctx.signal?.aborted || this.reached(ctx, count) || pagesFetched >= pagesPerRun) return void (await ctx.setCursor({ progress, complete: [...complete] }));
120 + const url = `${BASE}/auctions/${auction.id}-${auction.slug}/${page > 1 ? `?page=${page}` : ''}`;
121 + await this.throttle();
122 + const res = await ctx.fetch(url, {
123 + engines: ['api'],
124 + responseType: 'text',
125 + expect: ['title', 'price', 'currency', 'status'],
126 + parse: (r) => {
127 + const p = r.html ? parseLotPage(r.html, url, auction, page) : null;
128 + const sold = p?.lots.find((l) => l.priceGbp);
129 + return p && p.lots.length ? { title: p.lots[0]!.title, price: sold?.priceGbp ?? null, currency: sold ? 'GBP' : null, status: sold ? 'sold' : null } : null;
130 + },
131 + });
132 + pagesFetched++;
133 + const payload = res.success && res.html ? parseLotPage(res.html, url, auction, page) : null;
134 + if (!payload || payload.lots.length === 0) {
135 + ctx.anomaly(payload ? 'empty_page' : 'page_fetch_failed', `${url}: ${res.error ?? res.httpStatus}`);
136 + complete.add(auction.id);
137 + break;
138 + }
139 + count++;
140 + yield { url, externalId: `auction:${auction.id}:page:${page}`, kind: 'sale', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt };
141 + progress[auction.id] = page;
142 + if (payload.totalPages && page >= payload.totalPages) {
143 + complete.add(auction.id);
144 + break;
145 + }
146 + page++;
147 + }
148 + await ctx.setCursor({ progress, complete: [...complete] });
149 + }
150 + }
151 +
152 + async lookup(url: string, ctx: CrawlContext): Promise<RawRecordInput[]> {
153 + const m = url.match(/\/auctions\/(\d+)-([^/]+)\/(\d+)-/);
154 + if (!m) return [];
155 + const res = await ctx.fetch(url, { engines: ['api'], responseType: 'text', minQuality: 0 });
156 + if (!res.success || !res.html) return [];
157 + const $ = H.load(res.html);
158 + const title = H.text($('h1').first()) ?? H.text($('h4').first());
159 + const soldText = res.html.match(/Sold for £[\d,]+(?:\.\d+)?[^<]*/)?.[0] ?? null;
160 + const lotNo = res.html.match(/Lot no\s*([\d-]+)/i)?.[1] ?? null;
161 + const ended = res.html.match(/Ended\s+([A-Z][a-z]+ \d{1,2}, \d{4})/)?.[1] ?? null;
162 + const endedOn = ended ? parseSourceDate(ended)?.toISOString() ?? null : null;
163 + if (!title) return [];
164 + const price = soldText?.match(/£([\d,]+(?:\.\d+)?)/)?.[1] ?? null;
165 + const image = $('meta[property="og:image"]').attr('content') ?? null;
166 + const auction: Auction = { id: m[1]!, slug: m[2]!, title: '', endedOn, lotCount: null, ended: Boolean(endedOn) };
167 + const payload: PagePayload = { kind: 'lot_page', url, auction, page: 0, totalPages: null, lots: [{ itemId: m[3]!, url, title, lotNo, soldText, priceGbp: price ? Number(price.replace(/,/g, '')) : null, image }] };
168 + return [{ url, externalId: `lot:${m[3]}`, kind: 'sale', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt }];
169 + }
170 +
171 + async normalize(raw: RawRecordLike): Promise<NormalizedRecord[]> {
172 + const p = PagePayloadSchema.parse(raw.payload);
173 + const saleDate = p.auction.endedOn ? new Date(p.auction.endedOn) : null;
174 + if (!saleDate) return [];
175 + const out: NormalizedRecord[] = [];
176 + for (const lot of p.lots) {
177 + if (!lot.priceGbp || lot.priceGbp <= 0) continue;
178 + const f = whiskyFacts(lot.title);
179 + const attributes = AssetAttributesSchema.parse({
180 + categorySlug: f.categorySlug,
181 + brand: f.brand,
182 + name: lot.title,
183 + year: f.vintage,
184 + size: f.size,
185 + country: f.categorySlug === 'whisky' && /scotch|islay|speyside|highland|campbeltown|lowland/i.test(lot.title) ? 'GB' : null,
186 + identifiers: { swa_item: lot.itemId, ...(lot.lotNo ? { swa_lot: lot.lotNo } : {}) },
187 + metadata: { age_statement: f.age, auction_id: p.auction.id, auction_title: p.auction.title, sold_text: lot.soldText },
188 + });
189 + out.push(
190 + NormalizedSaleSchema.parse({
191 + kind: 'sale',
192 + connectorId: this.meta.id,
193 + sourceId: this.meta.sourceId,
194 + sourceUrl: lot.url,
195 + externalId: lot.itemId,
196 + rawTitle: lot.title,
197 + imageUrls: lot.image ? [lot.image] : [],
198 + attributes,
199 + grade: { grader: null, grade: null, qualifier: null, certificationNumber: null },
200 + condition: { condition: null, conditionRaw: null, completeness: null },
201 + observedAt: raw.fetchedAt,
202 + confidence: 0.9,
203 + parserVersion: PARSER_VERSION,
204 + saleType: 'auction',
205 + saleDate,
206 + price: lot.priceGbp,
207 + currency: 'GBP',
208 + buyerPremiumIncluded: false,
209 + quantity: 1,
210 + isBundle: /\b(x\s?\d|\d+\s?x\s|lot of|set of|\d+\s?bottles)\b/i.test(lot.title),
211 + location: 'Glasgow, United Kingdom',
212 + auctionHouse: 'Scotch Whisky Auctions',
213 + lotNumber: lot.lotNo,
214 + }),
215 + );
216 + }
217 + return out;
218 + }
219 +}
220 +
221 +export default function createConnector(meta: ConnectorMeta) {
222 + return new ScotchWhiskyAuctionsConnector(meta);
223 +}
added connectors/api/scotch-whisky-auctions/meta.json +34 −0
@@ -0,0 +1,34 @@
1 +{
2 + "id": "scotch-whisky-auctions",
3 + "displayName": "Scotch Whisky Auctions (results)",
4 + "sourceId": "scotch-whisky-auctions",
5 + "sourceName": "Scotch Whisky Auctions",
6 + "sourceType": "auction_house",
7 + "sourceUrl": "https://www.scotchwhiskyauctions.com",
8 + "module": "api/scotch-whisky-auctions",
9 + "enginePriority": ["api", "firecrawl", "scrapfly"],
10 + "categories": ["whisky", "rum", "cognac"],
11 + "regions": ["GB"],
12 + "languages": ["en"],
13 + "currency": ["GBP"],
14 + "supportsListings": false,
15 + "supportsSold": true,
16 + "supportsAuctions": true,
17 + "supportsImages": true,
18 + "supportsCatalog": false,
19 + "supportsPopulation": false,
20 + "supportsLookup": true,
21 + "refreshFrequencyMinutes": 1440,
22 + "priority": "high",
23 + "trustScore": 0.9,
24 + "attributionRequired": true,
25 + "termsUrl": "https://www.scotchwhiskyauctions.com/terms/",
26 + "accessNotes": "Public monthly auction archive (Glasgow; ~4,500–5,000 lots per auction, 20 lots per page, plain HTTPS with the RareIndex user agent, robots.txt disallows only /cmsplus/). Each lot card exposes title, lot number and 'Sold for £X in <month year>' — this is the hammer price; the buyer's commission (SWA charges a separate buyer's premium plus VAT) is NOT included, so buyer_premium_included=false. Sale date = the auction end date shown on the auction page. Unsold lots are skipped. 2 s politeness delay; pagesPerRun caps each incremental run (backfill mode walks older auctions).",
27 + "enabled": true,
28 + "schemaVersion": "1.0",
29 + "config": {
30 + "auctionsUrl": "https://www.scotchwhiskyauctions.com/auctions/",
31 + "auctionsPerRun": 2,
32 + "pagesPerRun": 12
33 + }
34 +}
added connectors/api/winebid/_smoke.ts +20 −0
@@ -0,0 +1,20 @@
1 +import { createRouter, createCrawlContext, ConnectorMetaSchema } from '@rareindex/connectors';
2 +import { saveFixture } from '@rareindex/connectors/testing';
3 +import metaJson from './meta.json' with { type: 'json' };
4 +import createConnector from './index.js';
5 +
6 +const save = process.argv.includes('--save');
7 +const meta = ConnectorMetaSchema.parse(metaJson);
8 +const connector = createConnector(meta);
9 +const router = createRouter({ firecrawlApiKey: process.env.FIRECRAWL_API_KEY, scrapflyApiKey: process.env.SCRAPFLY_API_KEY });
10 +const ctx = createCrawlContext({ router, meta, options: { mode: 'probe', limit: 4 } });
11 +let i = 0;
12 +for await (const raw of connector.crawl(ctx)) {
13 + const out = await connector.normalize({ ...raw, externalId: raw.externalId ?? null, fetchedAt: raw.fetchedAt ?? new Date() });
14 + const sales = out.filter((r) => r.kind === 'sale');
15 + console.log(`raw ${raw.externalId} (${raw.engine}) → ${out.length} records, ${sales.length} sales`);
16 + for (const r of sales.slice(0, 2)) console.log(' ', JSON.stringify(r).slice(0, 420));
17 + if (save && i < 2 && sales.length) saveFixture(meta.id, `item-${(raw.externalId ?? '').replace('item:', '')}`, { raw: { url: raw.url, externalId: raw.externalId ?? null, kind: raw.kind, engine: raw.engine, fetchedAt: raw.fetchedAt ?? new Date(), payload: raw.payload }, expect: { minCount: 2, kinds: ['sale', 'listing'], requiredFields: ['rawTitle', 'attributes.name'] }, note: 'Captured live from winebid.com item page (plain HTTPS)' });
18 + if (sales.length) i++;
19 +}
20 +console.log('engineStats', ctx.engineStats, 'anomalies', ctx.anomalies);
added connectors/api/winebid/index.test.ts +37 −0
@@ -0,0 +1,37 @@
1 +import { describe, expect, it } from 'vitest';
2 +import { ConnectorMetaSchema } from '@rareindex/connectors';
3 +import { listFixtures, loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';
4 +import metaJson from './meta.json' with { type: 'json' };
5 +import createConnector, { parseCategoryPage, parseItemPage, wineFacts } from './index.js';
6 +
7 +const connector = createConnector(ConnectorMetaSchema.parse(metaJson));
8 +
9 +describe('winebid', () => {
10 + runFixtureSuite(connector, it, expect);
11 +
12 + it('emits per-bottle USD sales (premium excluded) dated by the recent-sales table', async () => {
13 + const name = listFixtures('winebid')[0]!;
14 + const out = await connector.normalize(loadFixture('winebid', name).raw);
15 + const sales = out.filter((r) => r.kind === 'sale');
16 + expect(sales.length).toBeGreaterThan(0);
17 + for (const r of sales) {
18 + if (r.kind !== 'sale') continue;
19 + expect(r.currency).toBe('USD');
20 + expect(r.buyerPremiumIncluded).toBe(false);
21 + expect(r.attributes.metadata.buyer_premium_pct).toBe(17);
22 + expect(r.saleDate.getFullYear()).toBeGreaterThanOrEqual(2015);
23 + expect(r.sourceUrl).toMatch(/^https:\/\/www\.winebid\.com\/BuyWine\/Item\/\d+/);
24 + }
25 + });
26 +
27 + it('parses item pages, category links and titles', () => {
28 + const html = `<h1>1983 Ch&#226;teau Margaux (1.5L)</h1><p>Light capsule condition issue</p><div id="itemDiagnostics" data-is-ended="False"></div><table class="recentSales"><thead><tr><th>Item</th><th>Sold</th><th>Amount</th><th>Date</th></tr></thead><tr><td><a href="/BuyWine/Item/10856401/1983-Chateau-Margaux">I10856401</a></td><td class="text-right">2</td><td class="text-right">$520</td><td class="text-right" title="August 23, 2026 12:00:00 AM (PDT)">Aug 23, 2026</td></tr></table>`;
29 + const p = parseItemPage(html, 'https://www.winebid.com/BuyWine/Item/10881873/1983-Chateau-Margaux', 'Bordeaux')!;
30 + expect(p.itemId).toBe('10881873');
31 + expect(p.title).toBe('1983 Château Margaux (1.5L)');
32 + expect(p.recentSales).toEqual([{ itemId: '10856401', url: 'https://www.winebid.com/BuyWine/Item/10856401/1983-Chateau-Margaux', quantity: 2, amountUsd: 520, soldOn: 'August 23, 2026 12:00:00 AM (PDT)' }]);
33 + expect(wineFacts('1983 Château Margaux (1.5L)')).toEqual({ vintage: 1983, name: 'Château Margaux', size: '1.5L' });
34 + expect(wineFacts('2019 Opus One')).toEqual({ vintage: 2019, name: 'Opus One', size: '750ml' });
35 + expect(parseCategoryPage('[x](https://www.winebid.com/BuyWine/Item/10887720/2019-Chateau-Haut-Brion-~) <a href="/BuyWine/Item/1/a">a</a>')).toEqual(['https://www.winebid.com/BuyWine/Item/10887720/2019-Chateau-Haut-Brion-~', 'https://www.winebid.com/BuyWine/Item/1/a']);
36 + });
37 +});
added connectors/api/winebid/index.ts +215 −0
@@ -0,0 +1,215 @@
1 +import { z } from 'zod';
2 +import { BaseConnector, html as H, type ConnectorMeta, type CrawlContext, type RawRecordInput, type RawRecordLike } from '@rareindex/connectors';
3 +import { AssetAttributesSchema, NormalizedListingSchema, NormalizedSaleSchema, parsePrice, parseSourceDate, type NormalizedRecord } from '@rareindex/shared';
4 +
5 +/**
6 + * WineBid — item pages expose a "Recent sales" table (past winning bids for the same wine).
7 + * One raw record per item page; normalise → one sale per past sale row plus the current listing.
8 + */
9 +
10 +const BASE = 'https://www.winebid.com';
11 +const PARSER_VERSION = '1.0.0';
12 +const PREMIUM_PCT = 17;
13 +
14 +const CategorySchema = z.object({ path: z.string(), label: z.string() });
15 +
16 +export const SaleRowSchema = z.object({ itemId: z.string(), url: z.string(), quantity: z.number(), amountUsd: z.number(), soldOn: z.string() });
17 +export const ItemPayloadSchema = z.object({
18 + kind: z.literal('item_page'),
19 + url: z.string(),
20 + itemId: z.string(),
21 + title: z.string(),
22 + category: z.string().nullable(),
23 + condition: z.string().nullable(),
24 + currentBid: z.number().nullable(),
25 + estimate: z.number().nullable(),
26 + ended: z.boolean().nullable(),
27 + image: z.string().nullable(),
28 + recentSales: z.array(SaleRowSchema),
29 +});
30 +export type ItemPayload = z.infer<typeof ItemPayloadSchema>;
31 +
32 +export function parseCategoryPage(text: string): string[] {
33 + const out = new Set<string>();
34 + for (const m of text.matchAll(/https:\/\/www\.winebid\.com\/BuyWine\/Item\/(\d+)\/[^)\s"'<>]*/g)) out.add(`${BASE}/BuyWine/Item/${m[1]}/${m[0].split('/').pop()!.replace(/[)"'>]+$/g, '')}`);
35 + for (const m of text.matchAll(/href="(\/BuyWine\/Item\/(\d+)\/[^"]+)"/g)) out.add(BASE + m[1]!);
36 + return [...out];
37 +}
38 +
39 +export function parseItemPage(htmlText: string, url: string, category: string | null): ItemPayload | null {
40 + const $ = H.load(htmlText);
41 + const itemId = url.match(/\/BuyWine\/Item\/(\d+)/)?.[1];
42 + const title = H.text($('h1').first());
43 + if (!itemId || !title) return null;
44 + const condition = H.text($('h1').first().nextAll('p').first());
45 + const recentSales: z.infer<typeof SaleRowSchema>[] = [];
46 + $('table.recentSales tr').each((_, tr) => {
47 + const tds = $(tr).find('td');
48 + if (tds.length < 4) return;
49 + const a = $(tds[0]).find('a');
50 + const href = a.attr('href') ?? '';
51 + const id = href.match(/\/BuyWine\/Item\/(\d+)/)?.[1];
52 + const qty = Number(H.text($(tds[1])) ?? '');
53 + const amount = parsePrice(H.text($(tds[2])), 'USD');
54 + const soldOn = $(tds[3]).attr('title') ?? H.text($(tds[3])) ?? '';
55 + if (!id || !amount || !soldOn) return;
56 + recentSales.push({ itemId: id, url: BASE + href, quantity: Number.isFinite(qty) && qty > 0 ? qty : 1, amountUsd: amount.amount, soldOn });
57 + });
58 + const bidTxt = H.text($('.currentBid, .bidAmount, #currentBid').first()) ?? htmlText.match(/Current Bid[^$]{0,80}\$([\d,]+(?:\.\d+)?)/i)?.[1] ?? null;
59 + const currentBid = bidTxt ? (parsePrice(bidTxt, 'USD')?.amount ?? null) : null;
60 + const estimate = parsePrice(htmlText.match(/Estimate[^$]{0,120}\$([\d,]+(?:\.\d+)?)/i)?.[1] ?? null, 'USD')?.amount ?? null;
61 + const endedAttr = $('#itemDiagnostics').attr('data-is-ended');
62 + const image = $('meta[property="og:image"]').attr('content') ?? $('img[src*="/Photo/"]').first().attr('src') ?? null;
63 + return { kind: 'item_page', url, itemId, title, category, condition: condition ?? null, currentBid, estimate, ended: endedAttr ? endedAttr === 'True' : null, image: image ? (image.startsWith('http') ? image : BASE + image) : null, recentSales };
64 +}
65 +
66 +/** "1983 Château Margaux (1.5L)" → { vintage, producer, size } — nothing guessed. */
67 +export function wineFacts(title: string): { vintage: number | null; name: string; size: string | null } {
68 + const vintage = title.match(/^(19\d{2}|20\d{2})\b/)?.[1] ?? null;
69 + const size = title.match(/\((\d+(?:\.\d+)?\s?(?:L|ml|mL))\)/i)?.[1]?.replace(/\s/g, '') ?? null;
70 + const name = title
71 + .replace(/^(19\d{2}|20\d{2}|NV)\s+/, '')
72 + .replace(/\s*\((\d+(?:\.\d+)?\s?(?:L|ml|mL))\)\s*/i, ' ')
73 + .trim();
74 + return { vintage: vintage ? Number(vintage) : null, name, size: size ?? '750ml' };
75 +}
76 +
77 +export class WineBidConnector extends BaseConnector {
78 + readonly version = '1.0.0';
79 + readonly parserVersion = PARSER_VERSION;
80 + override readonly urlPatterns = [/winebid\.com\/BuyWine\/Item\/\d+/];
81 + protected override minIntervalMs = 2000;
82 +
83 + async *crawl(ctx: CrawlContext): AsyncIterable<RawRecordInput> {
84 + const categories = z.array(CategorySchema).parse(this.meta.config.categories ?? []);
85 + const perRun = Number(this.meta.config.itemsPerRun ?? 24);
86 + const cursor = (ctx.options.cursor ?? {}) as { seen?: string[] };
87 + const seen = new Set<string>(cursor.seen ?? []);
88 + let count = 0;
89 + let fetched = 0;
90 + const perCategory = Math.max(2, Math.ceil(perRun / Math.max(1, categories.length)));
91 + for (const cat of categories) {
92 + if (ctx.signal?.aborted || fetched >= perRun) break;
93 + const listUrl = BASE + cat.path;
94 + const list = await ctx.fetch(listUrl, { engines: ['firecrawl'], timeoutMs: 60_000, minQuality: 0 });
95 + if (!list.success) {
96 + ctx.anomaly('category_fetch_failed', `${listUrl}: ${list.error ?? list.httpStatus}`);
97 + continue;
98 + }
99 + const urls = parseCategoryPage(`${list.markdown ?? ''}\n${list.html ?? ''}`);
100 + if (urls.length === 0) {
101 + ctx.anomaly('empty_category', listUrl);
102 + continue;
103 + }
104 + let done = 0;
105 + for (const url of urls) {
106 + if (ctx.signal?.aborted || this.reached(ctx, count) || fetched >= perRun || done >= perCategory) break;
107 + const id = url.match(/\/Item\/(\d+)/)?.[1] ?? url;
108 + if (seen.has(id) && ctx.options.mode !== 'backfill') continue;
109 + await this.throttle();
110 + fetched++;
111 + const res = await ctx.fetch(url, {
112 + engines: ['api', 'firecrawl'],
113 + responseType: 'text',
114 + expect: ['title', 'price', 'currency', 'date'],
115 + parse: (r) => {
116 + const p = r.html ? parseItemPage(r.html, url, cat.label) : null;
117 + const s = p?.recentSales[0];
118 + return p ? { title: p.title, price: s?.amountUsd ?? p.currentBid, currency: 'USD', date: s?.soldOn ?? null } : null;
119 + },
120 + });
121 + const payload = res.success && res.html ? parseItemPage(res.html, url, cat.label) : null;
122 + if (!payload) {
123 + ctx.anomaly('item_parse_failed', `${url}: ${res.error ?? res.httpStatus}`);
124 + continue;
125 + }
126 + seen.add(id);
127 + done++;
128 + count++;
129 + yield { url, externalId: `item:${payload.itemId}`, kind: 'sale', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt };
130 + }
131 + await ctx.setCursor({ seen: [...seen].slice(-3000) });
132 + }
133 + }
134 +
135 + async lookup(url: string, ctx: CrawlContext): Promise<RawRecordInput[]> {
136 + const res = await ctx.fetch(url, { engines: ['api', 'firecrawl'], responseType: 'text', minQuality: 0 });
137 + const payload = res.success && res.html ? parseItemPage(res.html, url, null) : null;
138 + return payload ? [{ url, externalId: `item:${payload.itemId}`, kind: 'sale', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt }] : [];
139 + }
140 +
141 + async normalize(raw: RawRecordLike): Promise<NormalizedRecord[]> {
142 + const p = ItemPayloadSchema.parse(raw.payload);
143 + const f = wineFacts(p.title);
144 + const categorySlug = /whisk|bourbon|scotch/i.test(p.title) ? 'whisky' : 'wine';
145 + const attributes = AssetAttributesSchema.parse({
146 + categorySlug,
147 + series: p.category,
148 + name: f.name,
149 + year: f.vintage,
150 + size: f.size,
151 + identifiers: { winebid_wine: `${f.vintage ?? 'NV'}|${f.name.toLowerCase()}|${f.size ?? ''}` },
152 + metadata: { category_page: p.category },
153 + });
154 + const common = {
155 + connectorId: this.meta.id,
156 + sourceId: this.meta.sourceId,
157 + attributes,
158 + grade: { grader: null, grade: null, qualifier: null, certificationNumber: null },
159 + condition: { condition: null, conditionRaw: p.condition, completeness: null },
160 + observedAt: raw.fetchedAt,
161 + confidence: 0.85,
162 + parserVersion: PARSER_VERSION,
163 + imageUrls: p.image ? [p.image] : [],
164 + description: null,
165 + };
166 + const out: NormalizedRecord[] = [];
167 + for (const s of p.recentSales) {
168 + const saleDate = parseSourceDate(s.soldOn.replace(/\s+\d{1,2}:\d{2}:\d{2}\s*(AM|PM)?\s*\([A-Z]{3,4}\)$/i, ''));
169 + if (!saleDate) continue;
170 + out.push(
171 + NormalizedSaleSchema.parse({
172 + kind: 'sale',
173 + ...common,
174 + sourceUrl: s.url,
175 + externalId: s.itemId,
176 + rawTitle: p.title,
177 + saleType: 'auction',
178 + saleDate,
179 + price: s.amountUsd,
180 + currency: 'USD',
181 + buyerPremiumIncluded: false,
182 + quantity: s.quantity,
183 + isBundle: false,
184 + location: 'United States',
185 + auctionHouse: 'WineBid',
186 + lotNumber: s.itemId,
187 + attributes: { ...attributes, metadata: { ...attributes.metadata, price_basis: 'per_bottle', buyer_premium_pct: PREMIUM_PCT } },
188 + }),
189 + );
190 + }
191 + if (p.currentBid || p.estimate) {
192 + out.push(
193 + NormalizedListingSchema.parse({
194 + kind: 'listing',
195 + ...common,
196 + sourceUrl: p.url,
197 + externalId: p.itemId,
198 + rawTitle: p.title,
199 + listingType: 'auction',
200 + price: p.currentBid ?? p.estimate,
201 + currency: 'USD',
202 + seller: 'WineBid',
203 + location: 'United States',
204 + availability: p.ended === true ? 'ended' : 'available',
205 + attributes: { ...attributes, metadata: { ...attributes.metadata, estimate_usd: p.estimate, price_is_estimate: p.currentBid === null } },
206 + }),
207 + );
208 + }
209 + return out;
210 + }
211 +}
212 +
213 +export default function createConnector(meta: ConnectorMeta) {
214 + return new WineBidConnector(meta);
215 +}
added connectors/api/winebid/meta.json +40 −0
@@ -0,0 +1,40 @@
1 +{
2 + "id": "winebid",
3 + "displayName": "WineBid (recent sales per wine)",
4 + "sourceId": "winebid",
5 + "sourceName": "WineBid",
6 + "sourceType": "marketplace",
7 + "sourceUrl": "https://www.winebid.com",
8 + "module": "api/winebid",
9 + "enginePriority": ["api", "firecrawl", "scrapfly"],
10 + "categories": ["wine", "whisky"],
11 + "regions": ["US"],
12 + "languages": ["en"],
13 + "currency": ["USD"],
14 + "supportsListings": true,
15 + "supportsSold": true,
16 + "supportsAuctions": true,
17 + "supportsImages": true,
18 + "supportsCatalog": false,
19 + "supportsPopulation": false,
20 + "supportsLookup": true,
21 + "refreshFrequencyMinutes": 1440,
22 + "priority": "medium",
23 + "trustScore": 0.85,
24 + "attributionRequired": true,
25 + "termsUrl": "https://www.winebid.com/Help/TermsAndConditions",
26 + "accessNotes": "US online wine auction (weekly auctions). Category browse pages (/BuyWine/Items/<region>/<id>) are rendered through Firecrawl (1 credit, plain HTTP returns 403 for list pages) to discover item URLs; each public item page (/BuyWine/Item/<id>/<slug>, plain HTTPS) shows the wine, the current auction lot (estimate / current bid) and a 'Recent sales' table of past winning bids for the same wine: item id, quantity sold, per-bottle amount (USD) and sale date. robots.txt lists rules for named search engines only (no generic group); we still avoid /Sales, /AuctionClosed and account paths. Winning bids exclude WineBid's 17% buyer's premium (buyer_premium_included=false; premium % in metadata). Sale dates come from the table (PDT). 2 s politeness delay; itemsPerRun caps each run.",
27 + "enabled": true,
28 + "schemaVersion": "1.0",
29 + "config": {
30 + "categories": [
31 + { "path": "/BuyWine/Items/Bordeaux/18403", "label": "Bordeaux" },
32 + { "path": "/BuyWine/Items/Burgundy/15363", "label": "Burgundy" },
33 + { "path": "/BuyWine/Items/Napa-Valley/2910", "label": "Napa Valley" },
34 + { "path": "/BuyWine/Items/Barolo/16367", "label": "Barolo" },
35 + { "path": "/BuyWine/Items/Brunello-di-Montalcino/7725165", "label": "Brunello di Montalcino" },
36 + { "path": "/BuyWine/Items/Big-Bottles/7902856", "label": "Large formats" }
37 + ],
38 + "itemsPerRun": 24
39 + }
40 +}
added connectors/firecrawl/artcurial/_smoke.ts +20 −0
@@ -0,0 +1,20 @@
1 +import { createRouter, createCrawlContext, ConnectorMetaSchema } from '@rareindex/connectors';
2 +import { saveFixture } from '@rareindex/connectors/testing';
3 +import metaJson from './meta.json' with { type: 'json' };
4 +import createConnector from './index.js';
5 +
6 +const save = process.argv.includes('--save');
7 +const meta = ConnectorMetaSchema.parse(metaJson);
8 +const connector = createConnector(meta);
9 +const router = createRouter({ firecrawlApiKey: process.env.FIRECRAWL_API_KEY, scrapflyApiKey: process.env.SCRAPFLY_API_KEY });
10 +const ctx = createCrawlContext({ router, meta, options: { mode: 'probe', limit: 2 } });
11 +let i = 0;
12 +for await (const raw of connector.crawl(ctx)) {
13 + const out = await connector.normalize({ ...raw, externalId: raw.externalId ?? null, fetchedAt: raw.fetchedAt ?? new Date() });
14 + const sales = out.filter((r) => r.kind === 'sale');
15 + console.log(`raw ${raw.externalId} (${raw.engine}) → ${out.length} records, ${sales.length} sales`);
16 + for (const r of sales.slice(0, 3)) console.log(' ', JSON.stringify(r).slice(0, 420));
17 + if (save && i < 2 && sales.length) saveFixture(meta.id, `sale-${raw.externalId}`, { raw: { url: raw.url, externalId: raw.externalId ?? null, kind: raw.kind, engine: raw.engine, fetchedAt: raw.fetchedAt ?? new Date(), payload: raw.payload }, expect: { minCount: 5, kinds: ['sale', 'auction_lot'], requiredFields: ['rawTitle', 'attributes.categorySlug'] }, note: 'Captured live via Firecrawl from artcurial.com' });
18 + i++;
19 +}
20 +console.log('engineStats', ctx.engineStats, 'anomalies', ctx.anomalies);
added connectors/firecrawl/artcurial/index.test.ts +39 −0
@@ -0,0 +1,39 @@
1 +import { describe, expect, it } from 'vitest';
2 +import { ConnectorMetaSchema } from '@rareindex/connectors';
3 +import { listFixtures, loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';
4 +import metaJson from './meta.json' with { type: 'json' };
5 +import createConnector, { categoryForSale, parseResultsIndex, parseSalePage } from './index.js';
6 +
7 +const connector = createConnector(ConnectorMetaSchema.parse(metaJson));
8 +
9 +describe('artcurial', () => {
10 + runFixtureSuite(connector, it, expect);
11 +
12 + it('emits EUR sales with unknown (null) premium flag and dated by the sale', async () => {
13 + const name = listFixtures('artcurial')[0]!;
14 + const out = await connector.normalize(loadFixture('artcurial', name).raw);
15 + const sales = out.filter((r) => r.kind === 'sale');
16 + expect(sales.length).toBeGreaterThan(3);
17 + for (const r of sales) {
18 + if (r.kind !== 'sale') continue;
19 + expect(r.currency).toBe('EUR');
20 + expect(r.buyerPremiumIncluded).toBeNull();
21 + expect(r.auctionHouse).toBe('Artcurial');
22 + expect(r.sourceUrl).toMatch(/^https:\/\/www\.artcurial\.com\/en\/sales\/[A-Za-z0-9-]+\/lots\//);
23 + }
24 + });
25 +
26 + it('parses the results index and sale pages', () => {
27 + const idx = `[- Jul\\\\\n- 3\\\\\n- 2026\\\\\n\\\\\n![sale image](https://x/6604.jpg)\\\\\n\\\\\nJul 3, 2026\\\\\n\\\\\n6604\\\\\n\\\\\nLe Mans Classic Legend\\\\\n\\\\\n2:00 PM\\\\\n\\|\\\\\n\\\\\nArtcurial, Paris](https://www.artcurial.com/en/sales/6604)`;
28 + const sales = parseResultsIndex(idx);
29 + expect(sales).toEqual([{ number: '6604', title: 'Le Mans Classic Legend', subtitle: null, date: '2026-07-03T00:00:00.000Z', location: 'Artcurial, Paris', url: 'https://www.artcurial.com/en/sales/6604', online: false }]);
30 + const page = `All Lots (32)\n\n[1\\\\\n\\\\\n![Loaded image](https://x/a.jpg?w=400)\\\\\n\\\\\n24 hours of Le Mans 1971, 1972 and 1973 \\\\\n\\\\\n150 photographs - No reserve\\\\\n\\\\\nEstimate: €300 - 500\\\\\n\\\\\nSold€1,589](https://www.artcurial.com/en/sales/6604/lots/1-a) [15\\\\\n\\\\\nEstimate: €15,000 - 20,000](https://www.artcurial.com/en/sales/6604/lots/15-a)`;
31 + const p = parseSalePage(page, '6604');
32 + expect(p.lotCount).toBe(32);
33 + expect(p.lots[0]).toMatchObject({ lotNo: '1', title: '24 hours of Le Mans 1971, 1972 and 1973', subtitle: '150 photographs - No reserve', estimateLow: 300, estimateHigh: 500, sold: 1589, image: 'https://x/a.jpg?w=400' });
34 + expect(p.lots).toHaveLength(1); // lot 15 has no title line → skipped
35 + expect(categoryForSale('Horlogerie de Collection')).toBe('other_watches');
36 + expect(categoryForSale('Hermès & Luxury Bags')).toBe('luxury_handbags');
37 + expect(categoryForSale('Post-War & Contemporary Art')).toBe('contemporary_art');
38 + });
39 +});
added connectors/firecrawl/artcurial/index.ts +216 −0
@@ -0,0 +1,216 @@
1 +import { z } from 'zod';
2 +import { BaseConnector, type ConnectorMeta, type CrawlContext, type RawRecordInput, type RawRecordLike } from '@rareindex/connectors';
3 +import { AssetAttributesSchema, NormalizedAuctionLotSchema, NormalizedSaleSchema, extractYear, parseSourceDate, type NormalizedRecord } from '@rareindex/shared';
4 +
5 +/**
6 + * Artcurial sale results. One raw record per sale (compact lot list parsed from the rendered
7 + * markdown); normalise → one sale per sold lot (EUR) and one auction_lot for unsold lots.
8 + */
9 +
10 +const BASE = 'https://www.artcurial.com';
11 +const PARSER_VERSION = '1.0.0';
12 +
13 +export const SaleRefSchema = z.object({ number: z.string(), title: z.string(), subtitle: z.string().nullable(), date: z.string().nullable(), location: z.string().nullable(), url: z.string(), online: z.boolean() });
14 +export type SaleRef = z.infer<typeof SaleRefSchema>;
15 +export const LotSchema = z.object({ lotNo: z.string(), title: z.string(), subtitle: z.string().nullable(), estimateLow: z.number().nullable(), estimateHigh: z.number().nullable(), sold: z.number().nullable(), url: z.string(), image: z.string().nullable() });
16 +export const SalePayloadSchema = z.object({ kind: z.literal('sale_results'), url: z.string(), sale: SaleRefSchema, lotCount: z.number().nullable(), lots: z.array(LotSchema) });
17 +export type SalePayload = z.infer<typeof SalePayloadSchema>;
18 +
19 +function lines(block: string): string[] {
20 + return block
21 + .split(/\\\\\n|\n/)
22 + .map((l) => l.replace(/\\$/g, '').replace(/\\\|/g, '|').trim())
23 + .filter((l) => l && l !== '\\' && l !== '|' && !l.startsWith('- '));
24 +}
25 +
26 +/** Find markdown link blocks "[...](url)" whose URL matches `urlRe`, handling nested image brackets. */
27 +export function linkBlocks(md: string, urlRe: RegExp): Array<{ text: string; url: string }> {
28 + const out: Array<{ text: string; url: string }> = [];
29 + const re = new RegExp(`\\]\\((${urlRe.source})\\)`, 'g');
30 + let m: RegExpExecArray | null;
31 + while ((m = re.exec(md))) {
32 + const end = m.index;
33 + let depth = 0;
34 + let start = -1;
35 + for (let i = end - 1; i >= 0; i--) {
36 + const ch = md[i];
37 + if (ch === ']') depth++;
38 + else if (ch === '[') {
39 + if (depth === 0) {
40 + start = i;
41 + break;
42 + }
43 + depth--;
44 + }
45 + }
46 + if (start < 0) continue;
47 + out.push({ text: md.slice(start + 1, end), url: m[1]! });
48 + }
49 + return out;
50 +}
51 +
52 +/** Parse the results index: blocks ending in (https://www.artcurial.com/en/sales/<n>). */
53 +export function parseResultsIndex(md: string): SaleRef[] {
54 + const out: SaleRef[] = [];
55 + const seen = new Set<string>();
56 + for (const b of linkBlocks(md, /https:\/\/www\.artcurial\.com\/en\/sales\/[A-Za-z0-9-]+/)) {
57 + const number = b.url.replace(/.*\/sales\//, '');
58 + if (seen.has(number)) continue;
59 + const ls = lines(b.text).filter((l) => !l.startsWith('!['));
60 + const dateIdx = ls.findIndex((l) => /^[A-Z][a-z]{2} \d{1,2}, \d{4}$/.test(l));
61 + if (dateIdx < 0) continue;
62 + const date = parseSourceDate(ls[dateIdx]!);
63 + const numIdx = ls.findIndex((l, i) => i > dateIdx && l.replace(/\s/g, '') === number.replace(/\s/g, ''));
64 + const title = ls[numIdx + 1] ?? ls[dateIdx + 2] ?? number;
65 + const subtitle = ls[numIdx + 2] && !/^\d{1,2}:\d{2}|Online Only|Sessions/i.test(ls[numIdx + 2]!) ? ls[numIdx + 2]! : null;
66 + const online = ls.some((l) => /online only/i.test(l));
67 + const location = ls.find((l) => /Artcurial, |Hôtel|Monte-Carlo|Paris|Marrakech/i.test(l)) ?? (online ? 'Online' : null);
68 + seen.add(number);
69 + out.push({ number, title, subtitle, date: date ? date.toISOString() : null, location, url: b.url, online });
70 + }
71 + return out;
72 +}
73 +
74 +function eur(s: string | undefined): number | null {
75 + if (!s) return null;
76 + const n = Number(s.replace(/[^\d.]/g, ''));
77 + return Number.isFinite(n) && n > 0 ? n : null;
78 +}
79 +
80 +/** Parse a sale page: lot blocks "[1\\ ![img](u)\\ Title\\ Sub\\ Estimate: €300 - 500\\ Sold€1,589](lot url)". */
81 +export function parseSalePage(md: string, saleNumber: string): { lotCount: number | null; lots: z.infer<typeof LotSchema>[] } {
82 + const lotCount = Number(md.match(/All Lots \((\d+)\)/)?.[1]) || null;
83 + const lots: z.infer<typeof LotSchema>[] = [];
84 + const esc = saleNumber.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
85 + for (const b of linkBlocks(md, new RegExp(`https://www\\.artcurial\\.com/en/sales/${esc}/lots/[^)\\s]+`))) {
86 + const image = b.text.match(/!\[[^\]]*\]\(([^)\s]+)/)?.[1] ?? null;
87 + const ls = lines(b.text).filter((l) => !l.startsWith('!['));
88 + const lotNo = ls[0] && /^\d{1,4}[A-Za-z]?$/.test(ls[0]) ? ls[0] : null;
89 + if (!lotNo) continue;
90 + const estLine = ls.find((l) => /^Estimate/i.test(l)) ?? '';
91 + const est = estLine.match(/€\s?([\d,.]+)\s*-\s*€?\s?([\d,.]+)/);
92 + const soldLine = ls.find((l) => /^Sold/i.test(l));
93 + const sold = eur(soldLine?.match(/€\s?([\d,.]+)/)?.[1]);
94 + const body = ls.slice(1).filter((l) => !/^(Estimate|Sold|No reserve)/i.test(l));
95 + const title = body[0] ?? null;
96 + if (!title) continue;
97 + lots.push({ lotNo, title, subtitle: body[1] ?? null, estimateLow: eur(est?.[1]), estimateHigh: eur(est?.[2]), sold, url: b.url, image });
98 + }
99 + return { lotCount, lots };
100 +}
101 +
102 +const SALE_CATEGORY: Array<[RegExp, string]> = [
103 + [/horlogerie|watches|montres/i, 'other_watches'],
104 + [/hermès|hermes|luxury bags|sacs|handbags|vuitton|chanel/i, 'luxury_handbags'],
105 + [/joaillerie|bijoux|jewel/i, 'jewelry'],
106 + [/vins|wine|spiritueux|spirits|whisky/i, 'wine'],
107 + [/bande dessinée|bandes dessinées|comics|bd\b/i, 'comics'],
108 + [/photograph/i, 'photography'],
109 + [/design/i, 'design_furniture'],
110 + [/livres|books|manuscrits|manuscripts/i, 'books'],
111 + [/automobiles|motorcars|le mans|voitures|racing|automobilia/i, 'automobiles'],
112 + [/contemporain|contemporary|urban art|street art|post-war|impressionniste|moderne|modern/i, 'contemporary_art'],
113 + [/mobilier|furniture|arts décoratifs|decorative|tableaux anciens|old master|asian|asiatique|antiquités|antiquities|orientalist|souvenirs historiques/i, 'antiques'],
114 +];
115 +export function categoryForSale(title: string): string {
116 + return SALE_CATEGORY.find(([re]) => re.test(title))?.[1] ?? 'art';
117 +}
118 +const LOT_CATEGORY: Array<[RegExp, string]> = [
119 + [/\b(poster|affiche|programme|photograph|helmet|casque|trophy|trophée|book|livre|drawing|dessin|sign|plaque|model|maquette|miniature)s?\b/i, 'automotive_memorabilia'],
120 + [/rolex|patek|omega|wristwatch|montre/i, 'other_watches'],
121 +];
122 +export function categoryForLot(base: string, title: string): string {
123 + if (base !== 'automobiles') return base;
124 + return LOT_CATEGORY.find(([re]) => re.test(title))?.[1] ?? base;
125 +}
126 +
127 +export class ArtcurialConnector extends BaseConnector {
128 + readonly version = '1.0.0';
129 + readonly parserVersion = PARSER_VERSION;
130 + protected override minIntervalMs = 3000;
131 +
132 + async *crawl(ctx: CrawlContext): AsyncIterable<RawRecordInput> {
133 + const resultsUrl = String(this.meta.config.resultsUrl ?? `${BASE}/en/results-auctions-sales`);
134 + const perRun = Number(this.meta.config.salesPerRun ?? 3);
135 + const cursor = (ctx.options.cursor ?? {}) as { done?: string[] };
136 + const done = new Set<string>(cursor.done ?? []);
137 + const idx = await ctx.fetch(resultsUrl, { engines: ['firecrawl', 'scrapfly'], waitForMs: 5000, timeoutMs: 90_000, minQuality: 0 });
138 + if (!idx.success || !idx.markdown) {
139 + ctx.anomaly('results_index_failed', idx.error ?? String(idx.httpStatus));
140 + return;
141 + }
142 + const sales = parseResultsIndex(idx.markdown).filter((s) => !s.date || new Date(s.date).getTime() <= Date.now());
143 + sales.sort((a, b) => (b.date ?? '').localeCompare(a.date ?? ''));
144 + let fetched = 0;
145 + let count = 0;
146 + for (const sale of sales) {
147 + if (ctx.signal?.aborted || this.reached(ctx, count) || fetched >= perRun) break;
148 + if (done.has(sale.number) && ctx.options.mode !== 'backfill') continue;
149 + await this.throttle();
150 + fetched++;
151 + const res = await ctx.fetch(sale.url, {
152 + engines: ['firecrawl', 'scrapfly'],
153 + waitForMs: 5000,
154 + timeoutMs: 90_000,
155 + expect: ['title', 'price', 'currency'],
156 + parse: (r) => {
157 + const p = r.markdown ? parseSalePage(r.markdown, sale.number) : null;
158 + const sold = p?.lots.find((l) => l.sold);
159 + return p?.lots.length ? { title: p.lots[0]!.title, price: sold?.sold ?? null, currency: sold ? 'EUR' : null } : null;
160 + },
161 + });
162 + const parsed = res.success && res.markdown ? parseSalePage(res.markdown, sale.number) : null;
163 + if (!parsed || parsed.lots.length === 0) {
164 + ctx.anomaly('sale_parse_failed', `${sale.number}: ${res.error ?? res.httpStatus}`);
165 + continue;
166 + }
167 + if (parsed.lotCount && parsed.lots.length < parsed.lotCount * 0.5) ctx.anomaly('partial_lot_list', `${sale.number}: ${parsed.lots.length}/${parsed.lotCount}`);
168 + const payload: SalePayload = { kind: 'sale_results', url: sale.url, sale, lotCount: parsed.lotCount, lots: parsed.lots };
169 + count++;
170 + done.add(sale.number);
171 + await ctx.setCursor({ done: [...done].slice(-400) });
172 + yield { url: sale.url, externalId: sale.number, kind: 'sale', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt };
173 + }
174 + }
175 +
176 + async normalize(raw: RawRecordLike): Promise<NormalizedRecord[]> {
177 + const p = SalePayloadSchema.parse(raw.payload);
178 + const saleDate = p.sale.date ? new Date(p.sale.date) : null;
179 + const base = categoryForSale(`${p.sale.title} ${p.sale.subtitle ?? ''}`);
180 + const out: NormalizedRecord[] = [];
181 + for (const lot of p.lots) {
182 + const text = `${lot.title} ${lot.subtitle ?? ''}`;
183 + const attributes = AssetAttributesSchema.parse({
184 + categorySlug: categoryForLot(base, text),
185 + name: lot.title,
186 + model: lot.subtitle,
187 + year: extractYear(text),
188 + identifiers: { artcurial_lot: `${p.sale.number}/${lot.lotNo}` },
189 + metadata: { sale_number: p.sale.number, sale_title: p.sale.title, sale_subtitle: p.sale.subtitle, estimate_low: lot.estimateLow, estimate_high: lot.estimateHigh, online_only: p.sale.online },
190 + });
191 + const common = {
192 + connectorId: this.meta.id,
193 + sourceId: this.meta.sourceId,
194 + sourceUrl: lot.url,
195 + externalId: `${p.sale.number}:${lot.lotNo}`,
196 + rawTitle: lot.subtitle ? `${lot.title} — ${lot.subtitle}` : lot.title,
197 + description: null,
198 + imageUrls: lot.image ? [lot.image] : [],
199 + attributes,
200 + grade: { grader: null, grade: null, qualifier: null, certificationNumber: null },
201 + condition: { condition: null, conditionRaw: null, completeness: null },
202 + observedAt: raw.fetchedAt,
203 + confidence: 0.88,
204 + parserVersion: PARSER_VERSION,
205 + };
206 + if (lot.sold && saleDate) {
207 + out.push(NormalizedSaleSchema.parse({ kind: 'sale', ...common, saleType: 'auction', saleDate, price: lot.sold, currency: 'EUR', buyerPremiumIncluded: null, quantity: 1, isBundle: /\b(lot of|ensemble de|set of|\d+\s+(pieces|pièces))\b/i.test(text), location: p.sale.location, auctionHouse: 'Artcurial', lotNumber: lot.lotNo }));
208 + } else {
209 + out.push(NormalizedAuctionLotSchema.parse({ kind: 'auction_lot', ...common, auctionHouse: 'Artcurial', auctionName: p.sale.title, lotNumber: lot.lotNo, startsAt: saleDate, endsAt: saleDate, estimateLow: lot.estimateLow, estimateHigh: lot.estimateHigh, currentBid: null, currency: 'EUR', status: saleDate && saleDate.getTime() < Date.now() ? 'ended' : 'unknown', location: p.sale.location }));
210 + }
211 + }
212 + return out;
213 + }
214 +}
215 +
216 +export default (meta: ConnectorMeta) => new ArtcurialConnector(meta);
added connectors/firecrawl/artcurial/meta.json +33 −0
@@ -0,0 +1,33 @@
1 +{
2 + "id": "artcurial",
3 + "displayName": "Artcurial (sale results)",
4 + "sourceId": "artcurial",
5 + "sourceName": "Artcurial",
6 + "sourceType": "auction_house",
7 + "sourceUrl": "https://www.artcurial.com",
8 + "module": "firecrawl/artcurial",
9 + "enginePriority": ["firecrawl", "scrapfly"],
10 + "categories": ["art", "contemporary_art", "photography", "design_furniture", "jewelry", "other_watches", "luxury_handbags", "wine", "comics", "books", "automobiles", "automotive_memorabilia", "antiques"],
11 + "regions": ["FR", "MC"],
12 + "languages": ["en", "fr"],
13 + "currency": ["EUR"],
14 + "supportsListings": false,
15 + "supportsSold": true,
16 + "supportsAuctions": true,
17 + "supportsImages": true,
18 + "supportsCatalog": false,
19 + "supportsPopulation": false,
20 + "supportsLookup": false,
21 + "refreshFrequencyMinutes": 1440,
22 + "priority": "medium",
23 + "trustScore": 0.9,
24 + "attributionRequired": true,
25 + "termsUrl": "https://www.artcurial.com/en/conditions-of-sale",
26 + "accessNotes": "Paris/Monaco auction house (Nuxt app). The public results index (/en/results-auctions-sales) and each sale page (/en/sales/<n>) are rendered through Firecrawl (JS wait ~5 s, 1 credit each); the sale page lists every lot with lot number, title, sub-title, estimate and 'Sold €X' plus the public lot URL. robots.txt disallows press, tracking and /motorcars paths only (car sales are listed under /en/sales/<n>, which is allowed). Artcurial does not state on the results list whether the published price includes buyer's premium, so buyer_premium_included is left null (unknown, never assumed). Sale date = the sale date on the results index. 3 s politeness delay; salesPerRun caps each run.",
27 + "enabled": true,
28 + "schemaVersion": "1.0",
29 + "config": {
30 + "resultsUrl": "https://www.artcurial.com/en/results-auctions-sales",
31 + "salesPerRun": 3
32 + }
33 +}
added connectors/firecrawl/phillips-art/_smoke.ts +20 −0
@@ -0,0 +1,20 @@
1 +import { createRouter, createCrawlContext, ConnectorMetaSchema } from '@rareindex/connectors';
2 +import { saveFixture } from '@rareindex/connectors/testing';
3 +import metaJson from './meta.json' with { type: 'json' };
4 +import createConnector from './index.js';
5 +
6 +const save = process.argv.includes('--save');
7 +const meta = ConnectorMetaSchema.parse(metaJson);
8 +const connector = createConnector(meta);
9 +const router = createRouter({ firecrawlApiKey: process.env.FIRECRAWL_API_KEY, scrapflyApiKey: process.env.SCRAPFLY_API_KEY });
10 +const ctx = createCrawlContext({ router, meta, options: { mode: 'probe', limit: 2 } });
11 +let i = 0;
12 +for await (const raw of connector.crawl(ctx)) {
13 + const out = await connector.normalize({ ...raw, externalId: raw.externalId ?? null, fetchedAt: raw.fetchedAt ?? new Date() });
14 + const sales = out.filter((r) => r.kind === 'sale');
15 + console.log(`raw ${raw.externalId} (${raw.engine}) → ${out.length} records, ${sales.length} sales`);
16 + for (const r of sales.slice(0, 3)) console.log(' ', JSON.stringify(r).slice(0, 420));
17 + if (save && i < 2 && sales.length) saveFixture(meta.id, `sale-${raw.externalId}`, { raw: { url: raw.url, externalId: raw.externalId ?? null, kind: raw.kind, engine: raw.engine, fetchedAt: raw.fetchedAt ?? new Date(), payload: raw.payload }, expect: { minCount: 10, kinds: ['sale', 'auction_lot'], requiredFields: ['attributes.brand', 'rawTitle'] }, note: 'Captured live via Firecrawl from phillips.com' });
18 + i++;
19 +}
20 +console.log('engineStats', ctx.engineStats, 'anomalies', ctx.anomalies);
added connectors/firecrawl/phillips-art/index.test.ts +31 −0
@@ -0,0 +1,31 @@
1 +import { describe, expect, it } from 'vitest';
2 +import { ConnectorMetaSchema } from '@rareindex/connectors';
3 +import { listFixtures, loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';
4 +import metaJson from './meta.json' with { type: 'json' };
5 +import createConnector, { categoryForLot } from './index.js';
6 +
7 +const connector = createConnector(ConnectorMetaSchema.parse(metaJson));
8 +
9 +describe('phillips-art', () => {
10 + runFixtureSuite(connector, it, expect);
11 +
12 + it('emits premium-inclusive sales with artist as brand', async () => {
13 + const name = listFixtures('phillips-art')[0]!;
14 + const out = await connector.normalize(loadFixture('phillips-art', name).raw);
15 + const sales = out.filter((r) => r.kind === 'sale');
16 + expect(sales.length).toBeGreaterThan(5);
17 + for (const r of sales) {
18 + if (r.kind !== 'sale') continue;
19 + expect(r.buyerPremiumIncluded).toBe(true);
20 + expect(r.auctionHouse).toBe('Phillips');
21 + expect(r.attributes.brand).toBeTruthy();
22 + expect(['art', 'contemporary_art', 'photography', 'design_furniture', 'jewelry', 'luxury_handbags', 'other_watches']).toContain(r.attributes.categorySlug);
23 + }
24 + });
25 +
26 + it('refines lot categories', () => {
27 + expect(categoryForLot('contemporary_art', 'Gelatin silver print, 1975')).toBe('photography');
28 + expect(categoryForLot('design_furniture', 'Pair of "Lounge" chairs')).toBe('design_furniture');
29 + expect(categoryForLot('contemporary_art', 'Untitled, screenprint')).toBe('contemporary_art');
30 + });
31 +});
added connectors/firecrawl/phillips-art/index.ts +153 −0
@@ -0,0 +1,153 @@
1 +import { z } from 'zod';
2 +import { BaseConnector, type ConnectorMeta, type CrawlContext, type RawRecordInput, type RawRecordLike } from '@rareindex/connectors';
3 +import { AssetAttributesSchema, NormalizedAuctionLotSchema, NormalizedSaleSchema, extractYear, type NormalizedRecord } from '@rareindex/shared';
4 +import { parseLots, parsePastSales, SalePayloadSchema, type PastSale, type SalePayload } from '../phillips-watches/index.js';
5 +
6 +/**
7 + * Phillips art-side departments (Editions, Design, 20th Century & Contemporary Art, Photographs,
8 + * Jewels, Handbags). Reuses the phillips-watches page parsers; normalisation maps each lot to an
9 + * art/design/photography/jewelry/handbag sale with artist/maker as `brand`.
10 + */
11 +
12 +const PARSER_VERSION = '1.0.0';
13 +const DeptSchema = z.object({ filter: z.string(), category: z.string() });
14 +
15 +export const ArtSalePayloadSchema = SalePayloadSchema.extend({ department: DeptSchema });
16 +export type ArtSalePayload = z.infer<typeof ArtSalePayloadSchema>;
17 +
18 +const LOT_CATEGORY: Array<[RegExp, string]> = [
19 + [/photograph|gelatin silver|c-print|chromogenic|dye transfer|platinum print/i, 'photography'],
20 + [/wristwatch|rolex|patek|audemars/i, 'other_watches'],
21 + [/hermès|hermes|chanel|louis vuitton|birkin|kelly bag/i, 'luxury_handbags'],
22 + [/ring|necklace|bracelet|brooch|earrings|diamond|sapphire|emerald|ruby/i, 'jewelry'],
23 + [/chair|table|lamp|cabinet|sofa|desk|stool|vase|bench|sideboard|chandelier/i, 'design_furniture'],
24 +];
25 +
26 +export function categoryForLot(base: string, text: string): string {
27 + return LOT_CATEGORY.find(([re]) => re.test(text))?.[1] ?? base;
28 +}
29 +
30 +export class PhillipsArtConnector extends BaseConnector {
31 + readonly version = '1.0.0';
32 + readonly parserVersion = PARSER_VERSION;
33 + protected override minIntervalMs = 3000;
34 +
35 + async *crawl(ctx: CrawlContext): AsyncIterable<RawRecordInput> {
36 + const pastUrl = String(this.meta.config.pastAuctionsUrl ?? 'https://www.phillips.com/auctions/past');
37 + const perRun = Number(this.meta.config.salesPerRun ?? 4);
38 + const departments = z.array(DeptSchema).parse(this.meta.config.departments ?? []);
39 + const cursor = ctx.options.cursor ?? {};
40 + const done = new Set<string>((cursor.doneSales as string[] | undefined) ?? []);
41 + const list = await ctx.fetch(pastUrl, { engines: ['api'], responseType: 'text', minQuality: 0, timeoutMs: 60_000 });
42 + if (!list.success || !list.html) {
43 + ctx.anomaly('past_list_failed', list.error ?? String(list.httpStatus));
44 + return;
45 + }
46 + const candidates: Array<{ sale: PastSale; department: z.infer<typeof DeptSchema> }> = [];
47 + const seen = new Set<string>();
48 + for (const department of departments) {
49 + if (ctx.options.categories?.length && !ctx.options.categories.includes(department.category)) continue;
50 + for (const sale of parsePastSales(list.html, department.filter)) {
51 + if (seen.has(sale.saleNumber) || /watch/i.test(sale.title)) continue;
52 + if (sale.endDate && new Date(sale.endDate).getTime() > Date.now()) continue;
53 + seen.add(sale.saleNumber);
54 + candidates.push({ sale, department });
55 + }
56 + }
57 + candidates.sort((a, b) => (b.sale.endDate ?? '').localeCompare(a.sale.endDate ?? ''));
58 + let count = 0;
59 + let fetched = 0;
60 + for (const { sale, department } of candidates) {
61 + if (ctx.signal?.aborted || this.reached(ctx, count) || fetched >= perRun) break;
62 + if (done.has(sale.saleNumber) && ctx.options.mode !== 'backfill') continue;
63 + const url = `https://www.phillips.com/auction/${sale.saleNumber}`;
64 + await this.throttle();
65 + fetched++;
66 + const res = await ctx.fetch(url, {
67 + waitForMs: 6000,
68 + timeoutMs: 90_000,
69 + expect: ['title', 'price', 'currency'],
70 + parse: (r) => {
71 + const lots = parseLots(r.markdown ?? '');
72 + const sold = lots.find((l) => l.soldFor);
73 + return { title: lots[0]?.maker ?? null, price: sold?.soldFor ?? null, currency: sold?.currency ?? null };
74 + },
75 + });
76 + if (!res.success || !res.markdown) {
77 + ctx.anomaly('sale_fetch_failed', `${sale.saleNumber}: ${res.error ?? res.httpStatus}`);
78 + continue;
79 + }
80 + const md = res.markdown;
81 + const lotCount = Number(md.match(/##\s+(\d+)\s+Lots/)?.[1]) || null;
82 + const concluded = md.match(/Concluded\s*([A-Z][a-z]{2}\s+\d{1,2}\s+\d{4})/)?.[1] ?? null;
83 + const lotsStart = md.indexOf('## ');
84 + const payload: ArtSalePayload = {
85 + kind: 'auction_results',
86 + url,
87 + saleNumber: sale.saleNumber,
88 + title: sale.title || md.match(/^#\s+(.+)$/m)?.[1] || sale.saleNumber,
89 + location: sale.location ?? md.match(/\n(Geneva|New York|Hong Kong|London|Paris)\n/)?.[1] ?? null,
90 + startDate: sale.startDate,
91 + endDate: sale.endDate ?? (concluded ? new Date(`${concluded} UTC`).toISOString() : null),
92 + lotCount,
93 + markdown: md.slice(lotsStart >= 0 ? lotsStart : 0),
94 + department,
95 + };
96 + const parsed = parseLots(payload.markdown);
97 + if (parsed.length === 0) {
98 + ctx.anomaly('parse_failure_lots', sale.saleNumber);
99 + continue;
100 + }
101 + if (lotCount && parsed.length < lotCount * 0.5) ctx.anomaly('partial_lot_list', `${sale.saleNumber}: ${parsed.length}/${lotCount}`);
102 + count++;
103 + done.add(sale.saleNumber);
104 + await ctx.setCursor({ doneSales: [...done].slice(-500), updatedAt: new Date().toISOString() });
105 + yield { url, externalId: sale.saleNumber, kind: 'sale', engine: res.engine, httpStatus: res.httpStatus, payload, fetchedAt: res.fetchedAt };
106 + }
107 + }
108 +
109 + async normalize(raw: RawRecordLike): Promise<NormalizedRecord[]> {
110 + const p = ArtSalePayloadSchema.parse(raw.payload) as ArtSalePayload & SalePayload;
111 + const lots = parseLots(p.markdown);
112 + const saleDate = p.endDate ? new Date(p.endDate) : null;
113 + const out: NormalizedRecord[] = [];
114 + for (const lot of lots) {
115 + // For art lots the "maker" line is the artist; "model" holds the work title; "reference" rarely applies.
116 + const artist = lot.maker;
117 + const work = lot.model ?? lot.reference ?? null;
118 + const text = lot.lines.join(' ');
119 + const attributes = AssetAttributesSchema.parse({
120 + categorySlug: categoryForLot(p.department.category, text),
121 + brand: artist,
122 + name: work ? `${artist} — ${work}` : artist,
123 + model: work,
124 + year: extractYear(text.replace(/\b(19|20)\d{2}\s*[–-]\s*(19|20)\d{2}\b/g, '')),
125 + identifiers: { phillips_lot: lot.url.replace(/.*\/detail\//, '') },
126 + metadata: { sale_number: p.saleNumber, sale_title: p.title, department: p.department.filter, estimate_low: lot.estimateLow, estimate_high: lot.estimateHigh, no_reserve: lot.noReserve, lot_lines: lot.lines.slice(0, 6) },
127 + });
128 + const base = {
129 + connectorId: this.meta.id,
130 + sourceId: this.meta.sourceId,
131 + sourceUrl: lot.url,
132 + externalId: `${p.saleNumber}:${lot.lotNumber ?? lot.url}`,
133 + rawTitle: work ? `${artist} · ${work}` : artist,
134 + description: null,
135 + imageUrls: lot.image ? [lot.image] : [],
136 + attributes,
137 + grade: { grader: null, grade: null, qualifier: null, certificationNumber: null },
138 + condition: { condition: null, conditionRaw: null, completeness: null },
139 + observedAt: raw.fetchedAt,
140 + confidence: 0.9,
141 + parserVersion: PARSER_VERSION,
142 + };
143 + if (lot.soldFor && lot.currency && saleDate) {
144 + out.push(NormalizedSaleSchema.parse({ kind: 'sale', ...base, saleType: 'auction', saleDate, price: lot.soldFor, currency: lot.currency, buyerPremiumIncluded: true, quantity: 1, isBundle: false, location: p.location, auctionHouse: 'Phillips', lotNumber: lot.lotNumber }));
145 + } else {
146 + out.push(NormalizedAuctionLotSchema.parse({ kind: 'auction_lot', ...base, auctionHouse: 'Phillips', auctionName: p.title, lotNumber: lot.lotNumber, startsAt: p.startDate ? new Date(p.startDate) : null, endsAt: saleDate, estimateLow: lot.estimateLow, estimateHigh: lot.estimateHigh, currentBid: null, currency: lot.currency, status: saleDate && saleDate.getTime() < Date.now() ? 'ended' : 'unknown', location: p.location }));
147 + }
148 + }
149 + return out;
150 + }
151 +}
152 +
153 +export default (meta: ConnectorMeta) => new PhillipsArtConnector(meta);
added connectors/firecrawl/phillips-art/meta.json +41 −0
@@ -0,0 +1,41 @@
1 +{
2 + "id": "phillips-art",
3 + "displayName": "Phillips Art, Editions, Design & Photographs (auction results)",
4 + "sourceId": "phillips",
5 + "sourceName": "Phillips",
6 + "sourceType": "auction_house",
7 + "sourceUrl": "https://www.phillips.com",
8 + "module": "firecrawl/phillips-art",
9 + "enginePriority": ["firecrawl", "scrapfly"],
10 + "categories": ["art", "contemporary_art", "photography", "design_furniture", "jewelry", "luxury_handbags"],
11 + "regions": ["US", "GB", "HK", "CH"],
12 + "languages": ["en"],
13 + "currency": ["USD", "GBP", "HKD", "CHF", "EUR"],
14 + "supportsListings": false,
15 + "supportsSold": true,
16 + "supportsAuctions": true,
17 + "supportsImages": true,
18 + "supportsCatalog": false,
19 + "supportsPopulation": false,
20 + "supportsLookup": false,
21 + "refreshFrequencyMinutes": 10080,
22 + "priority": "medium",
23 + "trustScore": 0.95,
24 + "attributionRequired": true,
25 + "termsUrl": "https://www.phillips.com/about/terms",
26 + "accessNotes": "Same public mechanism as phillips-watches (past-sales JSON on /auctions/past over plain HTTPS, then one Firecrawl render per sale page, 1 credit) applied to the Editions, Design, 20th Century & Contemporary Art, Photographs, Jewels and Handbags departments. Prices realised are published by Phillips including buyer's premium (buyer_premium_included=true). Sale date = sale end date. robots.txt disallows only /search and filter paths; no login, no bidder data. 3 s politeness delay; salesPerRun caps each run.",
27 + "enabled": true,
28 + "schemaVersion": "1.0",
29 + "config": {
30 + "pastAuctionsUrl": "https://www.phillips.com/auctions/past",
31 + "salesPerRun": 4,
32 + "departments": [
33 + { "filter": "editions", "category": "contemporary_art" },
34 + { "filter": "design", "category": "design_furniture" },
35 + { "filter": "photograph", "category": "photography" },
36 + { "filter": "contemporary art", "category": "contemporary_art" },
37 + { "filter": "jewels", "category": "jewelry" },
38 + { "filter": "handbags", "category": "luxury_handbags" }
39 + ]
40 + }
41 +}
added data/fixtures/artcurial/sale-6557.json +2158 −0
@@ -0,0 +1,2158 @@
1 +{
2 + "raw": {
3 + "url": "https://www.artcurial.com/en/sales/6557",
4 + "externalId": "6557",
5 + "kind": "sale",
6 + "engine": "firecrawl",
7 + "fetchedAt": "2026-09-07T06:28:50.367Z",
8 + "payload": {
9 + "kind": "sale_results",
10 + "url": "https://www.artcurial.com/en/sales/6557",
11 + "sale": {
12 + "number": "6557",
13 + "title": "L’œil d’un érudit",
14 + "subtitle": "Une collection européenne",
15 + "date": "2026-07-10T00:00:00.000Z",
16 + "location": "Artcurial, Paris",
17 + "url": "https://www.artcurial.com/en/sales/6557",
18 + "online": false
19 + },
20 + "lotCount": 213,
21 + "lots": [
22 + {
23 + "lotNo": "1",
24 + "title": "PORTE-TORCHÈRE DE STYLE NÉO-POMPÉIEN",
25 + "subtitle": null,
26 + "estimateLow": 1500,
27 + "estimateHigh": 2500,
28 + "sold": 3861,
29 + "url": "https://www.artcurial.com/en/sales/6557/lots/1-a",
30 + "image": "https://www.artcurial.com/item-images/8799c221-5f62-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/1.jpg?w=400&force_webp=true"
31 + },
32 + {
33 + "lotNo": "2",
34 + "title": "CONSOLE DEMI-LUNE SUISSE DE LA FIN DE L'ÉPOQUE LOUIS XVI, BERNE",
35 + "subtitle": null,
36 + "estimateLow": 4000,
37 + "estimateHigh": 6000,
38 + "sold": 4158,
39 + "url": "https://www.artcurial.com/en/sales/6557/lots/2-a",
40 + "image": "https://www.artcurial.com/item-images/bdfb1d52-5f62-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/1.jpg?w=400&force_webp=true"
41 + },
42 + {
43 + "lotNo": "3",
44 + "title": "Ecole suisse vers 1700(Entourage d'Albrecht Kauw le Vieux)",
45 + "subtitle": "Scène de vendange au bord d'un lac",
46 + "estimateLow": 3000,
47 + "estimateHigh": 4000,
48 + "sold": 3712,
49 + "url": "https://www.artcurial.com/en/sales/6557/lots/3-a",
50 + "image": "https://www.artcurial.com/item-images/a0433159-5f4b-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-049%20B%20CADRE_WEB.jpg?w=400&force_webp=true"
51 + },
52 + {
53 + "lotNo": "4",
54 + "title": "PAIRE D'APPLIQUES SUISSES DE LA FIN DU XVIIIe SIÈCLE, BERNE",
55 + "subtitle": null,
56 + "estimateLow": 400,
57 + "estimateHigh": 600,
58 + "sold": 1039,
59 + "url": "https://www.artcurial.com/en/sales/6557/lots/4-a",
60 + "image": "https://www.artcurial.com/item-images/eb865af5-5f62-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/1.jpg?w=400&force_webp=true"
61 + },
62 + {
63 + "lotNo": "5",
64 + "title": "Italie, vers 1500",
65 + "subtitle": "Initiale « A »",
66 + "estimateLow": 2000,
67 + "estimateHigh": 3000,
68 + "sold": 2970,
69 + "url": "https://www.artcurial.com/en/sales/6557/lots/5-a",
70 + "image": "https://www.artcurial.com/item-images/8e0ff12b-5a8d-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-343%20A_WEB.jpg?w=400&force_webp=true"
71 + },
72 + {
73 + "lotNo": "6",
74 + "title": "PAIRE DE GRANDS PIQUE-CIERGES, TRAVAIL ITALIEN DU XVIIIe SIÈCLE",
75 + "subtitle": null,
76 + "estimateLow": 1200,
77 + "estimateHigh": 1800,
78 + "sold": 4158,
79 + "url": "https://www.artcurial.com/en/sales/6557/lots/6-a",
80 + "image": "https://www.artcurial.com/item-images/65c35105-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_443.jpg?w=400&force_webp=true"
81 + },
82 + {
83 + "lotNo": "7",
84 + "title": "GLOBE CÉLESTE DE TABLE ALLEMAND, DATÉ 1730",
85 + "subtitle": null,
86 + "estimateLow": 800,
87 + "estimateHigh": 1200,
88 + "sold": 1188,
89 + "url": "https://www.artcurial.com/en/sales/6557/lots/7-a",
90 + "image": "https://www.artcurial.com/item-images/1739f268-5f63-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/2.jpg?w=400&force_webp=true"
91 + },
92 + {
93 + "lotNo": "8",
94 + "title": "BOÎTE À PERRUQUE D'ÉPOQUE RÉGENCE",
95 + "subtitle": null,
96 + "estimateLow": 300,
97 + "estimateHigh": 500,
98 + "sold": 520,
99 + "url": "https://www.artcurial.com/en/sales/6557/lots/8-a",
100 + "image": "https://www.artcurial.com/item-images/d2b9b2be-34bc-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_002.jpg?w=400&force_webp=true"
101 + },
102 + {
103 + "lotNo": "9",
104 + "title": "PAIRE DE VASES MONTÉS D'ÉPOQUE RESTAURATION",
105 + "subtitle": null,
106 + "estimateLow": 1500,
107 + "estimateHigh": 2000,
108 + "sold": 2524,
109 + "url": "https://www.artcurial.com/en/sales/6557/lots/9-a",
110 + "image": "https://www.artcurial.com/item-images/2b68b9ba-5f63-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/2.jpg?w=400&force_webp=true"
111 + },
112 + {
113 + "lotNo": "10",
114 + "title": "Pays-Bas, Anvers, attribué à Carel van der Stijnen, vers 1700",
115 + "subtitle": null,
116 + "estimateLow": 3000,
117 + "estimateHigh": 5000,
118 + "sold": 6682,
119 + "url": "https://www.artcurial.com/en/sales/6557/lots/10-a",
120 + "image": "https://www.artcurial.com/item-images/39fd067b-5f63-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/3.jpg?w=400&force_webp=true"
121 + },
122 + {
123 + "lotNo": "11",
124 + "title": "CHEVALET DE PEINTRE, XXe SIÈCLE",
125 + "subtitle": null,
126 + "estimateLow": 1000,
127 + "estimateHigh": 1500,
128 + "sold": 3267,
129 + "url": "https://www.artcurial.com/en/sales/6557/lots/11-a",
130 + "image": "https://www.artcurial.com/item-images/4b583b6c-5f63-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/3.jpg?w=400&force_webp=true"
131 + },
132 + {
133 + "lotNo": "12",
134 + "title": "CARTEL ET SA CONSOLE D'APPLIQUE SUISSE DE LA FIN DU XVIIIe SIÈCLE, BERNE",
135 + "subtitle": null,
136 + "estimateLow": 700,
137 + "estimateHigh": 1000,
138 + "sold": 2673,
139 + "url": "https://www.artcurial.com/en/sales/6557/lots/12-a",
140 + "image": "https://www.artcurial.com/item-images/5b71536d-5f63-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/3.jpg?w=400&force_webp=true"
141 + },
142 + {
143 + "lotNo": "13",
144 + "title": "DEUX PLATS RONDS ET QUATRE ASSIETTES EN PORCELAINE DE CHINE, COMPAGNIE DES INDES, XVIIIe SIÈCLE, PÉRIODE QIANLONG (1735-1796)",
145 + "subtitle": null,
146 + "estimateLow": 300,
147 + "estimateHigh": 500,
148 + "sold": 445,
149 + "url": "https://www.artcurial.com/en/sales/6557/lots/13-a",
150 + "image": "https://www.artcurial.com/item-images/c8f039f3-61b7-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-023_WEB.jpg?w=400&force_webp=true"
151 + },
152 + {
153 + "lotNo": "14",
154 + "title": "Karl HOWALD (Berne, 1796 – Sigriswil, 1869)",
155 + "subtitle": "Vue de la cathédrale de Berne",
156 + "estimateLow": 800,
157 + "estimateHigh": 1200,
158 + "sold": 1114,
159 + "url": "https://www.artcurial.com/en/sales/6557/lots/14-a",
160 + "image": "https://www.artcurial.com/item-images/c5a72f17-5f4b-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-045%20A_WEB.jpg?w=400&force_webp=true"
161 + },
162 + {
163 + "lotNo": "15",
164 + "title": "TAZZA ITALIENNE D'ÉPOQUE NÉOCLASSIQUE",
165 + "subtitle": null,
166 + "estimateLow": 6000,
167 + "estimateHigh": 8000,
168 + "sold": 16333,
169 + "url": "https://www.artcurial.com/en/sales/6557/lots/15-a",
170 + "image": "https://www.artcurial.com/item-images/913f2135-5f63-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/4.jpg?w=400&force_webp=true"
171 + },
172 + {
173 + "lotNo": "17",
174 + "title": "Albrecht SCHNIDER(born in 1958)",
175 + "subtitle": "Sans titre (Portrait I) - 2007",
176 + "estimateLow": 7000,
177 + "estimateHigh": 10000,
178 + "sold": 10394,
179 + "url": "https://www.artcurial.com/en/sales/6557/lots/17-a",
180 + "image": "https://www.artcurial.com/item-images/6dfd69d7-3f29-11f1-885b-a56624f1cc36/PICTURE_CATALOG/26112717-043_260422.jpg?w=400&force_webp=true"
181 + },
182 + {
183 + "lotNo": "18",
184 + "title": "VASE COUVERT EN PORCELAINE DE BERLIN DE LA FIN DU XVIIIe SIÈCLE, VERS 1790-1795",
185 + "subtitle": null,
186 + "estimateLow": 6000,
187 + "estimateHigh": 8000,
188 + "sold": 20788,
189 + "url": "https://www.artcurial.com/en/sales/6557/lots/18-a",
190 + "image": "https://www.artcurial.com/item-images/b597f078-5f63-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/5.jpg?w=400&force_webp=true"
191 + },
192 + {
193 + "lotNo": "19",
194 + "title": "VASE COUVERT EN PORCELAINE DE BERLIN DE LA FIN DU XVIIIe SIÈCLE, VERS 1790-1795",
195 + "subtitle": null,
196 + "estimateLow": 6000,
197 + "estimateHigh": 8000,
198 + "sold": 8909,
199 + "url": "https://www.artcurial.com/en/sales/6557/lots/19-a",
200 + "image": "https://www.artcurial.com/item-images/0af38609-5f66-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/5.jpg?w=400&force_webp=true"
201 + },
202 + {
203 + "lotNo": "20",
204 + "title": "MAQUETTE DE CHALET, TRAVAIL SUISSE DU XIXe SIÈCLE, DATÉE 1858",
205 + "subtitle": null,
206 + "estimateLow": 2000,
207 + "estimateHigh": 3000,
208 + "sold": 7424,
209 + "url": "https://www.artcurial.com/en/sales/6557/lots/20-a",
210 + "image": "https://www.artcurial.com/item-images/67e5625c-397e-11f1-bef4-f918d58faf87/PICTURE_CATALOG/Suisse-23.02.25-92428%201.jpg?w=400&force_webp=true"
211 + },
212 + {
213 + "lotNo": "21",
214 + "title": "GAINE DE STYLE NÉOCLASSIQUE, XXe SIÈCLE",
215 + "subtitle": null,
216 + "estimateLow": 700,
217 + "estimateHigh": 1000,
218 + "sold": 891,
219 + "url": "https://www.artcurial.com/en/sales/6557/lots/21-a",
220 + "image": "https://www.artcurial.com/item-images/e4f49959-34bc-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_013.jpg?w=400&force_webp=true"
221 + },
222 + {
223 + "lotNo": "22",
224 + "title": "MIROIR SUISSE DE LA PREMIÈRE MOITIÉ DU XVIIIe SIÈCLE, BERNE",
225 + "subtitle": null,
226 + "estimateLow": 1500,
227 + "estimateHigh": 2000,
228 + "sold": 1188,
229 + "url": "https://www.artcurial.com/en/sales/6557/lots/22-a",
230 + "image": "https://www.artcurial.com/item-images/f498a8bf-38a4-11f1-bef4-f918d58faf87/PICTURE_CATALOG/26112717_213.jpg?w=400&force_webp=true"
231 + },
232 + {
233 + "lotNo": "23",
234 + "title": "PAIRE DE GIRANDOLES SUISSES DU MILIEU DU XVIIIe SIÈCLE, BERNE",
235 + "subtitle": null,
236 + "estimateLow": 1500,
237 + "estimateHigh": 2000,
238 + "sold": 4158,
239 + "url": "https://www.artcurial.com/en/sales/6557/lots/23-a",
240 + "image": "https://www.artcurial.com/item-images/6d819222-38a5-11f1-bef4-f918d58faf87/PICTURE_CATALOG/26112717_386.jpg?w=400&force_webp=true"
241 + },
242 + {
243 + "lotNo": "24",
244 + "title": "TABLE DE SALLE À MANGER DE STYLE LOUIS XVI",
245 + "subtitle": null,
246 + "estimateLow": 400,
247 + "estimateHigh": 600,
248 + "sold": 1336,
249 + "url": "https://www.artcurial.com/en/sales/6557/lots/24-a",
250 + "image": "https://www.artcurial.com/item-images/efc4b22a-34bc-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_024.jpg?w=400&force_webp=true"
251 + },
252 + {
253 + "lotNo": "25",
254 + "title": "TONDO EN MAJOLIQUE ITALIENNE DU XIXe SIÈCLE DANS LE STYLE DE LA RENAISSANCE",
255 + "subtitle": null,
256 + "estimateLow": 400,
257 + "estimateHigh": 600,
258 + "sold": 742,
259 + "url": "https://www.artcurial.com/en/sales/6557/lots/25-a",
260 + "image": "https://www.artcurial.com/item-images/bd96fed0-5a8d-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-474_WEB.jpg?w=400&force_webp=true"
261 + },
262 + {
263 + "lotNo": "26",
264 + "title": "CARTEL D'APPLIQUE SUISSE DE LA FIN DU XVIIIe SIÈCLE, BERNE, VERS 1780",
265 + "subtitle": null,
266 + "estimateLow": 800,
267 + "estimateHigh": 1200,
268 + "sold": 1485,
269 + "url": "https://www.artcurial.com/en/sales/6557/lots/26-a",
270 + "image": "https://www.artcurial.com/item-images/47fd977d-5f66-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/6.jpg?w=400&force_webp=true"
271 + },
272 + {
273 + "lotNo": "27",
274 + "title": "Albrecht SCHNIDER(born in 1958)",
275 + "subtitle": "Sans titre - 2009",
276 + "estimateLow": 8000,
277 + "estimateHigh": 10000,
278 + "sold": 10394,
279 + "url": "https://www.artcurial.com/en/sales/6557/lots/27-a",
280 + "image": "https://www.artcurial.com/item-images/879a6b9b-3f29-11f1-885b-a56624f1cc36/PICTURE_CATALOG/26112717-044_260422.jpg?w=400&force_webp=true"
281 + },
282 + {
283 + "lotNo": "28",
284 + "title": "SUCRIER ET SON PRÉSENTOIR EN ARGENT DANS LE STYLE DU XVIIIe SIÈCLE",
285 + "subtitle": null,
286 + "estimateLow": 300,
287 + "estimateHigh": 500,
288 + "sold": 891,
289 + "url": "https://www.artcurial.com/en/sales/6557/lots/28-a",
290 + "image": "https://www.artcurial.com/item-images/6169ec52-5f66-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/6.jpg?w=400&force_webp=true"
291 + },
292 + {
293 + "lotNo": "29",
294 + "title": "PAIRE DE FLAMBEAUX ET LEURS BOBÈCHES",
295 + "subtitle": null,
296 + "estimateLow": 800,
297 + "estimateHigh": 1200,
298 + "sold": 1188,
299 + "url": "https://www.artcurial.com/en/sales/6557/lots/29-a",
300 + "image": "https://www.artcurial.com/item-images/6e4899d3-5f66-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/6.jpg?w=400&force_webp=true"
301 + },
302 + {
303 + "lotNo": "30",
304 + "title": "Johann Valentin Sonnenschein (1749-1828), Berne, fin du XVIIIe siècle",
305 + "subtitle": null,
306 + "estimateLow": 2000,
307 + "estimateHigh": 3000,
308 + "sold": 7424,
309 + "url": "https://www.artcurial.com/en/sales/6557/lots/30-a",
310 + "image": "https://www.artcurial.com/item-images/7c938184-5f66-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/6.jpg?w=400&force_webp=true"
311 + },
312 + {
313 + "lotNo": "31",
314 + "title": "PAIRE DE FLAMBEAUX DE STYLE LOUIS XVI",
315 + "subtitle": null,
316 + "estimateLow": 1500,
317 + "estimateHigh": 2000,
318 + "sold": 3267,
319 + "url": "https://www.artcurial.com/en/sales/6557/lots/31-a",
320 + "image": "https://www.artcurial.com/item-images/8f445b66-5f66-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/7.jpg?w=400&force_webp=true"
321 + },
322 + {
323 + "lotNo": "32",
324 + "title": "PAIRE DE GIRANDOLES DE STYLE NÉOCLASSIQUE",
325 + "subtitle": null,
326 + "estimateLow": 400,
327 + "estimateHigh": 600,
328 + "sold": 594,
329 + "url": "https://www.artcurial.com/en/sales/6557/lots/32-a",
330 + "image": "https://www.artcurial.com/item-images/996c2648-5f66-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/7.jpg?w=400&force_webp=true"
331 + },
332 + {
333 + "lotNo": "33",
334 + "title": "COMMODE SUISSE DE LA DEUXIÈME MOITIÉ DU XVIIIe SIÈCLE, BERNE",
335 + "subtitle": null,
336 + "estimateLow": 5000,
337 + "estimateHigh": 8000,
338 + "sold": 6682,
339 + "url": "https://www.artcurial.com/en/sales/6557/lots/33-a",
340 + "image": "https://www.artcurial.com/item-images/a45b38ca-5f66-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/7.jpg?w=400&force_webp=true"
341 + },
342 + {
343 + "lotNo": "34",
344 + "title": "PAIRE D'APPLIQUES D'ÉPOQUE NÉOCLASSIQUE, TRAVAIL PROBABLEMENT SUÉDOIS DE LA FIN DU XVIIIe SIÈCLE",
345 + "subtitle": null,
346 + "estimateLow": 1500,
347 + "estimateHigh": 2500,
348 + "sold": 2970,
349 + "url": "https://www.artcurial.com/en/sales/6557/lots/34-a",
350 + "image": "https://www.artcurial.com/item-images/0ae62331-5f67-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717_008.jpg?w=400&force_webp=true"
351 + },
352 + {
353 + "lotNo": "35",
354 + "title": "MOBILIER DE SALON ALLEMAND DU DÉBUT DU XIXe SIÈCLE, BERLIN",
355 + "subtitle": null,
356 + "estimateLow": 6000,
357 + "estimateHigh": 8000,
358 + "sold": 8167,
359 + "url": "https://www.artcurial.com/en/sales/6557/lots/35-a",
360 + "image": "https://www.artcurial.com/item-images/db751c62-34bc-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_007.jpg?w=400&force_webp=true"
361 + },
362 + {
363 + "lotNo": "36",
364 + "title": "D’après le modèle Etrusque, Italie",
365 + "subtitle": null,
366 + "estimateLow": 6000,
367 + "estimateHigh": 8000,
368 + "sold": 47515,
369 + "url": "https://www.artcurial.com/en/sales/6557/lots/36-a",
370 + "image": "https://www.artcurial.com/item-images/008e4ee0-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_164.jpg?w=400&force_webp=true"
371 + },
372 + {
373 + "lotNo": "37",
374 + "title": "PORTE-TORCHÈRE ALLEMANDE D'ÉPOQUE NÉOCLASSIQUE",
375 + "subtitle": null,
376 + "estimateLow": 3000,
377 + "estimateHigh": 5000,
378 + "sold": 5197,
379 + "url": "https://www.artcurial.com/en/sales/6557/lots/37-a",
380 + "image": "https://www.artcurial.com/item-images/5183fcea-5f67-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/8.jpg?w=400&force_webp=true"
381 + },
382 + {
383 + "lotNo": "38",
384 + "title": "TABLE DE SALON DE GOÛT NÉO-ÉTRUSQUE",
385 + "subtitle": null,
386 + "estimateLow": 1500,
387 + "estimateHigh": 2000,
388 + "sold": 5939,
389 + "url": "https://www.artcurial.com/en/sales/6557/lots/38-a",
390 + "image": "https://www.artcurial.com/item-images/4a8410ef-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_449.jpg?w=400&force_webp=true"
391 + },
392 + {
393 + "lotNo": "39",
394 + "title": "PAIRE DE TABOURETS CURULES DE STYLE NÉO-ÉTRUSQUE DE LA PREMIÈRE MOITIÉ DU XXe SIÈCLE",
395 + "subtitle": null,
396 + "estimateLow": 1500,
397 + "estimateHigh": 2000,
398 + "sold": 5197,
399 + "url": "https://www.artcurial.com/en/sales/6557/lots/39-a",
400 + "image": "https://www.artcurial.com/item-images/2850d608-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_212.jpg?w=400&force_webp=true"
401 + },
402 + {
403 + "lotNo": "40",
404 + "title": "COFFRE DE LA FIN DU XVIIIe SIÈCLE, TRAVAIL PROBABLEMENT ALLEMAND",
405 + "subtitle": null,
406 + "estimateLow": 2500,
407 + "estimateHigh": 4000,
408 + "sold": 4158,
409 + "url": "https://www.artcurial.com/en/sales/6557/lots/40-a",
410 + "image": "https://www.artcurial.com/item-images/a2a7eaae-334d-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_050.jpg?w=400&force_webp=true"
411 + },
412 + {
413 + "lotNo": "42",
414 + "title": "Allemagne du Sud ou Italie du Nord, seconde moitié du XVIIe siècle",
415 + "subtitle": null,
416 + "estimateLow": 500,
417 + "estimateHigh": 800,
418 + "sold": 1039,
419 + "url": "https://www.artcurial.com/en/sales/6557/lots/42-a",
420 + "image": "https://www.artcurial.com/item-images/ec612514-5a8d-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-470_WEB.jpg?w=400&force_webp=true"
421 + },
422 + {
423 + "lotNo": "44",
424 + "title": "D’après François Anguier (1612-1686), France, début du XIXe siècle",
425 + "subtitle": null,
426 + "estimateLow": 500,
427 + "estimateHigh": 800,
428 + "sold": 742,
429 + "url": "https://www.artcurial.com/en/sales/6557/lots/44-a",
430 + "image": "https://www.artcurial.com/item-images/a9f342dc-5fe8-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/10.jpg?w=400&force_webp=true"
431 + },
432 + {
433 + "lotNo": "45",
434 + "title": "Italie, dans le style du XVIIe siècle, XIXe siècle ou antérieur",
435 + "subtitle": null,
436 + "estimateLow": 400,
437 + "estimateHigh": 600,
438 + "sold": 297,
439 + "url": "https://www.artcurial.com/en/sales/6557/lots/45-a",
440 + "image": "https://www.artcurial.com/item-images/bf0df0cd-5fe8-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/10.jpg?w=400&force_webp=true"
441 + },
442 + {
443 + "lotNo": "46",
444 + "title": "PETIT BOUGEOIR TROMPETTE EN ARGENT",
445 + "subtitle": null,
446 + "estimateLow": 200,
447 + "estimateHigh": 300,
448 + "sold": 148,
449 + "url": "https://www.artcurial.com/en/sales/6557/lots/46-a",
450 + "image": "https://www.artcurial.com/item-images/bd28c745-630b-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/10.jpg?w=400&force_webp=true"
451 + },
452 + {
453 + "lotNo": "47",
454 + "title": "COMMODE SUISSE DU MILIEU DU XVIIIe SIÈCLE",
455 + "subtitle": null,
456 + "estimateLow": 6000,
457 + "estimateHigh": 8000,
458 + "sold": 6682,
459 + "url": "https://www.artcurial.com/en/sales/6557/lots/47-a",
460 + "image": "https://www.artcurial.com/item-images/f4c7251f-5fe8-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/10.jpg?w=400&force_webp=true"
461 + },
462 + {
463 + "lotNo": "48",
464 + "title": "RARE PAIRE DE VASES CORNETS EN PORCELAINE LAQUÉE",
465 + "subtitle": null,
466 + "estimateLow": 7000,
467 + "estimateHigh": 10000,
468 + "sold": 50485,
469 + "url": "https://www.artcurial.com/en/sales/6557/lots/48-a",
470 + "image": "https://www.artcurial.com/item-images/18604479-5a8e-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-058_WEB.jpg?w=400&force_webp=true"
471 + },
472 + {
473 + "lotNo": "49",
474 + "title": "RÉGULATEUR DE PARQUET ALLEMAND D'ÉPOQUE ROCOCO, PROBABLEMENT BERLIN",
475 + "subtitle": null,
476 + "estimateLow": 4000,
477 + "estimateHigh": 6000,
478 + "sold": 3267,
479 + "url": "https://www.artcurial.com/en/sales/6557/lots/49-a",
480 + "image": "https://www.artcurial.com/item-images/eb81ee22-4958-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_409.jpg?w=400&force_webp=true"
481 + },
482 + {
483 + "lotNo": "50",
484 + "title": "Ecole suisse, 1656",
485 + "subtitle": "Portraits de Daniel (1631-1676) et Hans Jacob (1629-1678) Jenner",
486 + "estimateLow": 5000,
487 + "estimateHigh": 7000,
488 + "sold": 8909,
489 + "url": "https://www.artcurial.com/en/sales/6557/lots/50-a",
490 + "image": "https://www.artcurial.com/item-images/7bb6d6dc-6001-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-147_WEB.jpg?w=400&force_webp=true"
491 + },
492 + {
493 + "lotNo": "51",
494 + "title": "GRANDE POTICHE OCTOGONALE EN PORCELAINE ARITA",
495 + "subtitle": null,
496 + "estimateLow": 1000,
497 + "estimateHigh": 1500,
498 + "sold": 4752,
499 + "url": "https://www.artcurial.com/en/sales/6557/lots/51-a",
500 + "image": "https://www.artcurial.com/item-images/35f0a9e1-5fe9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/11.jpg?w=400&force_webp=true"
501 + },
502 + {
503 + "lotNo": "52",
504 + "title": "ENSEMBLE DE COQUILLAGES",
505 + "subtitle": null,
506 + "estimateLow": 1000,
507 + "estimateHigh": 1500,
508 + "sold": 742,
509 + "url": "https://www.artcurial.com/en/sales/6557/lots/52-a",
510 + "image": "https://www.artcurial.com/item-images/4d624022-5fe9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/11.jpg?w=400&force_webp=true"
511 + },
512 + {
513 + "lotNo": "53",
514 + "title": "CABINET DE LA FIN DU XVIIe SIÈCLE, TRAVAIL PROBABLEMENT DE L'ALLEMAGNE DU NORD",
515 + "subtitle": null,
516 + "estimateLow": 3000,
517 + "estimateHigh": 5000,
518 + "sold": 5939,
519 + "url": "https://www.artcurial.com/en/sales/6557/lots/53-a",
520 + "image": "https://www.artcurial.com/item-images/d32cead6-630b-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/11.jpg?w=400&force_webp=true"
521 + },
522 + {
523 + "lotNo": "54",
524 + "title": "GRAND COFFRET DIT \"PETACA\", XVIIe-XVIIIe SIÈCLE",
525 + "subtitle": null,
526 + "estimateLow": 1000,
527 + "estimateHigh": 1500,
528 + "sold": 1485,
529 + "url": "https://www.artcurial.com/en/sales/6557/lots/54-a",
530 + "image": "https://www.artcurial.com/item-images/696915f3-5fe9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/11.jpg?w=400&force_webp=true"
531 + },
532 + {
533 + "lotNo": "55",
534 + "title": "Ecole suisse du XVIIe siècle",
535 + "subtitle": "Portrait du baron Sigmund von Graffenried enfant",
536 + "estimateLow": 4000,
537 + "estimateHigh": 6000,
538 + "sold": 5939,
539 + "url": "https://www.artcurial.com/en/sales/6557/lots/55-a",
540 + "image": "https://www.artcurial.com/item-images/4f37ba0c-5a8e-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-132%20A_WEB.jpg?w=400&force_webp=true"
541 + },
542 + {
543 + "lotNo": "56",
544 + "title": "Franz Niklaus KÖNIG(Berne, 1765 – 1832)",
545 + "subtitle": "Portrait d’Edouard v. Graffenried",
546 + "estimateLow": 2000,
547 + "estimateHigh": 3000,
548 + "sold": 2970,
549 + "url": "https://www.artcurial.com/en/sales/6557/lots/56-a",
550 + "image": "https://www.artcurial.com/item-images/3b0e92ea-5f4c-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-141%20A_WEB.jpg?w=400&force_webp=true"
551 + },
552 + {
553 + "lotNo": "57",
554 + "title": "PENDULE \"QUEUE DE VACHE\", TRAVAIL SUISSE DU XVIIIe SIÈCLE",
555 + "subtitle": null,
556 + "estimateLow": 2500,
557 + "estimateHigh": 4000,
558 + "sold": 2970,
559 + "url": "https://www.artcurial.com/en/sales/6557/lots/57-a",
560 + "image": "https://www.artcurial.com/item-images/317960d0-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/12.jpg?w=400&force_webp=true"
561 + },
562 + {
563 + "lotNo": "58",
564 + "title": "Ecole suisse du XVIIe siècle",
565 + "subtitle": "Portrait de jeune garçon au nœud rouge",
566 + "estimateLow": 1500,
567 + "estimateHigh": 2000,
568 + "sold": 5197,
569 + "url": "https://www.artcurial.com/en/sales/6557/lots/58-a",
570 + "image": "https://www.artcurial.com/item-images/48f49e52-5f4c-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-145%20A_WEB.jpg?w=400&force_webp=true"
571 + },
572 + {
573 + "lotNo": "59",
574 + "title": "Bohème, suiveur du Maître des fonds ornementés, début du XVIIIe siècle",
575 + "subtitle": null,
576 + "estimateLow": 300,
577 + "estimateHigh": 500,
578 + "sold": 668,
579 + "url": "https://www.artcurial.com/en/sales/6557/lots/59-a",
580 + "image": "https://www.artcurial.com/item-images/728d3ab4-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/12.jpg?w=400&force_webp=true"
581 + },
582 + {
583 + "lotNo": "60",
584 + "title": "VASE COUVERT EN PORCELAINE DU JAPON DU XIXe SIÈCLE",
585 + "subtitle": null,
586 + "estimateLow": 400,
587 + "estimateHigh": 600,
588 + "sold": 4009,
589 + "url": "https://www.artcurial.com/en/sales/6557/lots/60-a",
590 + "image": "https://www.artcurial.com/item-images/ef851852-60b1-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/61_1.jpg?w=400&force_webp=true"
591 + },
592 + {
593 + "lotNo": "61",
594 + "title": "VASE COUVERT EN FAÏENCE DE BERLIN DU XIXe SIÈCLE",
595 + "subtitle": null,
596 + "estimateLow": 600,
597 + "estimateHigh": 800,
598 + "sold": 2970,
599 + "url": "https://www.artcurial.com/en/sales/6557/lots/61-a",
600 + "image": "https://www.artcurial.com/item-images/e1848011-60b1-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/61_1.jpg?w=400&force_webp=true"
601 + },
602 + {
603 + "lotNo": "62",
604 + "title": "MIROIR SUISSE DU MILIEU DU XVIIIe SIÈCLE, BERNE",
605 + "subtitle": null,
606 + "estimateLow": 4000,
607 + "estimateHigh": 6000,
608 + "sold": 4455,
609 + "url": "https://www.artcurial.com/en/sales/6557/lots/62-a",
610 + "image": "https://www.artcurial.com/item-images/85580536-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/13.jpg?w=400&force_webp=true"
611 + },
612 + {
613 + "lotNo": "63",
614 + "title": "CONSOLE SUISSE DU MILIEU DU XVIIIe SIÈCLE, BERNE",
615 + "subtitle": null,
616 + "estimateLow": 4000,
617 + "estimateHigh": 6000,
618 + "sold": 4752,
619 + "url": "https://www.artcurial.com/en/sales/6557/lots/63-a",
620 + "image": "https://www.artcurial.com/item-images/9a34e6d8-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/13.jpg?w=400&force_webp=true"
621 + },
622 + {
623 + "lotNo": "64",
624 + "title": "FRAGMENT DE TAPISSERIE DITE « AUX FEUILLES DE CHOUX », DEUXIÈME MOITIÉ DU XVIe SIÈCLE, PROBABLEMENT ATELIERS DE LA MARCHE",
625 + "subtitle": null,
626 + "estimateLow": 3000,
627 + "estimateHigh": 5000,
628 + "sold": 6682,
629 + "url": "https://www.artcurial.com/en/sales/6557/lots/64-a",
630 + "image": "https://www.artcurial.com/item-images/31124f77-4959-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_413.jpg?w=400&force_webp=true"
631 + },
632 + {
633 + "lotNo": "65",
634 + "title": "DEUX STATUETTES DE CHINOIS EN FAÏENCE BLANCHE, XIXe SIÈCLE",
635 + "subtitle": null,
636 + "estimateLow": 300,
637 + "estimateHigh": 500,
638 + "sold": 445,
639 + "url": "https://www.artcurial.com/en/sales/6557/lots/65-a",
640 + "image": "https://www.artcurial.com/item-images/b0ce1e7f-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/14.jpg?w=400&force_webp=true"
641 + },
642 + {
643 + "lotNo": "66",
644 + "title": "CUILLÈRE EN VERRE OPALIN DU PREMIER TIERS DU XVIIIe SIÈCLE, VERS 1720-1730",
645 + "subtitle": null,
646 + "estimateLow": 700,
647 + "estimateHigh": 1000,
648 + "sold": 1782,
649 + "url": "https://www.artcurial.com/en/sales/6557/lots/66-a",
650 + "image": "https://www.artcurial.com/item-images/be026610-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/14.jpg?w=400&force_webp=true"
651 + },
652 + {
653 + "lotNo": "67",
654 + "title": "POTICHE COUVERTE EN PORCELAINE IMARI",
655 + "subtitle": null,
656 + "estimateLow": 600,
657 + "estimateHigh": 800,
658 + "sold": 5939,
659 + "url": "https://www.artcurial.com/en/sales/6557/lots/67-a",
660 + "image": "https://www.artcurial.com/item-images/cd364e33-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/14.jpg?w=400&force_webp=true"
661 + },
662 + {
663 + "lotNo": "68",
664 + "title": "STATUETTE DE SHISHI EN PORCELAINE HIRADO",
665 + "subtitle": null,
666 + "estimateLow": 200,
667 + "estimateHigh": 300,
668 + "sold": 668,
669 + "url": "https://www.artcurial.com/en/sales/6557/lots/68-a",
670 + "image": "https://www.artcurial.com/item-images/db8e0725-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/14.jpg?w=400&force_webp=true"
671 + },
672 + {
673 + "lotNo": "69",
674 + "title": "PAIRE D’ÉLÉPHANTS EN FAÏENCE DE DESVRES DE LA FIN DU XIXe SIÈCLE-DÉBUT DU XXe SIÈCLE, ATELIER DE GEO MARTEL",
675 + "subtitle": null,
676 + "estimateLow": 600,
677 + "estimateHigh": 800,
678 + "sold": 1188,
679 + "url": "https://www.artcurial.com/en/sales/6557/lots/69-a",
680 + "image": "https://www.artcurial.com/item-images/e987c197-5ff9-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/14.jpg?w=400&force_webp=true"
681 + },
682 + {
683 + "lotNo": "70",
684 + "title": "PAIRE DE BOUQUETIÈRES DU XIXe SIÈCLE, TRAVAIL PROBABLEMENT DE LA FORÊT NOIRE",
685 + "subtitle": null,
686 + "estimateLow": 400,
687 + "estimateHigh": 600,
688 + "sold": 4455,
689 + "url": "https://www.artcurial.com/en/sales/6557/lots/70-a",
690 + "image": "https://www.artcurial.com/item-images/d22b27c7-334d-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_086_087.jpg?w=400&force_webp=true"
691 + },
692 + {
693 + "lotNo": "71",
694 + "title": "DEUX GUÉRIDONS PORTE-LUMIÈRE DU XVIIIe SIÈCLE",
695 + "subtitle": null,
696 + "estimateLow": 200,
697 + "estimateHigh": 300,
698 + "sold": 2673,
699 + "url": "https://www.artcurial.com/en/sales/6557/lots/71-a",
700 + "image": "https://www.artcurial.com/item-images/db08e0fe-5a8e-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717_086_087.jpg?w=400&force_webp=true"
701 + },
702 + {
703 + "lotNo": "72",
704 + "title": "Johannes DÜNZ (Brugg, 1645 – Berne, 1736)",
705 + "subtitle": "Fleurs et fruits sur un entablement",
706 + "estimateLow": 4000,
707 + "estimateHigh": 6000,
708 + "sold": 7424,
709 + "url": "https://www.artcurial.com/en/sales/6557/lots/72-a",
710 + "image": "https://www.artcurial.com/item-images/65e1dc85-5f4c-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-130%20A_WEB.jpg?w=400&force_webp=true"
711 + },
712 + {
713 + "lotNo": "73",
714 + "title": "PAIRE DE GIRANDOLES SUISSES DU MILIEU DU XVIIIe SIÈCLE, BERNE",
715 + "subtitle": null,
716 + "estimateLow": 500,
717 + "estimateHigh": 800,
718 + "sold": 4158,
719 + "url": "https://www.artcurial.com/en/sales/6557/lots/73-a",
720 + "image": "https://www.artcurial.com/item-images/14d67cc4-5ffa-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/15.jpg?w=400&force_webp=true"
721 + },
722 + {
723 + "lotNo": "74",
724 + "title": "Johannes DÜNZ( Brugg, 1645 – Berne, 1736)",
725 + "subtitle": "Composition à la coupe de fruits et au bouquet de fleurs sur un entablement",
726 + "estimateLow": 3000,
727 + "estimateHigh": 4000,
728 + "sold": 6682,
729 + "url": "https://www.artcurial.com/en/sales/6557/lots/74-a",
730 + "image": "https://www.artcurial.com/item-images/711b1768-5f4c-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-131%20A_WEB.jpg?w=400&force_webp=true"
731 + },
732 + {
733 + "lotNo": "75",
734 + "title": "COFFRET À BIJOUX, ALLEMAGNE DU SUD, XVIIe SIÈCLE, PROBABLEMENT AUGSBOURG",
735 + "subtitle": null,
736 + "estimateLow": 4000,
737 + "estimateHigh": 6000,
738 + "sold": 7721,
739 + "url": "https://www.artcurial.com/en/sales/6557/lots/75-a",
740 + "image": "https://www.artcurial.com/item-images/d97bd3b9-5ffa-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-075%20A_WEB.jpg?w=400&force_webp=true"
741 + },
742 + {
743 + "lotNo": "76",
744 + "title": "ENSEMBLE DE TROIS PIÈCES DE JEU EN BOIS SCULPTÉ ET TEINTÉ, ALLEMAGNE, EGER, DEUXIÈME MOITIÉ DU XVIIe SIÈCLE",
745 + "subtitle": null,
746 + "estimateLow": 300,
747 + "estimateHigh": 500,
748 + "sold": 2227,
749 + "url": "https://www.artcurial.com/en/sales/6557/lots/76-a",
750 + "image": "https://www.artcurial.com/item-images/ea1284cf-5a8e-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-097_WEB.jpg?w=400&force_webp=true"
751 + },
752 + {
753 + "lotNo": "78",
754 + "title": "CONSOLE D'ÉPOQUE ROCOCO, ALLEMAGNE DU SUD",
755 + "subtitle": null,
756 + "estimateLow": 2500,
757 + "estimateHigh": 4000,
758 + "sold": 2376,
759 + "url": "https://www.artcurial.com/en/sales/6557/lots/78-a",
760 + "image": "https://www.artcurial.com/item-images/5a30f242-495e-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_447.jpg?w=400&force_webp=true"
761 + },
762 + {
763 + "lotNo": "79",
764 + "title": "TABLE DE SALON, TRAVAIL ALLEMAND DE LA PREMIÈRE MOITIÉ DU XVIIIe SIÈCLE",
765 + "subtitle": null,
766 + "estimateLow": 2000,
767 + "estimateHigh": 3000,
768 + "sold": 2227,
769 + "url": "https://www.artcurial.com/en/sales/6557/lots/79-a",
770 + "image": "https://www.artcurial.com/item-images/a3e7fa43-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_428.jpg?w=400&force_webp=true"
771 + },
772 + {
773 + "lotNo": "80",
774 + "title": "Italie, fin XVIe-début XVIIe siècle, d'après un modèle original d'Italie du Nord vers 1500",
775 + "subtitle": null,
776 + "estimateLow": 5000,
777 + "estimateHigh": 8000,
778 + "sold": 25242,
779 + "url": "https://www.artcurial.com/en/sales/6557/lots/80-a",
780 + "image": "https://www.artcurial.com/item-images/50cdf071-5ffb-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-057_WEB.jpg?w=400&force_webp=true"
781 + },
782 + {
783 + "lotNo": "81",
784 + "title": "BOL EN LAQUE ROUGE ET DÉCOR OR",
785 + "subtitle": null,
786 + "estimateLow": 80,
787 + "estimateHigh": 120,
788 + "sold": 742,
789 + "url": "https://www.artcurial.com/en/sales/6557/lots/81-a",
790 + "image": "https://www.artcurial.com/item-images/f7b1c333-5a8e-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-129%20A_WEB.jpg?w=400&force_webp=true"
791 + },
792 + {
793 + "lotNo": "82",
794 + "title": "PETIT COFFRET INDIEN DU XIXe SIÈCLE",
795 + "subtitle": null,
796 + "estimateLow": 600,
797 + "estimateHigh": 800,
798 + "sold": 1039,
799 + "url": "https://www.artcurial.com/en/sales/6557/lots/82-a",
800 + "image": "https://www.artcurial.com/item-images/15ce0b87-5a8f-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-091_WEB.jpg?w=400&force_webp=true"
801 + },
802 + {
803 + "lotNo": "83",
804 + "title": "MIROIR ALLEMAND D'ÉPOQUE ROCOCO, MUNICH",
805 + "subtitle": null,
806 + "estimateLow": 4000,
807 + "estimateHigh": 6000,
808 + "sold": 7721,
809 + "url": "https://www.artcurial.com/en/sales/6557/lots/83-a",
810 + "image": "https://www.artcurial.com/item-images/82b82c84-38a5-11f1-bef4-f918d58faf87/PICTURE_CATALOG/26112717_400.jpg?w=400&force_webp=true"
811 + },
812 + {
813 + "lotNo": "84",
814 + "title": "TABLE DE MILIEU, TRAVAIL ALLEMAND DE LA DEUXIÈME MOITIÉ DU XVIIIe SIÈCLE, PROBABLEMENT EICHSTÄTT",
815 + "subtitle": null,
816 + "estimateLow": 4000,
817 + "estimateHigh": 6000,
818 + "sold": 5939,
819 + "url": "https://www.artcurial.com/en/sales/6557/lots/84-a",
820 + "image": "https://www.artcurial.com/item-images/ba349886-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_425.jpg?w=400&force_webp=true"
821 + },
822 + {
823 + "lotNo": "85",
824 + "title": "TABLE À JEUX SUISSE DU MILIEU DU XVIIIe SIÈCLE, BERNE",
825 + "subtitle": null,
826 + "estimateLow": 600,
827 + "estimateHigh": 800,
828 + "sold": 891,
829 + "url": "https://www.artcurial.com/en/sales/6557/lots/85-a",
830 + "image": "https://www.artcurial.com/item-images/faa0b1db-34bc-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_068.jpg?w=400&force_webp=true"
831 + },
832 + {
833 + "lotNo": "86",
834 + "title": "BOÎTE À THÉ, TRAVAIL ALLEMAND DE LA DEUXIÈME MOITIÉ DU XVIIIe SIÈCLE",
835 + "subtitle": null,
836 + "estimateLow": 1000,
837 + "estimateHigh": 1500,
838 + "sold": 1188,
839 + "url": "https://www.artcurial.com/en/sales/6557/lots/86-a",
840 + "image": "https://www.artcurial.com/item-images/202e7132-4952-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_183.jpg?w=400&force_webp=true"
841 + },
842 + {
843 + "lotNo": "87",
844 + "title": "BOÎTE À THÉ, TRAVAIL ALLEMAND DE LA DEUXIEME MOITIÉ DU XVIIIe SIÈCLE",
845 + "subtitle": null,
846 + "estimateLow": 1200,
847 + "estimateHigh": 1800,
848 + "sold": 1188,
849 + "url": "https://www.artcurial.com/en/sales/6557/lots/87-a",
850 + "image": "https://www.artcurial.com/item-images/eca81d16-52a4-11f1-a35b-affe5ba35167/PICTURE_CATALOG/26112717_183.jpg?w=400&force_webp=true"
851 + },
852 + {
853 + "lotNo": "88",
854 + "title": "ENSEMBLE DE MINÉRAUX BRUTS",
855 + "subtitle": null,
856 + "estimateLow": 1500,
857 + "estimateHigh": 2500,
858 + "sold": 5494,
859 + "url": "https://www.artcurial.com/en/sales/6557/lots/88-a",
860 + "image": "https://www.artcurial.com/item-images/ac402053-5ffb-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/17.jpg?w=400&force_webp=true"
861 + },
862 + {
863 + "lotNo": "89",
864 + "title": "CONSOLE D'ÉPOQUE RÉGENCE",
865 + "subtitle": null,
866 + "estimateLow": 10000,
867 + "estimateHigh": 15000,
868 + "sold": 7424,
869 + "url": "https://www.artcurial.com/en/sales/6557/lots/89-a",
870 + "image": "https://www.artcurial.com/item-images/35372404-2db5-11f1-8fc6-afcd4e9863e0/PICTURE_CATALOG/26112717_177.jpg?w=400&force_webp=true"
871 + },
872 + {
873 + "lotNo": "90",
874 + "title": "MIROIR PORTATIF, LA PLAQUE ARRIÈRE XVIIe SIÈCLE, ATTRIBUÉE A VICTOR BIELER, LE CADRE PAR ALFRED ANDRÉ, PARIS, XIXe SIÈCLE",
875 + "subtitle": null,
876 + "estimateLow": 4000,
877 + "estimateHigh": 6000,
878 + "sold": 11136,
879 + "url": "https://www.artcurial.com/en/sales/6557/lots/90-a",
880 + "image": "https://www.artcurial.com/item-images/2596b9a1-5a8f-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-076%20A_WEB.jpg?w=400&force_webp=true"
881 + },
882 + {
883 + "lotNo": "91",
884 + "title": "MIROIR SUISSE DE LA PREMIÈRE MOITIÉ DU XVIIIe SIÈCLE, PROBABLEMENT BÂLE",
885 + "subtitle": null,
886 + "estimateLow": 2000,
887 + "estimateHigh": 3000,
888 + "sold": 3267,
889 + "url": "https://www.artcurial.com/en/sales/6557/lots/91-a",
890 + "image": "https://www.artcurial.com/item-images/873b206c-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_437.jpg?w=400&force_webp=true"
891 + },
892 + {
893 + "lotNo": "92",
894 + "title": "CABINET D'ÉPOQUE RENAISSANCE, BOURGOGNE, XVIe SIÈCLE",
895 + "subtitle": null,
896 + "estimateLow": 4000,
897 + "estimateHigh": 6000,
898 + "sold": 3712,
899 + "url": "https://www.artcurial.com/en/sales/6557/lots/92-a",
900 + "image": "https://www.artcurial.com/item-images/0ea92c7d-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_182.jpg?w=400&force_webp=true"
901 + },
902 + {
903 + "lotNo": "93",
904 + "title": "COFFRE SUISSE DU XVIIe SIÈCLE, DATÉ 1618",
905 + "subtitle": null,
906 + "estimateLow": 3000,
907 + "estimateHigh": 5000,
908 + "sold": 2227,
909 + "url": "https://www.artcurial.com/en/sales/6557/lots/93-a",
910 + "image": "https://www.artcurial.com/item-images/5135804c-34be-11f1-a009-2939728b572b/PICTURE_CATALOG/2611271727_451.jpg?w=400&force_webp=true"
911 + },
912 + {
913 + "lotNo": "94",
914 + "title": "TABLE DE MILIEU, TRAVAIL ALLEMAND, PROBABLEMENT BERLIN, FIN DU XVIIe-DÉBUT DU XVIIIe SIÈCLE",
915 + "subtitle": null,
916 + "estimateLow": 3000,
917 + "estimateHigh": 5000,
918 + "sold": 3712,
919 + "url": "https://www.artcurial.com/en/sales/6557/lots/94-a",
920 + "image": "https://www.artcurial.com/item-images/c27d0692-334d-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_074.jpg?w=400&force_webp=true"
921 + },
922 + {
923 + "lotNo": "95",
924 + "title": "GUÉRIDON QAJAR, PERSE, XIXe SIÈCLE",
925 + "subtitle": null,
926 + "estimateLow": 600,
927 + "estimateHigh": 800,
928 + "sold": 5939,
929 + "url": "https://www.artcurial.com/en/sales/6557/lots/95-a",
930 + "image": "https://www.artcurial.com/item-images/05e2783c-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_109.jpg?w=400&force_webp=true"
931 + },
932 + {
933 + "lotNo": "96",
934 + "title": "TABLE D'APPOINT, TRAVAIL PROBABLEMENT INDIEN DE LA FIN DU XIXe SIÈCLE",
935 + "subtitle": null,
936 + "estimateLow": 400,
937 + "estimateHigh": 600,
938 + "sold": 1782,
939 + "url": "https://www.artcurial.com/en/sales/6557/lots/96-a",
940 + "image": "https://www.artcurial.com/item-images/d9f7eba8-334d-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_090.jpg?w=400&force_webp=true"
941 + },
942 + {
943 + "lotNo": "97",
944 + "title": "STATUETTE DE VAISHNAVI EN BRONZE DORÉ",
945 + "subtitle": null,
946 + "estimateLow": 2000,
947 + "estimateHigh": 4000,
948 + "sold": 2970,
949 + "url": "https://www.artcurial.com/en/sales/6557/lots/97-a",
950 + "image": "https://www.artcurial.com/item-images/315a3323-5a8f-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-121_WEB.jpg?w=400&force_webp=true"
951 + },
952 + {
953 + "lotNo": "98",
954 + "title": "PANNEAU DE QUATRE CARREAUX HISPANO-MAURESQUES",
955 + "subtitle": null,
956 + "estimateLow": 400,
957 + "estimateHigh": 600,
958 + "sold": 891,
959 + "url": "https://www.artcurial.com/en/sales/6557/lots/98-a",
960 + "image": "https://www.artcurial.com/item-images/e1db6c71-5ffb-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/18.jpg?w=400&force_webp=true"
961 + },
962 + {
963 + "lotNo": "99",
964 + "title": "Ecole suisse du XVIIIe siècle",
965 + "subtitle": "Portrait de chien portant sur son collier les initiales E. L. H. de son maître",
966 + "estimateLow": 400,
967 + "estimateHigh": 600,
968 + "sold": 3861,
969 + "url": "https://www.artcurial.com/en/sales/6557/lots/99-a",
970 + "image": "https://www.artcurial.com/item-images/8196e8df-5f4c-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-138%20A_WEB.jpg?w=400&force_webp=true"
971 + },
972 + {
973 + "lotNo": "100",
974 + "title": "PORTE-TORCHÈRE ITALIENNE D'ÉPOQUE BAROQUE, TRAVAIL PROBABLEMENT ROMAIN",
975 + "subtitle": null,
976 + "estimateLow": 4000,
977 + "estimateHigh": 6000,
978 + "sold": 12918,
979 + "url": "https://www.artcurial.com/en/sales/6557/lots/100-a",
980 + "image": "https://www.artcurial.com/item-images/b92186b7-39a5-11f1-bef4-f918d58faf87/PICTURE_CATALOG/Suisse-26.02.25-92921.jpg?w=400&force_webp=true"
981 + },
982 + {
983 + "lotNo": "101",
984 + "title": "TROPHÉE DE CHASSE DE LA FIN DU XVIIe-DÉBUT DU XVIIIe SIÈCLE",
985 + "subtitle": null,
986 + "estimateLow": 2000,
987 + "estimateHigh": 3000,
988 + "sold": 3861,
989 + "url": "https://www.artcurial.com/en/sales/6557/lots/101-a",
990 + "image": "https://www.artcurial.com/item-images/5940b0f5-4951-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_156.jpg?w=400&force_webp=true"
991 + },
992 + {
993 + "lotNo": "102",
994 + "title": "PAIRE DE GIRANDOLES SUISSES DU MILIEU DU XVIIIe SIÈCLE, BERNE",
995 + "subtitle": null,
996 + "estimateLow": 1500,
997 + "estimateHigh": 2000,
998 + "sold": 4455,
999 + "url": "https://www.artcurial.com/en/sales/6557/lots/102-a",
1000 + "image": "https://www.artcurial.com/item-images/75455553-38a5-11f1-bef4-f918d58faf87/PICTURE_CATALOG/26112717_387.jpg?w=400&force_webp=true"
1001 + },
1002 + {
1003 + "lotNo": "103",
1004 + "title": "BANQUETTE NÉO-GOTHIQUE DU MILIEU DU XIXe SIÈCLE, PROBABLEMENT SUISSE",
1005 + "subtitle": null,
1006 + "estimateLow": 700,
1007 + "estimateHigh": 1000,
1008 + "sold": 1930,
1009 + "url": "https://www.artcurial.com/en/sales/6557/lots/103-a",
1010 + "image": "https://www.artcurial.com/item-images/d983d7e3-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_444.jpg?w=400&force_webp=true"
1011 + },
1012 + {
1013 + "lotNo": "104",
1014 + "title": "PLATEAU DE TABLE, ALLEMAGNE DU SUD, PROBABLEMENT AUGSBOURG, FIN DU XVIe SIÈCLE",
1015 + "subtitle": null,
1016 + "estimateLow": 1500,
1017 + "estimateHigh": 2000,
1018 + "sold": 6682,
1019 + "url": "https://www.artcurial.com/en/sales/6557/lots/104-a",
1020 + "image": "https://www.artcurial.com/item-images/287eb24b-3350-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_230.jpg?w=400&force_webp=true"
1021 + },
1022 + {
1023 + "lotNo": "105",
1024 + "title": "MIROIR SUISSE DU PREMIER QUART DU XIXe SIÈCLE, BERNE",
1025 + "subtitle": null,
1026 + "estimateLow": 1200,
1027 + "estimateHigh": 1800,
1028 + "sold": 1485,
1029 + "url": "https://www.artcurial.com/en/sales/6557/lots/105-a",
1030 + "image": "https://www.artcurial.com/item-images/e3e6fa38-38a4-11f1-bef4-f918d58faf87/PICTURE_CATALOG/26112717_154.jpg?w=400&force_webp=true"
1031 + },
1032 + {
1033 + "lotNo": "106",
1034 + "title": "CONSOLE SUISSE DE LA FIN DU XVIIIe SIÈCLE, BERNE",
1035 + "subtitle": null,
1036 + "estimateLow": 2500,
1037 + "estimateHigh": 4000,
1038 + "sold": 2970,
1039 + "url": "https://www.artcurial.com/en/sales/6557/lots/106-a",
1040 + "image": "https://www.artcurial.com/item-images/ef62b56c-334d-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_151.jpg?w=400&force_webp=true"
1041 + },
1042 + {
1043 + "lotNo": "107",
1044 + "title": "SUITE DE QUATRE APPLIQUES DONT DEUX DU XVIIIe SIÈCLE",
1045 + "subtitle": null,
1046 + "estimateLow": 1000,
1047 + "estimateHigh": 1500,
1048 + "sold": 1782,
1049 + "url": "https://www.artcurial.com/en/sales/6557/lots/107-a",
1050 + "image": "https://www.artcurial.com/item-images/eb1007e5-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_468.jpg?w=400&force_webp=true"
1051 + },
1052 + {
1053 + "lotNo": "109",
1054 + "title": "Germán GEDOVIUS(Mexico, 1867 - 1937)",
1055 + "subtitle": "Autoportrait de l'artiste",
1056 + "estimateLow": 3000,
1057 + "estimateHigh": 4000,
1058 + "sold": 4455,
1059 + "url": "https://www.artcurial.com/en/sales/6557/lots/109-a",
1060 + "image": "https://www.artcurial.com/item-images/40fd57da-5a8f-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-354%20A_WEB.jpg?w=400&force_webp=true"
1061 + },
1062 + {
1063 + "lotNo": "110",
1064 + "title": "Giovanni Pichler (Italie, 1734-1791) ou Luigi Pichler (Italie, 1773-1854)",
1065 + "subtitle": null,
1066 + "estimateLow": 300,
1067 + "estimateHigh": 500,
1068 + "sold": 6236,
1069 + "url": "https://www.artcurial.com/en/sales/6557/lots/110-a",
1070 + "image": "https://www.artcurial.com/item-images/52c690e1-5a8f-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-081_WEB.jpg?w=400&force_webp=true"
1071 + },
1072 + {
1073 + "lotNo": "111",
1074 + "title": "PAIRE DE FLAMBEAUX-TROMPETTES EN ARGENT, AVEC LEUR BOBÈCHE",
1075 + "subtitle": null,
1076 + "estimateLow": 500,
1077 + "estimateHigh": 800,
1078 + "sold": 1336,
1079 + "url": "https://www.artcurial.com/en/sales/6557/lots/111-a",
1080 + "image": "https://www.artcurial.com/item-images/69ca4a25-5a8f-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-010_WEB.jpg?w=400&force_webp=true"
1081 + },
1082 + {
1083 + "lotNo": "112",
1084 + "title": "CRUCIFIX EN ARGENT ET BOIS NOIRCI",
1085 + "subtitle": null,
1086 + "estimateLow": 1500,
1087 + "estimateHigh": 2000,
1088 + "sold": 1188,
1089 + "url": "https://www.artcurial.com/en/sales/6557/lots/112-a",
1090 + "image": "https://www.artcurial.com/item-images/db5229cb-5a8f-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-149%20A_WEB.jpg?w=400&force_webp=true"
1091 + },
1092 + {
1093 + "lotNo": "113",
1094 + "title": "CALICE VÉNITIEN DANS LE STYLE DU XVIIe SIÈCLE, XXe SIÈCLE",
1095 + "subtitle": null,
1096 + "estimateLow": 300,
1097 + "estimateHigh": 500,
1098 + "sold": 297,
1099 + "url": "https://www.artcurial.com/en/sales/6557/lots/113-a",
1100 + "image": "https://www.artcurial.com/item-images/f421c96d-5a8f-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-077_WEB.jpg?w=400&force_webp=true"
1101 + },
1102 + {
1103 + "lotNo": "114",
1104 + "title": "CONSOLE ALLEMANDE DE LA PREMIÈRE MOITIÉ DU XVIIIe SIÈCLE, PROBABLEMENT ALLEMAGNE DU SUD",
1105 + "subtitle": null,
1106 + "estimateLow": 1000,
1107 + "estimateHigh": 1500,
1108 + "sold": 1485,
1109 + "url": "https://www.artcurial.com/en/sales/6557/lots/114-a",
1110 + "image": "https://www.artcurial.com/item-images/06aab928-3350-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_416.jpg?w=400&force_webp=true"
1111 + },
1112 + {
1113 + "lotNo": "115",
1114 + "title": "PORTE-CARTES ANGLAIS DE STYLE REGENCY",
1115 + "subtitle": null,
1116 + "estimateLow": 700,
1117 + "estimateHigh": 1000,
1118 + "sold": 3712,
1119 + "url": "https://www.artcurial.com/en/sales/6557/lots/115-a",
1120 + "image": "https://www.artcurial.com/item-images/6e1fe727-4952-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_204.jpg?w=400&force_webp=true"
1121 + },
1122 + {
1123 + "lotNo": "116",
1124 + "title": "PAIRE DE CHAISES SUISSES DU MILIEU DU XVIIIe SIÈCLE, BERNE",
1125 + "subtitle": null,
1126 + "estimateLow": 200,
1127 + "estimateHigh": 300,
1128 + "sold": 297,
1129 + "url": "https://www.artcurial.com/en/sales/6557/lots/116-a",
1130 + "image": "https://www.artcurial.com/item-images/21ec0697-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_209.jpg?w=400&force_webp=true"
1131 + },
1132 + {
1133 + "lotNo": "117",
1134 + "title": "Albrecht SCHNIDER(born in 1958)",
1135 + "subtitle": "Sans titre - 1998",
1136 + "estimateLow": 2000,
1137 + "estimateHigh": 3000,
1138 + "sold": 4752,
1139 + "url": "https://www.artcurial.com/en/sales/6557/lots/117-a",
1140 + "image": "https://www.artcurial.com/item-images/ddd02540-3fb6-11f1-885b-a56624f1cc36/PICTURE_CATALOG/26112717-162A_260422.jpg?w=400&force_webp=true"
1141 + },
1142 + {
1143 + "lotNo": "118",
1144 + "title": "Allemagne, début du XIXe siècle",
1145 + "subtitle": null,
1146 + "estimateLow": 300,
1147 + "estimateHigh": 500,
1148 + "sold": 445,
1149 + "url": "https://www.artcurial.com/en/sales/6557/lots/118-a",
1150 + "image": "https://www.artcurial.com/item-images/5700be23-5ffc-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/19.jpg?w=400&force_webp=true"
1151 + },
1152 + {
1153 + "lotNo": "119",
1154 + "title": "Ecole européenne, 1830",
1155 + "subtitle": "Vue d’un intérieur à Saint Pétersbourg",
1156 + "estimateLow": 300,
1157 + "estimateHigh": 500,
1158 + "sold": 3712,
1159 + "url": "https://www.artcurial.com/en/sales/6557/lots/119-a",
1160 + "image": "https://www.artcurial.com/item-images/524cfeca-5a90-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-344%20A_WEB.jpg?w=400&force_webp=true"
1161 + },
1162 + {
1163 + "lotNo": "120",
1164 + "title": "Ecole européenne du XIXe siècle",
1165 + "subtitle": null,
1166 + "estimateLow": 400,
1167 + "estimateHigh": 600,
1168 + "sold": 6682,
1169 + "url": "https://www.artcurial.com/en/sales/6557/lots/120-a",
1170 + "image": "https://www.artcurial.com/item-images/649d692f-5a90-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-358%20A_WEB.jpg?w=400&force_webp=true"
1171 + },
1172 + {
1173 + "lotNo": "121",
1174 + "title": "LUSTRE D'ÉPOQUE NÉOCLASSIQUE, TRAVAIL ALLEMAND OU SUÉDOIS",
1175 + "subtitle": null,
1176 + "estimateLow": 2500,
1177 + "estimateHigh": 4000,
1178 + "sold": 4455,
1179 + "url": "https://www.artcurial.com/en/sales/6557/lots/121-a",
1180 + "image": "https://www.artcurial.com/item-images/65fcde82-4958-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_395.jpg?w=400&force_webp=true"
1181 + },
1182 + {
1183 + "lotNo": "122",
1184 + "title": "BUREAU-SCRIBAN SUISSE DE LA PREMIÈRE MOITIÉ DU XVIIIe SIÈCLE, BERNE",
1185 + "subtitle": null,
1186 + "estimateLow": 5000,
1187 + "estimateHigh": 8000,
1188 + "sold": 4158,
1189 + "url": "https://www.artcurial.com/en/sales/6557/lots/122-a",
1190 + "image": "https://www.artcurial.com/item-images/23d873e4-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_206.jpg?w=400&force_webp=true"
1191 + },
1192 + {
1193 + "lotNo": "123",
1194 + "title": "MAQUETTE DE PORCHE D’ENTRÉE, TRAVAIL ANGLAIS DU PREMIER QUART DU XIXe SIÈCLE",
1195 + "subtitle": null,
1196 + "estimateLow": 2500,
1197 + "estimateHigh": 4000,
1198 + "sold": 3712,
1199 + "url": "https://www.artcurial.com/en/sales/6557/lots/123-a",
1200 + "image": "https://www.artcurial.com/item-images/2a10b515-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_210.jpg?w=400&force_webp=true"
1201 + },
1202 + {
1203 + "lotNo": "124",
1204 + "title": "TABLE DE MILIEU, TRAVAIL ANGLAIS DE LA FIN DU XVIIIe SIÈCLE",
1205 + "subtitle": null,
1206 + "estimateLow": 2000,
1207 + "estimateHigh": 3000,
1208 + "sold": 2970,
1209 + "url": "https://www.artcurial.com/en/sales/6557/lots/124-a",
1210 + "image": "https://www.artcurial.com/item-images/ff668635-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_417.jpg?w=400&force_webp=true"
1211 + },
1212 + {
1213 + "lotNo": "125",
1214 + "title": "BIBLIOTHÈQUE BASSE ALLEMANDE DE LA FIN DU XVIIIe SIÈCLE, KARLSRUHE",
1215 + "subtitle": null,
1216 + "estimateLow": 2000,
1217 + "estimateHigh": 3000,
1218 + "sold": 1262,
1219 + "url": "https://www.artcurial.com/en/sales/6557/lots/125-a",
1220 + "image": "https://www.artcurial.com/item-images/00833ca4-34be-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_414.jpg?w=400&force_webp=true"
1221 + },
1222 + {
1223 + "lotNo": "126",
1224 + "title": "ENCRIER D'ÉPOQUE NÉOCLASSIQUE, TRAVAIL PROBABLEMENT ANGLAIS",
1225 + "subtitle": null,
1226 + "estimateLow": 400,
1227 + "estimateHigh": 600,
1228 + "sold": 2970,
1229 + "url": "https://www.artcurial.com/en/sales/6557/lots/126-a",
1230 + "image": "https://www.artcurial.com/item-images/fb0f0d73-5a90-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717_476.jpg?w=400&force_webp=true"
1231 + },
1232 + {
1233 + "lotNo": "127",
1234 + "title": "GUÉRIDON ANGLAIS DE LA FIN DE L'ÉPOQUE GEORGE III, VERS 1800",
1235 + "subtitle": null,
1236 + "estimateLow": 300,
1237 + "estimateHigh": 500,
1238 + "sold": 445,
1239 + "url": "https://www.artcurial.com/en/sales/6557/lots/127-a",
1240 + "image": "https://www.artcurial.com/item-images/4800b6ab-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_217.jpg?w=400&force_webp=true"
1241 + },
1242 + {
1243 + "lotNo": "128",
1244 + "title": "CONSOLE ANGLAISE D'ÉPOQUE GEORGE III",
1245 + "subtitle": null,
1246 + "estimateLow": 1500,
1247 + "estimateHigh": 2000,
1248 + "sold": 3267,
1249 + "url": "https://www.artcurial.com/en/sales/6557/lots/128-a",
1250 + "image": "https://www.artcurial.com/item-images/7b7228a9-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_440.jpg?w=400&force_webp=true"
1251 + },
1252 + {
1253 + "lotNo": "129",
1254 + "title": "TABLE D'APPOINT ANGLAISE D'ÉPOQUE GEORGE II",
1255 + "subtitle": null,
1256 + "estimateLow": 700,
1257 + "estimateHigh": 1000,
1258 + "sold": 1188,
1259 + "url": "https://www.artcurial.com/en/sales/6557/lots/129-a",
1260 + "image": "https://www.artcurial.com/item-images/0cdd2df9-3350-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_415.jpg?w=400&force_webp=true"
1261 + },
1262 + {
1263 + "lotNo": "130",
1264 + "title": "FAUTEUIL D'ÉPOQUE NÉOCLASSIQUE",
1265 + "subtitle": null,
1266 + "estimateLow": 600,
1267 + "estimateHigh": 800,
1268 + "sold": 2673,
1269 + "url": "https://www.artcurial.com/en/sales/6557/lots/130-a",
1270 + "image": "https://www.artcurial.com/item-images/75a15bd8-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_441.jpg?w=400&force_webp=true"
1271 + },
1272 + {
1273 + "lotNo": "131",
1274 + "title": "James Isaac ANDERSON (1813-1877)",
1275 + "subtitle": null,
1276 + "estimateLow": 200,
1277 + "estimateHigh": 300,
1278 + "sold": 5939,
1279 + "url": "https://www.artcurial.com/en/sales/6557/lots/131-a",
1280 + "image": "https://www.artcurial.com/item-images/9cee0c85-5ffc-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/20.jpg?w=400&force_webp=true"
1281 + },
1282 + {
1283 + "lotNo": "132",
1284 + "title": "ENSEMBLE DE TROIS « SOUVENIRS DE GRAND TOUR » EN BRONZE ET MARBRE, ITALIE, D’APRÈS L’ANTIQUE",
1285 + "subtitle": null,
1286 + "estimateLow": 600,
1287 + "estimateHigh": 800,
1288 + "sold": 297,
1289 + "url": "https://www.artcurial.com/en/sales/6557/lots/132-a",
1290 + "image": "https://www.artcurial.com/item-images/ab176276-5ffc-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/20.jpg?w=400&force_webp=true"
1291 + },
1292 + {
1293 + "lotNo": "133",
1294 + "title": "Italie, fin du XIXe siècle",
1295 + "subtitle": null,
1296 + "estimateLow": 300,
1297 + "estimateHigh": 500,
1298 + "sold": 371,
1299 + "url": "https://www.artcurial.com/en/sales/6557/lots/133-a",
1300 + "image": "https://www.artcurial.com/item-images/b70d5daa-5ffc-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/20.jpg?w=400&force_webp=true"
1301 + },
1302 + {
1303 + "lotNo": "134",
1304 + "title": "BOÎTE MÉCANIQUE DE LA FIN DU XVIIIe SIÈCLE, TRAVAIL DE L'EUROPE DU NORD",
1305 + "subtitle": null,
1306 + "estimateLow": 2500,
1307 + "estimateHigh": 4000,
1308 + "sold": 1485,
1309 + "url": "https://www.artcurial.com/en/sales/6557/lots/134-a",
1310 + "image": "https://www.artcurial.com/item-images/c5e8505c-5ffc-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/20.jpg?w=400&force_webp=true"
1311 + },
1312 + {
1313 + "lotNo": "135",
1314 + "title": "Italie, fin du XIVe siècle",
1315 + "subtitle": "Page d'antiphonaire avec une lettrine S représentant le couronnement de la Vierge",
1316 + "estimateLow": 2000,
1317 + "estimateHigh": 3000,
1318 + "sold": 2970,
1319 + "url": "https://www.artcurial.com/en/sales/6557/lots/135-a",
1320 + "image": "https://www.artcurial.com/item-images/3f344612-5a91-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-222%20A_WEB.jpg?w=400&force_webp=true"
1321 + },
1322 + {
1323 + "lotNo": "136",
1324 + "title": "TENTURE BARGELLO, ITALIE, XVIIe-XVIIIe SIÈCLE",
1325 + "subtitle": null,
1326 + "estimateLow": 2000,
1327 + "estimateHigh": 4000,
1328 + "sold": 5197,
1329 + "url": "https://www.artcurial.com/en/sales/6557/lots/136-a",
1330 + "image": "https://www.artcurial.com/item-images/dfb1f175-4963-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_471.jpg?w=400&force_webp=true"
1331 + },
1332 + {
1333 + "lotNo": "138",
1334 + "title": "MIROIR DE LA FIN DU XVIIIe SIÈCLE, ALLEMAGNE DU NORD",
1335 + "subtitle": null,
1336 + "estimateLow": 2000,
1337 + "estimateHigh": 3000,
1338 + "sold": 2970,
1339 + "url": "https://www.artcurial.com/en/sales/6557/lots/138-a",
1340 + "image": "https://www.artcurial.com/item-images/f0fb9363-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_419.jpg?w=400&force_webp=true"
1341 + },
1342 + {
1343 + "lotNo": "139",
1344 + "title": "Ecole suisse du début du XVIIIe siècle",
1345 + "subtitle": "Portrait de femme et portrait d’homme",
1346 + "estimateLow": 2000,
1347 + "estimateHigh": 3000,
1348 + "sold": 4455,
1349 + "url": "https://www.artcurial.com/en/sales/6557/lots/139-a",
1350 + "image": "https://www.artcurial.com/item-images/917ae42e-6001-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-199_WEB.jpg?w=400&force_webp=true"
1351 + },
1352 + {
1353 + "lotNo": "140",
1354 + "title": "SECRÉTAIRE À ABATTANT SUISSE DE LA FIN DU XVIIIe SIÈCLE, BERNE",
1355 + "subtitle": null,
1356 + "estimateLow": 2000,
1357 + "estimateHigh": 3000,
1358 + "sold": 1930,
1359 + "url": "https://www.artcurial.com/en/sales/6557/lots/140-a",
1360 + "image": "https://www.artcurial.com/item-images/2fc85496-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_211.jpg?w=400&force_webp=true"
1361 + },
1362 + {
1363 + "lotNo": "141",
1364 + "title": "PANNEAU DE LA DEUXIÈME MOITIÉ DU XVIIIe SIÈCLE, ATTRIBUÉ À THOMAS COMPIGNÉ",
1365 + "subtitle": null,
1366 + "estimateLow": 600,
1367 + "estimateHigh": 800,
1368 + "sold": 5642,
1369 + "url": "https://www.artcurial.com/en/sales/6557/lots/141-a",
1370 + "image": "https://www.artcurial.com/item-images/6256df4e-5a91-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-337_WEB.jpg?w=400&force_webp=true"
1371 + },
1372 + {
1373 + "lotNo": "142",
1374 + "title": "Attribué à Maximilien de MEURON( Corcelles-près-Concise, 1785 - Neuchâtel, 1868)",
1375 + "subtitle": "Chalet d'alpage au pied d'une cascade de montagne dans la vallée de Meiringen",
1376 + "estimateLow": 800,
1377 + "estimateHigh": 1200,
1378 + "sold": 1039,
1379 + "url": "https://www.artcurial.com/en/sales/6557/lots/142-a",
1380 + "image": "https://www.artcurial.com/item-images/6ce00410-5a91-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-348%20A_WEB.jpg?w=400&force_webp=true"
1381 + },
1382 + {
1383 + "lotNo": "143",
1384 + "title": "TAPIS D’AUBUSSON DE LA PREMIÈRE MOITIÉ DU XIXe SIÈCLE, FRANCE, VERS 1840",
1385 + "subtitle": null,
1386 + "estimateLow": 1500,
1387 + "estimateHigh": 2000,
1388 + "sold": 2524,
1389 + "url": "https://www.artcurial.com/en/sales/6557/lots/143-a",
1390 + "image": "https://www.artcurial.com/item-images/ac3c1a10-4954-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_308.jpg?w=400&force_webp=true"
1391 + },
1392 + {
1393 + "lotNo": "144",
1394 + "title": "BOÎTE À LETTRES, TRAVAIL ALLEMAND DE LA FIN DU XVIIIe SIÈCLE",
1395 + "subtitle": null,
1396 + "estimateLow": 2500,
1397 + "estimateHigh": 4000,
1398 + "sold": 2524,
1399 + "url": "https://www.artcurial.com/en/sales/6557/lots/144-a",
1400 + "image": "https://www.artcurial.com/item-images/14d29dbd-4953-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_235.jpg?w=400&force_webp=true"
1401 + },
1402 + {
1403 + "lotNo": "145",
1404 + "title": "BOÎTE MÉCANIQUE, TRAVAIL ALLEMAND DE LA FIN DU XVIIIe SIÈCLE",
1405 + "subtitle": null,
1406 + "estimateLow": 3000,
1407 + "estimateHigh": 4000,
1408 + "sold": 5197,
1409 + "url": "https://www.artcurial.com/en/sales/6557/lots/145-a",
1410 + "image": "https://www.artcurial.com/item-images/46d95160-4953-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_240.jpg?w=400&force_webp=true"
1411 + },
1412 + {
1413 + "lotNo": "146",
1414 + "title": "PAIRE DE FAUTEUILS À CHÂSSIS DE STYLE LOUIS XV",
1415 + "subtitle": null,
1416 + "estimateLow": 1500,
1417 + "estimateHigh": 2000,
1418 + "sold": 1485,
1419 + "url": "https://www.artcurial.com/en/sales/6557/lots/146-a",
1420 + "image": "https://www.artcurial.com/item-images/1221aad4-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_180.jpg?w=400&force_webp=true"
1421 + },
1422 + {
1423 + "lotNo": "147",
1424 + "title": "BUREAU-SCRIBAN SUISSE DU TROISIÈME QUART DU XVIIIe SIÈCLE, BERNE",
1425 + "subtitle": null,
1426 + "estimateLow": 3000,
1427 + "estimateHigh": 5000,
1428 + "sold": 2376,
1429 + "url": "https://www.artcurial.com/en/sales/6557/lots/147-a",
1430 + "image": "https://www.artcurial.com/item-images/1ad74816-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_185.jpg?w=400&force_webp=true"
1431 + },
1432 + {
1433 + "lotNo": "148",
1434 + "title": "COMMODE À VANTAUX ALLEMANDE DE LA FIN DU XVIIIe SIÈCLE, BRUNSWICK OU BERLIN",
1435 + "subtitle": null,
1436 + "estimateLow": 8000,
1437 + "estimateHigh": 12000,
1438 + "sold": 9652,
1439 + "url": "https://www.artcurial.com/en/sales/6557/lots/148-a",
1440 + "image": "https://www.artcurial.com/item-images/34c5b3ac-3350-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_178.jpg?w=400&force_webp=true"
1441 + },
1442 + {
1443 + "lotNo": "149",
1444 + "title": "SUSPENSION D’ÉPOQUE NÉOCLASSIQUE, TRAVAIL PROBABLEMENT SUÉDOIS DU PREMIER QUART DU XIXe SIÈCLE",
1445 + "subtitle": null,
1446 + "estimateLow": 3000,
1447 + "estimateHigh": 5000,
1448 + "sold": 2524,
1449 + "url": "https://www.artcurial.com/en/sales/6557/lots/149-a",
1450 + "image": "https://www.artcurial.com/item-images/9d71901e-4961-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_459.jpg?w=400&force_webp=true"
1451 + },
1452 + {
1453 + "lotNo": "150",
1454 + "title": "MIROIR D’ENTRE-FENÊTRE, TRAVAIL ALLEMAND DE LA FIN DU XVIIIe SIÈCLE, BRUNSWICK OU BERLIN",
1455 + "subtitle": null,
1456 + "estimateLow": 5000,
1457 + "estimateHigh": 8000,
1458 + "sold": 3712,
1459 + "url": "https://www.artcurial.com/en/sales/6557/lots/150-a",
1460 + "image": "https://www.artcurial.com/item-images/f6f740c4-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_418.jpg?w=400&force_webp=true"
1461 + },
1462 + {
1463 + "lotNo": "153",
1464 + "title": "RÉDUCTION DE LA COLONNE DE PHOCAS, TRAVAIL PROBABLEMENT ROMAIN DU XIXe SIÈCLE",
1465 + "subtitle": null,
1466 + "estimateLow": 3000,
1467 + "estimateHigh": 5000,
1468 + "sold": 3712,
1469 + "url": "https://www.artcurial.com/en/sales/6557/lots/153-a",
1470 + "image": "https://www.artcurial.com/item-images/6d5b22af-5ffd-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/21.jpg?w=400&force_webp=true"
1471 + },
1472 + {
1473 + "lotNo": "156",
1474 + "title": "Ecole autrichienne vers 1800(Entourage de Joseph Anton Koch)",
1475 + "subtitle": "Léda et le cygne devant Capri",
1476 + "estimateLow": 8000,
1477 + "estimateHigh": 12000,
1478 + "sold": 10394,
1479 + "url": "https://www.artcurial.com/en/sales/6557/lots/156-a",
1480 + "image": "https://www.artcurial.com/item-images/e4e575eb-5a92-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-338%20A_WEB.jpg?w=400&force_webp=true"
1481 + },
1482 + {
1483 + "lotNo": "157",
1484 + "title": "TAZZA ANGLAISE DE LA PREMIÈRE MOITIÉ DU XIXe SIÈCLE",
1485 + "subtitle": null,
1486 + "estimateLow": 3000,
1487 + "estimateHigh": 5000,
1488 + "sold": 6682,
1489 + "url": "https://www.artcurial.com/en/sales/6557/lots/157-a",
1490 + "image": "https://www.artcurial.com/item-images/8d434631-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_285D.jpg?w=400&force_webp=true"
1491 + },
1492 + {
1493 + "lotNo": "158",
1494 + "title": "GUÉRIDON ANGLAIS D'ÉPOQUE REGENCY",
1495 + "subtitle": null,
1496 + "estimateLow": 1000,
1497 + "estimateHigh": 1500,
1498 + "sold": 2227,
1499 + "url": "https://www.artcurial.com/en/sales/6557/lots/158-a",
1500 + "image": "https://www.artcurial.com/item-images/1d6868ba-3350-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_243.jpg?w=400&force_webp=true"
1501 + },
1502 + {
1503 + "lotNo": "159",
1504 + "title": "TABLE DE BIBLIOTHÈQUE, TRAVAIL SUISSE D’ÉPOQUE NÉOCLASSIQUE, BERNE",
1505 + "subtitle": null,
1506 + "estimateLow": 2500,
1507 + "estimateHigh": 4000,
1508 + "sold": 4455,
1509 + "url": "https://www.artcurial.com/en/sales/6557/lots/159-a",
1510 + "image": "https://www.artcurial.com/item-images/471a5f9b-34be-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_476.jpg?w=400&force_webp=true"
1511 + },
1512 + {
1513 + "lotNo": "162",
1514 + "title": "D’après l’Antique, Italie, XXe siècle",
1515 + "subtitle": null,
1516 + "estimateLow": 2000,
1517 + "estimateHigh": 3000,
1518 + "sold": 2673,
1519 + "url": "https://www.artcurial.com/en/sales/6557/lots/162-a",
1520 + "image": "https://www.artcurial.com/item-images/a22d7974-5ffd-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/22.jpg?w=400&force_webp=true"
1521 + },
1522 + {
1523 + "lotNo": "164",
1524 + "title": "ENSEMBLE DE SEPT PRESSE-PAPIERS D'ÉPOQUE NÉOCLASSIQUE",
1525 + "subtitle": null,
1526 + "estimateLow": 2000,
1527 + "estimateHigh": 3000,
1528 + "sold": 742,
1529 + "url": "https://www.artcurial.com/en/sales/6557/lots/164-a",
1530 + "image": "https://www.artcurial.com/item-images/9a81b61f-7458-11f1-bffc-518c9d0eae04/PICTURE_CATALOG/MOA%2038475_WEB.jpg?w=400&force_webp=true"
1531 + },
1532 + {
1533 + "lotNo": "166",
1534 + "title": "LUSTRE D’ÉPOQUE NÉOCLASSIQUE, TRAVAIL VIENNOIS DU DÉBUT DU XIXe SIECLE",
1535 + "subtitle": null,
1536 + "estimateLow": 4000,
1537 + "estimateHigh": 6000,
1538 + "sold": 5197,
1539 + "url": "https://www.artcurial.com/en/sales/6557/lots/166-a",
1540 + "image": "https://www.artcurial.com/item-images/28365776-4954-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_293.jpg?w=400&force_webp=true"
1541 + },
1542 + {
1543 + "lotNo": "167",
1544 + "title": "PENDULE NEUCHÂTELOISE D'ÉPOQUE NÉOCLASSIQUE",
1545 + "subtitle": null,
1546 + "estimateLow": 1500,
1547 + "estimateHigh": 2000,
1548 + "sold": 1188,
1549 + "url": "https://www.artcurial.com/en/sales/6557/lots/167-a",
1550 + "image": "https://www.artcurial.com/item-images/428ef82d-5a93-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/Suisse-25.02.25-92704%201.jpg?w=400&force_webp=true"
1551 + },
1552 + {
1553 + "lotNo": "168",
1554 + "title": "PAIRE DE CANDÉLABRES D'ÉPOQUE NÉOCLASSIQUE, TRAVAIL PROBABLEMENT SUÉDOIS DU DÉBUT DU XIXe SIÈCLE",
1555 + "subtitle": null,
1556 + "estimateLow": 2000,
1557 + "estimateHigh": 3000,
1558 + "sold": 2970,
1559 + "url": "https://www.artcurial.com/en/sales/6557/lots/168-a",
1560 + "image": "https://www.artcurial.com/item-images/d541a57a-5ffd-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/23.jpg?w=400&force_webp=true"
1561 + },
1562 + {
1563 + "lotNo": "169",
1564 + "title": "D’après Leonhard Posch (1750-1831)",
1565 + "subtitle": null,
1566 + "estimateLow": 400,
1567 + "estimateHigh": 600,
1568 + "sold": 2079,
1569 + "url": "https://www.artcurial.com/en/sales/6557/lots/169-a",
1570 + "image": "https://www.artcurial.com/item-images/864267d5-397f-11f1-bef4-f918d58faf87/PICTURE_CATALOG/Suisse-25.02.25-92704%201.jpg?w=400&force_webp=true"
1571 + },
1572 + {
1573 + "lotNo": "173",
1574 + "title": "DEUX LAMPADAIRES DE STYLE NÉOCLASSIQUE FORMANT PAIRE",
1575 + "subtitle": null,
1576 + "estimateLow": 400,
1577 + "estimateHigh": 600,
1578 + "sold": 2376,
1579 + "url": "https://www.artcurial.com/en/sales/6557/lots/173-a",
1580 + "image": "https://www.artcurial.com/item-images/adae5ee2-5a93-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717_330.jpg?w=400&force_webp=true"
1581 + },
1582 + {
1583 + "lotNo": "174",
1584 + "title": "PAIRE DE GUÉRIDONS DE STYLE NÉO-ÉTRUSQUE",
1585 + "subtitle": null,
1586 + "estimateLow": 400,
1587 + "estimateHigh": 600,
1588 + "sold": 3712,
1589 + "url": "https://www.artcurial.com/en/sales/6557/lots/174-a",
1590 + "image": "https://www.artcurial.com/item-images/b3da93cd-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_309.jpg?w=400&force_webp=true"
1591 + },
1592 + {
1593 + "lotNo": "175",
1594 + "title": "Ecole néoclassique",
1595 + "subtitle": "Etude de vase Borghese",
1596 + "estimateLow": 600,
1597 + "estimateHigh": 800,
1598 + "sold": 2376,
1599 + "url": "https://www.artcurial.com/en/sales/6557/lots/175-a",
1600 + "image": "https://www.artcurial.com/item-images/db30e9f9-5a93-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-353%20A_WEB.jpg?w=400&force_webp=true"
1601 + },
1602 + {
1603 + "lotNo": "176",
1604 + "title": "PAIRE DE TABOURETS CURULES SUISSES D'ÉPOQUE NÉOCLASSIQUE, BERNE, PREMIÈRE MOITIÉ DU XIXe SIÈCLE",
1605 + "subtitle": null,
1606 + "estimateLow": 500,
1607 + "estimateHigh": 800,
1608 + "sold": 1782,
1609 + "url": "https://www.artcurial.com/en/sales/6557/lots/176-a",
1610 + "image": "https://www.artcurial.com/item-images/a7fa1c69-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_306.jpg?w=400&force_webp=true"
1611 + },
1612 + {
1613 + "lotNo": "177",
1614 + "title": "PAIRE DE PIEDS DE LAMPE, TRAVAIL MODERNE",
1615 + "subtitle": null,
1616 + "estimateLow": 200,
1617 + "estimateHigh": 300,
1618 + "sold": 2079,
1619 + "url": "https://www.artcurial.com/en/sales/6557/lots/177-a",
1620 + "image": "https://www.artcurial.com/item-images/fdc72e7f-5ffd-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/24.jpg?w=400&force_webp=true"
1621 + },
1622 + {
1623 + "lotNo": "178",
1624 + "title": "SPHÈRE DITE \"DOOR STOPPER\" D'ÉPOQUE NÉOCLASSIQUE",
1625 + "subtitle": null,
1626 + "estimateLow": 1500,
1627 + "estimateHigh": 2000,
1628 + "sold": 2227,
1629 + "url": "https://www.artcurial.com/en/sales/6557/lots/178-a",
1630 + "image": "https://www.artcurial.com/item-images/09168970-5ffe-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/24.jpg?w=400&force_webp=true"
1631 + },
1632 + {
1633 + "lotNo": "179",
1634 + "title": "VASE, TRAVAIL ITALIEN D'ÉPOQUE NÉOCLASSIQUE, PREMIÈRE MOITIÉ DU XIXe SIÈCLE",
1635 + "subtitle": null,
1636 + "estimateLow": 1000,
1637 + "estimateHigh": 1500,
1638 + "sold": 1782,
1639 + "url": "https://www.artcurial.com/en/sales/6557/lots/179-a",
1640 + "image": "https://www.artcurial.com/item-images/13c42627-5ffe-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/24.jpg?w=400&force_webp=true"
1641 + },
1642 + {
1643 + "lotNo": "180",
1644 + "title": "CHAISE NÉOGOTHIQUE, TRAVAIL ANGLAIS D'ÉPOQUE VICTORIENNE",
1645 + "subtitle": null,
1646 + "estimateLow": 700,
1647 + "estimateHigh": 1000,
1648 + "sold": 742,
1649 + "url": "https://www.artcurial.com/en/sales/6557/lots/180-a",
1650 + "image": "https://www.artcurial.com/item-images/7acbb2fa-4954-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_302.jpg?w=400&force_webp=true"
1651 + },
1652 + {
1653 + "lotNo": "181",
1654 + "title": "CONSOLE DE STYLE NÉOCLASSIQUE",
1655 + "subtitle": null,
1656 + "estimateLow": 2000,
1657 + "estimateHigh": 3000,
1658 + "sold": 3712,
1659 + "url": "https://www.artcurial.com/en/sales/6557/lots/181-a",
1660 + "image": "https://www.artcurial.com/item-images/e2eb4ec8-5ffe-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/24.jpg?w=400&force_webp=true"
1661 + },
1662 + {
1663 + "lotNo": "182",
1664 + "title": "TIRAGE PARTIEL EN PLÂTRE REPRÉSENTANT UN CHAPITEAU IONIQUE DE L'ERECHTEION À ATHÈNES",
1665 + "subtitle": null,
1666 + "estimateLow": 300,
1667 + "estimateHigh": 500,
1668 + "sold": 1188,
1669 + "url": "https://www.artcurial.com/en/sales/6557/lots/182-a",
1670 + "image": "https://www.artcurial.com/item-images/ee0d0a0a-5ffe-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/24.jpg?w=400&force_webp=true"
1671 + },
1672 + {
1673 + "lotNo": "183",
1674 + "title": "BOÎTE À BEURRE SUÉDOISE DU DÉBUT DU XIXe SIÈCLE",
1675 + "subtitle": null,
1676 + "estimateLow": 1500,
1677 + "estimateHigh": 2000,
1678 + "sold": 3267,
1679 + "url": "https://www.artcurial.com/en/sales/6557/lots/183-a",
1680 + "image": "https://www.artcurial.com/item-images/fbbe70db-5ffe-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/25.jpg?w=400&force_webp=true"
1681 + },
1682 + {
1683 + "lotNo": "184",
1684 + "title": "D’après l’Antique, Italie, XIXe siècle",
1685 + "subtitle": null,
1686 + "estimateLow": 800,
1687 + "estimateHigh": 1200,
1688 + "sold": 3712,
1689 + "url": "https://www.artcurial.com/en/sales/6557/lots/184-a",
1690 + "image": "https://www.artcurial.com/item-images/06be9a5c-5fff-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/25.jpg?w=400&force_webp=true"
1691 + },
1692 + {
1693 + "lotNo": "185",
1694 + "title": "TAZZA SUÉDOISE D'ÉPOQUE NÉOCLASSIQUE, VERS 1830",
1695 + "subtitle": null,
1696 + "estimateLow": 3000,
1697 + "estimateHigh": 5000,
1698 + "sold": 8167,
1699 + "url": "https://www.artcurial.com/en/sales/6557/lots/185-a",
1700 + "image": "https://www.artcurial.com/item-images/838fba60-5fff-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/25.jpg?w=400&force_webp=true"
1701 + },
1702 + {
1703 + "lotNo": "186",
1704 + "title": "Ecole néoclassique",
1705 + "subtitle": "Le renvoi d’Agar",
1706 + "estimateLow": 7000,
1707 + "estimateHigh": 10000,
1708 + "sold": 20045,
1709 + "url": "https://www.artcurial.com/en/sales/6557/lots/186-a",
1710 + "image": "https://www.artcurial.com/item-images/6c1dbe8d-5a94-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-350%20A_WEB.jpg?w=400&force_webp=true"
1711 + },
1712 + {
1713 + "lotNo": "187",
1714 + "title": "CINQ MÉDAILLONS EN BISCUIT DE COPENHAGUE DU XIXe ET XXe SIÈCLE",
1715 + "subtitle": null,
1716 + "estimateLow": 500,
1717 + "estimateHigh": 800,
1718 + "sold": 297,
1719 + "url": "https://www.artcurial.com/en/sales/6557/lots/187-a",
1720 + "image": "https://www.artcurial.com/item-images/7729a7e2-5a94-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-295_WEB.jpg?w=400&force_webp=true"
1721 + },
1722 + {
1723 + "lotNo": "188",
1724 + "title": "LUSTRE RUSSE DE LA FIN DU XVIIIe SIÈCLE",
1725 + "subtitle": null,
1726 + "estimateLow": 4000,
1727 + "estimateHigh": 6000,
1728 + "sold": 3712,
1729 + "url": "https://www.artcurial.com/en/sales/6557/lots/188-a",
1730 + "image": "https://www.artcurial.com/item-images/6cf46a12-4953-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_261.jpg?w=400&force_webp=true"
1731 + },
1732 + {
1733 + "lotNo": "189",
1734 + "title": "Angleterre, fin du XVIIIe-début du XIXe siècle",
1735 + "subtitle": null,
1736 + "estimateLow": 3000,
1737 + "estimateHigh": 5000,
1738 + "sold": 6682,
1739 + "url": "https://www.artcurial.com/en/sales/6557/lots/189-a",
1740 + "image": "https://www.artcurial.com/item-images/93ad1822-5fff-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26.jpg?w=400&force_webp=true"
1741 + },
1742 + {
1743 + "lotNo": "190",
1744 + "title": "PAIRE DE GAINES DE LA FIN DU XVIIIe SIÈCLE, TRAVAIL PROBABLEMENT SUÉDOIS",
1745 + "subtitle": null,
1746 + "estimateLow": 5000,
1747 + "estimateHigh": 8000,
1748 + "sold": 6682,
1749 + "url": "https://www.artcurial.com/en/sales/6557/lots/190-a",
1750 + "image": "https://www.artcurial.com/item-images/3fb79d79-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_300.jpg?w=400&force_webp=true"
1751 + },
1752 + {
1753 + "lotNo": "191",
1754 + "title": "PLATEAU ROMAIN D'ÉPOQUE NÉOCLASSIQUE, VERS 1820-1825",
1755 + "subtitle": null,
1756 + "estimateLow": 20000,
1757 + "estimateHigh": 30000,
1758 + "sold": 22273,
1759 + "url": "https://www.artcurial.com/en/sales/6557/lots/191-a",
1760 + "image": "https://www.artcurial.com/item-images/9aa4b846-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_298D.jpg?w=400&force_webp=true"
1761 + },
1762 + {
1763 + "lotNo": "192",
1764 + "title": "Pierre-Nicolas SICOT, dit LEGRAND DE LERANT ou SERANT(Pont-l’Evêque, 1758 – Berne, 1829)",
1765 + "subtitle": "Portrait de Philipp Rudolf v. Sinner (1760-1820) et de son épouse Henriette v. Mutach (1768-1841)",
1766 + "estimateLow": 3000,
1767 + "estimateHigh": 4000,
1768 + "sold": 3712,
1769 + "url": "https://www.artcurial.com/en/sales/6557/lots/192-a",
1770 + "image": "https://www.artcurial.com/item-images/a8d3260f-6001-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-340_WEB.jpg?w=400&force_webp=true"
1771 + },
1772 + {
1773 + "lotNo": "193",
1774 + "title": "MOBILIER DE SALLE À MANGER, TRAVAIL SUISSE DE LA FIN DU XVIIIe SIÈCLE, BERNE",
1775 + "subtitle": null,
1776 + "estimateLow": 4000,
1777 + "estimateHigh": 6000,
1778 + "sold": 5642,
1779 + "url": "https://www.artcurial.com/en/sales/6557/lots/193-a",
1780 + "image": "https://www.artcurial.com/item-images/ad9aff9b-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_307.jpg?w=400&force_webp=true"
1781 + },
1782 + {
1783 + "lotNo": "194",
1784 + "title": "GUÉRIDON SUISSE D'ÉPOQUE NÉOCLASSIQUE, PREMIÈRE MOITIÉ DU XIXe SIÈCLE",
1785 + "subtitle": null,
1786 + "estimateLow": 2000,
1787 + "estimateHigh": 3000,
1788 + "sold": 1188,
1789 + "url": "https://www.artcurial.com/en/sales/6557/lots/194-a",
1790 + "image": "https://www.artcurial.com/item-images/56df326d-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_329.jpg?w=400&force_webp=true"
1791 + },
1792 + {
1793 + "lotNo": "195",
1794 + "title": "BONHEUR-DU-JOUR D'ÉPOQUE DIRECTOIRE",
1795 + "subtitle": null,
1796 + "estimateLow": 2000,
1797 + "estimateHigh": 3000,
1798 + "sold": 1782,
1799 + "url": "https://www.artcurial.com/en/sales/6557/lots/195-a",
1800 + "image": "https://www.artcurial.com/item-images/d407ec90-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_422.jpg?w=400&force_webp=true"
1801 + },
1802 + {
1803 + "lotNo": "197",
1804 + "title": "Attribué à Baldassare CATTRANI(Actif entre 1776 et 1810)",
1805 + "subtitle": "Suite de onze études de fleurs",
1806 + "estimateLow": 4000,
1807 + "estimateHigh": 6000,
1808 + "sold": 14849,
1809 + "url": "https://www.artcurial.com/en/sales/6557/lots/197-a",
1810 + "image": "https://www.artcurial.com/item-images/09a76ad4-5aa2-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-475%2001-11%20A_WEB.jpg?w=400&force_webp=true"
1811 + },
1812 + {
1813 + "lotNo": "198",
1814 + "title": "SUSPENSION DE LA FIN DU XVIIIe SIÈCLE, TRAVAIL DE L'ITALIE DU NORD, PROBABLEMENT PIÉMONT OU VENISE",
1815 + "subtitle": null,
1816 + "estimateLow": 2000,
1817 + "estimateHigh": 3000,
1818 + "sold": 9652,
1819 + "url": "https://www.artcurial.com/en/sales/6557/lots/198-a",
1820 + "image": "https://www.artcurial.com/item-images/b3c62c25-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_426.jpg?w=400&force_webp=true"
1821 + },
1822 + {
1823 + "lotNo": "199",
1824 + "title": "SUITE DE QUATRE POTS À ORANGERS DE LA FIN DU XIXe SIÈCLE",
1825 + "subtitle": null,
1826 + "estimateLow": 1500,
1827 + "estimateHigh": 2000,
1828 + "sold": 11136,
1829 + "url": "https://www.artcurial.com/en/sales/6557/lots/199-a",
1830 + "image": "https://www.artcurial.com/item-images/97545f7f-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_432.jpg?w=400&force_webp=true"
1831 + },
1832 + {
1833 + "lotNo": "200",
1834 + "title": "SUSPENSION DE STYLE NEO-ÉTRUSQUE",
1835 + "subtitle": null,
1836 + "estimateLow": 2000,
1837 + "estimateHigh": 3000,
1838 + "sold": 7424,
1839 + "url": "https://www.artcurial.com/en/sales/6557/lots/200-a",
1840 + "image": "https://www.artcurial.com/item-images/adecacc4-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_427.jpg?w=400&force_webp=true"
1841 + },
1842 + {
1843 + "lotNo": "201",
1844 + "title": "GUÉRIDON, TRAVAIL ITALIEN D'ÉPOQUE NÉOCLASSIQUE, PREMIÈRE MOITIÉ DU XIXe SIÈCLE",
1845 + "subtitle": null,
1846 + "estimateLow": 3000,
1847 + "estimateHigh": 5000,
1848 + "sold": 2673,
1849 + "url": "https://www.artcurial.com/en/sales/6557/lots/201-a",
1850 + "image": "https://www.artcurial.com/item-images/2b765b0b-5aa2-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717_327.jpg?w=400&force_webp=true"
1851 + },
1852 + {
1853 + "lotNo": "202",
1854 + "title": "CHAISE DU TROISIÈME QUART DU XIXe SIÈCLE, TRAVAIL PROBABLEMENT AUTRICHIEN",
1855 + "subtitle": null,
1856 + "estimateLow": 2000,
1857 + "estimateHigh": 3000,
1858 + "sold": 6682,
1859 + "url": "https://www.artcurial.com/en/sales/6557/lots/202-a",
1860 + "image": "https://www.artcurial.com/item-images/ff97c8c2-6000-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/28.jpg?w=400&force_webp=true"
1861 + },
1862 + {
1863 + "lotNo": "203",
1864 + "title": "John Henning (1771-1851), vers 1820",
1865 + "subtitle": null,
1866 + "estimateLow": 300,
1867 + "estimateHigh": 500,
1868 + "sold": 891,
1869 + "url": "https://www.artcurial.com/en/sales/6557/lots/203-a",
1870 + "image": "https://www.artcurial.com/item-images/f5fde601-6000-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/28.jpg?w=400&force_webp=true"
1871 + },
1872 + {
1873 + "lotNo": "204",
1874 + "title": "PAIRE DE GIRANDOLES SUISSES DE LA FIN DU XVIIIe SIÈCLE, BERNE",
1875 + "subtitle": null,
1876 + "estimateLow": 700,
1877 + "estimateHigh": 1000,
1878 + "sold": 2970,
1879 + "url": "https://www.artcurial.com/en/sales/6557/lots/204-a",
1880 + "image": "https://www.artcurial.com/item-images/ece87580-6000-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/28.jpg?w=400&force_webp=true"
1881 + },
1882 + {
1883 + "lotNo": "206",
1884 + "title": "FAUTEUIL ITALIEN DE LA FIN DU XIXe SIÈCLE, VENISE",
1885 + "subtitle": null,
1886 + "estimateLow": 1500,
1887 + "estimateHigh": 2000,
1888 + "sold": 4158,
1889 + "url": "https://www.artcurial.com/en/sales/6557/lots/206-a",
1890 + "image": "https://www.artcurial.com/item-images/d30b6afe-4958-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_406.jpg?w=400&force_webp=true"
1891 + },
1892 + {
1893 + "lotNo": "207",
1894 + "title": "LAMPE DE LECTURE DE STYLE NÉOCLASSIQUE, TRAVAIL MODERNE",
1895 + "subtitle": null,
1896 + "estimateLow": 600,
1897 + "estimateHigh": 800,
1898 + "sold": 1633,
1899 + "url": "https://www.artcurial.com/en/sales/6557/lots/207-a",
1900 + "image": "https://www.artcurial.com/item-images/c3c67a4a-4952-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_225.jpg?w=400&force_webp=true"
1901 + },
1902 + {
1903 + "lotNo": "208",
1904 + "title": "John Henning (1771-1851), vers 1820",
1905 + "subtitle": null,
1906 + "estimateLow": 700,
1907 + "estimateHigh": 1000,
1908 + "sold": 5642,
1909 + "url": "https://www.artcurial.com/en/sales/6557/lots/208-a",
1910 + "image": "https://www.artcurial.com/item-images/8dfd4969-5aa2-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717-464_WEB.jpg?w=400&force_webp=true"
1911 + },
1912 + {
1913 + "lotNo": "209",
1914 + "title": "PAIRE DE CANDÉLABRES DE STYLE NÉOCLASSIQUE, TRAVAIL DE L'EUROPE DU NORD",
1915 + "subtitle": null,
1916 + "estimateLow": 2000,
1917 + "estimateHigh": 3000,
1918 + "sold": 6682,
1919 + "url": "https://www.artcurial.com/en/sales/6557/lots/209-a",
1920 + "image": "https://www.artcurial.com/item-images/d649235e-6000-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/29.jpg?w=400&force_webp=true"
1921 + },
1922 + {
1923 + "lotNo": "210",
1924 + "title": "VASE OVOÏDE EN MARBRE SCULPTE REPRÉSENTANT LA FABLE D’ÉSOPE « LE RENARD ET LA CIGOGNE »",
1925 + "subtitle": null,
1926 + "estimateLow": 2000,
1927 + "estimateHigh": 3000,
1928 + "sold": 7424,
1929 + "url": "https://www.artcurial.com/en/sales/6557/lots/210-a",
1930 + "image": "https://www.artcurial.com/item-images/cc1b8c1c-6000-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/29.jpg?w=400&force_webp=true"
1931 + },
1932 + {
1933 + "lotNo": "211",
1934 + "title": "BARBIÈRE ITALIENNE DU PREMIER QUART DU XIXe SIÈCLE",
1935 + "subtitle": null,
1936 + "estimateLow": 2500,
1937 + "estimateHigh": 4000,
1938 + "sold": 2970,
1939 + "url": "https://www.artcurial.com/en/sales/6557/lots/211-a",
1940 + "image": "https://www.artcurial.com/item-images/753a51e2-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_270.jpg?w=400&force_webp=true"
1941 + },
1942 + {
1943 + "lotNo": "212",
1944 + "title": "RARE MAQUETTE DE GRUE DE LA DEUXIÈME MOITIÉ DU XVIIIe SIÈCLE",
1945 + "subtitle": null,
1946 + "estimateLow": 3000,
1947 + "estimateHigh": 5000,
1948 + "sold": 5939,
1949 + "url": "https://www.artcurial.com/en/sales/6557/lots/212-a",
1950 + "image": "https://www.artcurial.com/item-images/80625263-4953-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_266.jpg?w=400&force_webp=true"
1951 + },
1952 + {
1953 + "lotNo": "214",
1954 + "title": "Albrecht SCHNIDER(born in 1958)",
1955 + "subtitle": "Sans titre - 2010",
1956 + "estimateLow": 2000,
1957 + "estimateHigh": 3000,
1958 + "sold": 2673,
1959 + "url": "https://www.artcurial.com/en/sales/6557/lots/214-a",
1960 + "image": "https://www.artcurial.com/item-images/1c3b9592-3f2a-11f1-885b-a56624f1cc36/PICTURE_CATALOG/26112717-257_260422.jpg?w=400&force_webp=true"
1961 + },
1962 + {
1963 + "lotNo": "215",
1964 + "title": "PENDULE D’ÉPOQUE EMPIRE \"LA DÉLIVRANCE DE L'INDIEN NATCHEZ CHACTAS PAR ATALA\"",
1965 + "subtitle": null,
1966 + "estimateLow": 2000,
1967 + "estimateHigh": 3000,
1968 + "sold": 14849,
1969 + "url": "https://www.artcurial.com/en/sales/6557/lots/215-a",
1970 + "image": "https://www.artcurial.com/item-images/27a0eb2f-6000-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/30.jpg?w=400&force_webp=true"
1971 + },
1972 + {
1973 + "lotNo": "216",
1974 + "title": "SUSPENSION ALLEMANDE D'ÉPOQUE NÉOCLASSIQUE, PROBABLEMENT DRESDE",
1975 + "subtitle": null,
1976 + "estimateLow": 3000,
1977 + "estimateHigh": 5000,
1978 + "sold": 2376,
1979 + "url": "https://www.artcurial.com/en/sales/6557/lots/216-a",
1980 + "image": "https://www.artcurial.com/item-images/afc5f223-4961-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_461.jpg?w=400&force_webp=true"
1981 + },
1982 + {
1983 + "lotNo": "217",
1984 + "title": "IMPORTANT PLATEAU D'ÉCHANTILLONS DE PORPHYRES SUÉDOIS, ÄLVADEN, PREMIÈRE MOITIÉ DU XIXe SIÈCLE",
1985 + "subtitle": null,
1986 + "estimateLow": 5000,
1987 + "estimateHigh": 8000,
1988 + "sold": 16927,
1989 + "url": "https://www.artcurial.com/en/sales/6557/lots/217-a",
1990 + "image": "https://www.artcurial.com/item-images/af4035ab-4963-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_467.jpg?w=400&force_webp=true"
1991 + },
1992 + {
1993 + "lotNo": "219",
1994 + "title": "Ecole nazaréenne du XIXe siècle",
1995 + "subtitle": "La mort de Siegfried",
1996 + "estimateLow": 3000,
1997 + "estimateHigh": 4000,
1998 + "sold": 4752,
1999 + "url": "https://www.artcurial.com/en/sales/6557/lots/219-a",
2000 + "image": "https://www.artcurial.com/item-images/143739db-5f4d-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-357%20A_WEB.jpg?w=400&force_webp=true"
2001 + },
2002 + {
2003 + "lotNo": "220",
2004 + "title": "Pierre-Nicolas SICOT, dit LEGRAND DE LERANT ou SERANT(Pont-l’Evêque, 1758 – Berne, 1829)",
2005 + "subtitle": "Portrait de femme et portrait d’homme",
2006 + "estimateLow": 3000,
2007 + "estimateHigh": 4000,
2008 + "sold": 4455,
2009 + "url": "https://www.artcurial.com/en/sales/6557/lots/220-a",
2010 + "image": "https://www.artcurial.com/item-images/b9a750b0-6001-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-341_WEB.jpg?w=400&force_webp=true"
2011 + },
2012 + {
2013 + "lotNo": "221",
2014 + "title": "GRAND MIROIR SUISSE DU MILIEU DU XVIIIe SIÈCLE, BERNE",
2015 + "subtitle": null,
2016 + "estimateLow": 4000,
2017 + "estimateHigh": 6000,
2018 + "sold": 5939,
2019 + "url": "https://www.artcurial.com/en/sales/6557/lots/221-a",
2020 + "image": "https://www.artcurial.com/item-images/ca43a542-4963-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_469.jpg?w=400&force_webp=true"
2021 + },
2022 + {
2023 + "lotNo": "223",
2024 + "title": "D’après l’Antique, Italie, XIXe siècle",
2025 + "subtitle": null,
2026 + "estimateLow": 4000,
2027 + "estimateHigh": 6000,
2028 + "sold": 10394,
2029 + "url": "https://www.artcurial.com/en/sales/6557/lots/223-a",
2030 + "image": "https://www.artcurial.com/item-images/8bf023d3-4963-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_463.jpg?w=400&force_webp=true"
2031 + },
2032 + {
2033 + "lotNo": "225",
2034 + "title": "TABLE DE SALON ALLEMANDE DE LA FIN DU XVIIIe SIÈCLE",
2035 + "subtitle": null,
2036 + "estimateLow": 1500,
2037 + "estimateHigh": 2500,
2038 + "sold": 1485,
2039 + "url": "https://www.artcurial.com/en/sales/6557/lots/225-a",
2040 + "image": "https://www.artcurial.com/item-images/6f9f892f-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_269.jpg?w=400&force_webp=true"
2041 + },
2042 + {
2043 + "lotNo": "226",
2044 + "title": "Deux groupes en biscuit de Minton du XIXe siècle",
2045 + "subtitle": null,
2046 + "estimateLow": 600,
2047 + "estimateHigh": 800,
2048 + "sold": 2376,
2049 + "url": "https://www.artcurial.com/en/sales/6557/lots/226-a",
2050 + "image": "https://www.artcurial.com/item-images/3e361c78-5f4d-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-403_WEB.jpg?w=400&force_webp=true"
2051 + },
2052 + {
2053 + "lotNo": "227",
2054 + "title": "TABLE DE TOILETTE DE STYLE EMPIRE",
2055 + "subtitle": null,
2056 + "estimateLow": 1200,
2057 + "estimateHigh": 1800,
2058 + "sold": 1188,
2059 + "url": "https://www.artcurial.com/en/sales/6557/lots/227-a",
2060 + "image": "https://www.artcurial.com/item-images/fa2c76f0-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_412.jpg?w=400&force_webp=true"
2061 + },
2062 + {
2063 + "lotNo": "228",
2064 + "title": "SUSPENSION D'ÉPOQUE NÉOCLASSIQUE, TRAVAIL PROBABLEMENT SUÉDOIS DE LA FIN DU XVIIIe-DÉBUT DU XIXe SIÈCLE",
2065 + "subtitle": null,
2066 + "estimateLow": 3000,
2067 + "estimateHigh": 5000,
2068 + "sold": 2227,
2069 + "url": "https://www.artcurial.com/en/sales/6557/lots/228-a",
2070 + "image": "https://www.artcurial.com/item-images/82795adc-39ac-11f1-bef4-f918d58faf87/PICTURE_CATALOG/Suisse-25.02.25-92816.jpg?w=400&force_webp=true"
2071 + },
2072 + {
2073 + "lotNo": "230",
2074 + "title": "PAIRE DE GIRANDOLES ALLEMANDES D'ÉPOQUE NÉOCLASSIQUE",
2075 + "subtitle": null,
2076 + "estimateLow": 8000,
2077 + "estimateHigh": 12000,
2078 + "sold": 10394,
2079 + "url": "https://www.artcurial.com/en/sales/6557/lots/230-a",
2080 + "image": "https://www.artcurial.com/item-images/0b7460b3-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_170.jpg?w=400&force_webp=true"
2081 + },
2082 + {
2083 + "lotNo": "232",
2084 + "title": "Plan de Paris, par Michel-Etienne Turgot, Paris 1734-1736, paru en 1739",
2085 + "subtitle": null,
2086 + "estimateLow": 2000,
2087 + "estimateHigh": 3000,
2088 + "sold": 2970,
2089 + "url": "https://www.artcurial.com/en/sales/6557/lots/232-a",
2090 + "image": "https://www.artcurial.com/item-images/55a80475-4952-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_192.jpg?w=400&force_webp=true"
2091 + },
2092 + {
2093 + "lotNo": "233",
2094 + "title": "MIROIR ET CONSOLE D’ENTRE-FENÊTRE, TRAVAIL SUISSE D’ÉPOQUE EMPIRE",
2095 + "subtitle": null,
2096 + "estimateLow": 4000,
2097 + "estimateHigh": 6000,
2098 + "sold": 4455,
2099 + "url": "https://www.artcurial.com/en/sales/6557/lots/233-a",
2100 + "image": "https://www.artcurial.com/item-images/6670e2a7-5aa1-11f1-94b2-ebd05b4932bc/PICTURE_CATALOG/26112717_228.jpg?w=400&force_webp=true"
2101 + },
2102 + {
2103 + "lotNo": "234",
2104 + "title": "MONUMENTAL ÉCRAN DE CHEMINÉE, TRAVAIL ITALIEN DU XVIIIe SIÈCLE",
2105 + "subtitle": null,
2106 + "estimateLow": 2000,
2107 + "estimateHigh": 3000,
2108 + "sold": 1930,
2109 + "url": "https://www.artcurial.com/en/sales/6557/lots/234-a",
2110 + "image": "https://www.artcurial.com/item-images/caa08b7d-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_423.jpg?w=400&force_webp=true"
2111 + },
2112 + {
2113 + "lotNo": "235",
2114 + "title": "PAIRE DE COMMODES ITALIENNES D'ÉPOQUE NÉOCLASSIQUE, VERS 1820",
2115 + "subtitle": null,
2116 + "estimateLow": 6000,
2117 + "estimateHigh": 8000,
2118 + "sold": 6236,
2119 + "url": "https://www.artcurial.com/en/sales/6557/lots/235-a",
2120 + "image": "https://www.artcurial.com/item-images/816dd60b-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_439.jpg?w=400&force_webp=true"
2121 + },
2122 + {
2123 + "lotNo": "236",
2124 + "title": "Allemagne, suiveur de Hans Multscher (circa 1400-1467), fin du XVe-début du XVIe siècle",
2125 + "subtitle": null,
2126 + "estimateLow": 6000,
2127 + "estimateHigh": 8000,
2128 + "sold": 5939,
2129 + "url": "https://www.artcurial.com/en/sales/6557/lots/236-a",
2130 + "image": "https://www.artcurial.com/item-images/d5432484-4953-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_271.jpg?w=400&force_webp=true"
2131 + },
2132 + {
2133 + "lotNo": "237",
2134 + "title": "COMMODE MINIATURE SUISSE DE LA DEUXIÈME MOITIÉ DU XVIIIe SIÈCLE",
2135 + "subtitle": null,
2136 + "estimateLow": 1500,
2137 + "estimateHigh": 2000,
2138 + "sold": 2227,
2139 + "url": "https://www.artcurial.com/en/sales/6557/lots/237-a",
2140 + "image": "https://www.artcurial.com/item-images/a8d04d93-5f4d-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/Suisse-26.02.25-92909.jpg?w=400&force_webp=true"
2141 + }
2142 + ]
2143 + }
2144 + },
2145 + "expect": {
2146 + "minCount": 5,
2147 + "kinds": [
2148 + "sale",
2149 + "auction_lot"
2150 + ],
2151 + "requiredFields": [
2152 + "rawTitle",
2153 + "attributes.categorySlug"
2154 + ]
2155 + },
2156 + "note": "Captured live via Firecrawl from artcurial.com",
2157 + "capturedAt": "2026-09-07T06:28:50.373Z"
2158 +}
\ No newline at end of file
added data/fixtures/artcurial/sale-IT6558.json +558 −0
@@ -0,0 +1,558 @@
1 +{
2 + "raw": {
3 + "url": "https://www.artcurial.com/en/sales/IT6558",
4 + "externalId": "IT6558",
5 + "kind": "sale",
6 + "engine": "firecrawl",
7 + "fetchedAt": "2026-09-07T06:28:36.842Z",
8 + "payload": {
9 + "kind": "sale_results",
10 + "url": "https://www.artcurial.com/en/sales/IT6558",
11 + "sale": {
12 + "number": "IT6558",
13 + "title": "L’œil d’un érudit Online",
14 + "subtitle": "Une collection européenne",
15 + "date": "2026-07-13T00:00:00.000Z",
16 + "location": "Online",
17 + "url": "https://www.artcurial.com/en/sales/IT6558",
18 + "online": true
19 + },
20 + "lotCount": 67,
21 + "lots": [
22 + {
23 + "lotNo": "242",
24 + "title": "PAIRE DE FLAMBEAUX DE STYLE RÉGENCE ET DES BOBÈCHES",
25 + "subtitle": null,
26 + "estimateLow": 200,
27 + "estimateHigh": 300,
28 + "sold": 148,
29 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/242-a",
30 + "image": "https://www.artcurial.com/item-images/196fec4f-600e-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-148_WEB.jpg?w=400&force_webp=true"
31 + },
32 + {
33 + "lotNo": "244",
34 + "title": "DEUX PANNEAUX EN BROCART BIZARRE, FRANCE, VERS 1710-1720",
35 + "subtitle": null,
36 + "estimateLow": 500,
37 + "estimateHigh": 800,
38 + "sold": 520,
39 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/244-a",
40 + "image": "https://www.artcurial.com/item-images/9d8a59b5-60b2-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/montage.jpg?w=400&force_webp=true"
41 + },
42 + {
43 + "lotNo": "246",
44 + "title": "PLATEAU, TRAVAIL ALLEMAND D'ÉPOQUE LOUIS XVI, BRUNSWICK OU BERLIN",
45 + "subtitle": null,
46 + "estimateLow": 200,
47 + "estimateHigh": 300,
48 + "sold": 1039,
49 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/246-a",
50 + "image": "https://www.artcurial.com/item-images/d9ff4ffb-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_390.jpg?w=400&force_webp=true"
51 + },
52 + {
53 + "lotNo": "247",
54 + "title": "D’après John WEBBER (Londres, 1751 - 1793)",
55 + "subtitle": "\"The death of Captain Cook\"",
56 + "estimateLow": 200,
57 + "estimateHigh": 300,
58 + "sold": 119,
59 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/247-a",
60 + "image": "https://www.artcurial.com/item-images/50f2f616-5f5e-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-167%20A_WEB.jpg?w=400&force_webp=true"
61 + },
62 + {
63 + "lotNo": "249",
64 + "title": "MIROIR DE TOILETTE D'ÉPOQUE LOUIS XIV, FIN DU XVIIe-DÉBUT DU XVIIIe SIÈCLE",
65 + "subtitle": null,
66 + "estimateLow": 800,
67 + "estimateHigh": 1200,
68 + "sold": 668,
69 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/249-a",
70 + "image": "https://www.artcurial.com/item-images/a654bf3a-4951-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_169.jpg?w=400&force_webp=true"
71 + },
72 + {
73 + "lotNo": "250",
74 + "title": "PAIRE DE VASES CORNET EN FAÏENCE DE BERLIN DU XIXe SIÈCLE",
75 + "subtitle": null,
76 + "estimateLow": 500,
77 + "estimateHigh": 800,
78 + "sold": 668,
79 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/250-a",
80 + "image": "https://www.artcurial.com/item-images/84e56242-600e-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-171_WEB.jpg?w=400&force_webp=true"
81 + },
82 + {
83 + "lotNo": "251",
84 + "title": "GRAND VASE EN FAÏENCE DE BERLIN DU XIXe SIÈCLE",
85 + "subtitle": null,
86 + "estimateLow": 200,
87 + "estimateHigh": 300,
88 + "sold": 238,
89 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/251-a",
90 + "image": "https://www.artcurial.com/item-images/930d7fb4-600e-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-172_WEB.jpg?w=400&force_webp=true"
91 + },
92 + {
93 + "lotNo": "255",
94 + "title": "ENCRIER SUISSE DE LA PREMIÈRE MOITIÉ DU XVIIIe SIÈCLE, BERNE",
95 + "subtitle": null,
96 + "estimateLow": 400,
97 + "estimateHigh": 600,
98 + "sold": 297,
99 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/255-a",
100 + "image": "https://www.artcurial.com/item-images/0ddb0ec5-4954-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_277.jpg?w=400&force_webp=true"
101 + },
102 + {
103 + "lotNo": "256",
104 + "title": "MIROIR D'ÉPOQUE BAROQUE",
105 + "subtitle": null,
106 + "estimateLow": 600,
107 + "estimateHigh": 800,
108 + "sold": 668,
109 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/256-a",
110 + "image": "https://www.artcurial.com/item-images/4d06241d-38a5-11f1-bef4-f918d58faf87/PICTURE_CATALOG/26112717_399.jpg?w=400&force_webp=true"
111 + },
112 + {
113 + "lotNo": "260",
114 + "title": "COUVERT EN ARGENT COMPRENANT FOURCHETTE, CUILLÈRE ET COUTEAU",
115 + "subtitle": null,
116 + "estimateLow": 100,
117 + "estimateHigh": 150,
118 + "sold": 59,
119 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/260-a",
120 + "image": "https://www.artcurial.com/item-images/94eb2126-506f-11f1-ab01-53364ae5824d/PICTURE_CATALOG/26112717-006_WEB.jpg?w=400&force_webp=true"
121 + },
122 + {
123 + "lotNo": "261",
124 + "title": "COMMODE SUISSE DU XVIIIe SIÈCLE",
125 + "subtitle": null,
126 + "estimateLow": 700,
127 + "estimateHigh": 1000,
128 + "sold": 594,
129 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/261-a",
130 + "image": "https://www.artcurial.com/item-images/b2ffc403-495a-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_430.jpg?w=400&force_webp=true"
131 + },
132 + {
133 + "lotNo": "262",
134 + "title": "Heinrich Poscharsky(Dresde, 1802 - 1880)",
135 + "subtitle": "Le combat de boucs",
136 + "estimateLow": 800,
137 + "estimateHigh": 1200,
138 + "sold": 1336,
139 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/262-a",
140 + "image": "https://www.artcurial.com/item-images/0c0d303a-6010-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-346%20A_WEB.jpg?w=400&force_webp=true"
141 + },
142 + {
143 + "lotNo": "263",
144 + "title": "Ecole néoclassique",
145 + "subtitle": "Paysage animé d'un berger et son troupeau",
146 + "estimateLow": 600,
147 + "estimateHigh": 800,
148 + "sold": 416,
149 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/263-a",
150 + "image": "https://www.artcurial.com/item-images/159d32b7-6011-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-356%20A_WEB.jpg?w=400&force_webp=true"
151 + },
152 + {
153 + "lotNo": "264",
154 + "title": "ÉCRAN DE CHEMINÉE DE STYLE LOUIS XV",
155 + "subtitle": null,
156 + "estimateLow": 200,
157 + "estimateHigh": 300,
158 + "sold": 119,
159 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/264-a",
160 + "image": "https://www.artcurial.com/item-images/d3e390c8-495a-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_431%20copie.jpg?w=400&force_webp=true"
161 + },
162 + {
163 + "lotNo": "265",
164 + "title": "SUITE DE CINQ GIRANDOLES DE LA PREMIÈRE MOITIÉ DU XVIIIe SIECLE, TRAVAIL PROBABLEMENT SUISSE",
165 + "subtitle": null,
166 + "estimateLow": 300,
167 + "estimateHigh": 500,
168 + "sold": 1485,
169 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/265-a",
170 + "image": "https://www.artcurial.com/item-images/399ad3da-38a5-11f1-bef4-f918d58faf87/PICTURE_CATALOG/26112717_388.jpg?w=400&force_webp=true"
171 + },
172 + {
173 + "lotNo": "266",
174 + "title": "ÉPÉE DE COUR, VERS 1780-1800",
175 + "subtitle": null,
176 + "estimateLow": 300,
177 + "estimateHigh": 500,
178 + "sold": 178,
179 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/266-a",
180 + "image": "https://www.artcurial.com/item-images/ff624e6c-600d-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-124_WEB.jpg?w=400&force_webp=true"
181 + },
182 + {
183 + "lotNo": "267",
184 + "title": "COUPE EN ACIER DAMASQUINÉ, IRAN, QAJAR, DEUXIÈME MOITIÉ DU XIXe SIÈCLE",
185 + "subtitle": null,
186 + "estimateLow": 400,
187 + "estimateHigh": 600,
188 + "sold": 445,
189 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/267-a",
190 + "image": "https://www.artcurial.com/item-images/de5c6447-60bc-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/1.jpg?w=400&force_webp=true"
191 + },
192 + {
193 + "lotNo": "269",
194 + "title": "PAIRE DE FLAMBEAUX, INDE DU NORD, FIN DU XIXe SIÈCLE",
195 + "subtitle": null,
196 + "estimateLow": 300,
197 + "estimateHigh": 500,
198 + "sold": 178,
199 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/269-a",
200 + "image": "https://www.artcurial.com/item-images/29139f70-6014-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/Suisse-24.02.25-92562.jpg?w=400&force_webp=true"
201 + },
202 + {
203 + "lotNo": "270",
204 + "title": "TÊTE DE BOUDDHA EN BOIS LAQUÉ",
205 + "subtitle": null,
206 + "estimateLow": 300,
207 + "estimateHigh": 500,
208 + "sold": 445,
209 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/270-a",
210 + "image": "https://www.artcurial.com/item-images/ef255abb-600d-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-123_WEB.jpg?w=400&force_webp=true"
211 + },
212 + {
213 + "lotNo": "271",
214 + "title": "BOL EN PORCELAINE FAMILLE ROSE",
215 + "subtitle": null,
216 + "estimateLow": 80,
217 + "estimateHigh": 120,
218 + "sold": 48,
219 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/271-a",
220 + "image": "https://www.artcurial.com/item-images/c0b8e4d6-600d-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-119%20A_WEB.jpg?w=400&force_webp=true"
221 + },
222 + {
223 + "lotNo": "272",
224 + "title": "CARREAU FIGURATIF EN CÉRAMIQUE, IRAN QAJAR, DEUXIÈME MOITIÉ DU XIXe SIÈCLE",
225 + "subtitle": null,
226 + "estimateLow": 500,
227 + "estimateHigh": 800,
228 + "sold": 297,
229 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/272-a",
230 + "image": "https://www.artcurial.com/item-images/b40035e3-600d-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-116_WEB.jpg?w=400&force_webp=true"
231 + },
232 + {
233 + "lotNo": "274",
234 + "title": "TABLE D'APPOINT, TRAVAIL SUISSE DU XVIIIe SIÈCLE, PROBABLEMENT ZURICH OU WINTERTHUR",
235 + "subtitle": null,
236 + "estimateLow": 200,
237 + "estimateHigh": 300,
238 + "sold": 119,
239 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/274-a",
240 + "image": "https://www.artcurial.com/item-images/e842100a-334d-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_102.jpg?w=400&force_webp=true"
241 + },
242 + {
243 + "lotNo": "275",
244 + "title": "PLAQUE DE CABINET DE LA PREMIÈRE MOITIÉ DU XVIIe SIÈCLE",
245 + "subtitle": null,
246 + "estimateLow": 500,
247 + "estimateHigh": 800,
248 + "sold": 2079,
249 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/275-a",
250 + "image": "https://www.artcurial.com/item-images/ba6f7edc-6013-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-089_WEB.jpg?w=400&force_webp=true"
251 + },
252 + {
253 + "lotNo": "276",
254 + "title": "CRUCIFIX EN BOIS ET NACRE, JÉRUSALEM, FIN DU XIXe SIÈCLE",
255 + "subtitle": null,
256 + "estimateLow": 200,
257 + "estimateHigh": 300,
258 + "sold": 208,
259 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/276-a",
260 + "image": "https://www.artcurial.com/item-images/efbf1f18-600c-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-079%20A_WEB.jpg?w=400&force_webp=true"
261 + },
262 + {
263 + "lotNo": "277",
264 + "title": "TABLE À JEUX, TRAVAIL SYRIEN DU DÉBUT DU XXe SIÈCLE",
265 + "subtitle": null,
266 + "estimateLow": 200,
267 + "estimateHigh": 300,
268 + "sold": 178,
269 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/277-a",
270 + "image": "https://www.artcurial.com/item-images/c80d79d0-334e-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_411.jpg?w=400&force_webp=true"
271 + },
272 + {
273 + "lotNo": "279",
274 + "title": "PAIRE DE FLAMBEAUX EN CUIVRE ÉTAMÉ, IRAN QAJAR, FIN DU XVIIIe-DÉBUT DU XIXe SIÈCLE",
275 + "subtitle": null,
276 + "estimateLow": 150,
277 + "estimateHigh": 200,
278 + "sold": 267,
279 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/279-a",
280 + "image": "https://www.artcurial.com/item-images/3eb1633c-600d-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-096_WEB.jpg?w=400&force_webp=true"
281 + },
282 + {
283 + "lotNo": "280",
284 + "title": "GRANDE COUPE EN PORCELAINE BLEU BLANC",
285 + "subtitle": null,
286 + "estimateLow": 80,
287 + "estimateHigh": 120,
288 + "sold": 59,
289 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/280-a",
290 + "image": "https://www.artcurial.com/item-images/a1415242-600d-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-110_WEB.jpg?w=400&force_webp=true"
291 + },
292 + {
293 + "lotNo": "281",
294 + "title": "STATUETTE DE BOUDDHA EN BRONZE",
295 + "subtitle": null,
296 + "estimateLow": 80,
297 + "estimateHigh": 120,
298 + "sold": 48,
299 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/281-a",
300 + "image": "https://www.artcurial.com/item-images/dec8f829-600d-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-122_WEB.jpg?w=400&force_webp=true"
301 + },
302 + {
303 + "lotNo": "284",
304 + "title": "GRAND BOL ET SON PLAT DE PRÉSENTATION EN PORCELAINE GRISAILLE ET REHAUSSÉE D’OR",
305 + "subtitle": null,
306 + "estimateLow": 200,
307 + "estimateHigh": 300,
308 + "sold": 148,
309 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/284-a",
310 + "image": "https://www.artcurial.com/item-images/ece86dd8-5f60-11f1-a17d-2b6f9d758fd3/PICTURE_CATALOG/26112717-067_WEB.jpg?w=400&force_webp=true"
311 + },
312 + {
313 + "lotNo": "285",
314 + "title": "BOL EN PORCELAINE FAMILLE ROSE",
315 + "subtitle": null,
316 + "estimateLow": 60,
317 + "estimateHigh": 80,
318 + "sold": 89,
319 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/285-a",
320 + "image": "https://www.artcurial.com/item-images/cf5f8117-600d-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-120%20A_WEB.jpg?w=400&force_webp=true"
321 + },
322 + {
323 + "lotNo": "287",
324 + "title": "Ecole européenne vers 1830",
325 + "subtitle": "Vue d’intérieur d’une maison de campagne russe",
326 + "estimateLow": 400,
327 + "estimateHigh": 600,
328 + "sold": 1930,
329 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/287-a",
330 + "image": "https://www.artcurial.com/item-images/55559b51-6011-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-360%20A_WEB.jpg?w=400&force_webp=true"
331 + },
332 + {
333 + "lotNo": "288",
334 + "title": "MIROIR SUISSE DU PREMIER QUART DU XIXe SIÈCLE, BERNE",
335 + "subtitle": null,
336 + "estimateLow": 200,
337 + "estimateHigh": 300,
338 + "sold": 594,
339 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/288-a",
340 + "image": "https://www.artcurial.com/item-images/58d86ab0-38a5-11f1-bef4-f918d58faf87/PICTURE_CATALOG/26112717_401D.jpg?w=400&force_webp=true"
341 + },
342 + {
343 + "lotNo": "291",
344 + "title": "ENSEMBLE DE QUARANTE-HUIT OEUFS DÉCORATIFS",
345 + "subtitle": null,
346 + "estimateLow": 100,
347 + "estimateHigh": 150,
348 + "sold": 238,
349 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/291-a",
350 + "image": "https://www.artcurial.com/item-images/586c6943-60b2-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/291_1.jpg?w=400&force_webp=true"
351 + },
352 + {
353 + "lotNo": "292",
354 + "title": "ENSEMBLE DE COUPES \"GRAND TOUR\"",
355 + "subtitle": null,
356 + "estimateLow": 400,
357 + "estimateHigh": 600,
358 + "sold": 416,
359 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/292-a",
360 + "image": "https://www.artcurial.com/item-images/644cb994-60b2-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/291_1.jpg?w=400&force_webp=true"
361 + },
362 + {
363 + "lotNo": "293",
364 + "title": "FLAMBEAU DE STYLE NÉOCLASSIQUE",
365 + "subtitle": null,
366 + "estimateLow": 300,
367 + "estimateHigh": 500,
368 + "sold": 267,
369 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/293-a",
370 + "image": "https://www.artcurial.com/item-images/cffe6eb3-600f-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-335%20A_WEB.jpg?w=400&force_webp=true"
371 + },
372 + {
373 + "lotNo": "295",
374 + "title": "Jean-Jules Salmson (1823-1902)",
375 + "subtitle": null,
376 + "estimateLow": 400,
377 + "estimateHigh": 600,
378 + "sold": 1782,
379 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/295-a",
380 + "image": "https://www.artcurial.com/item-images/4bdd1179-6013-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-445_WEB.jpg?w=400&force_webp=true"
381 + },
382 + {
383 + "lotNo": "296",
384 + "title": "COMMODE-SCRIBAN D'ÉPOQUE EMPIRE",
385 + "subtitle": null,
386 + "estimateLow": 600,
387 + "estimateHigh": 800,
388 + "sold": 594,
389 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/296-a",
390 + "image": "https://www.artcurial.com/item-images/5baec004-334f-11f1-b343-3f3d53aa782b/PICTURE_CATALOG/26112717_446.jpg?w=400&force_webp=true"
391 + },
392 + {
393 + "lotNo": "297",
394 + "title": "Ecole flamande vers 1800",
395 + "subtitle": "Paysage animé d'un convoi au pied d'une cascade",
396 + "estimateLow": 1000,
397 + "estimateHigh": 1500,
398 + "sold": 668,
399 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/297-a",
400 + "image": "https://www.artcurial.com/item-images/46992258-6010-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-347%20A_WEB.jpg?w=400&force_webp=true"
401 + },
402 + {
403 + "lotNo": "298",
404 + "title": "Ecole européenne, 1816((Julie D.))",
405 + "subtitle": "La couture dans un intérieur bourgeois",
406 + "estimateLow": 1000,
407 + "estimateHigh": 1500,
408 + "sold": 1633,
409 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/298-a",
410 + "image": "https://www.artcurial.com/item-images/e9ebda66-600f-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-339%20A_WEB.jpg?w=400&force_webp=true"
411 + },
412 + {
413 + "lotNo": "304",
414 + "title": "MÉDAILLON EN BISCUIT DE BERLIN DE LA FIN DU XVIIIe SIÈCLE",
415 + "subtitle": null,
416 + "estimateLow": 400,
417 + "estimateHigh": 600,
418 + "sold": 238,
419 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/304-a",
420 + "image": "https://www.artcurial.com/item-images/7c3fae4b-600f-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-290_WEB.jpg?w=400&force_webp=true"
421 + },
422 + {
423 + "lotNo": "305",
424 + "title": "DEUX MÉDAILLONS EN BISCUIT DE BERLIN DU DÉBUT DU XIXe SIÈCLE",
425 + "subtitle": null,
426 + "estimateLow": 300,
427 + "estimateHigh": 500,
428 + "sold": 178,
429 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/305-a",
430 + "image": "https://www.artcurial.com/item-images/8d035e33-600f-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-291_WEB.jpg?w=400&force_webp=true"
431 + },
432 + {
433 + "lotNo": "306",
434 + "title": "Médaillon ovale en porcelaine de Paris du XIXe siècle",
435 + "subtitle": null,
436 + "estimateLow": 300,
437 + "estimateHigh": 500,
438 + "sold": 594,
439 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/306-a",
440 + "image": "https://www.artcurial.com/item-images/9af884c6-600f-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-324_WEB.jpg?w=400&force_webp=true"
441 + },
442 + {
443 + "lotNo": "307",
444 + "title": "Médaillon ovale en porcelaine de Paris du XIXe siècle",
445 + "subtitle": null,
446 + "estimateLow": 150,
447 + "estimateHigh": 200,
448 + "sold": 386,
449 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/307-a",
450 + "image": "https://www.artcurial.com/item-images/b1df191e-600f-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-325_WEB.jpg?w=400&force_webp=true"
451 + },
452 + {
453 + "lotNo": "309",
454 + "title": "Pierre-Louis de LA RIVE(Genève, 1753 – Presinge, 1811)",
455 + "subtitle": "Le passage du gué et Couple de bergers et leurs troupeaux au pied d'un grand arbre",
456 + "estimateLow": 2000,
457 + "estimateHigh": 3000,
458 + "sold": 1782,
459 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/309-a",
460 + "image": "https://www.artcurial.com/item-images/ecdd3ef8-60b3-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-352_WEB.jpg?w=400&force_webp=true"
461 + },
462 + {
463 + "lotNo": "311",
464 + "title": "MOBILIER DE SALLE À MANGER SUISSE D'ÉPOQUE NÉOCLASSIQUE",
465 + "subtitle": null,
466 + "estimateLow": 800,
467 + "estimateHigh": 1200,
468 + "sold": 4158,
469 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/311-a",
470 + "image": "https://www.artcurial.com/item-images/37b46047-34bd-11f1-a009-2939728b572b/PICTURE_CATALOG/26112717_244.jpg?w=400&force_webp=true"
471 + },
472 + {
473 + "lotNo": "312",
474 + "title": "Balthazar Anton DUNKER(Saal, 1746 - Berne, 1807)",
475 + "subtitle": "Pêcheurs ouvrant leur nasse au pied d'une architecture en ruine",
476 + "estimateLow": 500,
477 + "estimateHigh": 700,
478 + "sold": 520,
479 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/312-a",
480 + "image": "https://www.artcurial.com/item-images/f0e887cc-6010-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-355%20A_WEB.jpg?w=400&force_webp=true"
481 + },
482 + {
483 + "lotNo": "315",
484 + "title": "FAUTEUIL DE BUREAU D'ÉPOQUE RESTAURATION",
485 + "subtitle": null,
486 + "estimateLow": 200,
487 + "estimateHigh": 300,
488 + "sold": 148,
489 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/315-a",
490 + "image": "https://www.artcurial.com/item-images/d4363dcb-4952-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_226.jpg?w=400&force_webp=true"
491 + },
492 + {
493 + "lotNo": "316",
494 + "title": "Attribué à Johan Rudolf SCHELLENBERG( Bâle, 1740 – Töss, 1806)",
495 + "subtitle": "Etude d'insectes et papillons",
496 + "estimateLow": 400,
497 + "estimateHigh": 600,
498 + "sold": 356,
499 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/316-a",
500 + "image": "https://www.artcurial.com/item-images/56e5def9-600e-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-166%201-2%20A_WEB.jpg?w=400&force_webp=true"
501 + },
502 + {
503 + "lotNo": "317",
504 + "title": "VASE EN CÉRAMIQUE ÉMAILLEE DE LA PREMIÈRE MOITIÉ DU XXe SIÈCLE",
505 + "subtitle": null,
506 + "estimateLow": 100,
507 + "estimateHigh": 150,
508 + "sold": 89,
509 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/317-a",
510 + "image": "https://www.artcurial.com/item-images/881b1234-6019-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717_331.jpg?w=400&force_webp=true"
511 + },
512 + {
513 + "lotNo": "318",
514 + "title": "COMMODE, VERS 1927",
515 + "subtitle": null,
516 + "estimateLow": 800,
517 + "estimateHigh": 1200,
518 + "sold": 520,
519 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/318-a",
520 + "image": "https://www.artcurial.com/item-images/e267b454-495e-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_450.jpg?w=400&force_webp=true"
521 + },
522 + {
523 + "lotNo": "320",
524 + "title": "CANDÉLABRE \"SIMON\"",
525 + "subtitle": null,
526 + "estimateLow": 300,
527 + "estimateHigh": 500,
528 + "sold": 594,
529 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/320-a",
530 + "image": "https://www.artcurial.com/item-images/3b135f94-600e-11f1-92a7-b5aa2838988b/PICTURE_CATALOG/26112717-158_WEB.jpg?w=400&force_webp=true"
531 + },
532 + {
533 + "lotNo": "321",
534 + "title": "ENSEMBLE DE QUATRE NAINS DE JARDIN, TCHÉCOSLOVAQUIE, XXe SIÈCLE",
535 + "subtitle": null,
536 + "estimateLow": 200,
537 + "estimateHigh": 300,
538 + "sold": 742,
539 + "url": "https://www.artcurial.com/en/sales/IT6558/lots/321-a",
540 + "image": "https://www.artcurial.com/item-images/0329d70b-494e-11f1-898e-757c509afcd0/PICTURE_CATALOG/26112717_032.jpg?w=400&force_webp=true"
541 + }
542 + ]
543 + }
544 + },
545 + "expect": {
546 + "minCount": 5,
547 + "kinds": [
548 + "sale",
549 + "auction_lot"
550 + ],
551 + "requiredFields": [
552 + "rawTitle",
553 + "attributes.categorySlug"
554 + ]
555 + },
556 + "note": "Captured live via Firecrawl from artcurial.com",
557 + "capturedAt": "2026-09-07T06:28:36.848Z"
558 +}
\ No newline at end of file
added data/fixtures/idealwine/bordeaux-page-1.json +718 −0
@@ -0,0 +1,718 @@
1 +{
2 + "raw": {
3 + "url": "https://www.idealwine.com/en/cote/bordeaux",
4 + "externalId": "cote:bordeaux:1",
5 + "kind": "price_observation",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:24:02.965Z",
8 + "payload": {
9 + "kind": "cote_page",
10 + "url": "https://www.idealwine.com/en/cote/bordeaux",
11 + "region": "bordeaux",
12 + "page": 1,
13 + "totalPages": 58,
14 + "wines": [
15 + {
16 + "wineId": "120055",
17 + "name": "Abeille de Fieuzal",
18 + "color": "Red",
19 + "region": "Bordeaux",
20 + "appellation": "Pessac-Léognan",
21 + "producerSlug": "Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red",
22 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/120055.jpg",
23 + "vintages": [
24 + {
25 + "vintage": 2021,
26 + "priceEur": 13,
27 + "url": "https://www.idealwine.com/en/wine-prices/120055-2021-Bottle-Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red",
28 + "ref": "120055-2021"
29 + },
30 + {
31 + "vintage": 2020,
32 + "priceEur": 14,
33 + "url": "https://www.idealwine.com/en/wine-prices/120055-2020-Bottle-Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red",
34 + "ref": "120055-2020"
35 + },
36 + {
37 + "vintage": 2019,
38 + "priceEur": 13,
39 + "url": "https://www.idealwine.com/en/wine-prices/120055-2019-Bottle-Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red",
40 + "ref": "120055-2019"
41 + },
42 + {
43 + "vintage": 2018,
44 + "priceEur": 20,
45 + "url": "https://www.idealwine.com/en/wine-prices/120055-2018-Bottle-Bordeaux-Pessac-Leognan-Chateau-de-Fieuzal-red",
46 + "ref": "120055-2018"
47 + }
48 + ]
49 + },
50 + {
51 + "wineId": "154049",
52 + "name": "Abeille de Fieuzal Second Vin",
53 + "color": "White",
54 + "region": "Bordeaux",
55 + "appellation": "Pessac-Léognan",
56 + "producerSlug": "Bordeaux-Pessac-Leognan-Second-Wine-Chateau-de-Fieuzal-white",
57 + "image": null,
58 + "vintages": [
59 + {
60 + "vintage": 2018,
61 + "priceEur": 16,
62 + "url": "https://www.idealwine.com/en/wine-prices/154049-2018-Bottle-Bordeaux-Pessac-Leognan-Second-Wine-Chateau-de-Fieuzal-white",
63 + "ref": "154049-2018"
64 + },
65 + {
66 + "vintage": 2003,
67 + "priceEur": 20,
68 + "url": "https://www.idealwine.com/en/wine-prices/154049-2003-Bottle-Bordeaux-Pessac-Leognan-Second-Wine-Chateau-de-Fieuzal-white",
69 + "ref": "154049-2003"
70 + },
71 + {
72 + "vintage": 1996,
73 + "priceEur": 14,
74 + "url": "https://www.idealwine.com/en/wine-prices/154049-1996-Bottle-Bordeaux-Pessac-Leognan-Second-Wine-Chateau-de-Fieuzal-white",
75 + "ref": "154049-1996"
76 + }
77 + ]
78 + },
79 + {
80 + "wineId": "109082",
81 + "name": "Château d' Agassac Cru Bourgeois",
82 + "color": "Red",
83 + "region": "Bordeaux",
84 + "appellation": "Haut Médoc",
85 + "producerSlug": "Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dAgassac-red",
86 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/109082.jpg",
87 + "vintages": [
88 + {
89 + "vintage": 2021,
90 + "priceEur": 11,
91 + "url": "https://www.idealwine.com/en/wine-prices/109082-2021-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dAgassac-red",
92 + "ref": "109082-2021"
93 + },
94 + {
95 + "vintage": 2020,
96 + "priceEur": 9,
97 + "url": "https://www.idealwine.com/en/wine-prices/109082-2020-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dAgassac-red",
98 + "ref": "109082-2020"
99 + },
100 + {
101 + "vintage": 2019,
102 + "priceEur": 13,
103 + "url": "https://www.idealwine.com/en/wine-prices/109082-2019-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dAgassac-red",
104 + "ref": "109082-2019"
105 + },
106 + {
107 + "vintage": 2018,
108 + "priceEur": 13,
109 + "url": "https://www.idealwine.com/en/wine-prices/109082-2018-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dAgassac-red",
110 + "ref": "109082-2018"
111 + }
112 + ]
113 + },
114 + {
115 + "wineId": "103722",
116 + "name": "Château d' Aiguilhe",
117 + "color": "Red",
118 + "region": "Bordeaux",
119 + "appellation": "Castillon Côtes de Bordeaux",
120 + "producerSlug": "Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-dAiguilhe-red",
121 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/103722.jpg",
122 + "vintages": [
123 + {
124 + "vintage": 2021,
125 + "priceEur": 15,
126 + "url": "https://www.idealwine.com/en/wine-prices/103722-2021-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-dAiguilhe-red",
127 + "ref": "103722-2021"
128 + },
129 + {
130 + "vintage": 2020,
131 + "priceEur": 21,
132 + "url": "https://www.idealwine.com/en/wine-prices/103722-2020-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-dAiguilhe-red",
133 + "ref": "103722-2020"
134 + },
135 + {
136 + "vintage": 2019,
137 + "priceEur": 11,
138 + "url": "https://www.idealwine.com/en/wine-prices/103722-2019-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-dAiguilhe-red",
139 + "ref": "103722-2019"
140 + },
141 + {
142 + "vintage": 2018,
143 + "priceEur": 19,
144 + "url": "https://www.idealwine.com/en/wine-prices/103722-2018-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-dAiguilhe-red",
145 + "ref": "103722-2018"
146 + }
147 + ]
148 + },
149 + {
150 + "wineId": "103004",
151 + "name": "Aile d'Argent",
152 + "color": "White",
153 + "region": "Bordeaux",
154 + "appellation": "Bordeaux",
155 + "producerSlug": "Bordeaux-Bordeaux-Chateau-Mouton-Rothschild-white",
156 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/103004.jpg",
157 + "vintages": [
158 + {
159 + "vintage": 2023,
160 + "priceEur": 113,
161 + "url": "https://www.idealwine.com/en/wine-prices/103004-2023-Bottle-Bordeaux-Bordeaux-Chateau-Mouton-Rothschild-white",
162 + "ref": "103004-2023"
163 + },
164 + {
165 + "vintage": 2022,
166 + "priceEur": 126,
167 + "url": "https://www.idealwine.com/en/wine-prices/103004-2022-Bottle-Bordeaux-Bordeaux-Chateau-Mouton-Rothschild-white",
168 + "ref": "103004-2022"
169 + },
170 + {
171 + "vintage": 2021,
172 + "priceEur": 111,
173 + "url": "https://www.idealwine.com/en/wine-prices/103004-2021-Bottle-Bordeaux-Bordeaux-Chateau-Mouton-Rothschild-white",
174 + "ref": "103004-2021"
175 + },
176 + {
177 + "vintage": 2020,
178 + "priceEur": 90,
179 + "url": "https://www.idealwine.com/en/wine-prices/103004-2020-Bottle-Bordeaux-Bordeaux-Chateau-Mouton-Rothschild-white",
180 + "ref": "103004-2020"
181 + }
182 + ]
183 + },
184 + {
185 + "wineId": "167430",
186 + "name": "Château Alcée",
187 + "color": "Red",
188 + "region": "Bordeaux",
189 + "appellation": "Castillon Côtes de Bordeaux",
190 + "producerSlug": "Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-les-Charmes-Godard-red",
191 + "image": null,
192 + "vintages": [
193 + {
194 + "vintage": 2021,
195 + "priceEur": 11,
196 + "url": "https://www.idealwine.com/en/wine-prices/167430-2021-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-les-Charmes-Godard-red",
197 + "ref": "167430-2021"
198 + },
199 + {
200 + "vintage": 2020,
201 + "priceEur": 14,
202 + "url": "https://www.idealwine.com/en/wine-prices/167430-2020-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-les-Charmes-Godard-red",
203 + "ref": "167430-2020"
204 + },
205 + {
206 + "vintage": 2019,
207 + "priceEur": 9,
208 + "url": "https://www.idealwine.com/en/wine-prices/167430-2019-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-les-Charmes-Godard-red",
209 + "ref": "167430-2019"
210 + },
211 + {
212 + "vintage": 2018,
213 + "priceEur": 12,
214 + "url": "https://www.idealwine.com/en/wine-prices/167430-2018-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-les-Charmes-Godard-red",
215 + "ref": "167430-2018"
216 + }
217 + ]
218 + },
219 + {
220 + "wineId": "108161",
221 + "name": "Allées de Cantemerle Second Vin",
222 + "color": "Red",
223 + "region": "Bordeaux",
224 + "appellation": "Haut Médoc",
225 + "producerSlug": "Bordeaux-Haut-Medoc-Second-Wine-Chateau-Cantemerle-red",
226 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/108161.jpg",
227 + "vintages": [
228 + {
229 + "vintage": 2018,
230 + "priceEur": 12,
231 + "url": "https://www.idealwine.com/en/wine-prices/108161-2018-Bottle-Bordeaux-Haut-Medoc-Second-Wine-Chateau-Cantemerle-red",
232 + "ref": "108161-2018"
233 + },
234 + {
235 + "vintage": 2017,
236 + "priceEur": 8,
237 + "url": "https://www.idealwine.com/en/wine-prices/108161-2017-Bottle-Bordeaux-Haut-Medoc-Second-Wine-Chateau-Cantemerle-red",
238 + "ref": "108161-2017"
239 + },
240 + {
241 + "vintage": 2016,
242 + "priceEur": 12,
243 + "url": "https://www.idealwine.com/en/wine-prices/108161-2016-Bottle-Bordeaux-Haut-Medoc-Second-Wine-Chateau-Cantemerle-red",
244 + "ref": "108161-2016"
245 + },
246 + {
247 + "vintage": 2015,
248 + "priceEur": 13,
249 + "url": "https://www.idealwine.com/en/wine-prices/108161-2015-Bottle-Bordeaux-Haut-Medoc-Second-Wine-Chateau-Cantemerle-red",
250 + "ref": "108161-2015"
251 + }
252 + ]
253 + },
254 + {
255 + "wineId": "103842",
256 + "name": "Alter Ego de Palmer Second Vin",
257 + "color": "Red",
258 + "region": "Bordeaux",
259 + "appellation": "Margaux",
260 + "producerSlug": "Bordeaux-Margaux-Second-Wine-Chateau-Palmer-red",
261 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/103842.jpg",
262 + "vintages": [
263 + {
264 + "vintage": 2022,
265 + "priceEur": 79,
266 + "url": "https://www.idealwine.com/en/wine-prices/103842-2022-Bottle-Bordeaux-Margaux-Second-Wine-Chateau-Palmer-red",
267 + "ref": "103842-2022"
268 + },
269 + {
270 + "vintage": 2021,
271 + "priceEur": 57,
272 + "url": "https://www.idealwine.com/en/wine-prices/103842-2021-Bottle-Bordeaux-Margaux-Second-Wine-Chateau-Palmer-red",
273 + "ref": "103842-2021"
274 + },
275 + {
276 + "vintage": 2020,
277 + "priceEur": 69,
278 + "url": "https://www.idealwine.com/en/wine-prices/103842-2020-Bottle-Bordeaux-Margaux-Second-Wine-Chateau-Palmer-red",
279 + "ref": "103842-2020"
280 + },
281 + {
282 + "vintage": 2019,
283 + "priceEur": 78,
284 + "url": "https://www.idealwine.com/en/wine-prices/103842-2019-Bottle-Bordeaux-Margaux-Second-Wine-Chateau-Palmer-red",
285 + "ref": "103842-2019"
286 + }
287 + ]
288 + },
289 + {
290 + "wineId": "101980",
291 + "name": "Amiral de Beychevelle Second Vin",
292 + "color": "Red",
293 + "region": "Bordeaux",
294 + "appellation": "Saint-Julien",
295 + "producerSlug": "Bordeaux-Saint-Julien-Second-Wine-Chateau-Beychevelle-red",
296 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/101980.jpg",
297 + "vintages": [
298 + {
299 + "vintage": 2021,
300 + "priceEur": 35,
301 + "url": "https://www.idealwine.com/en/wine-prices/101980-2021-Bottle-Bordeaux-Saint-Julien-Second-Wine-Chateau-Beychevelle-red",
302 + "ref": "101980-2021"
303 + },
304 + {
305 + "vintage": 2020,
306 + "priceEur": 48,
307 + "url": "https://www.idealwine.com/en/wine-prices/101980-2020-Bottle-Bordeaux-Saint-Julien-Second-Wine-Chateau-Beychevelle-red",
308 + "ref": "101980-2020"
309 + },
310 + {
311 + "vintage": 2019,
312 + "priceEur": 36,
313 + "url": "https://www.idealwine.com/en/wine-prices/101980-2019-Bottle-Bordeaux-Saint-Julien-Second-Wine-Chateau-Beychevelle-red",
314 + "ref": "101980-2019"
315 + },
316 + {
317 + "vintage": 2018,
318 + "priceEur": 33,
319 + "url": "https://www.idealwine.com/en/wine-prices/101980-2018-Bottle-Bordeaux-Saint-Julien-Second-Wine-Chateau-Beychevelle-red",
320 + "ref": "101980-2018"
321 + }
322 + ]
323 + },
324 + {
325 + "wineId": "119821",
326 + "name": "Château Ampélia",
327 + "color": "Red",
328 + "region": "Bordeaux",
329 + "appellation": "Castillon Côtes de Bordeaux",
330 + "producerSlug": "Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-Ampelia-red",
331 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/119821.jpg",
332 + "vintages": [
333 + {
334 + "vintage": 2021,
335 + "priceEur": 11,
336 + "url": "https://www.idealwine.com/en/wine-prices/119821-2021-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-Ampelia-red",
337 + "ref": "119821-2021"
338 + },
339 + {
340 + "vintage": 2020,
341 + "priceEur": 8,
342 + "url": "https://www.idealwine.com/en/wine-prices/119821-2020-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-Ampelia-red",
343 + "ref": "119821-2020"
344 + },
345 + {
346 + "vintage": 2019,
347 + "priceEur": 6,
348 + "url": "https://www.idealwine.com/en/wine-prices/119821-2019-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-Ampelia-red",
349 + "ref": "119821-2019"
350 + },
351 + {
352 + "vintage": 2018,
353 + "priceEur": 8,
354 + "url": "https://www.idealwine.com/en/wine-prices/119821-2018-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Chateau-Ampelia-red",
355 + "ref": "119821-2018"
356 + }
357 + ]
358 + },
359 + {
360 + "wineId": "2",
361 + "name": "Château Andoyse",
362 + "color": "Sweet and dessert wine",
363 + "region": "Bordeaux",
364 + "appellation": "Sauternes",
365 + "producerSlug": "Bordeaux-Sauternes-Chateau-Andoyse-du-Hayot-sweet-and-dessert-wine",
366 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/2.jpg",
367 + "vintages": [
368 + {
369 + "vintage": 2012,
370 + "priceEur": 16,
371 + "url": "https://www.idealwine.com/en/wine-prices/2-2012-Bottle-Bordeaux-Sauternes-Chateau-Andoyse-du-Hayot-sweet-and-dessert-wine",
372 + "ref": "2-2012"
373 + },
374 + {
375 + "vintage": 2001,
376 + "priceEur": 28,
377 + "url": "https://www.idealwine.com/en/wine-prices/2-2001-Bottle-Bordeaux-Sauternes-Chateau-Andoyse-du-Hayot-sweet-and-dessert-wine",
378 + "ref": "2-2001"
379 + },
380 + {
381 + "vintage": 1997,
382 + "priceEur": 25,
383 + "url": "https://www.idealwine.com/en/wine-prices/2-1997-Bottle-Bordeaux-Sauternes-Chateau-Andoyse-du-Hayot-sweet-and-dessert-wine",
384 + "ref": "2-1997"
385 + },
386 + {
387 + "vintage": 1996,
388 + "priceEur": 24,
389 + "url": "https://www.idealwine.com/en/wine-prices/2-1996-Bottle-Bordeaux-Sauternes-Chateau-Andoyse-du-Hayot-sweet-and-dessert-wine",
390 + "ref": "2-1996"
391 + }
392 + ]
393 + },
394 + {
395 + "wineId": "103030",
396 + "name": "Château Andréas",
397 + "color": "Red",
398 + "region": "Bordeaux",
399 + "appellation": "Saint-Émilion",
400 + "producerSlug": "Bordeaux-Saint-Emilion-Chateau-Andreas-red",
401 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/103030.jpg",
402 + "vintages": [
403 + {
404 + "vintage": 2000,
405 + "priceEur": 41,
406 + "url": "https://www.idealwine.com/en/wine-prices/103030-2000-Bottle-Bordeaux-Saint-Emilion-Chateau-Andreas-red",
407 + "ref": "103030-2000"
408 + },
409 + {
410 + "vintage": 1999,
411 + "priceEur": 30,
412 + "url": "https://www.idealwine.com/en/wine-prices/103030-1999-Bottle-Bordeaux-Saint-Emilion-Chateau-Andreas-red",
413 + "ref": "103030-1999"
414 + },
415 + {
416 + "vintage": 1998,
417 + "priceEur": 25,
418 + "url": "https://www.idealwine.com/en/wine-prices/103030-1998-Bottle-Bordeaux-Saint-Emilion-Chateau-Andreas-red",
419 + "ref": "103030-1998"
420 + }
421 + ]
422 + },
423 + {
424 + "wineId": "3",
425 + "name": "Château Andron Blanquet Cru Bourgeois",
426 + "color": "Red",
427 + "region": "Bordeaux",
428 + "appellation": "Saint-Estèphe",
429 + "producerSlug": "Bordeaux-Saint-Estephe-Cru-bourgeois-Chateau-Andron-Blanquet-red",
430 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/3.jpg",
431 + "vintages": [
432 + {
433 + "vintage": 2021,
434 + "priceEur": 13,
435 + "url": "https://www.idealwine.com/en/wine-prices/3-2021-Bottle-Bordeaux-Saint-Estephe-Cru-bourgeois-Chateau-Andron-Blanquet-red",
436 + "ref": "3-2021"
437 + },
438 + {
439 + "vintage": 2020,
440 + "priceEur": 11,
441 + "url": "https://www.idealwine.com/en/wine-prices/3-2020-Bottle-Bordeaux-Saint-Estephe-Cru-bourgeois-Chateau-Andron-Blanquet-red",
442 + "ref": "3-2020"
443 + },
444 + {
445 + "vintage": 2019,
446 + "priceEur": 11,
447 + "url": "https://www.idealwine.com/en/wine-prices/3-2019-Bottle-Bordeaux-Saint-Estephe-Cru-bourgeois-Chateau-Andron-Blanquet-red",
448 + "ref": "3-2019"
449 + },
450 + {
451 + "vintage": 2018,
452 + "priceEur": 13,
453 + "url": "https://www.idealwine.com/en/wine-prices/3-2018-Bottle-Bordeaux-Saint-Estephe-Cru-bourgeois-Chateau-Andron-Blanquet-red",
454 + "ref": "3-2018"
455 + }
456 + ]
457 + },
458 + {
459 + "wineId": "4",
460 + "name": "Château Angélus 1er Grand Cru Classé A",
461 + "color": "Red",
462 + "region": "Bordeaux",
463 + "appellation": "Saint-Émilion Grand Cru",
464 + "producerSlug": "Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Angelus-red",
465 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/4.jpg",
466 + "vintages": [
467 + {
468 + "vintage": 2022,
469 + "priceEur": 426,
470 + "url": "https://www.idealwine.com/en/wine-prices/4-2022-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Angelus-red",
471 + "ref": "4-2022"
472 + },
473 + {
474 + "vintage": 2021,
475 + "priceEur": 245,
476 + "url": "https://www.idealwine.com/en/wine-prices/4-2021-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Angelus-red",
477 + "ref": "4-2021"
478 + },
479 + {
480 + "vintage": 2020,
481 + "priceEur": 245,
482 + "url": "https://www.idealwine.com/en/wine-prices/4-2020-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Angelus-red",
483 + "ref": "4-2020"
484 + },
485 + {
486 + "vintage": 2019,
487 + "priceEur": 263,
488 + "url": "https://www.idealwine.com/en/wine-prices/4-2019-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Angelus-red",
489 + "ref": "4-2019"
490 + }
491 + ]
492 + },
493 + {
494 + "wineId": "175309",
495 + "name": "Angélus - Hommage à Elisabeth Bouchet",
496 + "color": "Red",
497 + "region": "Bordeaux",
498 + "appellation": "Saint-Émilion Grand Cru",
499 + "producerSlug": "Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Angelus-red",
500 + "image": null,
501 + "vintages": [
502 + {
503 + "vintage": 2020,
504 + "priceEur": 1.033,
505 + "url": "https://www.idealwine.com/en/wine-prices/175309-2020-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Angelus-red",
506 + "ref": "175309-2020"
507 + },
508 + {
509 + "vintage": 2019,
510 + "priceEur": 944,
511 + "url": "https://www.idealwine.com/en/wine-prices/175309-2019-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Angelus-red",
512 + "ref": "175309-2019"
513 + },
514 + {
515 + "vintage": 2018,
516 + "priceEur": 916,
517 + "url": "https://www.idealwine.com/en/wine-prices/175309-2018-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Angelus-red",
518 + "ref": "175309-2018"
519 + },
520 + {
521 + "vintage": 2016,
522 + "priceEur": 1.032,
523 + "url": "https://www.idealwine.com/en/wine-prices/175309-2016-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Angelus-red",
524 + "ref": "175309-2016"
525 + }
526 + ]
527 + },
528 + {
529 + "wineId": "5",
530 + "name": "Château d' Angludet Cru Bourgeois",
531 + "color": "Red",
532 + "region": "Bordeaux",
533 + "appellation": "Margaux",
534 + "producerSlug": "Bordeaux-Margaux-Cru-bourgeois-Chateau-dAngludet-red",
535 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/5.jpg",
536 + "vintages": [
537 + {
538 + "vintage": 2021,
539 + "priceEur": 20,
540 + "url": "https://www.idealwine.com/en/wine-prices/5-2021-Bottle-Bordeaux-Margaux-Cru-bourgeois-Chateau-dAngludet-red",
541 + "ref": "5-2021"
542 + },
543 + {
544 + "vintage": 2020,
545 + "priceEur": 23,
546 + "url": "https://www.idealwine.com/en/wine-prices/5-2020-Bottle-Bordeaux-Margaux-Cru-bourgeois-Chateau-dAngludet-red",
547 + "ref": "5-2020"
548 + },
549 + {
550 + "vintage": 2019,
551 + "priceEur": 25,
552 + "url": "https://www.idealwine.com/en/wine-prices/5-2019-Bottle-Bordeaux-Margaux-Cru-bourgeois-Chateau-dAngludet-red",
553 + "ref": "5-2019"
554 + },
555 + {
556 + "vintage": 2018,
557 + "priceEur": 24,
558 + "url": "https://www.idealwine.com/en/wine-prices/5-2018-Bottle-Bordeaux-Margaux-Cru-bourgeois-Chateau-dAngludet-red",
559 + "ref": "5-2018"
560 + }
561 + ]
562 + },
563 + {
564 + "wineId": "104523",
565 + "name": "Château Annereaux",
566 + "color": "Red",
567 + "region": "Bordeaux",
568 + "appellation": "Lalande de Pomerol",
569 + "producerSlug": "Bordeaux-Lalande-de-Pomerol-Chateau-Annereaux-red",
570 + "image": null,
571 + "vintages": [
572 + {
573 + "vintage": 2021,
574 + "priceEur": 5,
575 + "url": "https://www.idealwine.com/en/wine-prices/104523-2021-Bottle-Bordeaux-Lalande-de-Pomerol-Chateau-Annereaux-red",
576 + "ref": "104523-2021"
577 + },
578 + {
579 + "vintage": 2020,
580 + "priceEur": 11,
581 + "url": "https://www.idealwine.com/en/wine-prices/104523-2020-Bottle-Bordeaux-Lalande-de-Pomerol-Chateau-Annereaux-red",
582 + "ref": "104523-2020"
583 + },
584 + {
585 + "vintage": 2019,
586 + "priceEur": 14,
587 + "url": "https://www.idealwine.com/en/wine-prices/104523-2019-Bottle-Bordeaux-Lalande-de-Pomerol-Chateau-Annereaux-red",
588 + "ref": "104523-2019"
589 + },
590 + {
591 + "vintage": 2018,
592 + "priceEur": 14,
593 + "url": "https://www.idealwine.com/en/wine-prices/104523-2018-Bottle-Bordeaux-Lalande-de-Pomerol-Chateau-Annereaux-red",
594 + "ref": "104523-2018"
595 + }
596 + ]
597 + },
598 + {
599 + "wineId": "6",
600 + "name": "Château Anthonic Cru Bourgeois",
601 + "color": "Red",
602 + "region": "Bordeaux",
603 + "appellation": "Moulis-en-Médoc",
604 + "producerSlug": "Bordeaux-Moulis-en-Medoc-Cru-bourgeois-Chateau-Anthonic-red",
605 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/6.jpg",
606 + "vintages": [
607 + {
608 + "vintage": 2020,
609 + "priceEur": 19,
610 + "url": "https://www.idealwine.com/en/wine-prices/6-2020-Bottle-Bordeaux-Moulis-en-Medoc-Cru-bourgeois-Chateau-Anthonic-red",
611 + "ref": "6-2020"
612 + },
613 + {
614 + "vintage": 2019,
615 + "priceEur": 20,
616 + "url": "https://www.idealwine.com/en/wine-prices/6-2019-Bottle-Bordeaux-Moulis-en-Medoc-Cru-bourgeois-Chateau-Anthonic-red",
617 + "ref": "6-2019"
618 + },
619 + {
620 + "vintage": 2018,
621 + "priceEur": 21,
622 + "url": "https://www.idealwine.com/en/wine-prices/6-2018-Bottle-Bordeaux-Moulis-en-Medoc-Cru-bourgeois-Chateau-Anthonic-red",
623 + "ref": "6-2018"
624 + },
625 + {
626 + "vintage": 2017,
627 + "priceEur": 7,
628 + "url": "https://www.idealwine.com/en/wine-prices/6-2017-Bottle-Bordeaux-Moulis-en-Medoc-Cru-bourgeois-Chateau-Anthonic-red",
629 + "ref": "6-2017"
630 + }
631 + ]
632 + },
633 + {
634 + "wineId": "8",
635 + "name": "Château d' Archambeau",
636 + "color": "Red",
637 + "region": "Bordeaux",
638 + "appellation": "Graves",
639 + "producerSlug": "Bordeaux-Graves-Chateau-dArchambeau-red",
640 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/8.jpg",
641 + "vintages": [
642 + {
643 + "vintage": 2010,
644 + "priceEur": 13,
645 + "url": "https://www.idealwine.com/en/wine-prices/8-2010-Bottle-Bordeaux-Graves-Chateau-dArchambeau-red",
646 + "ref": "8-2010"
647 + },
648 + {
649 + "vintage": 2005,
650 + "priceEur": 19,
651 + "url": "https://www.idealwine.com/en/wine-prices/8-2005-Bottle-Bordeaux-Graves-Chateau-dArchambeau-red",
652 + "ref": "8-2005"
653 + },
654 + {
655 + "vintage": 2000,
656 + "priceEur": 11,
657 + "url": "https://www.idealwine.com/en/wine-prices/8-2000-Bottle-Bordeaux-Graves-Chateau-dArchambeau-red",
658 + "ref": "8-2000"
659 + },
660 + {
661 + "vintage": 1997,
662 + "priceEur": 16,
663 + "url": "https://www.idealwine.com/en/wine-prices/8-1997-Bottle-Bordeaux-Graves-Chateau-dArchambeau-red",
664 + "ref": "8-1997"
665 + }
666 + ]
667 + },
668 + {
669 + "wineId": "7",
670 + "name": "Château d' Archambeau",
671 + "color": "White",
672 + "region": "Bordeaux",
673 + "appellation": "Graves",
674 + "producerSlug": "Bordeaux-Graves-Chateau-dArchambeau-white",
675 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/7.jpg",
676 + "vintages": [
677 + {
678 + "vintage": 1998,
679 + "priceEur": 12,
680 + "url": "https://www.idealwine.com/en/wine-prices/7-1998-Bottle-Bordeaux-Graves-Chateau-dArchambeau-white",
681 + "ref": "7-1998"
682 + },
683 + {
684 + "vintage": 1997,
685 + "priceEur": 19,
686 + "url": "https://www.idealwine.com/en/wine-prices/7-1997-Bottle-Bordeaux-Graves-Chateau-dArchambeau-white",
687 + "ref": "7-1997"
688 + },
689 + {
690 + "vintage": 1996,
691 + "priceEur": 30,
692 + "url": "https://www.idealwine.com/en/wine-prices/7-1996-Bottle-Bordeaux-Graves-Chateau-dArchambeau-white",
693 + "ref": "7-1996"
694 + },
695 + {
696 + "vintage": 1995,
697 + "priceEur": 38,
698 + "url": "https://www.idealwine.com/en/wine-prices/7-1995-Bottle-Bordeaux-Graves-Chateau-dArchambeau-white",
699 + "ref": "7-1995"
700 + }
701 + ]
702 + }
703 + ]
704 + }
705 + },
706 + "expect": {
707 + "minCount": 40,
708 + "kinds": [
709 + "catalog_item",
710 + "price_observation"
711 + ],
712 + "requiredFields": [
713 + "attributes.name"
714 + ]
715 + },
716 + "note": "Captured live from idealwine.com /en/cote/bordeaux (plain HTTPS)",
717 + "capturedAt": "2026-09-07T06:24:02.999Z"
718 +}
\ No newline at end of file
added data/fixtures/idealwine/bordeaux-page-2.json +694 −0
@@ -0,0 +1,694 @@
1 +{
2 + "raw": {
3 + "url": "https://www.idealwine.com/en/cote/bordeaux?page=2",
4 + "externalId": "cote:bordeaux:2",
5 + "kind": "price_observation",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:24:04.861Z",
8 + "payload": {
9 + "kind": "cote_page",
10 + "url": "https://www.idealwine.com/en/cote/bordeaux?page=2",
11 + "region": "bordeaux",
12 + "page": 2,
13 + "totalPages": 58,
14 + "wines": [
15 + {
16 + "wineId": "10",
17 + "name": "Château d' Arche 2ème Grand Cru Classé",
18 + "color": "Sweet and dessert wine",
19 + "region": "Bordeaux",
20 + "appellation": "Sauternes",
21 + "producerSlug": "Bordeaux-Sauternes-Deuxieme-Grand-Cru-Classe-Chateau-dArche-sweet-and-dessert-wine",
22 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/10.jpg",
23 + "vintages": [
24 + {
25 + "vintage": 2020,
26 + "priceEur": 17,
27 + "url": "https://www.idealwine.com/en/wine-prices/10-2020-Bottle-Bordeaux-Sauternes-Deuxieme-Grand-Cru-Classe-Chateau-dArche-sweet-and-dessert-wine",
28 + "ref": "10-2020"
29 + },
30 + {
31 + "vintage": 2019,
32 + "priceEur": 16,
33 + "url": "https://www.idealwine.com/en/wine-prices/10-2019-Bottle-Bordeaux-Sauternes-Deuxieme-Grand-Cru-Classe-Chateau-dArche-sweet-and-dessert-wine",
34 + "ref": "10-2019"
35 + },
36 + {
37 + "vintage": 2018,
38 + "priceEur": 30,
39 + "url": "https://www.idealwine.com/en/wine-prices/10-2018-Bottle-Bordeaux-Sauternes-Deuxieme-Grand-Cru-Classe-Chateau-dArche-sweet-and-dessert-wine",
40 + "ref": "10-2018"
41 + },
42 + {
43 + "vintage": 2017,
44 + "priceEur": 25,
45 + "url": "https://www.idealwine.com/en/wine-prices/10-2017-Bottle-Bordeaux-Sauternes-Deuxieme-Grand-Cru-Classe-Chateau-dArche-sweet-and-dessert-wine",
46 + "ref": "10-2017"
47 + }
48 + ]
49 + },
50 + {
51 + "wineId": "11",
52 + "name": "Château d' Arcins Cru Bourgeois",
53 + "color": "Red",
54 + "region": "Bordeaux",
55 + "appellation": "Haut Médoc",
56 + "producerSlug": "Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dArcins-red",
57 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/11.jpg",
58 + "vintages": [
59 + {
60 + "vintage": 2021,
61 + "priceEur": 14,
62 + "url": "https://www.idealwine.com/en/wine-prices/11-2021-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dArcins-red",
63 + "ref": "11-2021"
64 + },
65 + {
66 + "vintage": 2020,
67 + "priceEur": 9,
68 + "url": "https://www.idealwine.com/en/wine-prices/11-2020-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dArcins-red",
69 + "ref": "11-2020"
70 + },
71 + {
72 + "vintage": 2019,
73 + "priceEur": 10,
74 + "url": "https://www.idealwine.com/en/wine-prices/11-2019-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dArcins-red",
75 + "ref": "11-2019"
76 + },
77 + {
78 + "vintage": 2017,
79 + "priceEur": 9,
80 + "url": "https://www.idealwine.com/en/wine-prices/11-2017-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-dArcins-red",
81 + "ref": "11-2017"
82 + }
83 + ]
84 + },
85 + {
86 + "wineId": "133157",
87 + "name": "Château d' Argan Cru Bourgeois",
88 + "color": "Red",
89 + "region": "Bordeaux",
90 + "appellation": "Médoc",
91 + "producerSlug": "Bordeaux-Medoc-Cru-bourgeois-Chateau-dArgan-red",
92 + "image": null,
93 + "vintages": [
94 + {
95 + "vintage": 2019,
96 + "priceEur": 9,
97 + "url": "https://www.idealwine.com/en/wine-prices/133157-2019-Bottle-Bordeaux-Medoc-Cru-bourgeois-Chateau-dArgan-red",
98 + "ref": "133157-2019"
99 + },
100 + {
101 + "vintage": 2018,
102 + "priceEur": 9,
103 + "url": "https://www.idealwine.com/en/wine-prices/133157-2018-Bottle-Bordeaux-Medoc-Cru-bourgeois-Chateau-dArgan-red",
104 + "ref": "133157-2018"
105 + },
106 + {
107 + "vintage": 2017,
108 + "priceEur": 10,
109 + "url": "https://www.idealwine.com/en/wine-prices/133157-2017-Bottle-Bordeaux-Medoc-Cru-bourgeois-Chateau-dArgan-red",
110 + "ref": "133157-2017"
111 + },
112 + {
113 + "vintage": 2016,
114 + "priceEur": 11,
115 + "url": "https://www.idealwine.com/en/wine-prices/133157-2016-Bottle-Bordeaux-Medoc-Cru-bourgeois-Chateau-dArgan-red",
116 + "ref": "133157-2016"
117 + }
118 + ]
119 + },
120 + {
121 + "wineId": "12",
122 + "name": "Château d' Armailhac - Mouton Baron(ne) Philippe 5ème Grand Cru Classé",
123 + "color": "Red",
124 + "region": "Bordeaux",
125 + "appellation": "Pauillac",
126 + "producerSlug": "Bordeaux-Pauillac-Cinquieme-Grand-Cru-Classe-Chateau-dArmailhac---Mouton-Baronne-Philippe-red",
127 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/12.jpg",
128 + "vintages": [
129 + {
130 + "vintage": 2021,
131 + "priceEur": 33,
132 + "url": "https://www.idealwine.com/en/wine-prices/12-2021-Bottle-Bordeaux-Pauillac-Cinquieme-Grand-Cru-Classe-Chateau-dArmailhac---Mouton-Baronne-Philippe-red",
133 + "ref": "12-2021"
134 + },
135 + {
136 + "vintage": 2020,
137 + "priceEur": 48,
138 + "url": "https://www.idealwine.com/en/wine-prices/12-2020-Bottle-Bordeaux-Pauillac-Cinquieme-Grand-Cru-Classe-Chateau-dArmailhac---Mouton-Baronne-Philippe-red",
139 + "ref": "12-2020"
140 + },
141 + {
142 + "vintage": 2019,
143 + "priceEur": 44,
144 + "url": "https://www.idealwine.com/en/wine-prices/12-2019-Bottle-Bordeaux-Pauillac-Cinquieme-Grand-Cru-Classe-Chateau-dArmailhac---Mouton-Baronne-Philippe-red",
145 + "ref": "12-2019"
146 + },
147 + {
148 + "vintage": 2018,
149 + "priceEur": 45,
150 + "url": "https://www.idealwine.com/en/wine-prices/12-2018-Bottle-Bordeaux-Pauillac-Cinquieme-Grand-Cru-Classe-Chateau-dArmailhac---Mouton-Baronne-Philippe-red",
151 + "ref": "12-2018"
152 + }
153 + ]
154 + },
155 + {
156 + "wineId": "105326",
157 + "name": "Château Armens Grand Cru",
158 + "color": "Red",
159 + "region": "Bordeaux",
160 + "appellation": "Saint-Émilion",
161 + "producerSlug": "Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Armens-red",
162 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/105326.jpg",
163 + "vintages": [
164 + {
165 + "vintage": 2020,
166 + "priceEur": 13,
167 + "url": "https://www.idealwine.com/en/wine-prices/105326-2020-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Armens-red",
168 + "ref": "105326-2020"
169 + },
170 + {
171 + "vintage": 2019,
172 + "priceEur": 9,
173 + "url": "https://www.idealwine.com/en/wine-prices/105326-2019-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Armens-red",
174 + "ref": "105326-2019"
175 + },
176 + {
177 + "vintage": 2018,
178 + "priceEur": 16,
179 + "url": "https://www.idealwine.com/en/wine-prices/105326-2018-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Armens-red",
180 + "ref": "105326-2018"
181 + },
182 + {
183 + "vintage": 2017,
184 + "priceEur": 11,
185 + "url": "https://www.idealwine.com/en/wine-prices/105326-2017-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Armens-red",
186 + "ref": "105326-2017"
187 + }
188 + ]
189 + },
190 + {
191 + "wineId": "13",
192 + "name": "Château Arnauld Cru Bourgeois",
193 + "color": "Red",
194 + "region": "Bordeaux",
195 + "appellation": "Haut Médoc",
196 + "producerSlug": "Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Arnauld-red",
197 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/13.jpg",
198 + "vintages": [
199 + {
200 + "vintage": 2022,
201 + "priceEur": 18,
202 + "url": "https://www.idealwine.com/en/wine-prices/13-2022-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Arnauld-red",
203 + "ref": "13-2022"
204 + },
205 + {
206 + "vintage": 2021,
207 + "priceEur": 14,
208 + "url": "https://www.idealwine.com/en/wine-prices/13-2021-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Arnauld-red",
209 + "ref": "13-2021"
210 + },
211 + {
212 + "vintage": 2020,
213 + "priceEur": 13,
214 + "url": "https://www.idealwine.com/en/wine-prices/13-2020-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Arnauld-red",
215 + "ref": "13-2020"
216 + },
217 + {
218 + "vintage": 2019,
219 + "priceEur": 14,
220 + "url": "https://www.idealwine.com/en/wine-prices/13-2019-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Arnauld-red",
221 + "ref": "13-2019"
222 + }
223 + ]
224 + },
225 + {
226 + "wineId": "162629",
227 + "name": "Arômes de Pavie",
228 + "color": "Red",
229 + "region": "Bordeaux",
230 + "appellation": "Saint-Émilion Grand Cru",
231 + "producerSlug": "Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Pavie-red",
232 + "image": null,
233 + "vintages": [
234 + {
235 + "vintage": 2021,
236 + "priceEur": 53,
237 + "url": "https://www.idealwine.com/en/wine-prices/162629-2021-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Pavie-red",
238 + "ref": "162629-2021"
239 + },
240 + {
241 + "vintage": 2020,
242 + "priceEur": 65,
243 + "url": "https://www.idealwine.com/en/wine-prices/162629-2020-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Pavie-red",
244 + "ref": "162629-2020"
245 + },
246 + {
247 + "vintage": 2019,
248 + "priceEur": 51,
249 + "url": "https://www.idealwine.com/en/wine-prices/162629-2019-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Pavie-red",
250 + "ref": "162629-2019"
251 + },
252 + {
253 + "vintage": 2018,
254 + "priceEur": 70,
255 + "url": "https://www.idealwine.com/en/wine-prices/162629-2018-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Chateau-Pavie-red",
256 + "ref": "162629-2018"
257 + }
258 + ]
259 + },
260 + {
261 + "wineId": "14",
262 + "name": "Château l' Arrosée Grand Cru Classé",
263 + "color": "Red",
264 + "region": "Bordeaux",
265 + "appellation": "Saint-Émilion Grand Cru",
266 + "producerSlug": "Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-lArrosee-red",
267 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/14.jpg",
268 + "vintages": [
269 + {
270 + "vintage": 2012,
271 + "priceEur": 29,
272 + "url": "https://www.idealwine.com/en/wine-prices/14-2012-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-lArrosee-red",
273 + "ref": "14-2012"
274 + },
275 + {
276 + "vintage": 2011,
277 + "priceEur": 37,
278 + "url": "https://www.idealwine.com/en/wine-prices/14-2011-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-lArrosee-red",
279 + "ref": "14-2011"
280 + },
281 + {
282 + "vintage": 2010,
283 + "priceEur": 44,
284 + "url": "https://www.idealwine.com/en/wine-prices/14-2010-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-lArrosee-red",
285 + "ref": "14-2010"
286 + },
287 + {
288 + "vintage": 2009,
289 + "priceEur": 45,
290 + "url": "https://www.idealwine.com/en/wine-prices/14-2009-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-lArrosee-red",
291 + "ref": "14-2009"
292 + }
293 + ]
294 + },
295 + {
296 + "wineId": "15",
297 + "name": "Château d' Arsac Cru Bourgeois",
298 + "color": "Red",
299 + "region": "Bordeaux",
300 + "appellation": "Margaux",
301 + "producerSlug": "Bordeaux-Margaux-Cru-bourgeois-Chateau-dArsac-red",
302 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/15.jpg",
303 + "vintages": [
304 + {
305 + "vintage": 2021,
306 + "priceEur": 12,
307 + "url": "https://www.idealwine.com/en/wine-prices/15-2021-Bottle-Bordeaux-Margaux-Cru-bourgeois-Chateau-dArsac-red",
308 + "ref": "15-2021"
309 + },
310 + {
311 + "vintage": 2020,
312 + "priceEur": 12,
313 + "url": "https://www.idealwine.com/en/wine-prices/15-2020-Bottle-Bordeaux-Margaux-Cru-bourgeois-Chateau-dArsac-red",
314 + "ref": "15-2020"
315 + },
316 + {
317 + "vintage": 2019,
318 + "priceEur": 13,
319 + "url": "https://www.idealwine.com/en/wine-prices/15-2019-Bottle-Bordeaux-Margaux-Cru-bourgeois-Chateau-dArsac-red",
320 + "ref": "15-2019"
321 + },
322 + {
323 + "vintage": 2018,
324 + "priceEur": 15,
325 + "url": "https://www.idealwine.com/en/wine-prices/15-2018-Bottle-Bordeaux-Margaux-Cru-bourgeois-Chateau-dArsac-red",
326 + "ref": "15-2018"
327 + }
328 + ]
329 + },
330 + {
331 + "wineId": "105001",
332 + "name": "Arthémis",
333 + "color": "Red",
334 + "region": "Bordeaux",
335 + "appellation": "Castillon Côtes de Bordeaux",
336 + "producerSlug": "Bordeaux-Castillon-Cotes-de-Bordeaux-Arthemis-red",
337 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/105001.jpg",
338 + "vintages": [
339 + {
340 + "vintage": 2003,
341 + "priceEur": 38,
342 + "url": "https://www.idealwine.com/en/wine-prices/105001-2003-Bottle-Bordeaux-Castillon-Cotes-de-Bordeaux-Arthemis-red",
343 + "ref": "105001-2003"
344 + }
345 + ]
346 + },
347 + {
348 + "wineId": "503420",
349 + "name": "Assortiment Petrus + Saute Loup Réserve de la Famille",
350 + "color": "Red",
351 + "region": "Bordeaux",
352 + "appellation": "Pomerol",
353 + "producerSlug": "Bordeaux-Pomerol-Petrus-red",
354 + "image": null,
355 + "vintages": [
356 + {
357 + "vintage": 2009,
358 + "priceEur": 4.85,
359 + "url": "https://www.idealwine.com/en/wine-prices/503420-2009-Bottle-Bordeaux-Pomerol-Petrus-red",
360 + "ref": "503420-2009"
361 + }
362 + ]
363 + },
364 + {
365 + "wineId": "121599",
366 + "name": "Château d' Aurilhac",
367 + "color": "Red",
368 + "region": "Bordeaux",
369 + "appellation": "Haut Médoc",
370 + "producerSlug": "Bordeaux-Haut-Medoc-Chateau-dAurilhac-red",
371 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/121599.jpg",
372 + "vintages": [
373 + {
374 + "vintage": 2019,
375 + "priceEur": 7,
376 + "url": "https://www.idealwine.com/en/wine-prices/121599-2019-Bottle-Bordeaux-Haut-Medoc-Chateau-dAurilhac-red",
377 + "ref": "121599-2019"
378 + },
379 + {
380 + "vintage": 2018,
381 + "priceEur": 7,
382 + "url": "https://www.idealwine.com/en/wine-prices/121599-2018-Bottle-Bordeaux-Haut-Medoc-Chateau-dAurilhac-red",
383 + "ref": "121599-2018"
384 + },
385 + {
386 + "vintage": 2017,
387 + "priceEur": 10,
388 + "url": "https://www.idealwine.com/en/wine-prices/121599-2017-Bottle-Bordeaux-Haut-Medoc-Chateau-dAurilhac-red",
389 + "ref": "121599-2017"
390 + },
391 + {
392 + "vintage": 2016,
393 + "priceEur": 14,
394 + "url": "https://www.idealwine.com/en/wine-prices/121599-2016-Bottle-Bordeaux-Haut-Medoc-Chateau-dAurilhac-red",
395 + "ref": "121599-2016"
396 + }
397 + ]
398 + },
399 + {
400 + "wineId": "133196",
401 + "name": "Aurore de Dauzac",
402 + "color": "Red",
403 + "region": "Bordeaux",
404 + "appellation": "Margaux",
405 + "producerSlug": "Bordeaux-Margaux-Chateau-Dauzac-red",
406 + "image": null,
407 + "vintages": [
408 + {
409 + "vintage": 2021,
410 + "priceEur": 26,
411 + "url": "https://www.idealwine.com/en/wine-prices/133196-2021-Bottle-Bordeaux-Margaux-Chateau-Dauzac-red",
412 + "ref": "133196-2021"
413 + },
414 + {
415 + "vintage": 2020,
416 + "priceEur": 15,
417 + "url": "https://www.idealwine.com/en/wine-prices/133196-2020-Bottle-Bordeaux-Margaux-Chateau-Dauzac-red",
418 + "ref": "133196-2020"
419 + },
420 + {
421 + "vintage": 2019,
422 + "priceEur": 13,
423 + "url": "https://www.idealwine.com/en/wine-prices/133196-2019-Bottle-Bordeaux-Margaux-Chateau-Dauzac-red",
424 + "ref": "133196-2019"
425 + },
426 + {
427 + "vintage": 2018,
428 + "priceEur": 18,
429 + "url": "https://www.idealwine.com/en/wine-prices/133196-2018-Bottle-Bordeaux-Margaux-Chateau-Dauzac-red",
430 + "ref": "133196-2018"
431 + }
432 + ]
433 + },
434 + {
435 + "wineId": "16",
436 + "name": "Château Ausone 1er Grand Cru Classé A",
437 + "color": "Red",
438 + "region": "Bordeaux",
439 + "appellation": "Saint-Émilion Grand Cru",
440 + "producerSlug": "Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Ausone-red",
441 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/16.jpg",
442 + "vintages": [
443 + {
444 + "vintage": 2022,
445 + "priceEur": 601,
446 + "url": "https://www.idealwine.com/en/wine-prices/16-2022-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Ausone-red",
447 + "ref": "16-2022"
448 + },
449 + {
450 + "vintage": 2021,
451 + "priceEur": 401,
452 + "url": "https://www.idealwine.com/en/wine-prices/16-2021-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Ausone-red",
453 + "ref": "16-2021"
454 + },
455 + {
456 + "vintage": 2020,
457 + "priceEur": 476,
458 + "url": "https://www.idealwine.com/en/wine-prices/16-2020-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Ausone-red",
459 + "ref": "16-2020"
460 + },
461 + {
462 + "vintage": 2019,
463 + "priceEur": 491,
464 + "url": "https://www.idealwine.com/en/wine-prices/16-2019-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Premier-Grand-Cru-Classe-A-Chateau-Ausone-red",
465 + "ref": "16-2019"
466 + }
467 + ]
468 + },
469 + {
470 + "wineId": "103721",
471 + "name": "Axelle de Valandraud",
472 + "color": "Red",
473 + "region": "Bordeaux",
474 + "appellation": "Saint-Émilion",
475 + "producerSlug": "Bordeaux-Saint-Emilion-Chateau-de-Valandraud-red",
476 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/103721.jpg",
477 + "vintages": [
478 + {
479 + "vintage": 2021,
480 + "priceEur": 13,
481 + "url": "https://www.idealwine.com/en/wine-prices/103721-2021-Bottle-Bordeaux-Saint-Emilion-Chateau-de-Valandraud-red",
482 + "ref": "103721-2021"
483 + },
484 + {
485 + "vintage": 2015,
486 + "priceEur": 22,
487 + "url": "https://www.idealwine.com/en/wine-prices/103721-2015-Bottle-Bordeaux-Saint-Emilion-Chateau-de-Valandraud-red",
488 + "ref": "103721-2015"
489 + },
490 + {
491 + "vintage": 2008,
492 + "priceEur": 11,
493 + "url": "https://www.idealwine.com/en/wine-prices/103721-2008-Bottle-Bordeaux-Saint-Emilion-Chateau-de-Valandraud-red",
494 + "ref": "103721-2008"
495 + },
496 + {
497 + "vintage": 2005,
498 + "priceEur": 13,
499 + "url": "https://www.idealwine.com/en/wine-prices/103721-2005-Bottle-Bordeaux-Saint-Emilion-Chateau-de-Valandraud-red",
500 + "ref": "103721-2005"
501 + }
502 + ]
503 + },
504 + {
505 + "wineId": "18",
506 + "name": "Château Balac Cru Bourgeois",
507 + "color": "Red",
508 + "region": "Bordeaux",
509 + "appellation": "Haut Médoc",
510 + "producerSlug": "Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Balac-red",
511 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/18.jpg",
512 + "vintages": [
513 + {
514 + "vintage": 2019,
515 + "priceEur": 7,
516 + "url": "https://www.idealwine.com/en/wine-prices/18-2019-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Balac-red",
517 + "ref": "18-2019"
518 + },
519 + {
520 + "vintage": 2018,
521 + "priceEur": 9,
522 + "url": "https://www.idealwine.com/en/wine-prices/18-2018-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Balac-red",
523 + "ref": "18-2018"
524 + },
525 + {
526 + "vintage": 2016,
527 + "priceEur": 8,
528 + "url": "https://www.idealwine.com/en/wine-prices/18-2016-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Balac-red",
529 + "ref": "18-2016"
530 + },
531 + {
532 + "vintage": 2015,
533 + "priceEur": 8,
534 + "url": "https://www.idealwine.com/en/wine-prices/18-2015-Bottle-Bordeaux-Haut-Medoc-Cru-bourgeois-Chateau-Balac-red",
535 + "ref": "18-2015"
536 + }
537 + ]
538 + },
539 + {
540 + "wineId": "102861",
541 + "name": "Château Balestard",
542 + "color": "Red",
543 + "region": "Bordeaux",
544 + "appellation": "Bordeaux",
545 + "producerSlug": "Bordeaux-Bordeaux-Balestard-red",
546 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/102861.jpg",
547 + "vintages": [
548 + {
549 + "vintage": 2017,
550 + "priceEur": 14,
551 + "url": "https://www.idealwine.com/en/wine-prices/102861-2017-Bottle-Bordeaux-Bordeaux-Balestard-red",
552 + "ref": "102861-2017"
553 + },
554 + {
555 + "vintage": 2016,
556 + "priceEur": 19,
557 + "url": "https://www.idealwine.com/en/wine-prices/102861-2016-Bottle-Bordeaux-Bordeaux-Balestard-red",
558 + "ref": "102861-2016"
559 + },
560 + {
561 + "vintage": 2015,
562 + "priceEur": 18,
563 + "url": "https://www.idealwine.com/en/wine-prices/102861-2015-Bottle-Bordeaux-Bordeaux-Balestard-red",
564 + "ref": "102861-2015"
565 + },
566 + {
567 + "vintage": 2010,
568 + "priceEur": 18,
569 + "url": "https://www.idealwine.com/en/wine-prices/102861-2010-Bottle-Bordeaux-Bordeaux-Balestard-red",
570 + "ref": "102861-2010"
571 + }
572 + ]
573 + },
574 + {
575 + "wineId": "19",
576 + "name": "Château Balestard la Tonnelle Grand Cru Classé",
577 + "color": "Red",
578 + "region": "Bordeaux",
579 + "appellation": "Saint-Émilion Grand Cru",
580 + "producerSlug": "Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-Balestard-la-Tonnelle-red",
581 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/19.jpg",
582 + "vintages": [
583 + {
584 + "vintage": 2021,
585 + "priceEur": 23,
586 + "url": "https://www.idealwine.com/en/wine-prices/19-2021-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-Balestard-la-Tonnelle-red",
587 + "ref": "19-2021"
588 + },
589 + {
590 + "vintage": 2020,
591 + "priceEur": 24,
592 + "url": "https://www.idealwine.com/en/wine-prices/19-2020-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-Balestard-la-Tonnelle-red",
593 + "ref": "19-2020"
594 + },
595 + {
596 + "vintage": 2019,
597 + "priceEur": 30,
598 + "url": "https://www.idealwine.com/en/wine-prices/19-2019-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-Balestard-la-Tonnelle-red",
599 + "ref": "19-2019"
600 + },
601 + {
602 + "vintage": 2018,
603 + "priceEur": 29,
604 + "url": "https://www.idealwine.com/en/wine-prices/19-2018-Bottle-Bordeaux-Saint-Emilion-Grand-Cru-Grand-Cru-Classe-Chateau-Balestard-la-Tonnelle-red",
605 + "ref": "19-2018"
606 + }
607 + ]
608 + },
609 + {
610 + "wineId": "137232",
611 + "name": "Château la Ballade de la Pointe",
612 + "color": "Red",
613 + "region": "Bordeaux",
614 + "appellation": "Pomerol",
615 + "producerSlug": "Bordeaux-Pomerol-Chateau-la-Pointe-red",
616 + "image": null,
617 + "vintages": [
618 + {
619 + "vintage": 2021,
620 + "priceEur": 13,
621 + "url": "https://www.idealwine.com/en/wine-prices/137232-2021-Bottle-Bordeaux-Pomerol-Chateau-la-Pointe-red",
622 + "ref": "137232-2021"
623 + },
624 + {
625 + "vintage": 2020,
626 + "priceEur": 12,
627 + "url": "https://www.idealwine.com/en/wine-prices/137232-2020-Bottle-Bordeaux-Pomerol-Chateau-la-Pointe-red",
628 + "ref": "137232-2020"
629 + },
630 + {
631 + "vintage": 2019,
632 + "priceEur": 15,
633 + "url": "https://www.idealwine.com/en/wine-prices/137232-2019-Bottle-Bordeaux-Pomerol-Chateau-la-Pointe-red",
634 + "ref": "137232-2019"
635 + },
636 + {
637 + "vintage": 2018,
638 + "priceEur": 13,
639 + "url": "https://www.idealwine.com/en/wine-prices/137232-2018-Bottle-Bordeaux-Pomerol-Chateau-la-Pointe-red",
640 + "ref": "137232-2018"
641 + }
642 + ]
643 + },
644 + {
645 + "wineId": "20",
646 + "name": "Château de Barbe",
647 + "color": "Red",
648 + "region": "Bordeaux",
649 + "appellation": "Côtes de Bourg",
650 + "producerSlug": "Bordeaux-Cotes-de-Bourg-Chateau-de-Barbe-red",
651 + "image": "https://www.idealwine.com/media/cache/product_current_rating/00-images-etiq/20.jpg",
652 + "vintages": [
653 + {
654 + "vintage": 1997,
655 + "priceEur": 11,
656 + "url": "https://www.idealwine.com/en/wine-prices/20-1997-Bottle-Bordeaux-Cotes-de-Bourg-Chateau-de-Barbe-red",
657 + "ref": "20-1997"
658 + },
659 + {
660 + "vintage": 1996,
661 + "priceEur": 14,
662 + "url": "https://www.idealwine.com/en/wine-prices/20-1996-Bottle-Bordeaux-Cotes-de-Bourg-Chateau-de-Barbe-red",
663 + "ref": "20-1996"
664 + },
665 + {
666 + "vintage": 1995,
667 + "priceEur": 15,
668 + "url": "https://www.idealwine.com/en/wine-prices/20-1995-Bottle-Bordeaux-Cotes-de-Bourg-Chateau-de-Barbe-red",
669 + "ref": "20-1995"
670 + },
671 + {
672 + "vintage": 1994,
673 + "priceEur": 12,
674 + "url": "https://www.idealwine.com/en/wine-prices/20-1994-Bottle-Bordeaux-Cotes-de-Bourg-Chateau-de-Barbe-red",
675 + "ref": "20-1994"
676 + }
677 + ]
678 + }
679 + ]
680 + }
681 + },
682 + "expect": {
683 + "minCount": 40,
684 + "kinds": [
685 + "catalog_item",
686 + "price_observation"
687 + ],
688 + "requiredFields": [
689 + "attributes.name"
690 + ]
691 + },
692 + "note": "Captured live from idealwine.com /en/cote/bordeaux (plain HTTPS)",
693 + "capturedAt": "2026-09-07T06:24:04.875Z"
694 +}
\ No newline at end of file
added data/fixtures/lyon-turnbull/auction-907.json +772 −0
@@ -0,0 +1,772 @@
1 +{
2 + "raw": {
3 + "url": "https://www.lyonandturnbull.com/auctions/form-through-time-907",
4 + "externalId": "907",
5 + "kind": "sale",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:34:02.302Z",
8 + "payload": {
9 + "kind": "auction_results",
10 + "url": "https://www.lyonandturnbull.com/auctions/form-through-time-907",
11 + "auction": {
12 + "saleNumber": "907",
13 + "title": "Ancient, African & Oceanic Art and Natural History",
14 + "subtitle": null,
15 + "date": "08 July 2026 at 14:00 BST",
16 + "amsDate": "2026-07-08T13:00:00.000Z",
17 + "link": "/auctions/form-through-time-907"
18 + },
19 + "currency": "GBP",
20 + "status": "completed",
21 + "premiumTiers": [
22 + {
23 + "percent": 27,
24 + "amount_over": 0
25 + },
26 + {
27 + "percent": 26,
28 + "amount_over": 20000
29 + },
30 + {
31 + "percent": 20,
32 + "amount_over": 800000
33 + }
34 + ],
35 + "lots": [
36 + {
37 + "uuid": "c4f7bae5-db32-4f21-b0c5-e8e1527c1371",
38 + "lotNo": "1",
39 + "title": "A VERY LARGE FRAGMENT OF THE CANYON DIABLO METEORITE",
40 + "subTitle": "DISCOVERED IN COCONINO COUNTY, ARIZONA, 1891",
41 + "low": 2000,
42 + "high": 3000,
43 + "hammer": 1500,
44 + "status": "sold",
45 + "sessionDate": "2026-07-08T13:00:00.000Z",
46 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/c8bebcc1-f273-48c9-94d9-3526124351a5/a31f586d-780c-4455-8108-9c274b8cf4e4/0001_KMLbHI_original.jpeg"
47 + },
48 + {
49 + "uuid": "84a61811-0bb2-4da4-a16e-977e19a6e050",
50 + "lotNo": "2",
51 + "title": "GAO-GUENIE",
52 + "subTitle": "FELL GAO, BURKINA FASO, 5TH MARCH 1960",
53 + "low": 1000,
54 + "high": 1500,
55 + "hammer": null,
56 + "status": "unsold",
57 + "sessionDate": "2026-07-08T13:00:00.000Z",
58 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/3fa5e912-9b45-4efa-b652-e9c7ea20fc97/8416f64f-20a1-4ec2-a518-061385f5d65c/0001_pgOMcZ_original.jpeg"
59 + },
60 + {
61 + "uuid": "0e14e92a-e01d-4b2b-a0af-173ab517c9ce",
62 + "lotNo": "3",
63 + "title": "NWA UNCLASSIFIED",
64 + "subTitle": "ERFOUD, MOROCCO, 2001",
65 + "low": 800,
66 + "high": 1200,
67 + "hammer": null,
68 + "status": "unsold",
69 + "sessionDate": "2026-07-08T13:00:00.000Z",
70 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/12a99cb2-8325-444f-bf5e-f7cbd97297aa/2256b6eb-e06e-41c9-acf1-04aa3e908a00/0001_hWlILf_original.jpeg"
71 + },
72 + {
73 + "uuid": "a0c9c7be-008a-4c98-8674-a2f6757f314a",
74 + "lotNo": "4",
75 + "title": "CAMPOS SALES METEORITE",
76 + "subTitle": "FELL 31ST JANUARY 1991, CEARÁ STATE, BRZIL",
77 + "low": 1500,
78 + "high": 2500,
79 + "hammer": 1600,
80 + "status": "sold",
81 + "sessionDate": "2026-07-08T13:00:00.000Z",
82 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/5d9c71f1-b39f-427e-8b57-5421358de6c1/5bd425ca-7945-4779-9ae6-d7476f821cfb/0001_SSljsC_original.jpg"
83 + },
84 + {
85 + "uuid": "cd8bcb30-da52-4f23-95a8-84aa0470f2f3",
86 + "lotNo": "5",
87 + "title": "A LARGE SLICE OF A PRIMITIVE METEORITE",
88 + "subTitle": "FOUND NORTH WEST AFRICA, 2000s,",
89 + "low": 1500,
90 + "high": 2500,
91 + "hammer": 900,
92 + "status": "sold",
93 + "sessionDate": "2026-07-08T13:00:00.000Z",
94 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/426d245a-3c4b-4576-a0b1-b6e1b41e49e3/e28aad11-7f79-4a89-8d36-7fe1cad24bee/0001_tjSsRV_original.jpg"
95 + },
96 + {
97 + "uuid": "6672c1c0-d037-4ec4-900d-304e4d064350",
98 + "lotNo": "6",
99 + "title": "EXCEPTIONALLY LARGE PIECE OF THE HOLBROOK METEORITE",
100 + "subTitle": "FELL 19TH JULY, NAVAJO COUNTY, ARIZONA, USA",
101 + "low": 7000,
102 + "high": 9000,
103 + "hammer": 5000,
104 + "status": "sold",
105 + "sessionDate": "2026-07-08T13:00:00.000Z",
106 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/36159785-165e-4ee5-af9c-f6175b47561d/69a37b73-98ee-4be8-9692-e19ee7b5cbba/0001_BEmpID_original.jpeg"
107 + },
108 + {
109 + "uuid": "481a4aa1-dd2f-41cc-85b4-21683f677460",
110 + "lotNo": "7",
111 + "title": "EL MILHAS 002, LUNAR METEORITE CROSS SECTION",
112 + "subTitle": "FELL TIRIS ZEMMOUR, MAURITANIA, 26°20’37.05’’ N, 07°10’04.55’’ W",
113 + "low": 250,
114 + "high": 350,
115 + "hammer": 200,
116 + "status": "sold",
117 + "sessionDate": "2026-07-08T13:00:00.000Z",
118 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/708909b8-dd3b-4f2a-b544-5f31c17fba98/9a84e0e2-1755-4f7a-89e4-e47d7e7738af/0001_KsnAhJ_original.jpg"
119 + },
120 + {
121 + "uuid": "286a7500-e72f-4239-bba0-a9c809de4279",
122 + "lotNo": "8",
123 + "title": "OVIRAPTOR DINOSAUR EGG NEST",
124 + "subTitle": "EASTERN EURASIA, CRETACEOUS PERIOD, C. 80 - 90 MILLION YEARS B.P.",
125 + "low": 1500,
126 + "high": 2500,
127 + "hammer": null,
128 + "status": "unsold",
129 + "sessionDate": "2026-07-08T13:00:00.000Z",
130 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/2faf2c9b-1c2e-4419-aea4-bfabb9159374/15a2d22f-a569-4d1f-bdbe-faacec11a97d/0001_FWMQlA_original.jpg"
131 + },
132 + {
133 + "uuid": "bf6669e9-2f1a-48cd-a2aa-f5f02fe74a31",
134 + "lotNo": "9",
135 + "title": "GOGOTTE FORMATION",
136 + "subTitle": "FONTAINEBLEAU, NORTHERN FRANCE, OLIGOCEN PERIOD, CIRCA 30 MILLION YEARS B. P.",
137 + "low": 500,
138 + "high": 800,
139 + "hammer": 1100,
140 + "status": "sold",
141 + "sessionDate": "2026-07-08T13:00:00.000Z",
142 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/dc16ce64-7647-4fd4-aecb-9b2489f7254b/714d9028-2042-4eba-9b63-3db091475dd3/0001_SmFRSq_original.jpg"
143 + },
144 + {
145 + "uuid": "88334a51-62f4-4b1b-84e1-aadcf6b1ad89",
146 + "lotNo": "10",
147 + "title": "SMOKY QUARTZ SPHERE",
148 + "subTitle": "ZAMBIA",
149 + "low": 2000,
150 + "high": 3000,
151 + "hammer": null,
152 + "status": "unsold",
153 + "sessionDate": "2026-07-08T13:00:00.000Z",
154 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/8ca045dc-7a67-4fa7-9aae-0b167b65904b/b4686ae4-def8-426f-9bc0-32d133bfc316/0001_NhFuTe_original.jpg"
155 + },
156 + {
157 + "uuid": "0e1f7546-ae04-492e-bdbd-4ea2126176aa",
158 + "lotNo": "11",
159 + "title": "LAPIS LAZULI SPHERE",
160 + "subTitle": "SAR-I-SANG, AFGHANISTAN",
161 + "low": 500,
162 + "high": 800,
163 + "hammer": null,
164 + "status": "unsold",
165 + "sessionDate": "2026-07-08T13:00:00.000Z",
166 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/5c1e9e27-a6e6-449c-a41a-679810c37a70/b6ccd27a-1c95-461a-9ef6-3c5d01edef29/0001_nUTDNA_original.jpg"
167 + },
168 + {
169 + "uuid": "4b200b45-47bd-4c4f-8ee9-103176d5e50d",
170 + "lotNo": "12",
171 + "title": "AMAZONITE AND SMOKY QUARTZ CRYSTAL CLUSTER",
172 + "subTitle": "COLORADO, USA",
173 + "low": 1500,
174 + "high": 2500,
175 + "hammer": null,
176 + "status": "unsold",
177 + "sessionDate": "2026-07-08T13:00:00.000Z",
178 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/73bd35ce-f658-4679-8d8a-5bee41f77faa/421542b8-c611-4554-83a7-83f46b02caf9/0001_xSqiGv_original.jpg"
179 + },
180 + {
181 + "uuid": "a05819df-5be0-4355-9335-36bb32ca0d01",
182 + "lotNo": "13",
183 + "title": "LARGE AQUAMARINE CRYSTAL",
184 + "subTitle": "SKARDU, PAKISTAN",
185 + "low": 2500,
186 + "high": 3500,
187 + "hammer": null,
188 + "status": "unsold",
189 + "sessionDate": "2026-07-08T13:00:00.000Z",
190 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/a8b2a743-4723-469c-9e66-3769a6f504be/a9671d4b-3074-4b6a-8236-0dc855a7f3d4/0001_vPslPN_original.jpg"
191 + },
192 + {
193 + "uuid": "5b706c44-4bdc-41cc-ab62-4c10cef1d5c6",
194 + "lotNo": "14",
195 + "title": "PYRITE CRYSTAL CLUSTER",
196 + "subTitle": "NAVAJUN, SPAIN",
197 + "low": 2000,
198 + "high": 2500,
199 + "hammer": null,
200 + "status": "unsold",
201 + "sessionDate": "2026-07-08T13:00:00.000Z",
202 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/58d19951-9a58-4b2c-ac02-cff7522effe7/966c6644-1a02-47af-9b17-3aa7d16d4102/0001_WflWnR_original.jpg"
203 + },
204 + {
205 + "uuid": "76ad91e9-3ff4-4af8-a71b-2568dc3ce8d8",
206 + "lotNo": "15",
207 + "title": "FOSSILIZED WOOD SLICE",
208 + "subTitle": "MORONDAVA, MADAGASCAR, LATE TRIASSIC, C. 225 MILLION YEARS B.P.",
209 + "low": 1000,
210 + "high": 1500,
211 + "hammer": null,
212 + "status": "unsold",
213 + "sessionDate": "2026-07-08T13:00:00.000Z",
214 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/30c9c361-1c44-4cf3-95d3-0fb08804658a/1219b497-6d66-4445-a6db-41fe79d314ff/0001_OmCZSS_original.jpg"
215 + },
216 + {
217 + "uuid": "1788e6c7-c99e-4fba-980b-a965e0ae3737",
218 + "lotNo": "16",
219 + "title": "LARGE FRAGMENT OF ROMAN IMPERIAL PORPHYRY",
220 + "subTitle": "GEBEL DOKHAN, EGYPT, C. 1ST – 5TH CENTURY A.D.",
221 + "low": 2000,
222 + "high": 4000,
223 + "hammer": 2000,
224 + "status": "sold",
225 + "sessionDate": "2026-07-08T13:00:00.000Z",
226 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/eb4fbbfc-0070-4bfd-86fd-edafcc6b7b3a/267dc9de-e5a1-4b80-9e56-7c10f8cc546d/00001_WmZalC_original.jpeg"
227 + },
228 + {
229 + "uuid": "a2ce6f62-7c68-4a55-a9fb-275a115d7268",
230 + "lotNo": "17",
231 + "title": "DINOSAUR TOOTH, AFRICAN \"T-REX\", CARCHARODONTOSAURUS SAHARICUS",
232 + "subTitle": "NORTHWESTERN AFRICA, CRETAEOUS PERIOD, 96 MYA",
233 + "low": 400,
234 + "high": 600,
235 + "hammer": 400,
236 + "status": "sold",
237 + "sessionDate": "2026-07-08T13:00:00.000Z",
238 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/6eb9465d-7f06-440d-b9df-2d87deb7285e/6ae527e0-0f60-4993-91db-9fbadb0abf18/0001_XQxuZA_original.jpg"
239 + },
240 + {
241 + "uuid": "26379922-64d6-4f32-a54b-c52e2a30742a",
242 + "lotNo": "18",
243 + "title": "THE TOOTH OF A TYRANNOSAURUS-REX",
244 + "subTitle": "HELL CREEK FORMATION, DAWSON COUNTY, MONTANA, LATE CRETACEOUS, C. 67–66 MILLION B.P.",
245 + "low": 5000,
246 + "high": 8000,
247 + "hammer": 3500,
248 + "status": "sold",
249 + "sessionDate": "2026-07-08T13:00:00.000Z",
250 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/f10272a6-318b-4c35-9b98-1a57d5da4f9e/9bc97934-193a-4573-805f-7ff950a7711c/00001_bsrYZj_original.jpeg"
251 + },
252 + {
253 + "uuid": "6a6c32b7-b03f-4f11-9600-165181ffef6b",
254 + "lotNo": "19",
255 + "title": "SABRE-TOOTH CAT CANINE",
256 + "subTitle": "EASTERN EURASIA, LATE MIOCENE TO EARLY PLIOCENE, 12 - 5 MILLION YEARS B.P.",
257 + "low": 1500,
258 + "high": 2500,
259 + "hammer": null,
260 + "status": "unsold",
261 + "sessionDate": "2026-07-08T13:00:00.000Z",
262 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/f889dd72-370a-4f80-8137-5e437566d357/d4f2e657-3e97-4685-9ade-6de0d3a56990/0001_CEtMWN_original.jpg"
263 + },
264 + {
265 + "uuid": "d0c706df-415c-4c51-b69c-84b012d6e94a",
266 + "lotNo": "20",
267 + "title": "STEGODON JAW",
268 + "subTitle": "EARLY PLEISTOCENE, SOUTHEAST ASIA, C. 2 - 1 MILLION YEARS B.P.",
269 + "low": 2000,
270 + "high": 3000,
271 + "hammer": null,
272 + "status": "unsold",
273 + "sessionDate": "2026-07-08T13:00:00.000Z",
274 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/ee97ec66-abad-47f8-a09b-da495056e028/6b34681d-16d2-4ad6-a182-ade44e40369a/0001_CcQzEK_original.jpg"
275 + },
276 + {
277 + "uuid": "1052d41f-a354-4e50-8c0d-7a21d99e4c44",
278 + "lotNo": "21",
279 + "title": "SPLIT AMMONITE PAIR",
280 + "subTitle": "GOULMIMA, MOROCCO, UPPER CRETACEOUS, C. 94 - 90 MILLION YEARS B.P.",
281 + "low": 200,
282 + "high": 300,
283 + "hammer": 460,
284 + "status": "sold",
285 + "sessionDate": "2026-07-08T13:00:00.000Z",
286 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/902066ff-5462-4480-9e61-1bf53842af2b/c4a76742-3a54-4437-8584-e5011278a13c/0001_qbaBbm_original.jpg"
287 + },
288 + {
289 + "uuid": "6a6cd128-58d7-4ba1-813e-518c9a86266f",
290 + "lotNo": "22",
291 + "title": "SPINY AMMONITE SPECIMEN",
292 + "subTitle": "FRANCE, EARLY CRETACEOUS, C. 133-129 MILLION YEARS B.P.",
293 + "low": 500,
294 + "high": 800,
295 + "hammer": 480,
296 + "status": "sold",
297 + "sessionDate": "2026-07-08T13:00:00.000Z",
298 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/3890a694-25bc-4311-b761-ba6bbd838beb/15d2daf7-97fb-4119-aa0a-68338a393d92/0002_KtcVNC_original.jpg"
299 + },
300 + {
301 + "uuid": "4accbba1-e275-4ca9-bacb-9b6a6f66f3cc",
302 + "lotNo": "23",
303 + "title": "SPINY TRILOBITE FOSSIL",
304 + "subTitle": "MOROCCO, DJEBEL OUFATEN, PALAEOZOIC PERIOD, CIRCA 400 MILLION YEARS B. P.",
305 + "low": 300,
306 + "high": 600,
307 + "hammer": 300,
308 + "status": "sold",
309 + "sessionDate": "2026-07-08T13:00:00.000Z",
310 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/f144cd7d-c188-4a98-b9c2-032b2ea63248/ae7f74c9-b97f-46d9-b89a-01d716a409ac/0001_XQLHcB_original.jpg"
311 + },
312 + {
313 + "uuid": "7e560c64-41ba-4bf8-8789-20bec4739c5e",
314 + "lotNo": "24",
315 + "title": "FOSSIL DRAGONFLY",
316 + "subTitle": "SOLNHOFEN, GERMANY, JURASSIC PERIOD, 150 MILLION YEARS BP",
317 + "low": 2000,
318 + "high": 2500,
319 + "hammer": 1283.99,
320 + "status": "sold",
321 + "sessionDate": "2026-07-08T13:00:00.000Z",
322 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/2a9a0ce2-a151-4be5-930f-3b9656e3d18e/7f56c8b9-82ae-4881-8096-23f753ad9433/0001_GXHjhH_original.jpg"
323 + },
324 + {
325 + "uuid": "ea1270b7-fed5-4b12-b5ec-b6bf76f1d3f6",
326 + "lotNo": "25",
327 + "title": "FOSSIL PALM FROND WITH FISH",
328 + "subTitle": "GREEN RIVER FORMATION, WYOMING, EARLY EOCINE, 50 MILLION YEARS B.P.",
329 + "low": 20000,
330 + "high": 30000,
331 + "hammer": 18000,
332 + "status": "sold",
333 + "sessionDate": "2026-07-08T13:00:00.000Z",
334 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/d38ba356-ead7-47ef-93e8-1ef056a14ccb/21d402a8-eb62-4298-ab04-66a9d0a63781/00001_SZDpLv_original.jpeg"
335 + },
336 + {
337 + "uuid": "bc5e2e3a-1967-4775-b4d0-453133d85eb2",
338 + "lotNo": "26",
339 + "title": "LARGE FOSSILISED FISH SPECIMEN, DIPLOMYSTUS DENTATUS",
340 + "subTitle": "GREEN RIVER FORMATION, WYOMING, USA, LOWER EOCENE PERIOD, 50 MILLION YEARS B.P.",
341 + "low": 2000,
342 + "high": 3000,
343 + "hammer": 1800,
344 + "status": "sold",
345 + "sessionDate": "2026-07-08T13:00:00.000Z",
346 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/2d37f890-4ac9-4aa6-8700-d01fb1250c1b/90ad37f2-632a-41b0-a1ce-803f184c6fc0/0001_VkEjiK_original.jpg"
347 + },
348 + {
349 + "uuid": "41bfa15d-4ef2-4887-9fea-b607120a6f23",
350 + "lotNo": "27",
351 + "title": "FRENCH MEDIEVAL CARVED OAK PANEL, BEARING THE ARMS OF CHARLOTTE OF SAVOY, QUEEN OF FRANCE",
352 + "subTitle": "15TH CENTURY",
353 + "low": 3000,
354 + "high": 5000,
355 + "hammer": 2600,
356 + "status": "sold",
357 + "sessionDate": "2026-07-08T13:00:00.000Z",
358 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/010b4f17-80af-4e52-b2b0-5e1548f20e0c/067b6d6c-2d45-4f24-b07e-dcaf5f2b625d/0001_enMDhG_original.jpg"
359 + },
360 + {
361 + "uuid": "007cc868-e895-490e-86bb-ad3399970b3b",
362 + "lotNo": "28",
363 + "title": "\"CELTIC\" STONE HEAD",
364 + "subTitle": "UNITED KINGDOM, EARLY FIRST MILLENNIUM A.D. OR LATER",
365 + "low": 300,
366 + "high": 500,
367 + "hammer": 950,
368 + "status": "sold",
369 + "sessionDate": "2026-07-08T13:00:00.000Z",
370 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/bb2e56dd-97d6-4976-9f41-d4638dc8c38a/ed6f2fa4-acc5-4257-822a-93b6f2f543f3/0001_excCkW_original.jpg"
371 + },
372 + {
373 + "uuid": "1bb78901-08dc-4ea1-9cc2-dde792e43021",
374 + "lotNo": "29",
375 + "title": "MINIATURE VOTIVE TERRACOTTA MASK",
376 + "subTitle": "GREECE, C. 4TH CENTURY B.C.",
377 + "low": 300,
378 + "high": 500,
379 + "hammer": 180,
380 + "status": "sold",
381 + "sessionDate": "2026-07-08T13:00:00.000Z",
382 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/ddb8731e-3888-43fd-b333-5813b4bcbdce/8a915455-066b-4f9e-99db-1febaf337fc1/0001_AEVsFG_original.jpg"
383 + },
384 + {
385 + "uuid": "c0d68d87-54c5-4aee-bf3d-59e535f7225e",
386 + "lotNo": "30",
387 + "title": "ANCIENT GREEK TERRACOTTA PROTOME OF A LADY",
388 + "subTitle": "EASTERN MEDITERNENA, C. 5TH CENTURY B.C.",
389 + "low": 1000,
390 + "high": 1500,
391 + "hammer": 1500,
392 + "status": "sold",
393 + "sessionDate": "2026-07-08T13:00:00.000Z",
394 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/2b012163-c952-4023-8203-c44a1a9141a3/23bbb17b-5bb3-43f0-9bd5-84fb5bf3a2a5/0001_JEZXHu_original.jpg"
395 + },
396 + {
397 + "uuid": "7c29cdcd-fd84-46ab-9e23-fce82066c01d",
398 + "lotNo": "31",
399 + "title": "CYPRIOT TERRACOTTA DOLPHIN EX CESNOLA COLLECTION",
400 + "subTitle": "HELLENISTIC, 4TH CENTURY B. C.",
401 + "low": 800,
402 + "high": 1200,
403 + "hammer": 900,
404 + "status": "sold",
405 + "sessionDate": "2026-07-08T13:00:00.000Z",
406 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/9fbd23bc-8a34-4643-8d3b-c8b49284ae33/fc5dcf9f-4d35-416b-a118-c6d9530ecec6/0001_wnzonO_original.jpeg"
407 + },
408 + {
409 + "uuid": "7f7300fc-6179-491b-8034-4e0efb7e9e3f",
410 + "lotNo": "32",
411 + "title": "APULIAN RED FIGURE LEKANIS",
412 + "subTitle": "SOUTHERN ITALY, 4TH CENTURY B. C.",
413 + "low": 400,
414 + "high": 600,
415 + "hammer": 420,
416 + "status": "sold",
417 + "sessionDate": "2026-07-08T13:00:00.000Z",
418 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/fe235664-7ca8-4190-a788-361dceaf3b44/c8c0b225-c444-436c-815f-2973a5c3493b/0001_gPIwxC_original.jpg"
419 + },
420 + {
421 + "uuid": "733af248-e2e6-4209-9181-130cdb9df1c1",
422 + "lotNo": "33",
423 + "title": "APULIAN RED-FIGURE OLPE",
424 + "subTitle": "SOUTHERN ITALY, 4TH CENTURY B. C.",
425 + "low": 300,
426 + "high": 500,
427 + "hammer": 320,
428 + "status": "sold",
429 + "sessionDate": "2026-07-08T13:00:00.000Z",
430 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/5faee6ce-4c19-4ca7-945b-0ec6094bdb6a/d6d285f3-d061-4ef7-adf3-39a206181f62/0001_qTNgbG_original.jpg"
431 + },
432 + {
433 + "uuid": "ee2dbf13-edbc-429b-b3f1-0bf4199d9806",
434 + "lotNo": "34",
435 + "title": "APULIAN RED-FIGURE PLATE",
436 + "subTitle": "SOUTHERN ITALY, 4TH CENTURY B. C.",
437 + "low": 1000,
438 + "high": 1500,
439 + "hammer": 800,
440 + "status": "sold",
441 + "sessionDate": "2026-07-08T13:00:00.000Z",
442 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/339ed100-e2ba-4431-ba6c-21d150adbfcd/69814526-df40-4bab-8bb4-7e506191c193/0001_QSLdcC_original.jpg"
443 + },
444 + {
445 + "uuid": "41e837ae-23ae-4fda-89bc-76c16529b368",
446 + "lotNo": "35",
447 + "title": "APULIAN RED FIGURE PYXIS",
448 + "subTitle": "SOUTHERN ITALY, LATE 4TH CENTURY B. C.",
449 + "low": 350,
450 + "high": 550,
451 + "hammer": 340,
452 + "status": "sold",
453 + "sessionDate": "2026-07-08T13:00:00.000Z",
454 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/a5dd1f10-4699-41da-972e-e14ba047a146/3af43d81-abcb-44b0-a014-c3b369eca01c/0001_tkNoRS_original.jpg"
455 + },
456 + {
457 + "uuid": "136f2e81-7c8e-4ad1-b375-e362cdcf5a7b",
458 + "lotNo": "36",
459 + "title": "ANCIENT GREEK STYLE OINOCHOE",
460 + "subTitle": "19TH CENTURY",
461 + "low": 300,
462 + "high": 500,
463 + "hammer": 320,
464 + "status": "sold",
465 + "sessionDate": "2026-07-08T13:00:00.000Z",
466 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/12270b64-5c19-4a6a-b7df-74530481cd91/2d74b100-3eb6-4a43-9d2a-f8df9b1a0526/00001_dYsfeX_original.jpeg"
467 + },
468 + {
469 + "uuid": "25a1c03f-b8d4-419c-b02e-1d9a7aaefe25",
470 + "lotNo": "37",
471 + "title": "LARGE ANCIENT GREEK BLACK-FIGURE LEKYTHOS",
472 + "subTitle": "ATTICA, C. 5TH CENTURY B.C.",
473 + "low": 1500,
474 + "high": 2000,
475 + "hammer": null,
476 + "status": "unsold",
477 + "sessionDate": "2026-07-08T13:00:00.000Z",
478 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/8cb62aeb-0309-4bb2-bc08-00609edb2ec7/f0688a8e-32cd-4520-8f0c-8eba06a5ca11/0001_bvsBsE_original.jpeg"
479 + },
480 + {
481 + "uuid": "680dce3b-5258-4f42-85e4-2050541a4081",
482 + "lotNo": "38",
483 + "title": "TRIO OF OIL LAMPS",
484 + "subTitle": "ITALY, 4TH - 5TH CENTURY A. D.",
485 + "low": 600,
486 + "high": 900,
487 + "hammer": 600,
488 + "status": "sold",
489 + "sessionDate": "2026-07-08T13:00:00.000Z",
490 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/7253dd68-fd62-4156-b9b4-57320c5c376a/da565e9a-cf5c-4b5c-816e-956314640a41/0001_bgAGmF_original.jpg"
491 + },
492 + {
493 + "uuid": "ea2d69b0-f488-4188-8797-00e89ce42752",
494 + "lotNo": "39",
495 + "title": "ROMAN OIL LAMP, ACQUIRED 1939",
496 + "subTitle": "EASTERN MEDITERRANEAN, 1ST - 3RD CENTURY A.D.",
497 + "low": 600,
498 + "high": 800,
499 + "hammer": null,
500 + "status": "unsold",
501 + "sessionDate": "2026-07-08T13:00:00.000Z",
502 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/497507a5-a67d-422f-a2f4-2423a1f4b593/4f32f1e3-58c2-4c7c-8fa1-27ec494876d1/0001_wHkCJh_original.jpg"
503 + },
504 + {
505 + "uuid": "b0eab8dd-44e9-41bd-b033-cf06caa8aef0",
506 + "lotNo": "40",
507 + "title": "COLLECTION OF ROMAN OIL LAMPS",
508 + "subTitle": "ITALY, 1ST CENTURY A. D.",
509 + "low": 300,
510 + "high": 500,
511 + "hammer": 300,
512 + "status": "sold",
513 + "sessionDate": "2026-07-08T13:00:00.000Z",
514 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/a7c91d50-a753-42e8-8c9c-2a69b4879a5e/5dd83e61-83bc-49d3-bd6d-cfd5af48b2b9/0001_HIhIUS_original.jpeg"
515 + },
516 + {
517 + "uuid": "f357d1b4-5bbe-4f19-ab7e-f27e34d1627e",
518 + "lotNo": "41",
519 + "title": "GROUP OF SEVEN ROMAN GLASS VESSELS",
520 + "subTitle": "ITALY, 1ST - 3RD CENTURY A. D.",
521 + "low": 400,
522 + "high": 600,
523 + "hammer": 650,
524 + "status": "sold",
525 + "sessionDate": "2026-07-08T13:00:00.000Z",
526 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/2034f733-2c2d-40f0-aa1e-74c244a93561/deefda5f-a0c2-4bed-aa2f-88e673fefac8/0001_zVYSWT_original.jpg"
527 + },
528 + {
529 + "uuid": "943686db-c8d0-469f-b061-e50ebaf6e400",
530 + "lotNo": "42",
531 + "title": "ANCIENT MARBLE TILE FRAGMENT INSCRIBED \"POMPEI\"",
532 + "subTitle": "ITALY, C. 1ST CENTURY A. D. OR LATER",
533 + "low": 200,
534 + "high": 300,
535 + "hammer": 380,
536 + "status": "sold",
537 + "sessionDate": "2026-07-08T13:00:00.000Z",
538 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/ddc407de-e641-4df5-aae4-ced482db894c/3937fd81-3281-4afc-a639-24a7bbec4865/0001_KMMOqm_original.jpg"
539 + },
540 + {
541 + "uuid": "edd1d89b-c11c-4d0f-a1f8-d8dc699bf4c6",
542 + "lotNo": "43",
543 + "title": "CHIMU MANTLE FRAGMENT",
544 + "subTitle": "PERU, C. 1200 A.D.",
545 + "low": 400,
546 + "high": 600,
547 + "hammer": null,
548 + "status": "unsold",
549 + "sessionDate": "2026-07-08T13:00:00.000Z",
550 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/5c936d6b-03c7-4317-84d6-7581e391d384/c7130685-48b0-41ef-b10c-2661cd7a7d73/0001_zdPYEJ_original.jpg"
551 + },
552 + {
553 + "uuid": "4df53200-b6ce-4b24-91dd-f56a19a5da33",
554 + "lotNo": "44",
555 + "title": "DIQUIS STANDING FIGURE",
556 + "subTitle": "COSTA RICA, 600-900 A.D.",
557 + "low": 2000,
558 + "high": 3000,
559 + "hammer": 6500,
560 + "status": "sold",
561 + "sessionDate": "2026-07-08T13:00:00.000Z",
562 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/87a54ff3-a570-4a99-a107-96fa6dfb0870/d4558d62-54a6-4c9d-909e-57b921a44f84/00001_pqlSQr_original.jpeg"
563 + },
564 + {
565 + "uuid": "6ecdc516-2fa4-4eb8-a902-78336cc65ac3",
566 + "lotNo": "45",
567 + "title": "A PAIR OF PRE-COLUMBIAN GOLD ORNAMENTS",
568 + "subTitle": "SOUTH AMERICA, TAIRONA CULTURE, C. 10TH - 17TH CENTURY A. D.",
569 + "low": 300,
570 + "high": 500,
571 + "hammer": 300,
572 + "status": "sold",
573 + "sessionDate": "2026-07-08T13:00:00.000Z",
574 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/7656c0a8-1c13-412e-b8c1-6f002581a7e5/f43748cb-cdf5-40b3-ad04-be36661f21d8/0001_YadwOc_original.jpg"
575 + },
576 + {
577 + "uuid": "1224658d-807b-4c0e-873e-ca9fa17e395b",
578 + "lotNo": "46",
579 + "title": "LARGE COLLECTION OF ANCIENT (AND LATER) INTAGLIOS & CAMEOS, FORMED EARLY 20TH CENTURY",
580 + "subTitle": "NEAR EAST AND EUROPE, 5TH CENTURY B.C., AND LATER",
581 + "low": 1000,
582 + "high": 1500,
583 + "hammer": 1600,
584 + "status": "sold",
585 + "sessionDate": "2026-07-08T13:00:00.000Z",
586 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/d3fe4f8b-a6ab-4582-8d1b-fc94eff31075/6e438210-1a24-4a53-a37e-aa55f873731e/0001_bJdtSU_original.jpg"
587 + },
588 + {
589 + "uuid": "a1e8d89c-6100-43dc-bd31-eb2717a53581",
590 + "lotNo": "47",
591 + "title": "OLD BABYLONIAN ROCK CRYSTAL CYLINDER SEAL, ACQUIRED EARLY 20TH CENTURY",
592 + "subTitle": "NEAR EAST, C. EARLY 2ND MILLENNIUM B.C.",
593 + "low": 300,
594 + "high": 500,
595 + "hammer": 200,
596 + "status": "sold",
597 + "sessionDate": "2026-07-08T13:00:00.000Z",
598 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/8019f252-2fb1-482c-aef6-f43f82b512f5/39a4b72b-750b-46a4-aa12-8e8b2f90c582/0002_hqntkg_original.jpg"
599 + },
600 + {
601 + "uuid": "4ecc0f4d-89fe-4f15-95a2-920d77b3b884",
602 + "lotNo": "48",
603 + "title": "BABYLONIAN HEMATITE CYLINDER SEAL, ACQUIRED EARLY 20TH CENTURY",
604 + "subTitle": "NEAR EAST, C. 1900 - 1700 B.C.",
605 + "low": 400,
606 + "high": 600,
607 + "hammer": 260,
608 + "status": "sold",
609 + "sessionDate": "2026-07-08T13:00:00.000Z",
610 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/f29d576a-c11f-4de2-ba7d-39c448c27315/f359bf53-eaaf-4563-a2b4-34ea95f41710/0002_iADizJ_original.jpg"
611 + },
612 + {
613 + "uuid": "8d5deae0-9b89-4520-bc27-4da8d9785e93",
614 + "lotNo": "49",
615 + "title": "SUMERIAN LIMESTONE CYLINDER SEAL, ACQUIRED EARLY 20TH CENTURY",
616 + "subTitle": "NEAR EAST, C. 3RD MILLENNIUM B.C.",
617 + "low": 300,
618 + "high": 500,
619 + "hammer": 150,
620 + "status": "sold",
621 + "sessionDate": "2026-07-08T13:00:00.000Z",
622 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/9c884fff-0e9c-40ea-9c9d-ebe5da9a5124/b8657040-26da-4685-9f51-40b776fb761d/00001_LMtXbE_original.jpeg"
623 + },
624 + {
625 + "uuid": "ed47ef99-f6b3-42f6-b8bd-9dfb06eb1e1c",
626 + "lotNo": "50",
627 + "title": "PAIR OF MESOPOTAMIAN CYLINDER SEALS, ACQUIRED EARLY 20TH CENTURY",
628 + "subTitle": "NEAR EAST, 3RD - 2ND MILLENNIUM B.C.",
629 + "low": 300,
630 + "high": 500,
631 + "hammer": 1300,
632 + "status": "sold",
633 + "sessionDate": "2026-07-08T13:00:00.000Z",
634 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/cfd7149b-8d07-4d79-a7d5-8167532e9ace/108f7318-e9df-475d-81df-ad3f46a49e67/00002_bjElJc_original.jpeg"
635 + },
636 + {
637 + "uuid": "ff835218-0552-48ac-a2d2-778f85f608b7",
638 + "lotNo": "51",
639 + "title": "AKKADIAN SERPENTINE CYLINDER SEAL, ACQUIRED EARLY 20TH CENTURY",
640 + "subTitle": "NEAR EAST, C. 2350 - 2150 B.C.",
641 + "low": 300,
642 + "high": 500,
643 + "hammer": 240,
644 + "status": "sold",
645 + "sessionDate": "2026-07-08T13:00:00.000Z",
646 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/23caa454-cd77-4c8a-ad33-90d526d11873/d2375d7d-de31-4515-837e-59a90c74f69f/0002_lATMjN_original.jpg"
647 + },
648 + {
649 + "uuid": "67f96140-bf8f-4c03-8cb0-59eebfbe77c4",
650 + "lotNo": "52",
651 + "title": "PAIR OF PERSIAN SASANIAN STAMP SEALS, ACQUIRED EARLY 20TH CENTURY",
652 + "subTitle": "NEAR EAST, C. 3RD - 7TH CENTURY A.D.",
653 + "low": 250,
654 + "high": 350,
655 + "hammer": null,
656 + "status": "unsold",
657 + "sessionDate": "2026-07-08T13:00:00.000Z",
658 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/f3731cb2-1487-486b-be42-a045c5faa792/6b8cc1a0-8998-4281-b554-d7720315124a/0002_wFHofK_original.jpg"
659 + },
660 + {
661 + "uuid": "df4538dd-2663-4aef-b901-44d885261d2d",
662 + "lotNo": "53",
663 + "title": "LARGE BANDED AGATE SASANIAN STAMP SEAL",
664 + "subTitle": "NEAR EAST, C. 3RD - 7TH CENTURY A.D.",
665 + "low": 300,
666 + "high": 500,
667 + "hammer": 200,
668 + "status": "sold",
669 + "sessionDate": "2026-07-08T13:00:00.000Z",
670 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/c1706312-17a5-4951-9090-93509ddf84ac/6b1120dc-7053-46a2-bccf-2a7e01618648/0001a_gXUYpb_original.jpeg"
671 + },
672 + {
673 + "uuid": "50fdc709-dea4-48e8-8560-58a83ff6567c",
674 + "lotNo": "54",
675 + "title": "PERSIAN SASANIAN AGATE STAMP SEAL, ACQUIRED EARLY 20TH CENTURY",
676 + "subTitle": "NEAR EAST, C. 3RD - 7TH CENTURY A.D.",
677 + "low": 200,
678 + "high": 300,
679 + "hammer": 140,
680 + "status": "sold",
681 + "sessionDate": "2026-07-08T13:00:00.000Z",
682 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/394f252b-3dd9-49ed-9d9d-18d2051c3227/4b3d4509-842e-4039-8c5a-bd000cb51ab2/00001_FwzwwI_original.jpeg"
683 + },
684 + {
685 + "uuid": "1ec1ea39-5590-4e9e-be72-211674371a6f",
686 + "lotNo": "55C",
687 + "title": "HELLENISTIC GOLD AND LAPIS NECKLACE WITH AGATE CENTRE STONE",
688 + "subTitle": "EASTERN MEDITERRANEAN, 1ST MILLENNIUM B.C.",
689 + "low": 1500,
690 + "high": 2500,
691 + "hammer": 2200,
692 + "status": "sold",
693 + "sessionDate": "2026-07-08T13:00:00.000Z",
694 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/1da094fb-f6bb-487c-b57c-2fd8523c2e9f/b049156b-372d-48bb-8d30-882287bf2b60/0001_OIhkaE_original.jpeg"
695 + },
696 + {
697 + "uuid": "ca3a2d87-44c5-4947-9011-d871adada4c5",
698 + "lotNo": "55A",
699 + "title": "GOLD AND LAPIS BEADED NECKLACE",
700 + "subTitle": "EASTERN MEDITERRANEAN, 1ST MILLENNIUM B.C",
701 + "low": 1500,
702 + "high": 2500,
703 + "hammer": 3400,
704 + "status": "sold",
705 + "sessionDate": "2026-07-08T13:00:00.000Z",
706 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/6ba1bdb4-c673-4aec-b683-2b37e153ade7/45aa2258-be51-4033-97af-55948033aab3/0001_wRPJeO_original.jpeg"
707 + },
708 + {
709 + "uuid": "54115452-4713-4853-bac3-fd705b74cac1",
710 + "lotNo": "55B",
711 + "title": "CARNELIAN BEADED NECKLACE",
712 + "subTitle": "EASTERN MEDITERRANEAN, 1ST MILLENNIUM B.C.",
713 + "low": 800,
714 + "high": 1200,
715 + "hammer": 2200,
716 + "status": "sold",
717 + "sessionDate": "2026-07-08T13:00:00.000Z",
718 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/5185457e-4676-4af7-90ac-d0e8e23a9476/70f358c0-88b6-4b73-8af9-433dd80b57b2/0001_opKygd_original.jpeg"
719 + },
720 + {
721 + "uuid": "13e090d7-3396-44ff-a4e3-b59ca9e397b0",
722 + "lotNo": "55",
723 + "title": "OLD SYRIAN HEMATITE CYLINDER SEAL, ACQUIRED EARLY 20TH CENTURY",
724 + "subTitle": "NEAR EAST, C. 1820 - 1730 B.C.",
725 + "low": 400,
726 + "high": 600,
727 + "hammer": 650,
728 + "status": "sold",
729 + "sessionDate": "2026-07-08T13:00:00.000Z",
730 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/d27285f1-f9b7-4c33-b584-c13a855e2014/75fb60ac-bbb8-4a0b-b1d7-cf882d23b727/0002_SidFoK_original.jpg"
731 + },
732 + {
733 + "uuid": "e47bdf19-7969-403a-bbac-78a482e69f5b",
734 + "lotNo": "56",
735 + "title": "DANCE STAFF",
736 + "subTitle": "TIWI PEOPLES, MELVILLE ISLANDS, AUSTRALIA",
737 + "low": 300,
738 + "high": 400,
739 + "hammer": 460,
740 + "status": "sold",
741 + "sessionDate": "2026-07-08T13:00:00.000Z",
742 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/50510597-2294-4fa5-b6fe-7a5aa96f759f/c24411cd-cebb-4e1d-9c39-52413196cd58/0001_wWmWvs_original.jpg"
743 + },
744 + {
745 + "uuid": "a3b2687e-bf14-4884-9144-e229920ce884",
746 + "lotNo": "57",
747 + "title": "MAORI WAHAIKA CLUB",
748 + "subTitle": "NEW ZEALAND",
749 + "low": 6000,
750 + "high": 9000,
751 + "hammer": 3587.61,
752 + "status": "sold",
753 + "sessionDate": "2026-07-08T13:00:00.000Z",
754 + "image": "https://media.app.artisio.co/media/104cbde6-0d38-43cb-9e0f-bb721ef57bcf/inventory/2722624d-e943-4683-8f27-e48e30eb9a89/8364784e-eb23-4d14-812e-f3bfd6b567b1/00001_NOIogj_original.jpeg"
755 + }
756 + ]
757 + }
758 + },
759 + "expect": {
760 + "minCount": 20,
761 + "kinds": [
762 + "sale",
763 + "auction_lot"
764 + ],
765 + "requiredFields": [
766 + "attributes.categorySlug",
767 + "rawTitle"
768 + ]
769 + },
770 + "note": "Captured live from lyonandturnbull.com (plain HTTPS, lots trimmed to 60)",
771 + "capturedAt": "2026-09-07T06:34:02.309Z"
772 +}
\ No newline at end of file
added data/fixtures/phillips-art/sale-NY011126.json +37 −0
@@ -0,0 +1,37 @@
1 +{
2 + "raw": {
3 + "url": "https://www.phillips.com/auction/NY011126",
4 + "externalId": "NY011126",
5 + "kind": "sale",
6 + "engine": "firecrawl",
7 + "fetchedAt": "2026-09-07T06:28:39.390Z",
8 + "payload": {
9 + "kind": "auction_results",
10 + "url": "https://www.phillips.com/auction/NY011126",
11 + "saleNumber": "NY011126",
12 + "title": "Modern & Contemporary Art: Online Auction, New York",
13 + "location": "NEW YORK",
14 + "startDate": "2026-06-16T12:00:00-04:00",
15 + "endDate": "2026-06-30T12:00:00-04:00",
16 + "lotCount": 206,
17 + "markdown": "## Search\n\nSearch\n\nAuctions\n\n- [Calendar](https://www.phillips.com/calendar/upcoming)\n\nDepartments\n\n- [Exhibitions](https://www.phillips.com/exhibitions)\n- [Perpetual](https://perpetual.phillips.com/)\n- [Dropshop](https://dropshop.phillips.com/)\n- [Editorial](https://www.phillips.com/editorial)\n\nClose\n\nOnline Auction\n\n# Modern & Contemporary Art: Online Auction, New York\n\nNew York\n\nConcludedJun 30 2026\n\nBrowse Upcoming Sales[View Calendar](https://www.phillips.com/calendar)\n\n![Modern & Contemporary Art: Online Auction, New York](https://dist.phillips.com/auction-assets/NY011126/NY011126.jpg?fit=cover&optimize=medium&width=1302)\n\nOverviewBrowse lots\n\nFilters\n\nLot Navigation\n\nShow Lot123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206\n\n## 206 Lots\n\nLots close independently at 1-minute intervals.\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234214_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n1\\\\\n\\\\\nKatherine Bradford\\\\\n\\\\\nLanterns\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,900](https://www.phillips.com/detail/katherine-bradford/234214)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233356_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n2\\\\\n\\\\\nMaija Peeples-Bright\\\\\n\\\\\nQuite an Adwrenture\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,192](https://www.phillips.com/detail/maija-peeples-bright/233356)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231200_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n3\\\\\n\\\\\nSayre Gomez\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,255](https://www.phillips.com/detail/sayre-gomez/231200)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234722_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n4\\\\\n\\\\\nUgo Rondinone\\\\\n\\\\\nOut of reach until it’s magic we are crossing our own stony ocean\\\\\n\\\\\nEstimate\\\\\n\\\\\n$26,000–35,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$45,150](https://www.phillips.com/detail/ugo-rondinone/234722)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230064_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n5\\\\\n\\\\\nKatherine Bernhardt\\\\\n\\\\\nLaptops, Apple Computers + Pizza\\\\\n\\\\\nEstimate\\\\\n\\\\\n$18,000–22,000](https://www.phillips.com/detail/katherine-bernhardt/230064)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234514_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n6\\\\\n\\\\\nLeda Catunda\\\\\n\\\\\nBlue\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000](https://www.phillips.com/detail/leda-catunda/234514)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234185_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n7\\\\\n\\\\\nKatherine Bradford\\\\\n\\\\\nSoprano\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,095](https://www.phillips.com/detail/katherine-bradford/234185)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232400_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n8\\\\\n\\\\\nAtsushi Kaga\\\\\n\\\\\nUsacchi and his Dad\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000](https://www.phillips.com/detail/atsushi-kaga/232400)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235616_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n9\\\\\n\\\\\nAnselm Reyle\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/anselm-reyle/235616)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234724_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n10\\\\\n\\\\\nJohn Armleder\\\\\n\\\\\nLiberty Dome Vlla\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/john-armleder/234724)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230961_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n11\\\\\n\\\\\nYoussef Nabil\\\\\n\\\\\nI Will Go To Paradise, Self Portrait, Hyères\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$28,380](https://www.phillips.com/detail/youssef-nabil/230961)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231856_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n12\\\\\n\\\\\nBernar Venet\\\\\n\\\\\nUneven Collapse: 11 Arcs\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$16,770](https://www.phillips.com/detail/bernar-venet/231856)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234435_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n13\\\\\n\\\\\nJason Martin\\\\\n\\\\\nMaiko\\\\\n\\\\\nEstimate\\\\\n\\\\\n$12,000–18,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$18,060](https://www.phillips.com/detail/jason-martin/234435)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234725_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n14\\\\\n\\\\\nPhilippe Decrauzat\\\\\n\\\\\nSlow Motion #1\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/philippe-decrauzat/234725)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234434_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n15\\\\\n\\\\\nShirazeh Houshiary\\\\\n\\\\\nSkin\\\\\n\\\\\nEstimate\\\\\n\\\\\n$20,000–30,000](https://www.phillips.com/detail/shirazeh-houshiary/234434)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230067_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n16\\\\\n\\\\\nKour Pour\\\\\n\\\\\nVector Art\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$16,770](https://www.phillips.com/detail/kour-pour/230067)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232068_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n17\\\\\n\\\\\nKon Trubkovich\\\\\n\\\\\nGolden Ratio (Orange)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,030](https://www.phillips.com/detail/kon-trubkovich/232068)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231223_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n18\\\\\n\\\\\nCyprien Gaillard\\\\\n\\\\\nNot yet titled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$12,000–18,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$18,060](https://www.phillips.com/detail/cyprien-gaillard/231223)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232550_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n19\\\\\n\\\\\nAndrew Schoultz\\\\\n\\\\\nSnake\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,354](https://www.phillips.com/detail/andrew-schoultz/232550)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234248_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n20\\\\\n\\\\\nJenny Holzer\\\\\n\\\\\nSurvival Series: What country should you adopt…\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,965](https://www.phillips.com/detail/jenny-holzer/234248)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228091_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n21\\\\\n\\\\\nTony Matelli\\\\\n\\\\\nFuck Off\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,805](https://www.phillips.com/detail/tony-matelli/228091)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232124_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n22\\\\\n\\\\\nNick Doyle\\\\\n\\\\\nVictor, Alpha\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,612](https://www.phillips.com/detail/nick-doyle/232124)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/207467_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n23\\\\\n\\\\\nRichard Prince\\\\\n\\\\\nUntitled (Tell Me Everything...)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$20,000–30,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$51,600](https://www.phillips.com/detail/richard-prince/207467)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233922_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n24\\\\\n\\\\\nEnoc Pérez\\\\\n\\\\\nLever House, NY\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,900](https://www.phillips.com/detail/enoc-p%C3%A9rez/233922)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234889_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n25\\\\\n\\\\\nJulio Larraz\\\\\n\\\\\nAutumn at Cumae\\\\\n\\\\\nEstimate\\\\\n\\\\\n$25,000–35,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$33,540](https://www.phillips.com/detail/julio-larraz/234889)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234890_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n26\\\\\n\\\\\nJulio Larraz\\\\\n\\\\\nBell Tower\\\\\n\\\\\nEstimate\\\\\n\\\\\n$18,000–22,000](https://www.phillips.com/detail/julio-larraz/234890)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235075_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n27\\\\\n\\\\\nEugenio Cuttica\\\\\n\\\\\nLuna and the weed field\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/eugenio-cuttica/235075)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234184_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n28\\\\\n\\\\\nGustavo Vélez\\\\\n\\\\\nEnlace Geométrico\\\\\n\\\\\nEstimate\\\\\n\\\\\n$18,000–25,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$45,150](https://www.phillips.com/detail/gustavo-v%C3%A9lez/234184)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229426_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n29\\\\\n\\\\\nVik Muniz\\\\\n\\\\\nJorge from the series Pictures of Magazines\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000](https://www.phillips.com/detail/vik-muniz/229426)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230378_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n30\\\\\n\\\\\nOscar Murillo\\\\\n\\\\\nUntitled (synthetic trash painting)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$12,000–18,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$15,480](https://www.phillips.com/detail/oscar-murillo/230378)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234242_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n31\\\\\n\\\\\nAnalia Saban\\\\\n\\\\\nModular Drawing (One 14-inch Line Printed on Tape, Applied in Whole or in Parts): Landscape\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,450](https://www.phillips.com/detail/analia-saban/234242)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234726_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n32\\\\\n\\\\\nLeandro Erlich\\\\\n\\\\\nBroken Mirror\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$15,480](https://www.phillips.com/detail/leandro-erlich/234726)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232126_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n33\\\\\n\\\\\nAnna Weyant\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$18,000–22,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$23,220](https://www.phillips.com/detail/anna-weyant/232126)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234316_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n34\\\\\n\\\\\nJaune Quick-to-See Smith (Confederated Salish and Kootenai)\\\\\n\\\\\nI See Red: America Seen from Up Close\\\\\n\\\\\nEstimate\\\\\n\\\\\n$25,000–35,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$25,800](https://www.phillips.com/detail/jaune-quick-to-see-smith-(confederated-salish-and-kootenai)/234316)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232549_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n35\\\\\n\\\\\nDeborah Roberts\\\\\n\\\\\nMis-Education of Mimi\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,030](https://www.phillips.com/detail/deborah-roberts/232549)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235311_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n36\\\\\n\\\\\nHuma Bhabha\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/huma-bhabha/235311)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227808_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n37\\\\\n\\\\\nClaudio Bravo\\\\\n\\\\\nPaisaje\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$20,640](https://www.phillips.com/detail/claudio-bravo/227808)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227944_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n38\\\\\n\\\\\nLarry Rivers\\\\\n\\\\\nBlue Collar Holiday: Yellow Beam\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,160](https://www.phillips.com/detail/larry-rivers/227944)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233441_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n39\\\\\n\\\\\nJohn Wesley\\\\\n\\\\\nUntitled (Hand with Bottle)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,740](https://www.phillips.com/detail/john-wesley/233441)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233146_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n40\\\\\n\\\\\nJulio Galán\\\\\n\\\\\nSin Título\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,900](https://www.phillips.com/detail/julio-gal%C3%A1n/233146)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227825_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n41\\\\\n\\\\\nJacques Lipchitz\\\\\n\\\\\nMiraculous Catch\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$15,480](https://www.phillips.com/detail/jacques-lipchitz/227825)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230256_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n42\\\\\n\\\\\nHisao Domoto\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$21,930](https://www.phillips.com/detail/hisao-domoto/230256)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234396_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n43\\\\\n\\\\\nAnthony Caro\\\\\n\\\\\nTable Piece CCCCXX\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$20,640](https://www.phillips.com/detail/anthony-caro/234396)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235461_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n44\\\\\n\\\\\nLouise Nevelson\\\\\n\\\\\nEnd of Day Cryptic XV\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$30,960](https://www.phillips.com/detail/louise-nevelson/235461)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230255_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n45\\\\\n\\\\\nNorman Bluhm\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000](https://www.phillips.com/detail/norman-bluhm/230255)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235327_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n46\\\\\n\\\\\nOlivier Debré\\\\\n\\\\\nNotre-Dame blanche\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000](https://www.phillips.com/detail/olivier-debr%C3%A9/235327)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234109_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n47\\\\\n\\\\\nRobert Natkin\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,450](https://www.phillips.com/detail/robert-natkin/234109)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232121_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n48\\\\\n\\\\\nRichard Artschwager\\\\\n\\\\\nRailroad Tracks No. 4 (plural)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$20,000–30,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$19,350](https://www.phillips.com/detail/richard-artschwager/232121)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225023_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n49\\\\\n\\\\\nBrion Gysin\\\\\n\\\\\nDreamachine\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$25,800](https://www.phillips.com/detail/brion-gysin/225023)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230379_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n50\\\\\n\\\\\nGeorge Rickey\\\\\n\\\\\nSix Triangles with Spirals Hexagon II\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000](https://www.phillips.com/detail/george-rickey/230379)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227943_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n51\\\\\n\\\\\nBeverly Pepper\\\\\n\\\\\nMatera Scatolata (Sculpture No. 21)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/beverly-pepper/227943)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229435_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n52\\\\\n\\\\\nJohn McCracken\\\\\n\\\\\nAlpha-2\\\\\n\\\\\nEstimate\\\\\n\\\\\n$20,000–30,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$28,380](https://www.phillips.com/detail/john-mccracken/229435)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231617_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n53\\\\\n\\\\\nGeorge Condo\\\\\n\\\\\nGlass Man\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$30,960](https://www.phillips.com/detail/george-condo/231617)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235254_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n54\\\\\n\\\\\nHilo Chen\\\\\n\\\\\nFour works: (i) Blossom-19-S-1; (ii) Blossom 20-S; (iii) Untitled; (iv) Untitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,675](https://www.phillips.com/detail/hilo-chen/235254)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235253_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n55\\\\\n\\\\\nHilo Chen\\\\\n\\\\\nBath Room - 5\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/hilo-chen/235253)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234939_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n56\\\\\n\\\\\nPeter Dreher\\\\\n\\\\\nTwo works: (i) Tag um Tag Guter Tag, n. 1184 (Day); (ii) Tag um Tag Guter Tag, n. 1928 (Night)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,900](https://www.phillips.com/detail/peter-dreher/234939)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230970_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n57\\\\\n\\\\\nSusan Hiller\\\\\n\\\\\nSpeaking to the Eye\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$4,515](https://www.phillips.com/detail/susan-hiller/230970)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234530_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n58\\\\\n\\\\\nJane Piper\\\\\n\\\\\nStill Life with Bouquet\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000](https://www.phillips.com/detail/jane-piper/234530)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234529_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n59\\\\\n\\\\\nTom Otterness\\\\\n\\\\\nBeer Can Bronze\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$15,480](https://www.phillips.com/detail/tom-otterness/234529)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231360_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n60\\\\\n\\\\\nRobert Beauchamp\\\\\n\\\\\nChagall like Harpies\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,548](https://www.phillips.com/detail/robert-beauchamp/231360)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/191183_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n61\\\\\n\\\\\nMary Weatherford\\\\\n\\\\\nCamille\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,900](https://www.phillips.com/detail/mary-weatherford/191183)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227471_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n62\\\\\n\\\\\nApril Gornik\\\\\n\\\\\nLIGHT IN THE WOODS, STATE II\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/april-gornik/227471)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230066_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n63\\\\\n\\\\\nJulie Heffernan\\\\\n\\\\\nStudy for Self Portrait as Falling Sky with Shipwreck\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/julie-heffernan/230066)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232120_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n64\\\\\n\\\\\nJoe Andoe\\\\\n\\\\\nSunflower\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,192](https://www.phillips.com/detail/joe-andoe/232120)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233288_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n65\\\\\n\\\\\nPeter Anton\\\\\n\\\\\nPlayful Mix\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,095](https://www.phillips.com/detail/peter-anton/233288)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233289_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n66\\\\\n\\\\\nPeter Anton\\\\\n\\\\\nMilk Chocolate Bar\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,675](https://www.phillips.com/detail/peter-anton/233289)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234581_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n67\\\\\n\\\\\nJosh Sperling\\\\\n\\\\\nUntitled (Orange Pyramid)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,030](https://www.phillips.com/detail/josh-sperling/234581)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234501_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n68\\\\\n\\\\\nKAWS\\\\\n\\\\\nPERMANENT THIRTY-THREE (FLASHE GREEN)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–25,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$36,120](https://www.phillips.com/detail/kaws/234501)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229320_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n69\\\\\n\\\\\nKim Dorland\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,450](https://www.phillips.com/detail/kim-dorland/229320)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235310_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n70\\\\\n\\\\\nDavid Altmejd\\\\\n\\\\\nThe Storms\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/david-altmejd/235310)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231355_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n71\\\\\n\\\\\nAndrea Marie Breiling\\\\\n\\\\\nTitanium Twist\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000](https://www.phillips.com/detail/andrea-marie-breiling/231355)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234153_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n72\\\\\n\\\\\nCorydon Cowansage\\\\\n\\\\\nReds\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,095](https://www.phillips.com/detail/corydon-cowansage/234153)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232397_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n73\\\\\n\\\\\nEmily Ferguson\\\\\n\\\\\nRefractions in the Plastic Pulse\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000](https://www.phillips.com/detail/emily-ferguson/232397)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232125_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n74\\\\\n\\\\\nEmily Mae Smith\\\\\n\\\\\nHunger\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,255](https://www.phillips.com/detail/emily-mae-smith/232125)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232015_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n75\\\\\n\\\\\nCarter Flachbarth\\\\\n\\\\\nPOW\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000](https://www.phillips.com/detail/carter-flachbarth/232015)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232406_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n76\\\\\n\\\\\nJess Valice\\\\\n\\\\\nOutlaw Woman\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/jess-valice/232406)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232013_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n77\\\\\n\\\\\nNadia Waheed\\\\\n\\\\\nAt Night\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,160](https://www.phillips.com/detail/nadia-waheed/232013)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232009_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n78\\\\\n\\\\\nIvy Haldeman\\\\\n\\\\\nHeels, Right Foot Up, Wrist Under Shank, Three Fingers\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000](https://www.phillips.com/detail/ivy-haldeman/232009)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232098_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n79\\\\\n\\\\\nHaley Josephs\\\\\n\\\\\nLife/Body Cycle\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/haley-josephs/232098)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232405_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n80\\\\\n\\\\\nTony Toscani\\\\\n\\\\\nWork Break\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000](https://www.phillips.com/detail/tony-toscani/232405)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229974_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n81\\\\\n\\\\\nShaina McCoy\\\\\n\\\\\nMandela (Untitled II)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$4,128](https://www.phillips.com/detail/shaina-mccoy/229974)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232014_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n82\\\\\n\\\\\nEthan Cook\\\\\n\\\\\nBlue Red 3\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$14,190](https://www.phillips.com/detail/ethan-cook/232014)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232725_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n83\\\\\n\\\\\nJosh Smith\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,160](https://www.phillips.com/detail/josh-smith/232725)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230380_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n84\\\\\n\\\\\nSoiL Thornton\\\\\n\\\\\nWalking On Thin Ice Cubicle\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,450](https://www.phillips.com/detail/soil-thornton/230380)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232011_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n85\\\\\n\\\\\nMilo Matthieu\\\\\n\\\\\nJC\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000](https://www.phillips.com/detail/milo-matthieu/232011)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227767_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n86\\\\\n\\\\\nNikki Maloof\\\\\n\\\\\nBed\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/nikki-maloof/227767)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234830_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n87\\\\\n\\\\\nBlair Whiteford\\\\\n\\\\\nSilt\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/blair-whiteford/234830)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228153_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n88\\\\\n\\\\\nSojourner Truth Parsons\\\\\n\\\\\nTell them that it's human nature\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,677](https://www.phillips.com/detail/sojourner-truth-parsons/228153)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/195179_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n89\\\\\n\\\\\nAmy Lincoln\\\\\n\\\\\nPink Sun, Blue Moon\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$14,190](https://www.phillips.com/detail/amy-lincoln/195179)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232016_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n90\\\\\n\\\\\nChino Amobi\\\\\n\\\\\nX.10\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000](https://www.phillips.com/detail/chino-amobi/232016)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230390_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n91\\\\\n\\\\\nZoe McGuire\\\\\n\\\\\nSkyscape\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,354](https://www.phillips.com/detail/zoe-mcguire/230390)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230174_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n92\\\\\n\\\\\nClaire Colette\\\\\n\\\\\nAwareness is the sky\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,500–4,500\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,612](https://www.phillips.com/detail/claire-colette/230174)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233355_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n93\\\\\n\\\\\nStephen Towns\\\\\n\\\\\nAnatomy of Abundance\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$4,515](https://www.phillips.com/detail/stephen-towns/233355)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/236018_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n94\\\\\n\\\\\nEmma Stern\\\\\n\\\\\nBrooke (catch more flies with honey)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/emma-stern/236018)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232655_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n95\\\\\n\\\\\nSteve DiBenedetto\\\\\n\\\\\nBreakup\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$4,902](https://www.phillips.com/detail/steve-dibenedetto/232655)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230387_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n96\\\\\n\\\\\nDevin Troy Strother\\\\\n\\\\\nuntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,354](https://www.phillips.com/detail/devin-troy-strother/230387)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231358_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n97\\\\\n\\\\\nJeff Elrod\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$19,350](https://www.phillips.com/detail/jeff-elrod/231358)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230068_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n98\\\\\n\\\\\nDan Rees\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$11,610](https://www.phillips.com/detail/dan-rees/230068)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230069_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n99\\\\\n\\\\\nLucien Smith\\\\\n\\\\\nThose whose love burns, dare not; the love of those who dare, burns not\\\\\n\\\\\nEstimate\\\\\n\\\\\n$1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,354](https://www.phillips.com/detail/lucien-smith/230069)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234241_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n100\\\\\n\\\\\nLucien Smith\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,354](https://www.phillips.com/detail/lucien-smith/234241)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228045_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n101\\\\\n\\\\\nJohn Henderson\\\\\n\\\\\nProof (wall rip, verso)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$2,838](https://www.phillips.com/detail/john-henderson/228045)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234937_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n102\\\\\n\\\\\nRichard Aldrich\\\\\n\\\\\nPeacock with Stripes of Mary Cassatt and Syd Barrett\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/richard-aldrich/234937)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234731_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n103\\\\\n\\\\\nKelley Walker\\\\\n\\\\\nI See a Teddy Roosevelt-Shaped Thing\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,740](https://www.phillips.com/detail/kelley-walker/234731)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233330_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n104\\\\\n\\\\\nDaniel Lefcourt\\\\\n\\\\\nDouble Imposition\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$645](https://www.phillips.com/detail/daniel-lefcourt/233330)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235047_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n105\\\\\n\\\\\nCaroline Walker\\\\\n\\\\\nRelaxation Room\\\\\n\\\\\nEstimate\\\\\n\\\\\n$12,000–18,000](https://www.phillips.com/detail/caroline-walker/235047)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232097_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n106\\\\\n\\\\\nLouise Giovanelli\\\\\n\\\\\nTwo Grooves III\\\\\n\\\\\nEstimate\\\\\n\\\\\n$20,000–30,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$21,930](https://www.phillips.com/detail/louise-giovanelli/232097)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234775_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n107\\\\\n\\\\\nAnia Hobson\\\\\n\\\\\nBurning Love Letters\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,965](https://www.phillips.com/detail/ania-hobson/234775)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232842_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n108\\\\\n\\\\\nRyan Mosley\\\\\n\\\\\nShaman II\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000](https://www.phillips.com/detail/ryan-mosley/232842)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234938_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n109\\\\\n\\\\\nAnastasia Bay\\\\\n\\\\\nThe Stumbler's Parade (Head VI)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000](https://www.phillips.com/detail/anastasia-bay/234938)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227942_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n110\\\\\n\\\\\nDjordje Ozbolt\\\\\n\\\\\nBird Magnet\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000](https://www.phillips.com/detail/djordje-ozbolt/227942)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/218847_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n111\\\\\n\\\\\nBrice Guilbert\\\\\n\\\\\nFournez\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,160](https://www.phillips.com/detail/brice-guilbert/218847)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232095_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n112\\\\\n\\\\\nArjen\\\\\n\\\\\nEaster Fantasy\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,740](https://www.phillips.com/detail/arjen/232095)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228611_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n113\\\\\n\\\\\nWolfe von Lenkiewicz\\\\\n\\\\\nPierrot\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$25,800](https://www.phillips.com/detail/wolfe-von-lenkiewicz/228611)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233181_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n114\\\\\n\\\\\nPaulina Olowska\\\\\n\\\\\nLili with a Pocket Bonnet\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,030](https://www.phillips.com/detail/paulina-olowska/233181)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231363_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n115\\\\\n\\\\\nJoanna Malinowska\\\\\n\\\\\nFeathers\\\\\n\\\\\nEstimate\\\\\n\\\\\n$1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n$194](https://www.phillips.com/detail/joanna-malinowska/231363)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232017_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n116\\\\\n\\\\\nEva Beresin\\\\\n\\\\\nZoom pilates view\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000](https://www.phillips.com/detail/eva-beresin/232017)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231364_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n117\\\\\n\\\\\nPádraig Timoney\\\\\n\\\\\nHydrangea\\\\\n\\\\\nEstimate\\\\\n\\\\\n$1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,935](https://www.phillips.com/detail/p%C3%A1draig-timoney/231364)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232547_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n118\\\\\n\\\\\nFriedrich Kunath\\\\\n\\\\\nDefectus\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,740](https://www.phillips.com/detail/friedrich-kunath/232547)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227810_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n119\\\\\n\\\\\nWerner Büttner\\\\\n\\\\\nDie Probleme des Minigolfs in der europäischen Malerei\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$18,060](https://www.phillips.com/detail/werner-b%C3%BCttner/227810)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230377_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n120\\\\\n\\\\\nFriedrich Kunath\\\\\n\\\\\nThe Past\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,900](https://www.phillips.com/detail/friedrich-kunath/230377)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228151_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n121\\\\\n\\\\\nUwe Henneken\\\\\n\\\\\nFace to Face with Love\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,548](https://www.phillips.com/detail/uwe-henneken/228151)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235688_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n122\\\\\n\\\\\nFrank Nitsche\\\\\n\\\\\nBPG-05-2002\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,740](https://www.phillips.com/detail/frank-nitsche/235688)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228152_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n123\\\\\n\\\\\nEllen Gronemeyer\\\\\n\\\\\npositive skewness\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,677](https://www.phillips.com/detail/ellen-gronemeyer/228152)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234215_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n124\\\\\n\\\\\nChris Succo\\\\\n\\\\\nUNTITLED (WHEN THE SUN GOES DOWN)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$2,193](https://www.phillips.com/detail/chris-succo/234215)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228044_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n125\\\\\n\\\\\nMax Frintrop\\\\\n\\\\\nUntitled (Katzenberg)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,677](https://www.phillips.com/detail/max-frintrop/228044)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234240_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n126\\\\\n\\\\\nMichiel Ceulers\\\\\n\\\\\nIf you bow at all, bow low (to know the road ahead ask those coming back)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$2,838](https://www.phillips.com/detail/michiel-ceulers/234240)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235312_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n127\\\\\n\\\\\nAndreas Eriksson\\\\\n\\\\\nVisit\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$15,480](https://www.phillips.com/detail/andreas-eriksson/235312)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/195195_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n128\\\\\n\\\\\nAudun Alvestad\\\\\n\\\\\nThe Water Looks Strange Today\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000](https://www.phillips.com/detail/audun-alvestad/195195)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230467_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n129\\\\\n\\\\\nElmgreen & Dragset\\\\\n\\\\\nBall and Chain\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,160](https://www.phillips.com/detail/elmgreen-&-dragset/230467)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233283_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n130\\\\\n\\\\\nClaire Fontaine\\\\\n\\\\\nLes refusés, V. I\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,226](https://www.phillips.com/detail/claire-fontaine/233283)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230969_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n131\\\\\n\\\\\nHaim Steinbach\\\\\n\\\\\npops\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,965](https://www.phillips.com/detail/haim-steinbach/230969)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232548_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n132\\\\\n\\\\\nWangechi Mutu\\\\\n\\\\\nHeeler XIII\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,450](https://www.phillips.com/detail/wangechi-mutu/232548)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231202_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n133\\\\\n\\\\\nLudovic Nkoth\\\\\n\\\\\nFallen Angel\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/ludovic-nkoth/231202)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234349_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n134\\\\\n\\\\\nEmmanuel Taku\\\\\n\\\\\nTwin Power\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000](https://www.phillips.com/detail/emmanuel-taku/234349)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230172_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n135\\\\\n\\\\\nAwol Erizku\\\\\n\\\\\nGuap On Me - Future\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–4,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,806](https://www.phillips.com/detail/awol-erizku/230172)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232010_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n136\\\\\n\\\\\nJordy Kerwick\\\\\n\\\\\nTMD #3\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,675](https://www.phillips.com/detail/jordy-kerwick/232010)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233921_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n137\\\\\n\\\\\nZhang Huan\\\\\n\\\\\nChinese Flag No. 1\\\\\n\\\\\nEstimate\\\\\n\\\\\n$18,000–25,000](https://www.phillips.com/detail/zhang-huan/233921)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235546_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n138\\\\\n\\\\\nZhuang Hong Yi\\\\\n\\\\\nB19 - HY - 006\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/zhuang-hong-yi/235546)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234243_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n139\\\\\n\\\\\nRen Hang\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$4,515](https://www.phillips.com/detail/ren-hang/234243)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/236499_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n140\\\\\n\\\\\nRen Hang\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,806](https://www.phillips.com/detail/ren-hang/236499)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226057_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n141\\\\\n\\\\\nWang Yigang\\\\\n\\\\\nS30\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,965](https://www.phillips.com/detail/wang-yigang/226057)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228610_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n142\\\\\n\\\\\nXu Qu\\\\\n\\\\\nCurrency Wars - China 50 New\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$2,580](https://www.phillips.com/detail/xu-qu/228610)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234582_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n143\\\\\n\\\\\nYirui Jia\\\\\n\\\\\nMarfa Ghost\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000](https://www.phillips.com/detail/yirui-jia/234582)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234583_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n144\\\\\n\\\\\nWendy Park\\\\\n\\\\\nSecond Hand Fan\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,160](https://www.phillips.com/detail/wendy-park/234583)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234715_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n145\\\\\n\\\\\nYusuke Hanai\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000](https://www.phillips.com/detail/yusuke-hanai/234715)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234716_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n146\\\\\n\\\\\nYusuke Hanai\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000](https://www.phillips.com/detail/yusuke-hanai/234716)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234580_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n147\\\\\n\\\\\nTomoo Gokita\\\\\n\\\\\nDance\\\\\n\\\\\nEstimate\\\\\n\\\\\n$15,000–20,000](https://www.phillips.com/detail/tomoo-gokita/234580)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234584_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n148\\\\\n\\\\\nKoichi Sato\\\\\n\\\\\nLatin Beat Vol. 3\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,030](https://www.phillips.com/detail/koichi-sato/234584)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234967_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n149\\\\\n\\\\\nMatthew Barney\\\\\n\\\\\nCREMASTER 3: Level\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/matthew-barney/234967)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230707_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n150\\\\\n\\\\\nWalead Beshty\\\\\n\\\\\nCombine Print (CMY/Six Magnets/2 of 5: Irvine, California, March 26th 2010, Fujicolor Crystal Archive Super Type C, Em. No. 148-006, 80510)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/walead-beshty/230707)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227811_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n151\\\\\n\\\\\nRoe Ethridge\\\\\n\\\\\nDouble Jess Gold\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,675](https://www.phillips.com/detail/roe-ethridge/227811)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234728_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n152\\\\\n\\\\\nMike Kelley\\\\\n\\\\\nPin Up Board (7070 Hollywood Blvd)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/mike-kelley/234728)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229555_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n153\\\\\n\\\\\nDoug Starn and Mike Starn\\\\\n\\\\\nBlot Out the Sun #1\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000](https://www.phillips.com/detail/doug-starn-and-mike-starn/229555)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234968_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n154\\\\\n\\\\\nAndres Serrano\\\\\n\\\\\nPieta ll\\\\\n\\\\\nEstimate\\\\\n\\\\\n$12,000–18,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$25,800](https://www.phillips.com/detail/andres-serrano/234968)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229554_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n155\\\\\n\\\\\nRyan McGinley\\\\\n\\\\\nAmanda (Breeze Meadow)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,418](https://www.phillips.com/detail/ryan-mcginley/229554)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227816_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n156\\\\\n\\\\\nMike Kelley\\\\\n\\\\\nExtracurricular Activity Projective Reconstruction #23 (Joseph Supplicates)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/mike-kelley/227816)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232122_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n157\\\\\n\\\\\nJohn Beech\\\\\n\\\\\nDumpster Drawing (Silver/Berlin/Through Fence)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,032](https://www.phillips.com/detail/john-beech/232122)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229583_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n158\\\\\n\\\\\nKrishnaraj Chonat\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$323](https://www.phillips.com/detail/krishnaraj-chonat/229583)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234734_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n159\\\\\n\\\\\nHuma Bhabha\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,450](https://www.phillips.com/detail/huma-bhabha/234734)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235156_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n160\\\\\n\\\\\nMarcel Dzama\\\\\n\\\\\nThe Hidden, the unknowable and the unthinkable\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$5,160](https://www.phillips.com/detail/marcel-dzama/235156)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232148_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n161\\\\\n\\\\\nAna Benaroya\\\\\n\\\\\nMy Heart Burns Cherry Red For You\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000](https://www.phillips.com/detail/ana-benaroya/232148)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232402_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n162\\\\\n\\\\\nRobert Nava\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/robert-nava/232402)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232012_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n163\\\\\n\\\\\nDavid Shrigley\\\\\n\\\\\nUntitled (Unacceptable)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/david-shrigley/232012)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232096_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n164\\\\\n\\\\\nPat Phillips\\\\\n\\\\\nUntitled “The first line of defense... the only defense... the only LEGAL defense against domestic terrorist”\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,806](https://www.phillips.com/detail/pat-phillips/232096)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228849_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n165\\\\\n\\\\\nJoe Zucker\\\\\n\\\\\n1980-1985\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,419](https://www.phillips.com/detail/joe-zucker/228849)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/228848_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n166\\\\\n\\\\\nTony Just\\\\\n\\\\\nPasserby, New York City\\\\\n\\\\\nEstimate\\\\\n\\\\\n$1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n$194](https://www.phillips.com/detail/tony-just/228848)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229588_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n167\\\\\n\\\\\nWilhelm Sasnal\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,226](https://www.phillips.com/detail/wilhelm-sasnal/229588)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/233274_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n168\\\\\n\\\\\nKelley Walker and Wade Guyton\\\\\n\\\\\nThree works: (i-iii) _Untitled_\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$710](https://www.phillips.com/detail/kelley-walker-and-wade-guyton/233274)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234941_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n169\\\\\n\\\\\nSteven Parrino\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/steven-parrino/234941)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234940_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n170\\\\\n\\\\\nSteven Parrino\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/steven-parrino/234940)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232823_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n171\\\\\n\\\\\nGabriel Orozco\\\\\n\\\\\nUntitled (Computer generated circles and squares)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,030](https://www.phillips.com/detail/gabriel-orozco/232823)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229553_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n172\\\\\n\\\\\nApril Gornik\\\\\n\\\\\nCloud Wall\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$14,190](https://www.phillips.com/detail/april-gornik/229553)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232588_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n173\\\\\n\\\\\nSol LeWitt\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,095](https://www.phillips.com/detail/sol-lewitt/232588)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230690_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n174\\\\\n\\\\\nSherrie Levine\\\\\n\\\\\nAfter Man Ray\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$6,450](https://www.phillips.com/detail/sherrie-levine/230690)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232821_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n175\\\\\n\\\\\nJames Bishop\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,030](https://www.phillips.com/detail/james-bishop/232821)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/229552_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n176\\\\\n\\\\\nDonald Baechler\\\\\n\\\\\nTwo works: (i) Aspen I; (ii) Aspen II\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,255](https://www.phillips.com/detail/donald-baechler/229552)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231618_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n177\\\\\n\\\\\nGeorge Condo\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000](https://www.phillips.com/detail/george-condo/231618)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/231619_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n178\\\\\n\\\\\nGeorge Condo\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,900](https://www.phillips.com/detail/george-condo/231619)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/234181_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n179\\\\\n\\\\\nErnie Barnes\\\\\n\\\\\nTwo works: (i) Study Sketch; (ii) Study Sketch II\\\\\n\\\\\nEstimate\\\\\n\\\\\n$18,000–25,000](https://www.phillips.com/detail/ernie-barnes/234181)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/232123_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n180\\\\\n\\\\\nWilliam N. Copley\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,095](https://www.phillips.com/detail/william-n.-copley/232123)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/227773_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n181\\\\\n\\\\\nSuzanne Jackson\\\\\n\\\\\nLife Study\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,806](https://www.phillips.com/detail/suzanne-jackson/227773)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230689_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n182\\\\\n\\\\\nPat Steir\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,870](https://www.phillips.com/detail/pat-steir/230689)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235329_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n183\\\\\n\\\\\nTheodoros Stamos\\\\\n\\\\\nInfinity Field, Lefkada Series #II\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$14,190](https://www.phillips.com/detail/theodoros-stamos/235329)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230257_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n184\\\\\n\\\\\nPaul Jenkins\\\\\n\\\\\nTwo works: (i) Phenomena for Herman; (ii) Phenomena Black is Magic\\\\\n\\\\\nEstimate\\\\\n\\\\\n$6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,965](https://www.phillips.com/detail/paul-jenkins/230257)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/230065_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n185\\\\\n\\\\\nNorman Bluhm\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000](https://www.phillips.com/detail/norman-bluhm/230065)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235328_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n186\\\\\n\\\\\nConrad Marca-Relli\\\\\n\\\\\nStanding Figure\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/conrad-marca-relli/235328)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/235330_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n187\\\\\n\\\\\nGino Severini\\\\\n\\\\\nStudio per natura morta con violino\\\\\n\\\\\nEstimate\\\\\n\\\\\n$7,000–10,000](https://www.phillips.com/detail/gino-severini/235330)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225349_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n188\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nDavid Smith\\\\\n\\\\\nVoltri\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000](https://www.phillips.com/detail/david-smith/225349)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226210_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n189\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nEdmund Lewandowski\\\\\n\\\\\nAmish Barns\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,095](https://www.phillips.com/detail/edmund-lewandowski/226210)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225361_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n190\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nJohn Marin\\\\\n\\\\\nA Bit of Stonington\\\\\n\\\\\nEstimate\\\\\n\\\\\n$4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$9,675](https://www.phillips.com/detail/john-marin/225361)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225347_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n191\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nThomas Hart Benton\\\\\n\\\\\nLoading Logs\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/thomas-hart-benton/225347)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226204_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n192\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nGeorge Inness\\\\\n\\\\\nLandscape\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,740](https://www.phillips.com/detail/george-inness/226204)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225526_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n193\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nGeorge Inness\\\\\n\\\\\nPine-Groves of Barberini Villa\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$14,190](https://www.phillips.com/detail/george-inness/225526)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226198_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n194\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nThomas Eakins\\\\\n\\\\\nStudy for Cowboys in the Badlands\\\\\n\\\\\nEstimate\\\\\n\\\\\n$8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/thomas-eakins/226198)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226197_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n195\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nThomas Eakins\\\\\n\\\\\nLandscape\\\\\n\\\\\nEstimate\\\\\n\\\\\n$10,000–15,000](https://www.phillips.com/detail/thomas-eakins/226197)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226211_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n196\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nAlfred Henry Maurer\\\\\n\\\\\nField of Flowers\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$8,385](https://www.phillips.com/detail/alfred-henry-maurer/226211)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225365_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n197\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nAlfred Henry Maurer\\\\\n\\\\\nA Spanish Woman (Dolores)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,740](https://www.phillips.com/detail/alfred-henry-maurer/225365)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226217_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n198\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nTheodore Robinson\\\\\n\\\\\nTorso of a Man\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,095](https://www.phillips.com/detail/theodore-robinson/226217)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225359_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n199\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nRobert Henri\\\\\n\\\\\nStorm Over Green Trees\\\\\n\\\\\nEstimate\\\\\n\\\\\n$3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$12,255](https://www.phillips.com/detail/robert-henri/225359)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225523_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n200\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nThomas Doughty\\\\\n\\\\\nView from the Seat of R. Gilmore, Esq\\\\\n\\\\\nEstimate\\\\\n\\\\\n$2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$33,540](https://www.phillips.com/detail/thomas-doughty/225523)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225368_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n201\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nWilliam Trost Richards\\\\\n\\\\\nCliffs off Rhode Island\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$10,320](https://www.phillips.com/detail/william-trost-richards/225368)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226192_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n202\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nRalph Albert Blakelock\\\\\n\\\\\nUntitled (Landscape, Sunset)\\\\\n\\\\\nEstimate\\\\\n\\\\\n$1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n$45,150](https://www.phillips.com/detail/ralph-albert-blakelock/226192)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225521_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n203\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nHenry Billings\\\\\n\\\\\nTool and Flower\\\\\n\\\\\nEstimate\\\\\n\\\\\n$5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$3,870](https://www.phillips.com/detail/henry-billings/225521)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226187_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n204\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nThomas Anshutz\\\\\n\\\\\n#5\\\\\n\\\\\nEstimate\\\\\n\\\\\n$1,500–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n$2,580](https://www.phillips.com/detail/thomas-anshutz/226187)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/226189_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n205\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nLeland Bell\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n$1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n$1,935](https://www.phillips.com/detail/leland-bell/226189)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/NY011126/225356_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n206\\\\\n\\\\\nAmerican Spirit\\\\\n\\\\\nArnold Friedman\\\\\n\\\\\nThe Quarry\\\\\n\\\\\nEstimate\\\\\n\\\\\n$1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n$7,740](https://www.phillips.com/detail/arnold-friedman/225356)\n\n### About us\n\n- [Our history](https://www.phillips.com/about)\n- [Our team](https://www.phillips.com/team)\n- [Locations](https://www.phillips.com/location)\n- [Press](https://www.phillips.com/press)\n- [Careers](https://www.phillips.com/careers)\n- [Site map](https://www.phillips.com/sitemap)\n\n### Our services\n\n- [How to buy](https://www.phillips.com/buysell/buy)\n- [How to sell](https://www.phillips.com/buysell/sell)\n- [Private services](https://www.phillips.com/buysell/private)\n- [Professional & advisor services](https://www.phillips.com/professional-advisor-services)\n- [Fiduciary services](https://www.phillips.com/fiduciaryservices)\n\n### Policies\n\n- [Privacy policy](https://www.phillips.com/about/privacy)\n- [Cookie policy](https://www.phillips.com/about/cookiepolicy)\n- [Modern slavery policy](https://www.phillips.com/about/modernslaverypolicy)\n\nAbout us\n\nOur services\n\nPolicies\n\n### Never miss a moment\n\nSubscribe to our newsletter\n\n- [insta](https://www.instagram.com/phillipsauction/ \"insta\")\n- [linkedin](https://www.linkedin.com/company/phillips/ \"linkedin\")\n- [wechat](https://weixin.qq.com/r/qDuLk0-EKhJVrQvw9266 \"wechat\")\n- [red](https://www.xiaohongshu.com/user/profile/611e10a8000000000101ddf7 \"red\")\n- [facebook](https://www.facebook.com/phillipsauction/ \"facebook\")\n\n[logoLink](https://www.phillips.com/) © 2026 Phillips Auctioneers, LLC",
18 + "department": {
19 + "filter": "contemporary art",
20 + "category": "contemporary_art"
21 + }
22 + }
23 + },
24 + "expect": {
25 + "minCount": 10,
26 + "kinds": [
27 + "sale",
28 + "auction_lot"
29 + ],
30 + "requiredFields": [
31 + "attributes.brand",
32 + "rawTitle"
33 + ]
34 + },
35 + "note": "Captured live via Firecrawl from phillips.com",
36 + "capturedAt": "2026-09-07T06:28:39.397Z"
37 +}
\ No newline at end of file
added data/fixtures/phillips-art/sale-UK010626.json +37 −0
@@ -0,0 +1,37 @@
1 +{
2 + "raw": {
3 + "url": "https://www.phillips.com/auction/UK010626",
4 + "externalId": "UK010626",
5 + "kind": "sale",
6 + "engine": "firecrawl",
7 + "fetchedAt": "2026-09-07T06:28:38.834Z",
8 + "payload": {
9 + "kind": "auction_results",
10 + "url": "https://www.phillips.com/auction/UK010626",
11 + "saleNumber": "UK010626",
12 + "title": "Modern & Contemporary Art: Online Auction, London",
13 + "location": "LONDON",
14 + "startDate": "2026-06-23T12:00:00+01:00",
15 + "endDate": "2026-07-07T14:00:00+01:00",
16 + "lotCount": 176,
17 + "markdown": "## Search\n\nSearch\n\nAuctions\n\n- [Calendar](https://www.phillips.com/calendar/upcoming)\n\nDepartments\n\n- [Exhibitions](https://www.phillips.com/exhibitions)\n- [Perpetual](https://perpetual.phillips.com/)\n- [Dropshop](https://dropshop.phillips.com/)\n- [Editorial](https://www.phillips.com/editorial)\n\nClose\n\nOnline Auction\n\n# Modern & Contemporary Art: Online Auction, London\n\nLondon\n\nConcludedJul 7 2026\n\nBrowse Upcoming Sales[View Calendar](https://www.phillips.com/calendar)\n\n![Modern & Contemporary Art: Online Auction, London](https://dist.phillips.com/auction-assets/UK010626/UK010626.jpg?fit=cover&optimize=medium&width=1302)\n\nOverviewBrowse lots\n\nFilters\n\nLot Navigation\n\nShow Lot123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176\n\n## 176 Lots\n\nLots close independently at 1-minute intervals.\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235439_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n1\\\\\n\\\\\nDing Shilun\\\\\n\\\\\nD47-Gaze\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,160](https://www.phillips.com/detail/ding-shilun/235439)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233851_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n2\\\\\n\\\\\nWilliam Brickel\\\\\n\\\\\nTwo Figures, Blue Box\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£8,385](https://www.phillips.com/detail/william-brickel/233851)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235866_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n3\\\\\n\\\\\nCaroline Walker\\\\\n\\\\\nCoronation\\\\\n\\\\\nEstimate\\\\\n\\\\\n£10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£14,190](https://www.phillips.com/detail/caroline-walker/235866)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235289_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n4\\\\\n\\\\\nCelia Paul\\\\\n\\\\\nMy Mother and the Window\\\\\n\\\\\nEstimate\\\\\n\\\\\n£15,000–20,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£18,060](https://www.phillips.com/detail/celia-paul/235289)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/232356_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n5\\\\\n\\\\\nRyan Mosley\\\\\n\\\\\nA King's Return\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,870](https://www.phillips.com/detail/ryan-mosley/232356)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233210_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n6\\\\\n\\\\\nGeorg Wilson\\\\\n\\\\\nGoblin Burrowed\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000](https://www.phillips.com/detail/georg-wilson/233210)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234790_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n7\\\\\n\\\\\nAnastasia Bay\\\\\n\\\\\nMoonwalk\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£8,385](https://www.phillips.com/detail/anastasia-bay/234790)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235379_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n8\\\\\n\\\\\nBrice Guilbert\\\\\n\\\\\nFournez\\\\\n\\\\\nEstimate\\\\\n\\\\\n£10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£20,640](https://www.phillips.com/detail/brice-guilbert/235379)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233170_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n9\\\\\n\\\\\nGeorge Condo\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,030](https://www.phillips.com/detail/george-condo/233170)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234685_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n10\\\\\n\\\\\nSterling Ruby\\\\\n\\\\\nAlabaster SR11-55\\\\\n\\\\\nEstimate\\\\\n\\\\\n£15,000–20,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£28,380](https://www.phillips.com/detail/sterling-ruby/234685)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234280_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n11\\\\\n\\\\\nSigalit Landau\\\\\n\\\\\nGrand Madonna and Child\\\\\n\\\\\nEstimate\\\\\n\\\\\n£20,000–30,000](https://www.phillips.com/detail/sigalit-landau/234280)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234690_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n12\\\\\n\\\\\nJames Turrell\\\\\n\\\\\nThe Irish Sky Garden, Overall site plan (night)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000](https://www.phillips.com/detail/james-turrell/234690)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231196_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n13\\\\\n\\\\\nJordan Wolfson\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£15,000–25,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£15,480](https://www.phillips.com/detail/jordan-wolfson/231196)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231053_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n14\\\\\n\\\\\nMark Manders\\\\\n\\\\\nUntitled (Fragment Landscape)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£15,000–20,000](https://www.phillips.com/detail/mark-manders/231053)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231042_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n15\\\\\n\\\\\nZhang Yexing\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£10,000–15,000](https://www.phillips.com/detail/zhang-yexing/231042)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231048_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n16\\\\\n\\\\\nKatja Strunz\\\\\n\\\\\nExtensions III\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,902](https://www.phillips.com/detail/katja-strunz/231048)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233110_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n17\\\\\n\\\\\nMichael Bauer\\\\\n\\\\\nRed Cave and Blonde\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£11,610](https://www.phillips.com/detail/michael-bauer/233110)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234784_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n18\\\\\n\\\\\nEva Beresin\\\\\n\\\\\nCrocodile Tears\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,418](https://www.phillips.com/detail/eva-beresin/234784)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234687_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n19\\\\\n\\\\\nRainer Fetting\\\\\n\\\\\nCNN\\\\\n\\\\\nEstimate\\\\\n\\\\\n£10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£16,770](https://www.phillips.com/detail/rainer-fetting/234687)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/227692_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n20\\\\\n\\\\\nWerner Büttner\\\\\n\\\\\nUntitled \\[Bilanzpromenade\\]\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,740](https://www.phillips.com/detail/werner-b%C3%BCttner/227692)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231622_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n21\\\\\n\\\\\nMatthias Weischer\\\\\n\\\\\nDame\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,805](https://www.phillips.com/detail/matthias-weischer/231622)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231056_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n22\\\\\n\\\\\nJörg Immendorff\\\\\n\\\\\nSpring of Theory (Immendorff's Favorite Poems)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£10,000–15,000](https://www.phillips.com/detail/j%C3%B6rg-immendorff/231056)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231065_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n23\\\\\n\\\\\nTomma Abts\\\\\n\\\\\nUntitled #21\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000](https://www.phillips.com/detail/tomma-abts/231065)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231063_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n24\\\\\n\\\\\nTomma Abts\\\\\n\\\\\nTwo works: (i) Untitled; (ii) eeeee\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000](https://www.phillips.com/detail/tomma-abts/231063)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234935_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n25\\\\\n\\\\\nJean Fautrier\\\\\n\\\\\nComposition\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000](https://www.phillips.com/detail/jean-fautrier/234935)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233019_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n26\\\\\n\\\\\nCarol Bove\\\\\n\\\\\nSmall Celeste\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,740](https://www.phillips.com/detail/carol-bove/233019)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/232132_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n27\\\\\n\\\\\nRebecca Warren\\\\\n\\\\\nCologne\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,740](https://www.phillips.com/detail/rebecca-warren/232132)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233017_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n28\\\\\n\\\\\nDaniel Crews-Chubb\\\\\n\\\\\nZumbi and Belfie (split)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,740](https://www.phillips.com/detail/daniel-crews-chubb/233017)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/236446_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n29\\\\\n\\\\\nRose Wylie\\\\\n\\\\\nTwo works: (i-ii) Untitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,805](https://www.phillips.com/detail/rose-wylie/236446)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/236411_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n30\\\\\n\\\\\nRose Wylie\\\\\n\\\\\nZebra and Horse\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£10,320](https://www.phillips.com/detail/rose-wylie/236411)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/229855_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n31\\\\\n\\\\\nTony Cragg\\\\\n\\\\\nStreet Life\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,095](https://www.phillips.com/detail/tony-cragg/229855)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/236413_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n32\\\\\n\\\\\nDamien Hirst\\\\\n\\\\\nThe Currency Unique Print (H11-38)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,095](https://www.phillips.com/detail/damien-hirst/236413)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235570_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n33\\\\\n\\\\\nDamien Hirst & Michael Joo\\\\\n\\\\\nSkull drawing 2 (untitled)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,675](https://www.phillips.com/detail/damien-hirst-&-michael-joo/235570)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235511_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n34\\\\\n\\\\\nDamien Hirst\\\\\n\\\\\nTwo works: (i) Sketch for pendant; (ii) Diamond pendant necklace\\\\\n\\\\\nEstimate\\\\\n\\\\\n£10,000–15,000](https://www.phillips.com/detail/damien-hirst/235511)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/225599_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n35\\\\\n\\\\\nTed Pim\\\\\n\\\\\nSixth Digit\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,128](https://www.phillips.com/detail/ted-pim/225599)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235701_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n36\\\\\n\\\\\nNeil Stokoe\\\\\n\\\\\nLying Figure\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000](https://www.phillips.com/detail/neil-stokoe/235701)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234689_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n37\\\\\n\\\\\nJosé Maria Sicilia\\\\\n\\\\\nEn Flor\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£14,190](https://www.phillips.com/detail/jos%C3%A9-maria-sicilia/234689)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235967_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n38\\\\\n\\\\\nCindy Phenix\\\\\n\\\\\nOwn Destruction\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000](https://www.phillips.com/detail/cindy-phenix/235967)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234880_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n39\\\\\n\\\\\nJoy Labinjo\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000](https://www.phillips.com/detail/joy-labinjo/234880)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231621_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n40\\\\\n\\\\\nNick Goss\\\\\n\\\\\nCommute study\\\\\n\\\\\nEstimate\\\\\n\\\\\n£800–1,200\\\\\n\\\\\nSold For\\\\\n\\\\\n£516](https://www.phillips.com/detail/nick-goss/231621)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233111_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n41\\\\\n\\\\\nRyan Mosley\\\\\n\\\\\nA Turncoat's Lot\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,805](https://www.phillips.com/detail/ryan-mosley/233111)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234817_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n42\\\\\n\\\\\nDidier William\\\\\n\\\\\nMonkonpe\\\\\n\\\\\nEstimate\\\\\n\\\\\n£12,000–18,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,030](https://www.phillips.com/detail/didier-william/234817)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/220807_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n43\\\\\n\\\\\nFarah Atassi\\\\\n\\\\\nSeated Woman\\\\\n\\\\\nEstimate\\\\\n\\\\\n£12,000–18,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£14,190](https://www.phillips.com/detail/farah-atassi/220807)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/227693_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n44\\\\\n\\\\\nKoen van den Broek\\\\\n\\\\\nCohesion\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£6,450](https://www.phillips.com/detail/koen-van-den-broek/227693)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234390_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n45\\\\\n\\\\\nJulian Opie\\\\\n\\\\\nGreat Eastern St. 1.\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000](https://www.phillips.com/detail/julian-opie/234390)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234819_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n46\\\\\n\\\\\nAna Benaroya\\\\\n\\\\\nSoftly to Me\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£8,385](https://www.phillips.com/detail/ana-benaroya/234819)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234822_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n47\\\\\n\\\\\nAustin Lee\\\\\n\\\\\nWith Birds\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,354](https://www.phillips.com/detail/austin-lee/234822)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234821_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n48\\\\\n\\\\\nSam Jablon\\\\\n\\\\\nGlamorous Voids\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,902](https://www.phillips.com/detail/sam-jablon/234821)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234814_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n49\\\\\n\\\\\nJordy Kerwick\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,740](https://www.phillips.com/detail/jordy-kerwick/234814)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234785_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n50\\\\\n\\\\\nSzabolcs Bozó\\\\\n\\\\\nI Got A Name\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,030](https://www.phillips.com/detail/szabolcs-boz%C3%B3/234785)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/230318_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n51\\\\\n\\\\\nMadeleine Bialke\\\\\n\\\\\nTitans\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,096](https://www.phillips.com/detail/madeleine-bialke/230318)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/236087_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n52\\\\\n\\\\\nLaurens Legiers\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£2,064](https://www.phillips.com/detail/laurens-legiers/236087)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233197_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n53\\\\\n\\\\\nAlicia Adamerovich\\\\\n\\\\\nAbsolute Position\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,870](https://www.phillips.com/detail/alicia-adamerovich/233197)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233198_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n54\\\\\n\\\\\nAngela Heisch\\\\\n\\\\\nThrowing It Away Warm\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000](https://www.phillips.com/detail/angela-heisch/233198)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235512_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n55\\\\\n\\\\\nPhilip Jackson\\\\\n\\\\\nMistress of the Ca' d'Oro\\\\\n\\\\\nEstimate\\\\\n\\\\\n£10,000–15,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£10,320](https://www.phillips.com/detail/philip-jackson/235512)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/220324_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n56\\\\\n\\\\\nBernard Meadows\\\\\n\\\\\nSpring 'Seasons' Cock\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£11,610](https://www.phillips.com/detail/bernard-meadows/220324)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233112_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n57\\\\\n\\\\\nJonathan Meese\\\\\n\\\\\nZeus\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,675](https://www.phillips.com/detail/jonathan-meese/233112)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231052_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n58\\\\\n\\\\\nEva Rothschild\\\\\n\\\\\nNew Past\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000](https://www.phillips.com/detail/eva-rothschild/231052)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/232799_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n59\\\\\n\\\\\nAi Weiwei\\\\\n\\\\\nOn Attersee\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000](https://www.phillips.com/detail/ai-weiwei/232799)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/229277_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n60\\\\\n\\\\\nRichard Pettibone\\\\\n\\\\\nPablo Picasso - Etching from the \"347 Series\" - #312\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000](https://www.phillips.com/detail/richard-pettibone/229277)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234165_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n61\\\\\n\\\\\nRaymond Pettibon\\\\\n\\\\\nUntitled (SOMEBODY? ANYBODY?!)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000](https://www.phillips.com/detail/raymond-pettibon/234165)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231050_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n62\\\\\n\\\\\nJosh Smith\\\\\n\\\\\nUntitled No. 2\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000](https://www.phillips.com/detail/josh-smith/231050)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/229043_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n63\\\\\n\\\\\nDavid Salle\\\\\n\\\\\nLife 81\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,612](https://www.phillips.com/detail/david-salle/229043)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231933_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n64\\\\\n\\\\\nBrice Guilbert\\\\\n\\\\\nFournez\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,515](https://www.phillips.com/detail/brice-guilbert/231933)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235577_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n65\\\\\n\\\\\nPaola Pivi\\\\\n\\\\\nDo You Know Why Italy Is Shaped Like a Boot? Because So Much Shit Couldn't Fit in a Shoe\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,160](https://www.phillips.com/detail/paola-pivi/235577)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231707_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n66\\\\\n\\\\\nDonald Sultan\\\\\n\\\\\nBlack Eggs April 20 1988\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000](https://www.phillips.com/detail/donald-sultan/231707)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233692_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n67\\\\\n\\\\\nRobert Longo\\\\\n\\\\\nStudy of Uzi\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,740](https://www.phillips.com/detail/robert-longo/233692)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235387_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n68\\\\\n\\\\\nJR\\\\\n\\\\\n28 Millimeters, Portrait of a Generation Ladj ly\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£25,800](https://www.phillips.com/detail/jr/235387)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234332_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n69\\\\\n\\\\\nAndy Warhol\\\\\n\\\\\nMale Strippers\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,128](https://www.phillips.com/detail/andy-warhol/234332)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231440_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n70\\\\\n\\\\\nChris Smith\\\\\n\\\\\nAli and The Beatles\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£12,900](https://www.phillips.com/detail/chris-smith/231440)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235198_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n71\\\\\n\\\\\nCerith Wyn Evans\\\\\n\\\\\nUntitled (\"Portrait of Greatness\" after Y. Karsh)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,030](https://www.phillips.com/detail/cerith-wyn-evans/235198)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234440_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n72\\\\\n\\\\\nRichard Mosse\\\\\n\\\\\nCome Out (1966) II\\\\\n\\\\\nEstimate\\\\\n\\\\\n£12,000–18,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£19,350](https://www.phillips.com/detail/richard-mosse/234440)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231768_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n73\\\\\n\\\\\nNick Brandt\\\\\n\\\\\nPortrait of Elephant in Dust, Amboseli\\\\\n\\\\\nEstimate\\\\\n\\\\\n£15,000–25,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£18,060](https://www.phillips.com/detail/nick-brandt/231768)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/230695_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n74\\\\\n\\\\\nPrince Gyasi\\\\\n\\\\\nProtection II\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000](https://www.phillips.com/detail/prince-gyasi/230695)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231043_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n75\\\\\n\\\\\nErwin Wurm\\\\\n\\\\\nMontaigne & Descartes\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£6,450](https://www.phillips.com/detail/erwin-wurm/231043)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231057_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n76\\\\\n\\\\\nCandida Höfer\\\\\n\\\\\nF. Hoffmann-La Roche AG Basel II\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–9,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£6,450](https://www.phillips.com/detail/candida-h%C3%B6fer/231057)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231058_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n77\\\\\n\\\\\nNan Goldin\\\\\n\\\\\nPeter Hujar and Ethyl Eichelberger at Area. NYC. 1985\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£18,060](https://www.phillips.com/detail/nan-goldin/231058)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231060_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n78\\\\\n\\\\\nNan Goldin\\\\\n\\\\\nBrian in hotel room with three beds, Merida, Mexico. 1982\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£12,255](https://www.phillips.com/detail/nan-goldin/231060)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231062_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n79\\\\\n\\\\\nNan Goldin\\\\\n\\\\\nWriting on my wall, Bowery. NYC. 1988\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,030](https://www.phillips.com/detail/nan-goldin/231062)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/228835_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n80\\\\\n\\\\\nDarren Almond\\\\\n\\\\\nDawn and Dusk\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000](https://www.phillips.com/detail/darren-almond/228835)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231943_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n81\\\\\n\\\\\nFrank Thiel\\\\\n\\\\\nStadt 10/05 (Berlin)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,500–3,500](https://www.phillips.com/detail/frank-thiel/231943)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234568_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n82\\\\\n\\\\\nFrank Thiel\\\\\n\\\\\nStadt 10/01 (Berlin)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,902](https://www.phillips.com/detail/frank-thiel/234568)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231942_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n83\\\\\n\\\\\nFrank Thiel\\\\\n\\\\\nStadt 10/06/A (Berlin)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,500–3,500](https://www.phillips.com/detail/frank-thiel/231942)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231938_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n84\\\\\n\\\\\nDavid Goldblatt\\\\\n\\\\\nIncomplete houses, part of a stalled municipal development of 1,000 houses, Lady Grey, Eastern Cape\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,095](https://www.phillips.com/detail/david-goldblatt/231938)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231934_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n85\\\\\n\\\\\nLaurie Simmons\\\\\n\\\\\nBlack Bathroom (April 16, 1997)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,870](https://www.phillips.com/detail/laurie-simmons/231934)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234570_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n86\\\\\n\\\\\nSantiago Sierra\\\\\n\\\\\nHouse in the Mud\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£2,580](https://www.phillips.com/detail/santiago-sierra/234570)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234569_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n87\\\\\n\\\\\nOrlan\\\\\n\\\\\nThree works: (i) African Self-Hybridization Series, Mangbetu Woman Profile and Profile of Euro-Stéphanoise Woman; (ii) African Self-Hybridization Series, Three-Headed Ogoni Mask, Nigeria, with Mutant Face of Franco-European Woman; (iii) African Self-Hybridization Series, Fang initiation Group Mask, Gabon, with Face of Euro-Stéphanoise Woman\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000](https://www.phillips.com/detail/orlan/234569)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/230222_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n88\\\\\n\\\\\nMark Wallinger\\\\\n\\\\\nSleeper\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,515](https://www.phillips.com/detail/mark-wallinger/230222)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234877_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n89\\\\\n\\\\\nHiro Ando\\\\\n\\\\\nSamuraiCat DiamondsStrass Black\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000](https://www.phillips.com/detail/hiro-ando/234877)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235233_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n90\\\\\n\\\\\nDaniel Arsham\\\\\n\\\\\nDarth Vader: Blue Calcite Crystallized Bust\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£19,350](https://www.phillips.com/detail/daniel-arsham/235233)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233375_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n91\\\\\n\\\\\nPeter Collingwood\\\\\n\\\\\nMacrogauze M.49 NO.9\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,095](https://www.phillips.com/detail/peter-collingwood/233375)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234281_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n92\\\\\n\\\\\nDiogo Pimentão\\\\\n\\\\\nStand Turn (monochrome)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000](https://www.phillips.com/detail/diogo-piment%C3%A3o/234281)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/230098_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n93\\\\\n\\\\\nBryan Hunt\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000](https://www.phillips.com/detail/bryan-hunt/230098)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234174_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n94\\\\\n\\\\\nLiam Gillick\\\\\n\\\\\nElevation Screen\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,612](https://www.phillips.com/detail/liam-gillick/234174)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231197_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n95\\\\\n\\\\\nValerie Snobeck\\\\\n\\\\\nTowards Reverse Movements\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,548](https://www.phillips.com/detail/valerie-snobeck/231197)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233208_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n96\\\\\n\\\\\nWalead Beshty\\\\\n\\\\\nFour Magnet, Three Color Curl (CMY: Irvine, California, January 3, 2010, Fujicolor Crystal Archive Super Type C, Em. No. 165-021, 01610)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£11,610](https://www.phillips.com/detail/walead-beshty/233208)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231941_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n97\\\\\n\\\\\nJosh Smith\\\\\n\\\\\nUntitled (JS0626)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,677](https://www.phillips.com/detail/josh-smith/231941)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234791_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n98\\\\\n\\\\\nAllison Zuckerman\\\\\n\\\\\nPassenger\\\\\n\\\\\nEstimate\\\\\n\\\\\n£5,000–7,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,160](https://www.phillips.com/detail/allison-zuckerman/234791)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231495_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n99\\\\\n\\\\\nCeleste Rapone\\\\\n\\\\\nSave Me\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£387](https://www.phillips.com/detail/celeste-rapone/231495)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235564_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n100\\\\\n\\\\\nJordi Ribes\\\\\n\\\\\nPortrait with Green Hat\\\\\n\\\\\nEstimate\\\\\n\\\\\n£12,000–18,000](https://www.phillips.com/detail/jordi-ribes/235564)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235230_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n101\\\\\n\\\\\nTania Marmolejo\\\\\n\\\\\nWrong Yet So Right\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,030](https://www.phillips.com/detail/tania-marmolejo/235230)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235237_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n102\\\\\n\\\\\nAnastasia Bay\\\\\n\\\\\nFille au Miroir\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,740](https://www.phillips.com/detail/anastasia-bay/235237)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234803_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n103\\\\\n\\\\\nBenjamin Spiers\\\\\n\\\\\nQuarry\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,677](https://www.phillips.com/detail/benjamin-spiers/234803)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233209_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n104\\\\\n\\\\\nJonathan Wateridge\\\\\n\\\\\nTwo Figures\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,612](https://www.phillips.com/detail/jonathan-wateridge/233209)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234807_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n105\\\\\n\\\\\nAnthony Cudahy\\\\\n\\\\\nTouch and demon\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,290](https://www.phillips.com/detail/anthony-cudahy/234807)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234810_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n106\\\\\n\\\\\nLise Stoufflet\\\\\n\\\\\nOmbres III\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£452](https://www.phillips.com/detail/lise-stoufflet/234810)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234829_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n107\\\\\n\\\\\nSimphiwe Ndzube\\\\\n\\\\\nThrough the Valley of Nameless Evil\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,354](https://www.phillips.com/detail/simphiwe-ndzube/234829)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233211_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n108\\\\\n\\\\\nJon Key\\\\\n\\\\\nChosen Family No. 21\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,290](https://www.phillips.com/detail/jon-key/233211)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/232275_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n109\\\\\n\\\\\nTyler Ballon\\\\\n\\\\\nStrengthen the Brethren\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000](https://www.phillips.com/detail/tyler-ballon/232275)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/236088_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n110\\\\\n\\\\\nAdjei Tawiah\\\\\n\\\\\nWhite Window\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,870](https://www.phillips.com/detail/adjei-tawiah/236088)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234805_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n111\\\\\n\\\\\nSzabolcs Bozó\\\\\n\\\\\nYellow\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,500–3,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£2,838](https://www.phillips.com/detail/szabolcs-boz%C3%B3/234805)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234800_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n112\\\\\n\\\\\nJordy Kerwick\\\\\n\\\\\nPaper 6\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£581](https://www.phillips.com/detail/jordy-kerwick/234800)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233212_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n113\\\\\n\\\\\nTravis Fish\\\\\n\\\\\nGucci\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£387](https://www.phillips.com/detail/travis-fish/233212)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234792_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n114\\\\\n\\\\\nJonathan Chapline\\\\\n\\\\\nThree figures\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,160](https://www.phillips.com/detail/jonathan-chapline/234792)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234793_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n115\\\\\n\\\\\nAlex Foxton\\\\\n\\\\\nEnemy (Indigo)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000](https://www.phillips.com/detail/alex-foxton/234793)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235382_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n116\\\\\n\\\\\nKon Trubkovich\\\\\n\\\\\nShadow Sonata\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000](https://www.phillips.com/detail/kon-trubkovich/235382)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234811_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n117\\\\\n\\\\\nYokoteen\\\\\n\\\\\nDrop\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£710](https://www.phillips.com/detail/yokoteen/234811)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234788_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n118\\\\\n\\\\\nTony Toscani\\\\\n\\\\\nMorning Light\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,515](https://www.phillips.com/detail/tony-toscani/234788)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235240_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n119\\\\\n\\\\\nLaure Mary-Couégnias\\\\\n\\\\\nNobody's Hope\\\\\n\\\\\nEstimate\\\\\n\\\\\n£800–1,200\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,806](https://www.phillips.com/detail/laure-mary-cou%C3%A9gnias/235240)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234798_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n120\\\\\n\\\\\nAryo Toh Djojo\\\\\n\\\\\nFashion Over Function\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£710](https://www.phillips.com/detail/aryo-toh-djojo/234798)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234801_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n121\\\\\n\\\\\nNKSIN\\\\\n\\\\\nNo.3: Revival III\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£2,064](https://www.phillips.com/detail/nksin/234801)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234802_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n122\\\\\n\\\\\nStefan Rinck\\\\\n\\\\\nSpace Hippie Death\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,030](https://www.phillips.com/detail/stefan-rinck/234802)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234809_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n123\\\\\n\\\\\nRobert Nava\\\\\n\\\\\nCrystal Ball Face Punch\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,805](https://www.phillips.com/detail/robert-nava/234809)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234804_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n124\\\\\n\\\\\nJordy Kerwick\\\\\n\\\\\nPaper 10\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£967](https://www.phillips.com/detail/jordy-kerwick/234804)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234796_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n125\\\\\n\\\\\nTomoo Gokita\\\\\n\\\\\nRegina #7\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,160](https://www.phillips.com/detail/tomoo-gokita/234796)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234799_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n126\\\\\n\\\\\nMolly Greene\\\\\n\\\\\nSlackening\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£2,451](https://www.phillips.com/detail/molly-greene/234799)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235231_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n127\\\\\n\\\\\nAndrea Marie Breiling\\\\\n\\\\\nGraphium\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000](https://www.phillips.com/detail/andrea-marie-breiling/235231)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231045_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n128\\\\\n\\\\\nSue Williams\\\\\n\\\\\nSparse\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000](https://www.phillips.com/detail/sue-williams/231045)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235748_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n129\\\\\n\\\\\nDaniel Gibson\\\\\n\\\\\nNature Always Wins\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£12,900](https://www.phillips.com/detail/daniel-gibson/235748)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235235_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n130\\\\\n\\\\\nCindy Phenix\\\\\n\\\\\nPluralist Tolerance of Delicate Topography of Sounds, Resonances, Echoes and Voices\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£12,900](https://www.phillips.com/detail/cindy-phenix/235235)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235708_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n131\\\\\n\\\\\nCope 2 (Fernando Carlo)\\\\\n\\\\\nSavage Art\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£323](https://www.phillips.com/detail/cope-2-(fernando-carlo)/235708)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235749_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n132\\\\\n\\\\\nD\\*face\\\\\n\\\\\nSuperman\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£14,190](https://www.phillips.com/detail/d*face/235749)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/225714_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n133\\\\\n\\\\\nCope 2 (Fernando Carlo)\\\\\n\\\\\nBubble\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£387](https://www.phillips.com/detail/cope-2-(fernando-carlo)/225714)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235709_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n134\\\\\n\\\\\nJason Revok\\\\\n\\\\\nTriumph and Tragedy\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£2,193](https://www.phillips.com/detail/jason-revok/235709)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235238_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n135\\\\\n\\\\\nGerasimos Floratos\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000](https://www.phillips.com/detail/gerasimos-floratos/235238)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/230672_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n136\\\\\n\\\\\nThierry Noir\\\\\n\\\\\nMy brand-new shoes give me a nice and cool look\\\\\n\\\\\nEstimate\\\\\n\\\\\n£8,000–12,000](https://www.phillips.com/detail/thierry-noir/230672)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/232937_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n137\\\\\n\\\\\nStik\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£9,030](https://www.phillips.com/detail/stik/232937)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235239_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n138\\\\\n\\\\\nPaul Bonnet\\\\\n\\\\\nFortunate Hours\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£710](https://www.phillips.com/detail/paul-bonnet/235239)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234808_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n139\\\\\n\\\\\nRhiannon Inman-Simpson\\\\\n\\\\\nAn eruption beneath heavy lids\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£581](https://www.phillips.com/detail/rhiannon-inman-simpson/234808)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234166_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n140\\\\\n\\\\\nOscar Murillo\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£967](https://www.phillips.com/detail/oscar-murillo/234166)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234167_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n141\\\\\n\\\\\nOscar Murillo\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,677](https://www.phillips.com/detail/oscar-murillo/234167)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234786_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n142\\\\\n\\\\\nAaron Garber-Maikovska\\\\\n\\\\\nLittle Pearl\\\\\n\\\\\nEstimate\\\\\n\\\\\n£7,000–10,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£38,700](https://www.phillips.com/detail/aaron-garber-maikovska/234786)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233970_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n143\\\\\n\\\\\nRoya Akhavan\\\\\n\\\\\nThe Marvellous Plunge\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£645](https://www.phillips.com/detail/roya-akhavan/233970)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/225676_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n144\\\\\n\\\\\nZander Blom\\\\\n\\\\\nUntitled \\[1.492\\]\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£710](https://www.phillips.com/detail/zander-blom/225676)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/230225_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n145\\\\\n\\\\\nTony DeLap\\\\\n\\\\\nMysterioso II\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,870](https://www.phillips.com/detail/tony-delap/230225)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233849_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n146\\\\\n\\\\\nGrenville Davey\\\\\n\\\\\nFat Edge\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£5,805](https://www.phillips.com/detail/grenville-davey/233849)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233950_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n147\\\\\n\\\\\nJohn Armleder\\\\\n\\\\\nBlack Fire\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£4,515](https://www.phillips.com/detail/john-armleder/233950)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231748_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n148\\\\\n\\\\\nWilla Wasserman\\\\\n\\\\\nConvex still life (flat sea holly and rose)\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£452](https://www.phillips.com/detail/willa-wasserman/231748)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/227547_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n149\\\\\n\\\\\nMiroslaw Balka\\\\\n\\\\\nThe garotte\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000](https://www.phillips.com/detail/miroslaw-balka/227547)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/230437_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n150\\\\\n\\\\\nMilo Matthieu\\\\\n\\\\\nThe Fruit Salesman\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£581](https://www.phillips.com/detail/milo-matthieu/230437)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233960_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n151\\\\\n\\\\\nRomuald Hazoumè\\\\\n\\\\\nTwo works: (i) Pisso-Pisso; (ii) Untitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£8,385](https://www.phillips.com/detail/romuald-hazoum%C3%A8/233960)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233972_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n152\\\\\n\\\\\nAxel Salto\\\\\n\\\\\n'Fruit Form' vase, model no. 20818\\\\\n\\\\\nEstimate\\\\\n\\\\\n£4,000–6,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,740](https://www.phillips.com/detail/axel-salto/233972)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233974_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n153\\\\\n\\\\\nZecchin Martinuzzi\\\\\n\\\\\nVase\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,419](https://www.phillips.com/detail/zecchin-martinuzzi/233974)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233963_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n154\\\\\n\\\\\nHella Jongerius\\\\\n\\\\\nTwo works: (i-ii) Groove Bottle\\\\\n\\\\\nEstimate\\\\\n\\\\\n£700–1,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,290](https://www.phillips.com/detail/hella-jongerius/233963)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/227552_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n155\\\\\n\\\\\nDonald Judd\\\\\n\\\\\nShelf Plywood Stool no. 95-3\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£7,095](https://www.phillips.com/detail/donald-judd/227552)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233969_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n156\\\\\n\\\\\nGio Ponti\\\\\n\\\\\nSwivel chair, designed for the Montecatini S.A. offices, Milan\\\\\n\\\\\nEstimate\\\\\n\\\\\n£500–700\\\\\n\\\\\nSold For\\\\\n\\\\\n£258](https://www.phillips.com/detail/gio-ponti/233969)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233954_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n157\\\\\n\\\\\nMarcel Breuer\\\\\n\\\\\nChaise Longue\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£903](https://www.phillips.com/detail/marcel-breuer/233954)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233968_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n158\\\\\n\\\\\nGio Ponti\\\\\n\\\\\nChair, designed for the Montecatini S.A. offices, Milan\\\\\n\\\\\nEstimate\\\\\n\\\\\n£500–700\\\\\n\\\\\nSold For\\\\\n\\\\\n£516](https://www.phillips.com/detail/gio-ponti/233968)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233965_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n159\\\\\n\\\\\nNate Lowman\\\\\n\\\\\nA Girl Can Dream\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£2,838](https://www.phillips.com/detail/nate-lowman/233965)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233975_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n160\\\\\n\\\\\nNed Vena\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£387](https://www.phillips.com/detail/ned-vena/233975)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233976_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n161\\\\\n\\\\\nMichael Williams\\\\\n\\\\\nErika's Squirrel Cage\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,290](https://www.phillips.com/detail/michael-williams/233976)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/233966_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n162\\\\\n\\\\\nLászló Mulasics\\\\\n\\\\\nKepzeletbeli Ejszaka\\\\\n\\\\\nEstimate\\\\\n\\\\\n£3,000–5,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£3,870](https://www.phillips.com/detail/l%C3%A1szl%C3%B3-mulasics/233966)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234262_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n163\\\\\n\\\\\nKika Karadi\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£129](https://www.phillips.com/detail/kika-karadi/234262)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235080_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n164\\\\\n\\\\\nMr Doodle\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£10,320](https://www.phillips.com/detail/mr-doodle/235080)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235571_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n165\\\\\n\\\\\nDavid Shrigley\\\\\n\\\\\nTwo works: (i-ii) Untitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,935](https://www.phillips.com/detail/david-shrigley/235571)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235573_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n166\\\\\n\\\\\nDavid Shrigley\\\\\n\\\\\nTwo works: (i-ii) Untitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,200–1,800\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,419](https://www.phillips.com/detail/david-shrigley/235573)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235572_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n167\\\\\n\\\\\nDavid Shrigley\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£2,451](https://www.phillips.com/detail/david-shrigley/235572)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235757_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n168\\\\\n\\\\\nAlex Hubbard\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–2,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,935](https://www.phillips.com/detail/alex-hubbard/235757)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/235378_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n169\\\\\n\\\\\nMartin Denker\\\\\n\\\\\nHollywood Pest Control Royal Plus\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£129](https://www.phillips.com/detail/martin-denker/235378)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/231747_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n170\\\\\n\\\\\nStephanie Temma Hier\\\\\n\\\\\nScratch Your Name In The Sand\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,032](https://www.phillips.com/detail/stephanie-temma-hier/231747)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/228525_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n171\\\\\n\\\\\nGenesis Belanger\\\\\n\\\\\nPast your prime\\\\\n\\\\\nEstimate\\\\\n\\\\\n£500–700\\\\\n\\\\\nSold For\\\\\n\\\\\n£516](https://www.phillips.com/detail/genesis-belanger/228525)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234164_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n172\\\\\n\\\\\nStefano Arienti\\\\\n\\\\\nUntitled\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£1,290](https://www.phillips.com/detail/stefano-arienti/234164)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234261_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n173\\\\\n\\\\\nParker Ito\\\\\n\\\\\nThe Most Infamous Girl in the History of the Internet\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,500–2,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£774](https://www.phillips.com/detail/parker-ito/234261)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234260_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n174\\\\\n\\\\\nBorden Capalino\\\\\n\\\\\nAncient Rome\\\\\n\\\\\nEstimate\\\\\n\\\\\n£2,000–3,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£194](https://www.phillips.com/detail/borden-capalino/234260)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/234797_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\nNo Reserve\\\\\n175\\\\\n\\\\\nNamio Harukawa\\\\\n\\\\\n#298\\\\\n\\\\\nEstimate\\\\\n\\\\\n£1,000–1,500\\\\\n\\\\\nSold For\\\\\n\\\\\n£8,385](https://www.phillips.com/detail/namio-harukawa/234797)\n\n[![Brought to you by Phillips](https://dist.phillips.com/auction-assets/UK010626/220827_001.jpg?fit=cover&offset-x=50&offset-y=100&width=928)\\\\\n\\\\\n176\\\\\n\\\\\nGisela McDaniel\\\\\n\\\\\nPaloa'an Míhinilat\\\\\n\\\\\nEstimate\\\\\n\\\\\n£6,000–8,000\\\\\n\\\\\nSold For\\\\\n\\\\\n£6,450](https://www.phillips.com/detail/gisela-mcdaniel/220827)\n\n### About us\n\n- [Our history](https://www.phillips.com/about)\n- [Our team](https://www.phillips.com/team)\n- [Locations](https://www.phillips.com/location)\n- [Press](https://www.phillips.com/press)\n- [Careers](https://www.phillips.com/careers)\n- [Site map](https://www.phillips.com/sitemap)\n\n### Our services\n\n- [How to buy](https://www.phillips.com/buysell/buy)\n- [How to sell](https://www.phillips.com/buysell/sell)\n- [Private services](https://www.phillips.com/buysell/private)\n- [Professional & advisor services](https://www.phillips.com/professional-advisor-services)\n- [Fiduciary services](https://www.phillips.com/fiduciaryservices)\n\n### Policies\n\n- [Privacy policy](https://www.phillips.com/about/privacy)\n- [Cookie policy](https://www.phillips.com/about/cookiepolicy)\n- [Modern slavery policy](https://www.phillips.com/about/modernslaverypolicy)\n\nAbout us\n\nOur services\n\nPolicies\n\n### Never miss a moment\n\nSubscribe to our newsletter\n\n- [insta](https://www.instagram.com/phillipsauction/ \"insta\")\n- [linkedin](https://www.linkedin.com/company/phillips/ \"linkedin\")\n- [wechat](https://weixin.qq.com/r/qDuLk0-EKhJVrQvw9266 \"wechat\")\n- [red](https://www.xiaohongshu.com/user/profile/611e10a8000000000101ddf7 \"red\")\n- [facebook](https://www.facebook.com/phillipsauction/ \"facebook\")\n\n[logoLink](https://www.phillips.com/) © 2026 Phillips Auctioneers, LLC",
18 + "department": {
19 + "filter": "contemporary art",
20 + "category": "contemporary_art"
21 + }
22 + }
23 + },
24 + "expect": {
25 + "minCount": 10,
26 + "kinds": [
27 + "sale",
28 + "auction_lot"
29 + ],
30 + "requiredFields": [
31 + "attributes.brand",
32 + "rawTitle"
33 + ]
34 + },
35 + "note": "Captured live via Firecrawl from phillips.com",
36 + "capturedAt": "2026-09-07T06:28:38.845Z"
37 +}
\ No newline at end of file
added data/fixtures/saatchi-art/paintings-page-1.json +801 −0
@@ -0,0 +1,801 @@
1 +{
2 + "raw": {
3 + "url": "https://www.saatchiart.com/paintings",
4 + "externalId": "browse:/paintings:1",
5 + "kind": "listing",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:24:02.963Z",
8 + "payload": {
9 + "kind": "browse_page",
10 + "url": "https://www.saatchiart.com/paintings",
11 + "seed": {
12 + "path": "/paintings",
13 + "category": "contemporary_art"
14 + },
15 + "page": 1,
16 + "totalResults": 746701,
17 + "works": [
18 + {
19 + "artworkId": "10544327",
20 + "url": "https://www.saatchiart.com/art/Painting-Octhopuses/626451/10544327/view",
21 + "title": "Octhopuses",
22 + "artistFirstName": "josep",
23 + "artistLastName": "moncada",
24 + "artistId": 626451,
25 + "category": "Painting",
26 + "mediums": [
27 + "oil"
28 + ],
29 + "materials": [
30 + "canvas"
31 + ],
32 + "styles": [
33 + "contemporary",
34 + "figurative",
35 + "other",
36 + "realism"
37 + ],
38 + "subject": "nature",
39 + "widthCm": 279.4,
40 + "heightCm": 279.4,
41 + "depthCm": 19,
42 + "listPriceCents": 2198000,
43 + "status": "avail",
44 + "sku": "P1-U626451-A10544327-T1",
45 + "image": "https://images.saatchiart.com/saatchi/626451/art/10544327/9606819-KVVUSTPX-7.jpg",
46 + "countryName": "spain",
47 + "uploadedAt": 1685441847
48 + },
49 + {
50 + "artworkId": "9382443",
51 + "url": "https://www.saatchiart.com/art/Painting-Birches-4/958076/9382443/view",
52 + "title": "Birches 4",
53 + "artistFirstName": "david",
54 + "artistLastName": "bowker",
55 + "artistId": 958076,
56 + "category": "Painting",
57 + "mediums": [
58 + "oil"
59 + ],
60 + "materials": [
61 + "canvas"
62 + ],
63 + "styles": [
64 + "abstract"
65 + ],
66 + "subject": "landscape",
67 + "widthCm": 121.9,
68 + "heightCm": 61,
69 + "depthCm": 3.8,
70 + "listPriceCents": 128500,
71 + "status": "avail",
72 + "sku": "P1-U958076-A9382443-T1",
73 + "image": "https://images.saatchiart.com/saatchi/958076/art/9382443/8445551-ISPEBVAO-7.jpg",
74 + "countryName": "united states",
75 + "uploadedAt": 1654199373
76 + },
77 + {
78 + "artworkId": "10069427",
79 + "url": "https://www.saatchiart.com/art/Painting-Try-not-to-think-so-much/1520623/10069427/view",
80 + "title": "Try not to think so much",
81 + "artistFirstName": "gazvani",
82 + "artistLastName": "art",
83 + "artistId": 1520623,
84 + "category": "Painting",
85 + "mediums": [
86 + "acrylic"
87 + ],
88 + "materials": [
89 + "canvas"
90 + ],
91 + "styles": [
92 + "abstract",
93 + "abstract expressionism",
94 + "contemporary",
95 + "other"
96 + ],
97 + "subject": "abstract",
98 + "widthCm": 160,
99 + "heightCm": 125,
100 + "depthCm": 4,
101 + "listPriceCents": 644000,
102 + "status": "avail",
103 + "sku": "P1-U1520623-A10069427-T1",
104 + "image": "https://images.saatchiart.com/saatchi/1520623/art/10069427/9132343-MMHTCNIQ-7.jpg",
105 + "countryName": "denmark",
106 + "uploadedAt": 1674323847
107 + },
108 + {
109 + "artworkId": "13191783",
110 + "url": "https://www.saatchiart.com/art/Painting-Landscape-Summer-Painting-miniature/1350175/13191783/view",
111 + "title": "Landscape Summer Painting miniature",
112 + "artistFirstName": "david",
113 + "artistLastName": "kabulashvili",
114 + "artistId": 1350175,
115 + "category": "Painting",
116 + "mediums": [
117 + "oil"
118 + ],
119 + "materials": [
120 + "hardboard"
121 + ],
122 + "styles": [
123 + "abstract",
124 + "classicism",
125 + "contemporary",
126 + "impressionism",
127 + "realism"
128 + ],
129 + "subject": "landscape",
130 + "widthCm": 15.2,
131 + "heightCm": 10.2,
132 + "depthCm": 0.5,
133 + "listPriceCents": 31200,
134 + "status": "avail",
135 + "sku": "P1-U1350175-A13191783-T1",
136 + "image": "https://images.saatchiart.com/saatchi/1350175/art/13191783/12253919-OVXDEVWK-7.jpg",
137 + "countryName": "georgia",
138 + "uploadedAt": 1758737118
139 + },
140 + {
141 + "artworkId": "13238533",
142 + "url": "https://www.saatchiart.com/art/Painting-Wandering-Echoes-I/327735/13238533/view",
143 + "title": "Wandering Echoes I",
144 + "artistFirstName": "fintan",
145 + "artistLastName": "whelan",
146 + "artistId": 327735,
147 + "category": "Painting",
148 + "mediums": [
149 + "oil"
150 + ],
151 + "materials": [
152 + "canvas"
153 + ],
154 + "styles": [
155 + "abstract",
156 + "abstract expressionism",
157 + "contemporary",
158 + "conceptual",
159 + "minimalism"
160 + ],
161 + "subject": "abstract",
162 + "widthCm": 300,
163 + "heightCm": 180,
164 + "depthCm": 4,
165 + "listPriceCents": 1557500,
166 + "status": "avail",
167 + "sku": "P1-U327735-A13238533-T1",
168 + "image": "https://images.saatchiart.com/saatchi/327735/art/13238533/12300669-QCCTPFFE-7.jpg",
169 + "countryName": "ireland",
170 + "uploadedAt": 1760133484
171 + },
172 + {
173 + "artworkId": "13529889",
174 + "url": "https://www.saatchiart.com/art/Painting-Confluent-Ground/2505141/13529889/view",
175 + "title": "Confluent Ground",
176 + "artistFirstName": "mark",
177 + "artistLastName": "engel",
178 + "artistId": 2505141,
179 + "category": "Painting",
180 + "mediums": [
181 + "acrylic",
182 + "spray paint"
183 + ],
184 + "materials": [
185 + "canvas"
186 + ],
187 + "styles": [
188 + "abstract",
189 + "figurative",
190 + "surrealism",
191 + "expressionism",
192 + "contemporary"
193 + ],
194 + "subject": "landscape",
195 + "widthCm": 121.9,
196 + "heightCm": 152.4,
197 + "depthCm": 3.8,
198 + "listPriceCents": 1875000,
199 + "status": "avail",
200 + "sku": "P1-U2505141-A13529889-T1",
201 + "image": "https://images.saatchiart.com/saatchi/2505141/art/13529889/12592019-SVNSRDPF-7.jpg",
202 + "countryName": "united states",
203 + "uploadedAt": 1768945061
204 + },
205 + {
206 + "artworkId": "13827031",
207 + "url": "https://www.saatchiart.com/art/Painting-Forest-View-II/958076/13827031/view",
208 + "title": "Forest View II",
209 + "artistFirstName": "david",
210 + "artistLastName": "bowker",
211 + "artistId": 958076,
212 + "category": "Painting",
213 + "mediums": [
214 + "oil"
215 + ],
216 + "materials": [
217 + "canvas"
218 + ],
219 + "styles": [
220 + "impressionism"
221 + ],
222 + "subject": "landscape",
223 + "widthCm": 76.2,
224 + "heightCm": 101.6,
225 + "depthCm": 3.8,
226 + "listPriceCents": 208800,
227 + "status": "avail",
228 + "sku": "P1-U958076-A13827031-T1",
229 + "image": "https://images.saatchiart.com/saatchi/958076/art/13827031/12889109-OVXVIBGA-7.jpg",
230 + "countryName": "united states",
231 + "uploadedAt": 1777576350
232 + },
233 + {
234 + "artworkId": "10386607",
235 + "url": "https://www.saatchiart.com/art/Painting-Elegance-1127/965350/10386607/view",
236 + "title": "Elegance 1127",
237 + "artistFirstName": "jingshen",
238 + "artistLastName": "you",
239 + "artistId": 965350,
240 + "category": "Painting",
241 + "mediums": [
242 + "acrylic"
243 + ],
244 + "materials": [
245 + "canvas"
246 + ],
247 + "styles": [
248 + "abstract",
249 + "abstract expressionism",
250 + "art deco"
251 + ],
252 + "subject": "abstract",
253 + "widthCm": 100,
254 + "heightCm": 75,
255 + "depthCm": 0.3,
256 + "listPriceCents": 73800,
257 + "status": "avail",
258 + "sku": "P1-U965350-A10386607-T1",
259 + "image": "https://images.saatchiart.com/saatchi/965350/art/10386607/9449201-CSQDWEYI-7.jpg",
260 + "countryName": "china",
261 + "uploadedAt": 1681786566
262 + },
263 + {
264 + "artworkId": "13768617",
265 + "url": "https://www.saatchiart.com/art/Painting-Pewter/2969105/13768617/view",
266 + "title": "Pewter",
267 + "artistFirstName": "sergey",
268 + "artistLastName": "harlov",
269 + "artistId": 2969105,
270 + "category": "Painting",
271 + "mediums": [
272 + "oil"
273 + ],
274 + "materials": [
275 + "canvas"
276 + ],
277 + "styles": [
278 + "baroque",
279 + "realism"
280 + ],
281 + "subject": "still life",
282 + "widthCm": 131.8,
283 + "heightCm": 169.4,
284 + "depthCm": 1.8,
285 + "listPriceCents": 520600,
286 + "status": "avail",
287 + "sku": "P1-U2969105-A13768617-T1",
288 + "image": "https://images.saatchiart.com/saatchi/2969105/art/13768617/12830699-HPZWYGDD-7.jpg",
289 + "countryName": "kazakhstan",
290 + "uploadedAt": 1775866926
291 + },
292 + {
293 + "artworkId": "12347395",
294 + "url": "https://www.saatchiart.com/art/Painting-The-Colorado-River/958076/12347395/view",
295 + "title": "The Colorado River",
296 + "artistFirstName": "david",
297 + "artistLastName": "bowker",
298 + "artistId": 958076,
299 + "category": "Painting",
300 + "mediums": [
301 + "oil"
302 + ],
303 + "materials": [
304 + "canvas"
305 + ],
306 + "styles": [
307 + "impressionism"
308 + ],
309 + "subject": "landscape",
310 + "widthCm": 91.4,
311 + "heightCm": 61,
312 + "depthCm": 3.8,
313 + "listPriceCents": 105000,
314 + "status": "avail",
315 + "sku": "P1-U958076-A12347395-T1",
316 + "image": "https://images.saatchiart.com/saatchi/958076/art/12347395/11409585-CWPADBOX-7.jpg",
317 + "countryName": "united states",
318 + "uploadedAt": 1734035673
319 + },
320 + {
321 + "artworkId": "13959449",
322 + "url": "https://www.saatchiart.com/art/Painting-Evening-Reflections-watercolor-original-painting/2674863/13959449/view",
323 + "title": "Evening Reflections, watercolor original painting",
324 + "artistFirstName": "oksana",
325 + "artistLastName": "shvachka",
326 + "artistId": 2674863,
327 + "category": "Painting",
328 + "mediums": [
329 + "watercolor"
330 + ],
331 + "materials": [
332 + "paper"
333 + ],
334 + "styles": [
335 + "abstract",
336 + "contemporary",
337 + "realism",
338 + "impressionism"
339 + ],
340 + "subject": "water",
341 + "widthCm": 38.1,
342 + "heightCm": 57,
343 + "depthCm": 0.1,
344 + "listPriceCents": 59900,
345 + "status": "avail",
346 + "sku": "P1-U2674863-A13959449-T1",
347 + "image": "https://images.saatchiart.com/saatchi/2674863/art/13959449/13021481-GQAKMIYH-7.jpg",
348 + "countryName": "poland",
349 + "uploadedAt": 1781017091
350 + },
351 + {
352 + "artworkId": "13338069",
353 + "url": "https://www.saatchiart.com/art/Painting-Summer-pond-Reflections/56416/13338069/view",
354 + "title": "Summer pond. Reflections",
355 + "artistFirstName": "lilia",
356 + "artistLastName": "orlova-holmes",
357 + "artistId": 56416,
358 + "category": "Painting",
359 + "mediums": [
360 + "oil"
361 + ],
362 + "materials": [
363 + "canvas"
364 + ],
365 + "styles": [
366 + "abstract",
367 + "contemporary",
368 + "expressionism",
369 + "impressionism",
370 + "modernism"
371 + ],
372 + "subject": "nature",
373 + "widthCm": 122,
374 + "heightCm": 183,
375 + "depthCm": 4,
376 + "listPriceCents": 1664000,
377 + "status": "avail",
378 + "sku": "P1-U56416-A13338069-T1",
379 + "image": "https://images.saatchiart.com/saatchi/56416/art/13338069/12400203-OMRRFSFA-7.jpg",
380 + "countryName": "united kingdom",
381 + "uploadedAt": 1763118644
382 + },
383 + {
384 + "artworkId": "13204059",
385 + "url": "https://www.saatchiart.com/art/Painting-MOUNT-FUJI/978551/13204059/view",
386 + "title": "MOUNT FUJI",
387 + "artistFirstName": "daniel",
388 + "artistLastName": "bautista",
389 + "artistId": 978551,
390 + "category": "Painting",
391 + "mediums": [
392 + "acrylic",
393 + "oil"
394 + ],
395 + "materials": [
396 + "canvas"
397 + ],
398 + "styles": [
399 + "abstract",
400 + "cubism",
401 + "pop art",
402 + "contemporary",
403 + "modernism"
404 + ],
405 + "subject": "abstract",
406 + "widthCm": 125,
407 + "heightCm": 165,
408 + "depthCm": 5,
409 + "listPriceCents": 373800,
410 + "status": "avail",
411 + "sku": "P1-U978551-A13204059-T1",
412 + "image": "https://images.saatchiart.com/saatchi/978551/art/13204059/12266195-SMGZACJY-7.jpg",
413 + "countryName": "spain",
414 + "uploadedAt": 1759130964
415 + },
416 + {
417 + "artworkId": "13032211",
418 + "url": "https://www.saatchiart.com/art/Painting-Oversized-Gold-Textured-Abstract/2279331/13032211/view",
419 + "title": "Oversized Gold Textured Abstract",
420 + "artistFirstName": "indie",
421 + "artistLastName": "ru",
422 + "artistId": 2279331,
423 + "category": "Painting",
424 + "mediums": [
425 + "acrylic",
426 + "gesso"
427 + ],
428 + "materials": [
429 + "canvas"
430 + ],
431 + "styles": [
432 + "abstract",
433 + "contemporary",
434 + "minimalism"
435 + ],
436 + "subject": "abstract",
437 + "widthCm": 145,
438 + "heightCm": 205,
439 + "depthCm": 0.5,
440 + "listPriceCents": 197000,
441 + "status": "avail",
442 + "sku": "P1-U2279331-A13032211-T1",
443 + "image": "https://images.saatchiart.com/saatchi/2279331/art/13032211/12094355-IAQPXXFG-7.jpg",
444 + "countryName": "croatia",
445 + "uploadedAt": 1754051155
446 + },
447 + {
448 + "artworkId": "11317341",
449 + "url": "https://www.saatchiart.com/art/Painting-Autumn-Morning/958076/11317341/view",
450 + "title": "Autumn Morning",
451 + "artistFirstName": "david",
452 + "artistLastName": "bowker",
453 + "artistId": 958076,
454 + "category": "Painting",
455 + "mediums": [
456 + "oil"
457 + ],
458 + "materials": [
459 + "canvas"
460 + ],
461 + "styles": [
462 + "impressionism"
463 + ],
464 + "subject": "landscape",
465 + "widthCm": 76.2,
466 + "heightCm": 45.7,
467 + "depthCm": 1.8,
468 + "listPriceCents": 72000,
469 + "status": "avail",
470 + "sku": "P1-U958076-A11317341-T1",
471 + "image": "https://images.saatchiart.com/saatchi/958076/art/11317341/10379607-JPCUCDMY-7.jpg",
472 + "countryName": "united states",
473 + "uploadedAt": 1705087244
474 + },
475 + {
476 + "artworkId": "13651261",
477 + "url": "https://www.saatchiart.com/art/Painting-Eclectic/877744/13651261/view",
478 + "title": "Eclectic",
479 + "artistFirstName": "paola",
480 + "artistLastName": "pugliese",
481 + "artistId": 877744,
482 + "category": "Painting",
483 + "mediums": [
484 + "acrylic"
485 + ],
486 + "materials": [
487 + "canvas"
488 + ],
489 + "styles": [
490 + "abstract expressionism",
491 + "contemporary",
492 + "abstract"
493 + ],
494 + "subject": "abstract",
495 + "widthCm": 100,
496 + "heightCm": 140,
497 + "depthCm": 5,
498 + "listPriceCents": 116000,
499 + "status": "avail",
500 + "sku": "P1-U877744-A13651261-T1",
501 + "image": "https://images.saatchiart.com/saatchi/877744/art/13651261/12713347-NMOZKUPA-7.jpg",
502 + "countryName": "mexico",
503 + "uploadedAt": 1772493029
504 + },
505 + {
506 + "artworkId": "11898561",
507 + "url": "https://www.saatchiart.com/art/Painting-The-Emotional-Creation-346-371/311324/11898561/view",
508 + "title": "The Emotional Creation #346.371",
509 + "artistFirstName": "carla",
510 + "artistLastName": "sa fernandes",
511 + "artistId": 311324,
512 + "category": "Painting",
513 + "mediums": [
514 + "acrylic"
515 + ],
516 + "materials": [
517 + "canvas"
518 + ],
519 + "styles": [
520 + "abstract",
521 + "contemporary",
522 + "modernism",
523 + "other"
524 + ],
525 + "subject": "abstract",
526 + "widthCm": 400,
527 + "heightCm": 100,
528 + "depthCm": 2,
529 + "listPriceCents": 2194000,
530 + "status": "avail",
531 + "sku": "P1-U311324-A11898561-T1",
532 + "image": "https://images.saatchiart.com/saatchi/311324/art/11898561/10960801-UGWYRBMH-7.jpg",
533 + "countryName": "portugal",
534 + "uploadedAt": 1720571276
535 + },
536 + {
537 + "artworkId": "10034313",
538 + "url": "https://www.saatchiart.com/art/Painting-2025-mong-the-hills/1845276/10034313/view",
539 + "title": "2025.Аmong the hills",
540 + "artistFirstName": "miroslava",
541 + "artistLastName": "kuchura",
542 + "artistId": 1845276,
543 + "category": "Painting",
544 + "mediums": [
545 + "oil"
546 + ],
547 + "materials": [
548 + "canvas"
549 + ],
550 + "styles": [
551 + "realism",
552 + "impressionism",
553 + "abstract",
554 + "minimalism",
555 + "figurative"
556 + ],
557 + "subject": "landscape",
558 + "widthCm": 30,
559 + "heightCm": 19.8,
560 + "depthCm": 0.3,
561 + "listPriceCents": 31100,
562 + "status": "avail",
563 + "sku": "P1-U1845276-A10034313-T1",
564 + "image": "https://images.saatchiart.com/saatchi/1845276/art/10034313/9097231-FICTXZJG-7.jpg",
565 + "countryName": "ukraine",
566 + "uploadedAt": 1673471167
567 + },
568 + {
569 + "artworkId": "11440911",
570 + "url": "https://www.saatchiart.com/art/Painting-le-parc-enneige/1422925/11440911/view",
571 + "title": "le parc enneigé",
572 + "artistFirstName": "patrick",
573 + "artistLastName": "marie",
574 + "artistId": 1422925,
575 + "category": "Painting",
576 + "mediums": [
577 + "oil"
578 + ],
579 + "materials": [
580 + "canvas"
581 + ],
582 + "styles": [
583 + "figurative",
584 + "impressionism",
585 + "other"
586 + ],
587 + "subject": "nature",
588 + "widthCm": 100,
589 + "heightCm": 130,
590 + "depthCm": 2,
591 + "listPriceCents": 409000,
592 + "status": "avail",
593 + "sku": "P1-U1422925-A11440911-T1",
594 + "image": "https://images.saatchiart.com/saatchi/1422925/art/11440911/10503165-OEVOWXOU-7.jpg",
595 + "countryName": "france",
596 + "uploadedAt": 1708253600
597 + },
598 + {
599 + "artworkId": "14085459",
600 + "url": "https://www.saatchiart.com/art/Painting-Sequoias/958076/14085459/view",
601 + "title": "Sequoias",
602 + "artistFirstName": "david",
603 + "artistLastName": "bowker",
604 + "artistId": 958076,
605 + "category": "Painting",
606 + "mediums": [
607 + "oil"
608 + ],
609 + "materials": [
610 + "canvas"
611 + ],
612 + "styles": [
613 + "impressionism"
614 + ],
615 + "subject": "landscape",
616 + "widthCm": 76.2,
617 + "heightCm": 101.6,
618 + "depthCm": 3.8,
619 + "listPriceCents": 293500,
620 + "status": "avail",
621 + "sku": "P1-U958076-A14085459-T1",
622 + "image": "https://images.saatchiart.com/saatchi/958076/art/14085459/13147469-IRNSQHPP-7.jpg",
623 + "countryName": "united states",
624 + "uploadedAt": 1784994124
625 + },
626 + {
627 + "artworkId": "9542703",
628 + "url": "https://www.saatchiart.com/art/Painting-YOU-MAKE-ME-FEEL/736657/9542703/view",
629 + "title": "YOU MAKE ME FEEL",
630 + "artistFirstName": "daniela",
631 + "artistLastName": "schweinsberg",
632 + "artistId": 736657,
633 + "category": "Painting",
634 + "mediums": [
635 + "acrylic",
636 + "spray paint",
637 + "ink"
638 + ],
639 + "materials": [
640 + "canvas"
641 + ],
642 + "styles": [
643 + "abstract",
644 + "abstract expressionism",
645 + "modernism",
646 + "other",
647 + "street art"
648 + ],
649 + "subject": "abstract",
650 + "widthCm": 160,
651 + "heightCm": 200,
652 + "depthCm": 2,
653 + "listPriceCents": 798900,
654 + "status": "avail",
655 + "sku": "P1-U736657-A9542703-T1",
656 + "image": "https://images.saatchiart.com/saatchi/736657/art/9542703/8605805-ZGKHJOXP-7.jpg",
657 + "countryName": "germany",
658 + "uploadedAt": 1659351985
659 + },
660 + {
661 + "artworkId": "12124655",
662 + "url": "https://www.saatchiart.com/art/Painting-Yell-It-Loud-III/1648430/12124655/view",
663 + "title": "Yell It Loud III",
664 + "artistFirstName": "sobo",
665 + "artistLastName": "artz",
666 + "artistId": 1648430,
667 + "category": "Painting",
668 + "mediums": [
669 + "acrylic"
670 + ],
671 + "materials": [
672 + "canvas"
673 + ],
674 + "styles": [
675 + "abstract",
676 + "abstract expressionism",
677 + "contemporary",
678 + "expressionism"
679 + ],
680 + "subject": "abstract",
681 + "widthCm": 91.4,
682 + "heightCm": 121.9,
683 + "depthCm": 3.8,
684 + "listPriceCents": 297500,
685 + "status": "avail",
686 + "sku": "P1-U1648430-A12124655-T1",
687 + "image": "https://images.saatchiart.com/saatchi/1648430/art/12124655/11186853-PGIDFDQD-7.jpg",
688 + "countryName": "canada",
689 + "uploadedAt": 1727558969
690 + },
691 + {
692 + "artworkId": "12553083",
693 + "url": "https://www.saatchiart.com/art/Painting-Evening-field-5/1010396/12553083/view",
694 + "title": "Evening field 5",
695 + "artistFirstName": "ivan",
696 + "artistLastName": "didovodiuk",
697 + "artistId": 1010396,
698 + "category": "Painting",
699 + "mediums": [
700 + "acrylic"
701 + ],
702 + "materials": [
703 + "canvas"
704 + ],
705 + "styles": [
706 + "abstract",
707 + "abstract expressionism",
708 + "expressionism",
709 + "minimalism",
710 + "contemporary"
711 + ],
712 + "subject": "landscape",
713 + "widthCm": 119.9,
714 + "heightCm": 89.9,
715 + "depthCm": 0.3,
716 + "listPriceCents": 171000,
717 + "status": "avail",
718 + "sku": "P1-U1010396-A12553083-T1",
719 + "image": "https://images.saatchiart.com/saatchi/1010396/art/12553083/11615273-LNLDECUE-7.jpg",
720 + "countryName": "ukraine",
721 + "uploadedAt": 1739911505
722 + },
723 + {
724 + "artworkId": "5941119",
725 + "url": "https://www.saatchiart.com/art/Painting-French-Landscape-oil-painting/1046362/4887342/view",
726 + "title": "“French Landscape” -oil painting-",
727 + "artistFirstName": "peggy",
728 + "artistLastName": "casey-mason",
729 + "artistId": 1046362,
730 + "category": "Painting",
731 + "mediums": [
732 + "oil"
733 + ],
734 + "materials": [
735 + "canvas"
736 + ],
737 + "styles": [
738 + "abstract expressionism",
739 + "abstract",
740 + "expressionism",
741 + "impressionism",
742 + "contemporary"
743 + ],
744 + "subject": "landscape",
745 + "widthCm": 72.39,
746 + "heightCm": 168.28,
747 + "depthCm": 0.25,
748 + "listPriceCents": 169000,
749 + "status": "avail",
750 + "sku": "P1-U1046362-A5941119-T1",
751 + "image": "https://images.saatchiart.com/saatchi/1046362/art/5941119/5010913-HSC00001-7.jpg",
752 + "countryName": "united states",
753 + "uploadedAt": 1554568388
754 + },
755 + {
756 + "artworkId": "14103885",
757 + "url": "https://www.saatchiart.com/art/Painting-Dream-of-Dogwood-Flowers/3036431/14103885/view",
758 + "title": "Dream of Dogwood Flowers",
759 + "artistFirstName": "natalia",
760 + "artistLastName": "shardakova",
761 + "artistId": 3036431,
762 + "category": "Painting",
763 + "mediums": [
764 + "acrylic"
765 + ],
766 + "materials": [
767 + "canvas"
768 + ],
769 + "styles": [
770 + "abstract",
771 + "contemporary",
772 + "abstract expressionism"
773 + ],
774 + "subject": "floral",
775 + "widthCm": 91.4,
776 + "heightCm": 121.9,
777 + "depthCm": 3.8,
778 + "listPriceCents": 225300,
779 + "status": "avail",
780 + "sku": "P1-U3036431-A14103885-T1",
781 + "image": "https://images.saatchiart.com/saatchi/3036431/art/14103885/13165893-QIMGAVPQ-7.jpg",
782 + "countryName": "united states",
783 + "uploadedAt": 1785523081
784 + }
785 + ]
786 + }
787 + },
788 + "expect": {
789 + "minCount": 20,
790 + "kinds": [
791 + "listing"
792 + ],
793 + "requiredFields": [
794 + "price",
795 + "currency",
796 + "attributes.brand"
797 + ]
798 + },
799 + "note": "Captured live from saatchiart.com __NEXT_DATA__",
800 + "capturedAt": "2026-09-07T06:24:02.968Z"
801 +}
\ No newline at end of file
added data/fixtures/saatchi-art/paintings-page-2.json +821 −0
@@ -0,0 +1,821 @@
1 +{
2 + "raw": {
3 + "url": "https://www.saatchiart.com/paintings?page=2",
4 + "externalId": "browse:/paintings:2",
5 + "kind": "listing",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:24:05.739Z",
8 + "payload": {
9 + "kind": "browse_page",
10 + "url": "https://www.saatchiart.com/paintings?page=2",
11 + "seed": {
12 + "path": "/paintings",
13 + "category": "contemporary_art"
14 + },
15 + "page": 2,
16 + "totalResults": 746701,
17 + "works": [
18 + {
19 + "artworkId": "13737919",
20 + "url": "https://www.saatchiart.com/art/Painting-Elegance-1506/965350/13737919/view",
21 + "title": "Elegance 1506",
22 + "artistFirstName": "jingshen",
23 + "artistLastName": "you",
24 + "artistId": 965350,
25 + "category": "Painting",
26 + "mediums": [
27 + "acrylic"
28 + ],
29 + "materials": [
30 + "canvas"
31 + ],
32 + "styles": [
33 + "abstract",
34 + "abstract expressionism",
35 + "art deco"
36 + ],
37 + "subject": "abstract",
38 + "widthCm": 83.8,
39 + "heightCm": 109.2,
40 + "depthCm": 0.3,
41 + "listPriceCents": 59500,
42 + "status": "avail",
43 + "sku": "P1-U965350-A13737919-T1",
44 + "image": "https://images.saatchiart.com/saatchi/965350/art/13737919/12800001-PMMYTAGA-7.jpg",
45 + "countryName": "china",
46 + "uploadedAt": 1775031202
47 + },
48 + {
49 + "artworkId": "12605779",
50 + "url": "https://www.saatchiart.com/art/Painting-Meet/2448435/12605779/view",
51 + "title": "Meet",
52 + "artistFirstName": "joon hwan",
53 + "artistLastName": "kim",
54 + "artistId": 2448435,
55 + "category": "Painting",
56 + "mediums": [
57 + "oil"
58 + ],
59 + "materials": [
60 + "canvas"
61 + ],
62 + "styles": [
63 + "abstract",
64 + "illustration",
65 + "modernism",
66 + "other",
67 + "pop art"
68 + ],
69 + "subject": "landscape",
70 + "widthCm": 162,
71 + "heightCm": 97,
72 + "depthCm": 3.8,
73 + "listPriceCents": 1144000,
74 + "status": "avail",
75 + "sku": "P1-U2448435-A12605779-T1",
76 + "image": "https://images.saatchiart.com/saatchi/2448435/art/12605779/11667967-UZUDLLVV-7.jpg",
77 + "countryName": "south korea",
78 + "uploadedAt": 1741342786
79 + },
80 + {
81 + "artworkId": "14164375",
82 + "url": "https://www.saatchiart.com/art/Painting-Horizon-2-Pink/3036431/14164375/view",
83 + "title": "Horizon 2 - Pink",
84 + "artistFirstName": "natalia",
85 + "artistLastName": "shardakova",
86 + "artistId": 3036431,
87 + "category": "Painting",
88 + "mediums": [
89 + "acrylic",
90 + "oil stick"
91 + ],
92 + "materials": [
93 + "canvas"
94 + ],
95 + "styles": [
96 + "abstract expressionism",
97 + "contemporary",
98 + "abstract"
99 + ],
100 + "subject": "landscape",
101 + "widthCm": 25.4,
102 + "heightCm": 25.4,
103 + "depthCm": 3.8,
104 + "listPriceCents": 15000,
105 + "status": "avail",
106 + "sku": "P1-U3036431-A14164375-T1",
107 + "image": "https://images.saatchiart.com/saatchi/3036431/art/14164375/13226383-IPSTGPAO-7.jpg",
108 + "countryName": "united states",
109 + "uploadedAt": 1787317882
110 + },
111 + {
112 + "artworkId": "13747395",
113 + "url": "https://www.saatchiart.com/art/Painting-In-the-middle-of-spring/2243295/13747395/view",
114 + "title": "In the middle of spring",
115 + "artistFirstName": "park",
116 + "artistLastName": "seon young",
117 + "artistId": 2243295,
118 + "category": "Painting",
119 + "mediums": [
120 + "acrylic"
121 + ],
122 + "materials": [
123 + "canvas"
124 + ],
125 + "styles": [
126 + "abstract",
127 + "contemporary"
128 + ],
129 + "subject": "landscape",
130 + "widthCm": 30,
131 + "heightCm": 30,
132 + "depthCm": 1,
133 + "listPriceCents": 41000,
134 + "status": "avail",
135 + "sku": "P1-U2243295-A13747395-T1",
136 + "image": "https://images.saatchiart.com/saatchi/2243295/art/13747395/12809477-UWYBJJJZ-7.jpg",
137 + "countryName": "france",
138 + "uploadedAt": 1775296443
139 + },
140 + {
141 + "artworkId": "13498275",
142 + "url": "https://www.saatchiart.com/art/Painting-Under-the-bluemoon-2/1438463/13498275/view",
143 + "title": "Under the bluemoon_2",
144 + "artistFirstName": "amy",
145 + "artistLastName": "kim",
146 + "artistId": 1438463,
147 + "category": "Painting",
148 + "mediums": [
149 + "acrylic"
150 + ],
151 + "materials": [
152 + "other",
153 + "canvas"
154 + ],
155 + "styles": [
156 + "abstract",
157 + "contemporary",
158 + "minimalism",
159 + "symbolism",
160 + "street art"
161 + ],
162 + "subject": "abstract",
163 + "widthCm": 67,
164 + "heightCm": 80,
165 + "depthCm": 4,
166 + "listPriceCents": 222000,
167 + "status": "avail",
168 + "sku": "P1-U1438463-A13498275-T1",
169 + "image": "https://images.saatchiart.com/saatchi/1438463/art/13498275/12560407-HKYPLKJW-7.jpg",
170 + "countryName": "australia",
171 + "uploadedAt": 1768003291
172 + },
173 + {
174 + "artworkId": "12796281",
175 + "url": "https://www.saatchiart.com/art/Painting-Sansu-Spaceii/2521485/12796281/view",
176 + "title": "Sansu Spaceⅱ(山水空間)",
177 + "artistFirstName": "wondeuk",
178 + "artistLastName": "cho",
179 + "artistId": 2521485,
180 + "category": "Painting",
181 + "mediums": [
182 + "acrylic",
183 + "oil"
184 + ],
185 + "materials": [
186 + "canvas"
187 + ],
188 + "styles": [
189 + "contemporary",
190 + "other",
191 + "realism"
192 + ],
193 + "subject": "landscape",
194 + "widthCm": 72.6,
195 + "heightCm": 90.9,
196 + "depthCm": 3,
197 + "listPriceCents": 304800,
198 + "status": "avail",
199 + "sku": "P1-U2521485-A12796281-T1",
200 + "image": "https://images.saatchiart.com/saatchi/2521485/art/12796281/11858459-MMBEDCVT-7.jpg",
201 + "countryName": "south korea",
202 + "uploadedAt": 1746814906
203 + },
204 + {
205 + "artworkId": "9616563",
206 + "url": "https://www.saatchiart.com/art/Painting-Infinite/350780/9616563/view",
207 + "title": "Infinite",
208 + "artistFirstName": "hennie",
209 + "artistLastName": "van de lande",
210 + "artistId": 350780,
211 + "category": "Painting",
212 + "mediums": [
213 + "acrylic",
214 + "other",
215 + "spray paint"
216 + ],
217 + "materials": [
218 + "canvas",
219 + "wood"
220 + ],
221 + "styles": [
222 + "abstract expressionism",
223 + "abstract",
224 + "figurative"
225 + ],
226 + "subject": "landscape",
227 + "widthCm": 100,
228 + "heightCm": 100,
229 + "depthCm": 4,
230 + "listPriceCents": 318500,
231 + "status": "avail",
232 + "sku": "P1-U350780-A9616563-T1",
233 + "image": "https://images.saatchiart.com/saatchi/350780/art/9616563/8679663-XNWEVTRV-7.jpg",
234 + "countryName": "netherlands",
235 + "uploadedAt": 1661680971
236 + },
237 + {
238 + "artworkId": "13074535",
239 + "url": "https://www.saatchiart.com/art/Painting-LARK/425902/13074535/view",
240 + "title": "LARK",
241 + "artistFirstName": "adam collier",
242 + "artistLastName": "noel",
243 + "artistId": 425902,
244 + "category": "Painting",
245 + "mediums": [
246 + "acrylic",
247 + "enamel",
248 + "other"
249 + ],
250 + "materials": [
251 + "canvas",
252 + "paper"
253 + ],
254 + "styles": [
255 + "abstract",
256 + "abstract expressionism",
257 + "minimalism"
258 + ],
259 + "subject": "abstract",
260 + "widthCm": 152.4,
261 + "heightCm": 152.4,
262 + "depthCm": 3.8,
263 + "listPriceCents": 1160000,
264 + "status": "avail",
265 + "sku": "P1-U425902-A13074535-T1",
266 + "image": "https://images.saatchiart.com/saatchi/425902/art/13074535/12136673-NCPVCDFK-7.jpg",
267 + "countryName": "united states",
268 + "uploadedAt": 1755295748
269 + },
270 + {
271 + "artworkId": "13576341",
272 + "url": "https://www.saatchiart.com/art/Painting-Eternal-Flow/793849/13576341/view",
273 + "title": "Eternal Flow",
274 + "artistFirstName": "eva",
275 + "artistLastName": "volf",
276 + "artistId": 793849,
277 + "category": "Painting",
278 + "mediums": [
279 + "oil"
280 + ],
281 + "materials": [
282 + "canvas"
283 + ],
284 + "styles": [
285 + "abstract",
286 + "realism"
287 + ],
288 + "subject": "seascape",
289 + "widthCm": 152.4,
290 + "heightCm": 121.9,
291 + "depthCm": 3.8,
292 + "listPriceCents": 775000,
293 + "status": "avail",
294 + "sku": "P1-U793849-A13576341-T1",
295 + "image": "https://images.saatchiart.com/saatchi/793849/art/13576341/12638433-LXYUNZFY-7.jpg",
296 + "countryName": "united states",
297 + "uploadedAt": 1770249754
298 + },
299 + {
300 + "artworkId": "14176937",
301 + "url": "https://www.saatchiart.com/art/Painting-Daisy-and-Clematis/3036431/14176937/view",
302 + "title": "Daisy and Clematis",
303 + "artistFirstName": "natalia",
304 + "artistLastName": "shardakova",
305 + "artistId": 3036431,
306 + "category": "Painting",
307 + "mediums": [
308 + "acrylic"
309 + ],
310 + "materials": [
311 + "canvas"
312 + ],
313 + "styles": [
314 + "abstract expressionism",
315 + "contemporary",
316 + "abstract"
317 + ],
318 + "subject": "abstract",
319 + "widthCm": 91.4,
320 + "heightCm": 91.4,
321 + "depthCm": 3.8,
322 + "listPriceCents": 150500,
323 + "status": "avail",
324 + "sku": "P1-U3036431-A14176937-T1",
325 + "image": "https://images.saatchiart.com/saatchi/3036431/art/14176937/13238941-KHVPAOOX-7.jpg",
326 + "countryName": "united states",
327 + "uploadedAt": 1787676071
328 + },
329 + {
330 + "artworkId": "12659463",
331 + "url": "https://www.saatchiart.com/art/Painting-Kisses-of-Morning-Dew-Fresh-Start/188106/12659463/view",
332 + "title": "Kisses of Morning Dew, Fresh Start",
333 + "artistFirstName": "misako",
334 + "artistLastName": "chida",
335 + "artistId": 188106,
336 + "category": "Painting",
337 + "mediums": [
338 + "acrylic"
339 + ],
340 + "materials": [
341 + "canvas"
342 + ],
343 + "styles": [
344 + "abstract",
345 + "abstract expressionism",
346 + "modernism"
347 + ],
348 + "subject": "abstract",
349 + "widthCm": 59.2,
350 + "heightCm": 85.1,
351 + "depthCm": 0.3,
352 + "listPriceCents": 42100,
353 + "status": "avail",
354 + "sku": "P1-U188106-A12659463-T1",
355 + "image": "https://images.saatchiart.com/saatchi/188106/art/12659463/11721651-PJCNVJEK-7.jpg",
356 + "countryName": "china",
357 + "uploadedAt": 1742812301
358 + },
359 + {
360 + "artworkId": "12465509",
361 + "url": "https://www.saatchiart.com/art/Painting-Beyond-the-fields-of-Longing/1192298/12465509/view",
362 + "title": "Beyond the fields of Longing",
363 + "artistFirstName": "belinda",
364 + "artistLastName": "ross",
365 + "artistId": 1192298,
366 + "category": "Painting",
367 + "mediums": [
368 + "oil"
369 + ],
370 + "materials": [
371 + "canvas"
372 + ],
373 + "styles": [
374 + "abstract",
375 + "abstract expressionism",
376 + "contemporary",
377 + "expressionism",
378 + "impressionism"
379 + ],
380 + "subject": "landscape",
381 + "widthCm": 99.1,
382 + "heightCm": 99.1,
383 + "depthCm": 3.8,
384 + "listPriceCents": 420000,
385 + "status": "avail",
386 + "sku": "P1-U1192298-A12465509-T1",
387 + "image": "https://images.saatchiart.com/saatchi/1192298/art/12465509/11527699-QLWOJOPZ-7.jpg",
388 + "countryName": "south africa",
389 + "uploadedAt": 1737625814
390 + },
391 + {
392 + "artworkId": "12307237",
393 + "url": "https://www.saatchiart.com/art/Painting-Powerful-field/350780/12307237/view",
394 + "title": "Powerful field",
395 + "artistFirstName": "hennie",
396 + "artistLastName": "van de lande",
397 + "artistId": 350780,
398 + "category": "Painting",
399 + "mediums": [
400 + "acrylic",
401 + "watercolor"
402 + ],
403 + "materials": [
404 + "aluminum",
405 + "canvas"
406 + ],
407 + "styles": [
408 + "abstract",
409 + "abstract expressionism",
410 + "contemporary"
411 + ],
412 + "subject": "landscape",
413 + "widthCm": 120,
414 + "heightCm": 120,
415 + "depthCm": 3.5,
416 + "listPriceCents": 559500,
417 + "status": "avail",
418 + "sku": "P1-U350780-A12307237-T1",
419 + "image": "https://images.saatchiart.com/saatchi/350780/art/12307237/11369433-UCPAMRTK-7.jpg",
420 + "countryName": "netherlands",
421 + "uploadedAt": 1732975009
422 + },
423 + {
424 + "artworkId": "13932983",
425 + "url": "https://www.saatchiart.com/art/Painting-Garden-of-Quiet-Wonder/2520373/13932983/view",
426 + "title": "Garden of Quiet Wonder",
427 + "artistFirstName": "elaine",
428 + "artistLastName": "wrogemann",
429 + "artistId": 2520373,
430 + "category": "Painting",
431 + "mediums": [
432 + "watercolor",
433 + "ink",
434 + "glazing"
435 + ],
436 + "materials": [
437 + "paper"
438 + ],
439 + "styles": [
440 + "abstract expressionism"
441 + ],
442 + "subject": "abstract",
443 + "widthCm": 420,
444 + "heightCm": 594,
445 + "depthCm": 2,
446 + "listPriceCents": 105000,
447 + "status": "avail",
448 + "sku": "P1-U2520373-A13932983-T1",
449 + "image": "https://images.saatchiart.com/saatchi/2520373/art/13932983/12995015-YSQKTKQG-7.jpg",
450 + "countryName": "south africa",
451 + "uploadedAt": 1780250216
452 + },
453 + {
454 + "artworkId": "14144167",
455 + "url": "https://www.saatchiart.com/art/Painting-Teal/3036431/14144167/view",
456 + "title": "Teal",
457 + "artistFirstName": "natalia",
458 + "artistLastName": "shardakova",
459 + "artistId": 3036431,
460 + "category": "Painting",
461 + "mediums": [
462 + "acrylic"
463 + ],
464 + "materials": [
465 + "canvas"
466 + ],
467 + "styles": [
468 + "abstract expressionism",
469 + "contemporary"
470 + ],
471 + "subject": "abstract",
472 + "widthCm": 55.9,
473 + "heightCm": 71.1,
474 + "depthCm": 3.8,
475 + "listPriceCents": 74200,
476 + "status": "avail",
477 + "sku": "P1-U3036431-A14144167-T1",
478 + "image": "https://images.saatchiart.com/saatchi/3036431/art/14144167/13206175-GKHBARRX-7.jpg",
479 + "countryName": "united states",
480 + "uploadedAt": 1786723376
481 + },
482 + {
483 + "artworkId": "13325307",
484 + "url": "https://www.saatchiart.com/art/Painting-Luminous-Symphony/1056452/13325307/view",
485 + "title": "Luminous Symphony",
486 + "artistFirstName": "svitlana",
487 + "artistLastName": "tykhomyrova",
488 + "artistId": 1056452,
489 + "category": "Painting",
490 + "mediums": [
491 + "oil"
492 + ],
493 + "materials": [
494 + "canvas"
495 + ],
496 + "styles": [
497 + "abstract",
498 + "impressionism",
499 + "contemporary",
500 + "figurative"
501 + ],
502 + "subject": "landscape",
503 + "widthCm": 153,
504 + "heightCm": 90,
505 + "depthCm": 3,
506 + "listPriceCents": 691000,
507 + "status": "avail",
508 + "sku": "P1-U1056452-A13325307-T1",
509 + "image": "https://images.saatchiart.com/saatchi/1056452/art/13325307/12387441-GZMITFQQ-7.jpg",
510 + "countryName": "belgium",
511 + "uploadedAt": 1762719109
512 + },
513 + {
514 + "artworkId": "12220643",
515 + "url": "https://www.saatchiart.com/art/Painting-Powerflowers-featured-arresting-abstracts/350780/12220643/view",
516 + "title": "Powerflowers (featured arresting abstracts)",
517 + "artistFirstName": "hennie",
518 + "artistLastName": "van de lande",
519 + "artistId": 350780,
520 + "category": "Painting",
521 + "mediums": [
522 + "acrylic",
523 + "watercolor"
524 + ],
525 + "materials": [
526 + "aluminum",
527 + "canvas"
528 + ],
529 + "styles": [
530 + "abstract",
531 + "abstract expressionism",
532 + "figurative",
533 + "contemporary"
534 + ],
535 + "subject": "botanic",
536 + "widthCm": 100,
537 + "heightCm": 150,
538 + "depthCm": 3.5,
539 + "listPriceCents": 609500,
540 + "status": "avail",
541 + "sku": "P1-U350780-A12220643-T1",
542 + "image": "https://images.saatchiart.com/saatchi/350780/art/12220643/11282841-DVZYFBVO-7.jpg",
543 + "countryName": "netherlands",
544 + "uploadedAt": 1730461196
545 + },
546 + {
547 + "artworkId": "11814415",
548 + "url": "https://www.saatchiart.com/art/Painting-Absent-Minded-Friends/982033/11814415/view",
549 + "title": "Absent Minded Friends",
550 + "artistFirstName": "lukasz",
551 + "artistLastName": "olek",
552 + "artistId": 982033,
553 + "category": "Painting",
554 + "mediums": [
555 + "acrylic"
556 + ],
557 + "materials": [
558 + "linen",
559 + "canvas"
560 + ],
561 + "styles": [
562 + "abstract",
563 + "abstract expressionism",
564 + "contemporary",
565 + "minimalism"
566 + ],
567 + "subject": "abstract",
568 + "widthCm": 80,
569 + "heightCm": 120,
570 + "depthCm": 2,
571 + "listPriceCents": 477900,
572 + "status": "avail",
573 + "sku": "P1-U982033-A11814415-T1",
574 + "image": "https://images.saatchiart.com/saatchi/982033/art/11814415/10876655-ZZDIAJLL-7.jpg",
575 + "countryName": "poland",
576 + "uploadedAt": 1718011436
577 + },
578 + {
579 + "artworkId": "12537315",
580 + "url": "https://www.saatchiart.com/art/Painting-Kaori-III-colorful-textured-painting-on-linen-canvas/1836377/12537315/view",
581 + "title": "\"Kaori III\" - colorful textured painting on linen canvas",
582 + "artistFirstName": "anastassia",
583 + "artistLastName": "skopp",
584 + "artistId": 1836377,
585 + "category": "Painting",
586 + "mediums": [
587 + "acrylic",
588 + "spray paint"
589 + ],
590 + "materials": [
591 + "canvas",
592 + "linen"
593 + ],
594 + "styles": [
595 + "abstract",
596 + "impressionism",
597 + "contemporary",
598 + "figurative",
599 + "fractal"
600 + ],
601 + "subject": "floral",
602 + "widthCm": 89.9,
603 + "heightCm": 89.9,
604 + "depthCm": 2,
605 + "listPriceCents": 184000,
606 + "status": "avail",
607 + "sku": "P1-U1836377-A12537315-T1",
608 + "image": "https://images.saatchiart.com/saatchi/1836377/art/12537315/11599505-ZZZZPPLU-7.jpg",
609 + "countryName": "germany",
610 + "uploadedAt": 1739482884
611 + },
612 + {
613 + "artworkId": "12891547",
614 + "url": "https://www.saatchiart.com/art/Painting-Spring-forest/385897/12891547/view",
615 + "title": "Spring forest",
616 + "artistFirstName": "andrii",
617 + "artistLastName": "kutsachenko",
618 + "artistId": 385897,
619 + "category": "Painting",
620 + "mediums": [
621 + "oil",
622 + "acrylic"
623 + ],
624 + "materials": [
625 + "canvas"
626 + ],
627 + "styles": [
628 + "impressionism",
629 + "abstract",
630 + "contemporary",
631 + "fauvism",
632 + "realism"
633 + ],
634 + "subject": "landscape",
635 + "widthCm": 70,
636 + "heightCm": 50,
637 + "depthCm": 3,
638 + "listPriceCents": 226500,
639 + "status": "avail",
640 + "sku": "P1-U385897-A12891547-T1",
641 + "image": "https://images.saatchiart.com/saatchi/385897/art/12891547/11953725-ZXCPGOZU-7.jpg",
642 + "countryName": "ukraine",
643 + "uploadedAt": 1749752052
644 + },
645 + {
646 + "artworkId": "10294983",
647 + "url": "https://www.saatchiart.com/art/Painting-GAIA/978551/10294983/view",
648 + "title": "GAIA",
649 + "artistFirstName": "daniel",
650 + "artistLastName": "bautista",
651 + "artistId": 978551,
652 + "category": "Painting",
653 + "mediums": [
654 + "oil",
655 + "acrylic"
656 + ],
657 + "materials": [
658 + "canvas"
659 + ],
660 + "styles": [
661 + "abstract",
662 + "art deco",
663 + "contemporary",
664 + "modernism",
665 + "pop art"
666 + ],
667 + "subject": "abstract",
668 + "widthCm": 125,
669 + "heightCm": 165,
670 + "depthCm": 5,
671 + "listPriceCents": 458600,
672 + "status": "avail",
673 + "sku": "P1-U978551-A10294983-T1",
674 + "image": "https://images.saatchiart.com/saatchi/978551/art/10294983/9357607-TQSTHFMW-7.jpg",
675 + "countryName": "spain",
676 + "uploadedAt": 1679564067
677 + },
678 + {
679 + "artworkId": "11286395",
680 + "url": "https://www.saatchiart.com/art/Painting-We-Arrived-Onshore-Guided-by-Dance/719498/11286395/view",
681 + "title": "We Arrived Onshore, Guided by Dance",
682 + "artistFirstName": "jason",
683 + "artistLastName": "wright",
684 + "artistId": 719498,
685 + "category": "Painting",
686 + "mediums": [
687 + "oil",
688 + "ink",
689 + "acrylic",
690 + "pastel",
691 + "paper"
692 + ],
693 + "materials": [
694 + "wood"
695 + ],
696 + "styles": [
697 + "abstract",
698 + "conceptual",
699 + "modernism",
700 + "surrealism"
701 + ],
702 + "subject": "water",
703 + "widthCm": 61,
704 + "heightCm": 91.4,
705 + "depthCm": 3.8,
706 + "listPriceCents": 226000,
707 + "status": "avail",
708 + "sku": "P1-U719498-A11286395-T1",
709 + "image": "https://images.saatchiart.com/saatchi/719498/art/11286395/10348665-GGNSGFCL-7.jpg",
710 + "countryName": "united states",
711 + "uploadedAt": 1704322037
712 + },
713 + {
714 + "artworkId": "12881979",
715 + "url": "https://www.saatchiart.com/art/Painting-Sunset-over-the-winter-fields/735758/12881979/view",
716 + "title": "Sunset over the winter fields",
717 + "artistFirstName": "zoe",
718 + "artistLastName": "hattersley",
719 + "artistId": 735758,
720 + "category": "Painting",
721 + "mediums": [
722 + "acrylic"
723 + ],
724 + "materials": [
725 + "canvas"
726 + ],
727 + "styles": [
728 + "abstract",
729 + "contemporary",
730 + "modernism",
731 + "minimalism"
732 + ],
733 + "subject": "landscape",
734 + "widthCm": 30,
735 + "heightCm": 30,
736 + "depthCm": 2,
737 + "listPriceCents": 33200,
738 + "status": "avail",
739 + "sku": "P1-U735758-A12881979-T1",
740 + "image": "https://images.saatchiart.com/saatchi/735758/art/12881979/11944157-UOCJGHJY-7.jpg",
741 + "countryName": "united kingdom",
742 + "uploadedAt": 1749489578
743 + },
744 + {
745 + "artworkId": "13757373",
746 + "url": "https://www.saatchiart.com/art/Painting-Crystal-dream-IX/2047253/13757373/view",
747 + "title": "Crystal dream IX",
748 + "artistFirstName": "jonas",
749 + "artistLastName": "peres",
750 + "artistId": 2047253,
751 + "category": "Painting",
752 + "mediums": [
753 + "acrylic"
754 + ],
755 + "materials": [
756 + "fine art paper"
757 + ],
758 + "styles": [
759 + "abstract",
760 + "abstract expressionism",
761 + "color field painting",
762 + "contemporary",
763 + "minimalism"
764 + ],
765 + "subject": "abstract",
766 + "widthCm": 120,
767 + "heightCm": 160,
768 + "depthCm": 4,
769 + "listPriceCents": 2461000,
770 + "status": "avail",
771 + "sku": "P1-U2047253-A13757373-T1",
772 + "image": "https://images.saatchiart.com/saatchi/2047253/art/13757373/12819455-FGRFQOZW-7.jpg",
773 + "countryName": "spain",
774 + "uploadedAt": 1775566481
775 + },
776 + {
777 + "artworkId": "14120321",
778 + "url": "https://www.saatchiart.com/art/Painting-Lilac/3036431/14120321/view",
779 + "title": "Lilac",
780 + "artistFirstName": "natalia",
781 + "artistLastName": "shardakova",
782 + "artistId": 3036431,
783 + "category": "Painting",
784 + "mediums": [
785 + "acrylic"
786 + ],
787 + "materials": [
788 + "canvas"
789 + ],
790 + "styles": [
791 + "abstract expressionism",
792 + "contemporary"
793 + ],
794 + "subject": "abstract",
795 + "widthCm": 61,
796 + "heightCm": 61,
797 + "depthCm": 3.8,
798 + "listPriceCents": 69800,
799 + "status": "avail",
800 + "sku": "P1-U3036431-A14120321-T1",
801 + "image": "https://images.saatchiart.com/saatchi/3036431/art/14120321/13182329-PNDORAKO-7.jpg",
802 + "countryName": "united states",
803 + "uploadedAt": 1786040238
804 + }
805 + ]
806 + }
807 + },
808 + "expect": {
809 + "minCount": 20,
810 + "kinds": [
811 + "listing"
812 + ],
813 + "requiredFields": [
814 + "price",
815 + "currency",
816 + "attributes.brand"
817 + ]
818 + },
819 + "note": "Captured live from saatchiart.com __NEXT_DATA__",
820 + "capturedAt": "2026-09-07T06:24:05.741Z"
821 +}
\ No newline at end of file
added data/fixtures/scotch-whisky-auctions/auction-page-1.json +219 −0
@@ -0,0 +1,219 @@
1 +{
2 + "raw": {
3 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/",
4 + "externalId": "auction:231:page:1",
5 + "kind": "sale",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:20:09.607Z",
8 + "payload": {
9 + "kind": "lot_page",
10 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/",
11 + "auction": {
12 + "id": "231",
13 + "slug": "the-182nd-auction",
14 + "title": "The 182nd Auction",
15 + "endedOn": "2026-08-09T00:00:00.000Z",
16 + "lotCount": 4445,
17 + "ended": true
18 + },
19 + "page": 1,
20 + "totalPages": 223,
21 + "lots": [
22 + {
23 + "itemId": "891436",
24 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891436-a-highland-distillery-2006-15-year-old-error-502-bad-gateway-thompson-bros/",
25 + "title": "A Highland Distillery 2006 15 Year Old Error 502 Bad Gateway Thompson Bros",
26 + "lotNo": "182-03060",
27 + "soldText": "Sold for £80 in August 2026",
28 + "priceGbp": 80,
29 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/f66edd5df1a91183a5c05e5a135fce23-med.jpg"
30 + },
31 + {
32 + "itemId": "889289",
33 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889289-a-highland-distillery-2010-10-year-old-watt-whisky/",
34 + "title": "A Highland Distillery 2010 10 Year Old Watt Whisky",
35 + "lotNo": "182-00999",
36 + "soldText": "Sold for £50 in August 2026",
37 + "priceGbp": 50,
38 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/f03337514396ffe81bcf8190948dbdbe-med.jpg"
39 + },
40 + {
41 + "itemId": "889649",
42 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889649-a-highland-distillery-37-year-old-cadenheads/",
43 + "title": "A Highland Distillery 37 Year Old Cadenhead’s",
44 + "lotNo": "182-01343",
45 + "soldText": "Sold for £210 in August 2026",
46 + "priceGbp": 210,
47 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/6f171987f19f4a65a6db78c72a7f2424-med.jpg"
48 + },
49 + {
50 + "itemId": "890193",
51 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/890193-a-mystery-blend-1994-30-year-old-thompson-bros/",
52 + "title": "A Mystery Blend 1994 30 Year Old Thompson Bros",
53 + "lotNo": "182-01861",
54 + "soldText": "Sold for £90 in August 2026",
55 + "priceGbp": 90,
56 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/49a3452ecf6d4502add40e9346bf8bd1-med.jpg"
57 + },
58 + {
59 + "itemId": "891797",
60 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891797-a-secret-speyside-1997-24-year-old-thompson-bros/",
61 + "title": "A Secret Speyside 1997 24 Year Old Thompson Bros",
62 + "lotNo": "182-03417",
63 + "soldText": "Sold for £110 in August 2026",
64 + "priceGbp": 110,
65 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/b370a6a0597687e19af835e5af937962-med.jpg"
66 + },
67 + {
68 + "itemId": "892319",
69 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/892319-a-secret-speyside-2006-16-year-old-thompson-bros/",
70 + "title": "A Secret Speyside 2006 16 Year Old Thompson Bros",
71 + "lotNo": "182-03929",
72 + "soldText": "Sold for £60 in August 2026",
73 + "priceGbp": 60,
74 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/901c0d23ebf44fc845093c304c75fdd8-med.jpg"
75 + },
76 + {
77 + "itemId": "891495",
78 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891495-a-speyside-17-year-old-chorlton-whisky/",
79 + "title": "A Speyside 17 Year Old Chorlton Whisky",
80 + "lotNo": "182-03117",
81 + "soldText": "Sold for £75 in August 2026",
82 + "priceGbp": 75,
83 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/4e9270bf98b4c88e2a8cf6cd9b459aa1-med.jpg"
84 + },
85 + {
86 + "itemId": "891595",
87 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891595-a-speyside-distillery-2006-15-year-old-thompson-bros/",
88 + "title": "A Speyside Distillery 2006 15 Year Old Thompson Bros",
89 + "lotNo": "182-03216",
90 + "soldText": "Sold for £50 in August 2026",
91 + "priceGbp": 50,
92 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/ba03132820005bbe724e9c711694eb2e-med.jpg"
93 + },
94 + {
95 + "itemId": "893025",
96 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/893025-aberargie-inaugural-release/",
97 + "title": "Aberargie Inaugural Release",
98 + "lotNo": "182-04616",
99 + "soldText": "Sold for £75 in August 2026",
100 + "priceGbp": 75,
101 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/8a35689dd7313432c61161679d716b42-med.jpg"
102 + },
103 + {
104 + "itemId": "890692",
105 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/890692-aberfeldy-16-year-old/",
106 + "title": "Aberfeldy 16 Year Old",
107 + "lotNo": "182-02341",
108 + "soldText": "Sold for £45 in August 2026",
109 + "priceGbp": 45,
110 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/ade4e5e0727dc7be1a2774453552f5f1-med.jpg"
111 + },
112 + {
113 + "itemId": "890691",
114 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/890691-aberfeldy-18-year-old-red-wine-finish-2924/",
115 + "title": "Aberfeldy 18 Year Old Red Wine Finish #2924",
116 + "lotNo": "182-02340",
117 + "soldText": "Sold for £70 in August 2026",
118 + "priceGbp": 70,
119 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/65a1bf8a0e24aee545e16b3da45109d3-med.jpg"
120 + },
121 + {
122 + "itemId": "890919",
123 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/890919-aberfeldy-20-year-old-exceptional-cask-series/",
124 + "title": "Aberfeldy 20 Year Old Exceptional Cask Series",
125 + "lotNo": "182-02543",
126 + "soldText": "Sold for £120 in August 2026",
127 + "priceGbp": 120,
128 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/a25275f0b487e0cb9da2a469f7af4f96-med.jpg"
129 + },
130 + {
131 + "itemId": "888729",
132 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/888729-aberfeldy-21-year-old/",
133 + "title": "Aberfeldy 21 Year Old",
134 + "lotNo": "182-00449",
135 + "soldText": "Sold for £110 in August 2026",
136 + "priceGbp": 110,
137 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/3ecbb3058f23f4a031b1e9248c19a2e1-med.jpg"
138 + },
139 + {
140 + "itemId": "890700",
141 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/890700-aberfeldy-21-year-old-madeira-cask/",
142 + "title": "Aberfeldy 21 Year Old Madeira Cask",
143 + "lotNo": "182-02349",
144 + "soldText": "Sold for £95 in August 2026",
145 + "priceGbp": 95,
146 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/b463cec2a9b3f79d73921c9b88b950ac-med.jpg"
147 + },
148 + {
149 + "itemId": "888416",
150 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/888416-aberlour-10-year-old/",
151 + "title": "Aberlour 10 Year Old",
152 + "lotNo": "182-00172",
153 + "soldText": "Sold for £50 in August 2026",
154 + "priceGbp": 50,
155 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/e1896062f783f30cfc9844dd5b0876bf-med.jpg"
156 + },
157 + {
158 + "itemId": "889976",
159 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889976-aberlour-10-year-old/",
160 + "title": "Aberlour 10 Year Old",
161 + "lotNo": "182-01647",
162 + "soldText": "Sold for £60 in August 2026",
163 + "priceGbp": 60,
164 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/aec32e3643fdcccd7d12285f33b0936f-med.jpg"
165 + },
166 + {
167 + "itemId": "892133",
168 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/892133-aberlour-10-year-old-circa-1990s-75cl/",
169 + "title": "Aberlour 10 Year Old Circa 1990’s 75cl",
170 + "lotNo": "182-03744",
171 + "soldText": "Sold for £55 in August 2026",
172 + "priceGbp": 55,
173 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/a4330f065f43e5b69e05a958ff896846-med.jpg"
174 + },
175 + {
176 + "itemId": "890999",
177 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/890999-aberlour-11-year-old-oloroso-cask-distillery-exclusive/",
178 + "title": "Aberlour 11 Year Old Oloroso Cask Distillery Exclusive",
179 + "lotNo": "182-02623",
180 + "soldText": "Sold for £65 in August 2026",
181 + "priceGbp": 65,
182 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/493348571655eff6b3cde602b7fdd4f0-med.jpg"
183 + },
184 + {
185 + "itemId": "889018",
186 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889018-aberlour-12-year-old-double-cask-matured/",
187 + "title": "Aberlour 12 Year Old Double Cask Matured",
188 + "lotNo": "182-00728",
189 + "soldText": "Sold for £30 in August 2026",
190 + "priceGbp": 30,
191 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/4da9908314f847b377e8d1277d9dd2bc-med.jpg"
192 + },
193 + {
194 + "itemId": "891871",
195 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891871-aberlour-12-year-old-double-cask-matured/",
196 + "title": "Aberlour 12 Year Old Double Cask Matured",
197 + "lotNo": "182-03491",
198 + "soldText": "Sold for £35 in August 2026",
199 + "priceGbp": 35,
200 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/3a9971cd0d0a3ebfc83ba17b1bbaa210-med.jpg"
201 + }
202 + ]
203 + }
204 + },
205 + "expect": {
206 + "minCount": 10,
207 + "kinds": [
208 + "sale"
209 + ],
210 + "requiredFields": [
211 + "saleDate",
212 + "price",
213 + "currency",
214 + "attributes.brand"
215 + ]
216 + },
217 + "note": "Captured live from scotchwhiskyauctions.com (plain HTTPS)",
218 + "capturedAt": "2026-09-07T06:20:09.618Z"
219 +}
\ No newline at end of file
added data/fixtures/scotch-whisky-auctions/auction-page-2.json +219 −0
@@ -0,0 +1,219 @@
1 +{
2 + "raw": {
3 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/?page=2",
4 + "externalId": "auction:231:page:2",
5 + "kind": "sale",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:20:11.560Z",
8 + "payload": {
9 + "kind": "lot_page",
10 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/?page=2",
11 + "auction": {
12 + "id": "231",
13 + "slug": "the-182nd-auction",
14 + "title": "The 182nd Auction",
15 + "endedOn": "2026-08-09T00:00:00.000Z",
16 + "lotCount": 4445,
17 + "ended": true
18 + },
19 + "page": 2,
20 + "totalPages": 223,
21 + "lots": [
22 + {
23 + "itemId": "891872",
24 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891872-aberlour-12-year-old-double-cask-matured/",
25 + "title": "Aberlour 12 Year Old Double Cask Matured",
26 + "lotNo": "182-03492",
27 + "soldText": "Sold for £35 in August 2026",
28 + "priceGbp": 35,
29 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/5e2eb46fdab16283876f9ee392eceb18-med.jpg"
30 + },
31 + {
32 + "itemId": "892073",
33 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/892073-aberlour-13-year-old-oloroso-cask-distillery-exclusive/",
34 + "title": "Aberlour 13 Year Old Oloroso Cask Distillery Exclusive",
35 + "lotNo": "182-03684",
36 + "soldText": "Sold for £140 in August 2026",
37 + "priceGbp": 140,
38 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/52662528ec262d2a313e65923a0d0f0c-med.jpg"
39 + },
40 + {
41 + "itemId": "889637",
42 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889637-aberlour-16-year-old-distillery-reserve-collection-50cl/",
43 + "title": "Aberlour 16 Year Old Distillery Reserve Collection 50cl",
44 + "lotNo": "182-01331",
45 + "soldText": "Sold for £80 in August 2026",
46 + "priceGbp": 80,
47 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/e8dfe9e1ed4bfea50efca858b5f0a949-med.jpg"
48 + },
49 + {
50 + "itemId": "891870",
51 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891870-aberlour-16-year-old-double-cask-matured/",
52 + "title": "Aberlour 16 Year Old Double Cask Matured",
53 + "lotNo": "182-03490",
54 + "soldText": "Sold for £55 in August 2026",
55 + "priceGbp": 55,
56 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/fa3e8bb9f6fe0cba84028f7f4288fb40-med.jpg"
57 + },
58 + {
59 + "itemId": "890674",
60 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/890674-aberlour-16-year-old-double-cask-matured/",
61 + "title": "Aberlour 16 Year Old Double Cask Matured",
62 + "lotNo": "182-02324",
63 + "soldText": "Sold for £75 in August 2026",
64 + "priceGbp": 75,
65 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/4983918f868fee45e7c4acdef2d5496d-med.jpg"
66 + },
67 + {
68 + "itemId": "889825",
69 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889825-aberlour-18-year-old-double-sherry-cask-batch-04-75cl/",
70 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #04 75cl",
71 + "lotNo": "182-01508",
72 + "soldText": "Sold for £95 in August 2026",
73 + "priceGbp": 95,
74 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/15e773eef833b15a29e93140268608dd-med.jpg"
75 + },
76 + {
77 + "itemId": "889836",
78 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889836-aberlour-18-year-old-double-sherry-cask-batch-04-75cl/",
79 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #04 75cl",
80 + "lotNo": "182-01519",
81 + "soldText": "Sold for £95 in August 2026",
82 + "priceGbp": 95,
83 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/ea891e4aca6658ab27053dd1bcf64eda-med.jpg"
84 + },
85 + {
86 + "itemId": "889488",
87 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889488-aberlour-18-year-old-double-sherry-cask-batch-06/",
88 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #06",
89 + "lotNo": "182-01186",
90 + "soldText": "Sold for £80 in August 2026",
91 + "priceGbp": 80,
92 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/f6712d6968c03397785378d7016a2d17-med.jpg"
93 + },
94 + {
95 + "itemId": "891874",
96 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891874-aberlour-18-year-old-double-sherry-cask-batch-06/",
97 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #06",
98 + "lotNo": "182-03494",
99 + "soldText": "Sold for £80 in August 2026",
100 + "priceGbp": 80,
101 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/8249cdd51838a1b9b20414b89c41708e-med.jpg"
102 + },
103 + {
104 + "itemId": "891758",
105 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891758-aberlour-18-year-old-double-sherry-cask-batch-06/",
106 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #06",
107 + "lotNo": "182-03379",
108 + "soldText": "Sold for £80 in August 2026",
109 + "priceGbp": 80,
110 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/57b232c9076fbf576e94f6f2374b7b15-med.jpg"
111 + },
112 + {
113 + "itemId": "889491",
114 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889491-aberlour-18-year-old-double-sherry-cask-batch-06/",
115 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #06",
116 + "lotNo": "182-01189",
117 + "soldText": "Sold for £80 in August 2026",
118 + "priceGbp": 80,
119 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/850bdf83c2008e4729a083e36acbb372-med.jpg"
120 + },
121 + {
122 + "itemId": "889485",
123 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889485-aberlour-18-year-old-double-sherry-cask-batch-06/",
124 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #06",
125 + "lotNo": "182-01183",
126 + "soldText": "Sold for £80 in August 2026",
127 + "priceGbp": 80,
128 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/bdb93fb51d4a780dd904a7b24fe0ef21-med.jpg"
129 + },
130 + {
131 + "itemId": "889487",
132 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889487-aberlour-18-year-old-double-sherry-cask-batch-06/",
133 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #06",
134 + "lotNo": "182-01185",
135 + "soldText": "Sold for £85 in August 2026",
136 + "priceGbp": 85,
137 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/070e50167605ba7e50999a6396fa3def-med.jpg"
138 + },
139 + {
140 + "itemId": "889489",
141 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889489-aberlour-18-year-old-double-sherry-cask-batch-06/",
142 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #06",
143 + "lotNo": "182-01187",
144 + "soldText": "Sold for £85 in August 2026",
145 + "priceGbp": 85,
146 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/1edadb12281cb9bcf86177e3b21397d4-med.jpg"
147 + },
148 + {
149 + "itemId": "891873",
150 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891873-aberlour-18-year-old-double-sherry-cask-batch-06/",
151 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #06",
152 + "lotNo": "182-03493",
153 + "soldText": "Sold for £85 in August 2026",
154 + "priceGbp": 85,
155 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/10a289420b7e84496293303af2d77ed2-med.jpg"
156 + },
157 + {
158 + "itemId": "891875",
159 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/891875-aberlour-18-year-old-double-sherry-cask-batch-07/",
160 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #07",
161 + "lotNo": "182-03495",
162 + "soldText": "Sold for £85 in August 2026",
163 + "priceGbp": 85,
164 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/83aa343ec2da7b840c7d68002333cce5-med.jpg"
165 + },
166 + {
167 + "itemId": "889493",
168 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889493-aberlour-18-year-old-double-sherry-cask-batch-07/",
169 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #07",
170 + "lotNo": "182-01191",
171 + "soldText": "Sold for £85 in August 2026",
172 + "priceGbp": 85,
173 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/f4c440cbe1c98524de0137ab5033af2b-med.jpg"
174 + },
175 + {
176 + "itemId": "889490",
177 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889490-aberlour-18-year-old-double-sherry-cask-batch-07/",
178 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #07",
179 + "lotNo": "182-01188",
180 + "soldText": "Sold for £85 in August 2026",
181 + "priceGbp": 85,
182 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/7d40ba23a6c35bc8bfd2fc0d1c86b65a-med.jpg"
183 + },
184 + {
185 + "itemId": "889492",
186 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889492-aberlour-18-year-old-double-sherry-cask-batch-07/",
187 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #07",
188 + "lotNo": "182-01190",
189 + "soldText": "Sold for £85 in August 2026",
190 + "priceGbp": 85,
191 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/8480e64bff2551c041429c5695232b41-med.jpg"
192 + },
193 + {
194 + "itemId": "889486",
195 + "url": "https://www.scotchwhiskyauctions.com/auctions/231-the-182nd-auction/889486-aberlour-18-year-old-double-sherry-cask-batch-07/",
196 + "title": "Aberlour 18 Year Old Double Sherry Cask Batch #07",
197 + "lotNo": "182-01184",
198 + "soldText": "Sold for £85 in August 2026",
199 + "priceGbp": 85,
200 + "image": "https://d3suvtcq00dftb.cloudfront.net/images/b650846e68454ddc14617f7e1e05d6ef-med.jpg"
201 + }
202 + ]
203 + }
204 + },
205 + "expect": {
206 + "minCount": 10,
207 + "kinds": [
208 + "sale"
209 + ],
210 + "requiredFields": [
211 + "saleDate",
212 + "price",
213 + "currency",
214 + "attributes.brand"
215 + ]
216 + },
217 + "note": "Captured live from scotchwhiskyauctions.com (plain HTTPS)",
218 + "capturedAt": "2026-09-07T06:20:11.570Z"
219 +}
\ No newline at end of file
added data/fixtures/winebid/item-10887719.json +78 −0
@@ -0,0 +1,78 @@
1 +{
2 + "raw": {
3 + "url": "https://www.winebid.com/BuyWine/Item/10887719/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
4 + "externalId": "item:10887719",
5 + "kind": "sale",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:28:32.401Z",
8 + "payload": {
9 + "kind": "item_page",
10 + "url": "https://www.winebid.com/BuyWine/Item/10887719/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
11 + "itemId": "10887719",
12 + "title": "2019 Château Haut-Brion, Château Lafite-Rothschild, Château Margaux, Château Mouton Rothschild",
13 + "category": "Bordeaux",
14 + "condition": null,
15 + "currentBid": null,
16 + "estimate": null,
17 + "ended": false,
18 + "image": "https://www.winebid.com/BlogPhoto/20200317090006.png",
19 + "recentSales": [
20 + {
21 + "itemId": "10854183",
22 + "url": "https://www.winebid.com/BuyWine/Item/10854183/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
23 + "quantity": 1,
24 + "amountUsd": 2585,
25 + "soldOn": "August 16, 2026 12:00:00 AM (PDT)"
26 + },
27 + {
28 + "itemId": "10807246",
29 + "url": "https://www.winebid.com/BuyWine/Item/10807246/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
30 + "quantity": 1,
31 + "amountUsd": 2790,
32 + "soldOn": "July 12, 2026 12:00:00 AM (PDT)"
33 + },
34 + {
35 + "itemId": "10751899",
36 + "url": "https://www.winebid.com/BuyWine/Item/10751899/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
37 + "quantity": 1,
38 + "amountUsd": 2485,
39 + "soldOn": "May 24, 2026 12:00:00 AM (PDT)"
40 + },
41 + {
42 + "itemId": "10728809",
43 + "url": "https://www.winebid.com/BuyWine/Item/10728809/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
44 + "quantity": 1,
45 + "amountUsd": 2485,
46 + "soldOn": "May 3, 2026 12:00:00 AM (PDT)"
47 + },
48 + {
49 + "itemId": "10688070",
50 + "url": "https://www.winebid.com/BuyWine/Item/10688070/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
51 + "quantity": 1,
52 + "amountUsd": 2380,
53 + "soldOn": "April 5, 2026 12:00:00 AM (PDT)"
54 + },
55 + {
56 + "itemId": "10688069",
57 + "url": "https://www.winebid.com/BuyWine/Item/10688069/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
58 + "quantity": 1,
59 + "amountUsd": 2480,
60 + "soldOn": "April 5, 2026 12:00:00 AM (PDT)"
61 + }
62 + ]
63 + }
64 + },
65 + "expect": {
66 + "minCount": 2,
67 + "kinds": [
68 + "sale",
69 + "listing"
70 + ],
71 + "requiredFields": [
72 + "rawTitle",
73 + "attributes.name"
74 + ]
75 + },
76 + "note": "Captured live from winebid.com item page (plain HTTPS)",
77 + "capturedAt": "2026-09-07T06:28:32.420Z"
78 +}
\ No newline at end of file
added data/fixtures/winebid/item-10887720.json +78 −0
@@ -0,0 +1,78 @@
1 +{
2 + "raw": {
3 + "url": "https://www.winebid.com/BuyWine/Item/10887720/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
4 + "externalId": "item:10887720",
5 + "kind": "sale",
6 + "engine": "api",
7 + "fetchedAt": "2026-09-07T06:28:30.481Z",
8 + "payload": {
9 + "kind": "item_page",
10 + "url": "https://www.winebid.com/BuyWine/Item/10887720/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
11 + "itemId": "10887720",
12 + "title": "2019 Château Haut-Brion, Château Lafite-Rothschild, Château Margaux, Château Mouton Rothschild",
13 + "category": "Bordeaux",
14 + "condition": null,
15 + "currentBid": null,
16 + "estimate": null,
17 + "ended": false,
18 + "image": "https://www.winebid.com/BlogPhoto/20200317090006.png",
19 + "recentSales": [
20 + {
21 + "itemId": "10854183",
22 + "url": "https://www.winebid.com/BuyWine/Item/10854183/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
23 + "quantity": 1,
24 + "amountUsd": 2585,
25 + "soldOn": "August 16, 2026 12:00:00 AM (PDT)"
26 + },
27 + {
28 + "itemId": "10807246",
29 + "url": "https://www.winebid.com/BuyWine/Item/10807246/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
30 + "quantity": 1,
31 + "amountUsd": 2790,
32 + "soldOn": "July 12, 2026 12:00:00 AM (PDT)"
33 + },
34 + {
35 + "itemId": "10751899",
36 + "url": "https://www.winebid.com/BuyWine/Item/10751899/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
37 + "quantity": 1,
38 + "amountUsd": 2485,
39 + "soldOn": "May 24, 2026 12:00:00 AM (PDT)"
40 + },
41 + {
42 + "itemId": "10728809",
43 + "url": "https://www.winebid.com/BuyWine/Item/10728809/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
44 + "quantity": 1,
45 + "amountUsd": 2485,
46 + "soldOn": "May 3, 2026 12:00:00 AM (PDT)"
47 + },
48 + {
49 + "itemId": "10688070",
50 + "url": "https://www.winebid.com/BuyWine/Item/10688070/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
51 + "quantity": 1,
52 + "amountUsd": 2380,
53 + "soldOn": "April 5, 2026 12:00:00 AM (PDT)"
54 + },
55 + {
56 + "itemId": "10688069",
57 + "url": "https://www.winebid.com/BuyWine/Item/10688069/2019-Chateau-Haut-Brion-Chateau-Lafite-Rothschild-~",
58 + "quantity": 1,
59 + "amountUsd": 2480,
60 + "soldOn": "April 5, 2026 12:00:00 AM (PDT)"
61 + }
62 + ]
63 + }
64 + },
65 + "expect": {
66 + "minCount": 2,
67 + "kinds": [
68 + "sale",
69 + "listing"
70 + ],
71 + "requiredFields": [
72 + "rawTitle",
73 + "attributes.name"
74 + ]
75 + },
76 + "note": "Captured live from winebid.com item page (plain HTTPS)",
77 + "capturedAt": "2026-09-07T06:28:30.521Z"
78 +}
\ No newline at end of file
79