TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1# doyle — Doyle (New York) auction results23- **Source**: https://www.doyle.com — `/past-auctions/` (closed sales with date) → `/auction/search/?au=<id>&pp=96&pn=N&g=1` (server-rendered result cards).4- **Engine**: `api` (plain HTTPS, honest UA, 10 s crawl-delay per robots.txt). 0 credits.5- **Records**: `sale` — price = "Sold for $X" (USD, buyer's premium included per the lot pages), saleDate = sale date from the calendar, lot number, estimate in metadata, `identifiers.doyle_lot_id`.6- **Categories**: sale name → department hint, refined by title keywords (`doyleCategory`). Unmapped lots are skipped.7- **Cursor**: `{ doneAuctions: string[] }`; backfill walks the calendar oldest→newest and reports progress; `done: true` when every listed sale is processed.8- **Smoke**: `set -a; . ./.env; set +a; pnpm tsx connectors/api/_g7-auctions-na-lib/smoke.ts api/doyle --capture results --limit 2`9