# numisbids — NumisBids prices realized Aggregator of numismatic auction catalogues (≈ 370 houses: CNG, Leu, Künker partners, Noonans, Heritage world coins, cgb.fr, …) with hammer prices for closed sales. - **Engine**: Firecrawl (Cloudflare 403 on plain HTTPS), Scrapfly fallback. 1 credit per page; a category page carries 100 lots. - **Flow**: `/results` → sales with a "Prices realized" link (sale id) → `/sale/` (firm, auction title, closing date, categories) → `/sale//category/?pg=N` → one raw record per page. - **Records**: `sale` per sold lot — hammer price in the printed currency (`buyerPremiumIncluded=false`, NumisBids: "Buyer's premium is not included"), sale date = closing date, estimate / firm / section in `attributes.metadata`, `identifiers.numisbids_lot = /`, grade parsed from the description (PCGS/NGC/PMG…), `isBundle` for large lots. - **Cursor**: `{ doneSales, inProgress: { sid, categories, catIndex, page }, minSeenSid, backfillSid, done }`. Backfill walks sale ids downwards to 1 (2013). - **Config**: `salesPerRun`, `pagesPerRun`, `skipSections` (literature, antiquities). - **Smoke**: `set -a; . ./.env; set +a; pnpm tsx connectors/firecrawl/numisbids/_smoke.ts 2`