A simple, focused JSON API that scrapes every item from every auction across all pages on quarterpriceauction.com.
├── backend/
│ ├── index.ts # Main HTTP endpoint
│ └── scrapers/
│ ├── mainScraper.ts # Main orchestration logic
│ ├── auctionDiscovery.ts # Finds all auction URLs
│ ├── auctionScraper.ts # Scrapes individual auctions
│ ├── paginationDetector.ts # Detects page count per auction
│ └── itemExtractor.ts # Extracts item data from HTML/REDUX
├── shared/
│ └── types.ts # TypeScript interfaces
└── index.ts # Entry point
GET / - Returns ALL items from ALL auctions (JSON format)GET /csv - Returns ALL items from ALL auctions (CSV format with download)GET /health - Health check endpointGET /info - API information and available endpointsGET /fresh - Force fresh scrape (no cache)GET /metadata - Get metadata and sample items onlyReturns all items from all auctions:
{ "timestamp": "2025-08-16T18:25:00.000Z", "totalItems": 450, "totalAuctions": 6, "items": [ { "title": "Google Pixel 9a with Gemini - Unlocked Android Smartphone...", "auctionTitle": "August 22 Auction - Quarter Price", "auctionUrl": "https://www.quarterpriceauction.com/auctions/30135-august-22-auction", "itemUrl": "https://www.quarterpriceauction.com/auctions/30135/lot/291744-google-pixel...", "imageUrl": "https://d3j17a2r8lnfte.cloudfront.net/qrt/2025/8/medium/DG6mWsSZbO4GZPZh7Trv5Fza.jpeg", "lotNumber": "291744", "currentBid": "$45.00", "startingBid": "$1.00", "bidCount": 12, "timeLeft": "2d 4h 15m", "category": "Electronics" } ], "metadata": { "reduxDataFound": true, "auctionUrlsFound": 6, "scrapedAuctions": 6, "totalPagesScraped": 45, "processingTimeMs": 180000 } }
Returns the same data as a downloadable CSV file with headers:
Title,Auction,Lot Number,Current Bid,Starting Bid,Bid Count,Time Left,Category,Auction URL,Item URL,Image URL,Description "Google Pixel 9a with Gemini - Unlocked Android Smartphone...","August 22 Auction - Quarter Price","291744","$45.00","$1.00","12","2d 4h 15m","Electronics","https://www.quarterpriceauction.com/auctions/30135-august-22-auction","https://www.quarterpriceauction.com/auctions/30135/lot/291744-google-pixel...","https://d3j17a2r8lnfte.cloudfront.net/qrt/2025/8/medium/DG6mWsSZbO4GZPZh7Trv5Fza.jpeg",""
text/csvquarter-price-auction-items-YYYY-MM-DD.csvwindow.__APOLLO_STATE__ for most detailed datawindow.REDUX_DATA extractiontitle - Full item name/descriptionauctionTitle - Which auction the item belongs toauctionUrl - Link to the auction pageitemUrl - Direct link to the individual item/lotimageUrl - Product image from CDNlotNumber - Auction lot numbercurrentBid - Current highest bid amountstartingBid - Starting bid amountbidCount - Number of bids placedtimeLeft - Time remaining in auctioncategory - Item categoryGoal: Simple JSON list of every item across all auctions with metadata.
Status: ✅ Accomplished - Clean, organized, focused implementation.