1{2 "version": "1.0",3 "connectors": [4 {5 "id": "amiami",6 "displayName": "AmiAmi (figures & hobby — new + pre-owned, JPY)",7 "sourceId": "amiami",8 "sourceName": "AmiAmi",9 "sourceType": "marketplace",10 "sourceUrl": "https://www.amiami.com",11 "module": "scrapfly/amiami",12 "enginePriority": [13 "scrapfly"14 ],15 "categories": [16 "action_figures",17 "gundam",18 "plush",19 "designer_toys"20 ],21 "regions": [22 "JP"23 ],24 "languages": [25 "en",26 "ja"27 ],28 "currency": [29 "JPY"30 ],31 "supportsListings": true,32 "supportsSold": false,33 "supportsAuctions": false,34 "supportsImages": true,35 "supportsCatalog": true,36 "supportsPopulation": false,37 "supportsLookup": true,38 "refreshFrequencyMinutes": 720,39 "priority": "medium",40 "trustScore": 0.8,41 "attributionRequired": true,42 "termsUrl": "https://www.amiami.com/eng/guide/",43 "accessNotes": "Reads the public JSON API that AmiAmi's own storefront calls (api.amiami.com/api/v1.0/items with the storefront's X-User-Key header, no account or login). Plain requests from data-centre IPs get a Cloudflare 'Attention Required' page, so the request is routed through Scrapfly (asp, no JS, country jp; 1 credit per 50-item page). Data: item code, JAN, maker, release date, list price (tax-in), current sell price (pre-owned range min/max or new price), stock and pre-owned flags — all JPY. Emits catalog items + fixed-price listings; pre-owned condition comes from the storefront's ITEM/BOX grades when present in the title. No purchase, cart or account endpoints are touched.",44 "enabled": true,45 "schemaVersion": "1.0",46 "config": {47 "seeds": [48 {49 "params": "s_cate_tag=14&s_st_condition_flg=1",50 "categorySlug": "action_figures",51 "label": "Figures — pre-owned"52 },53 {54 "params": "s_cate_tag=14&s_st_condition_flg=0",55 "categorySlug": "action_figures",56 "label": "Figures — new"57 },58 {59 "params": "s_keywords=Gundam&s_st_condition_flg=1",60 "categorySlug": "gundam",61 "label": "Gundam — pre-owned"62 },63 {64 "params": "s_keywords=Nendoroid",65 "categorySlug": "action_figures",66 "label": "Nendoroid"67 }68 ],69 "pagesPerSeed": 2,70 "pageSize": 5071 }72 },73 {74 "id": "antiquorum",75 "displayName": "Antiquorum (watch auction results & upcoming lots)",76 "sourceId": "antiquorum",77 "sourceName": "Antiquorum",78 "sourceType": "auction_house",79 "sourceUrl": "https://catalog.antiquorum.swiss",80 "module": "api/antiquorum",81 "enginePriority": [82 "api",83 "firecrawl"84 ],85 "categories": [86 "watches",87 "rolex",88 "patek_philippe",89 "audemars_piguet",90 "omega",91 "other_watches",92 "jewelry"93 ],94 "regions": [95 "CH",96 "HK",97 "MC"98 ],99 "languages": [100 "en"101 ],102 "currency": [103 "CHF",104 "HKD",105 "EUR",106 "USD"107 ],108 "supportsListings": false,109 "supportsSold": true,110 "supportsAuctions": true,111 "supportsImages": true,112 "supportsCatalog": false,113 "supportsPopulation": false,114 "supportsLookup": true,115 "refreshFrequencyMinutes": 1440,116 "priority": "high",117 "trustScore": 0.9,118 "attributionRequired": true,119 "termsUrl": "https://www.antiquorum.swiss/conditions-of-sale/",120 "accessNotes": "Public auction catalogue (catalog.antiquorum.swiss/en → /en/auctions/<slug>/lots?page=N) fetched over plain HTTPS with the RareIndex user agent; robots.txt only disallows /wp-admin/. Each lot carries schema.org RDFa (name, sku, brand, price, currency, image) and a spec table (Brand, Model, Reference, Year, Material). Sold lots show 'Sold: <CCY> <amount>' which Antiquorum's own price lists confirm is hammer + buyer's premium (e.g. lot 387-1: hammer 230,000 → sold 287,500 HKD), so buyerPremiumIncluded=true. Sale date = the auction date on the catalogue home. Unsold/upcoming lots become auction lots with estimates. 2 s between pages.",121 "enabled": true,122 "schemaVersion": "1.0",123 "config": {124 "auctionsPerRun": 3,125 "maxPagesPerAuction": 25126 }127 },128 {129 "id": "apmex",130 "displayName": "APMEX (coins & bullion dealer, USD asks)",131 "sourceId": "apmex",132 "sourceName": "APMEX",133 "sourceType": "dealer",134 "sourceUrl": "https://www.apmex.com",135 "module": "firecrawl/apmex",136 "enginePriority": [137 "firecrawl",138 "scrapfly"139 ],140 "categories": [141 "coins"142 ],143 "regions": [144 "US"145 ],146 "languages": [147 "en"148 ],149 "currency": [150 "USD"151 ],152 "supportsListings": true,153 "supportsSold": false,154 "supportsAuctions": false,155 "supportsImages": true,156 "supportsCatalog": true,157 "supportsPopulation": false,158 "supportsLookup": false,159 "refreshFrequencyMinutes": 1440,160 "priority": "low",161 "trustScore": 0.85,162 "attributionRequired": true,163 "termsUrl": "https://www.apmex.com/terms-and-conditions",164 "accessNotes": "Public category grids (apmex.com/category/<id>/<slug>) of one of the largest US coin dealers; robots.txt disallows /catalog/, /cart/, /account/, /spotprice/ etc., none of which are used. Plain HTTPS gets an Akamai 403 for non-browser clients, so pages are fetched with Firecrawl (1 credit per ~80-product page). Parsed per product card: APMEX product id, title, 'As Low As' price (USD, cash/wire tier), stock message, image. Year, mint mark, grade and grading service (PCGS/NGC/ANACS/CAC) are parsed from the title; graded coins become grader/grade variants, raw/BU coins stay raw. Emits catalog items + dealer fixed-price listings (asks, not transactions).",165 "enabled": true,166 "schemaVersion": "1.0",167 "config": {168 "seeds": [169 {170 "url": "https://www.apmex.com/category/11903/10-liberty-eagle-coins-1795-1907",171 "series": "$10 Liberty Gold Eagle",172 "country": "US"173 },174 {175 "url": "https://www.apmex.com/category/11904/20-liberty-double-eagle-coins-1849-1907",176 "series": "$20 Liberty Double Eagle",177 "country": "US"178 },179 {180 "url": "https://www.apmex.com/category/11905/20-saint-gaudens-double-eagle-coins-1907-1933",181 "series": "$20 Saint-Gaudens Double Eagle",182 "country": "US"183 },184 {185 "url": "https://www.apmex.com/category/25310/morgan-dollars-1878-1921",186 "series": "Morgan Dollar",187 "country": "US"188 },189 {190 "url": "https://www.apmex.com/category/25320/peace-dollars-1921-1935",191 "series": "Peace Dollar",192 "country": "US"193 },194 {195 "url": "https://www.apmex.com/category/11440/american-gold-eagles",196 "series": "American Gold Eagle",197 "country": "US"198 }199 ],200 "pagesPerSeed": 1201 }202 },203 {204 "id": "artcurial",205 "displayName": "Artcurial (sale results)",206 "sourceId": "artcurial",207 "sourceName": "Artcurial",208 "sourceType": "auction_house",209 "sourceUrl": "https://www.artcurial.com",210 "module": "firecrawl/artcurial",211 "enginePriority": [212 "firecrawl",213 "scrapfly"214 ],215 "categories": [216 "art",217 "contemporary_art",218 "photography",219 "design_furniture",220 "jewelry",221 "other_watches",222 "luxury_handbags",223 "wine",224 "comics",225 "books",226 "automobiles",227 "automotive_memorabilia",228 "antiques"229 ],230 "regions": [231 "FR",232 "MC"233 ],234 "languages": [235 "en",236 "fr"237 ],238 "currency": [239 "EUR"240 ],241 "supportsListings": false,242 "supportsSold": true,243 "supportsAuctions": true,244 "supportsImages": true,245 "supportsCatalog": false,246 "supportsPopulation": false,247 "supportsLookup": false,248 "refreshFrequencyMinutes": 1440,249 "priority": "medium",250 "trustScore": 0.9,251 "attributionRequired": true,252 "termsUrl": "https://www.artcurial.com/en/conditions-of-sale",253 "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.",254 "enabled": true,255 "schemaVersion": "1.0",256 "config": {257 "resultsUrl": "https://www.artcurial.com/en/results-auctions-sales",258 "salesPerRun": 3259 }260 },261 {262 "id": "aucfree",263 "displayName": "aucfree (Yahoo! Auctions Japan closed lots)",264 "sourceId": "aucfree",265 "sourceName": "aucfree — オークフリー",266 "sourceType": "analytics_provider",267 "sourceUrl": "https://aucfree.com",268 "module": "firecrawl/aucfree",269 "enginePriority": [270 "firecrawl",271 "scrapfly"272 ],273 "categories": [274 "pokemon",275 "yugioh",276 "one_piece_card_game",277 "gundam",278 "action_figures",279 "nintendo_games",280 "designer_toys"281 ],282 "regions": [283 "JP"284 ],285 "languages": [286 "ja"287 ],288 "currency": [289 "JPY"290 ],291 "supportsListings": false,292 "supportsSold": true,293 "supportsAuctions": true,294 "supportsImages": true,295 "supportsCatalog": false,296 "supportsPopulation": false,297 "supportsLookup": false,298 "refreshFrequencyMinutes": 720,299 "priority": "medium",300 "trustScore": 0.75,301 "attributionRequired": true,302 "termsUrl": "https://aucfree.com/about",303 "accessNotes": "aucfree.com publishes closed Yahoo! Auctions Japan lots (end price, bid count, end date) free of charge; no robots.txt is served (404) so no path is disallowed. Plain HTTPS returns 403 to non-browser clients, so pages are fetched through Firecrawl (1 credit per search page of 50 lots ≈ 0.02 credit/sale) with Scrapfly as fallback. Search pages per keyword seed (`/search?o=t2&q=<kw>&p=N`, sorted by end date). Prices are JPY hammer prices without buyer premium; dates are the lot end dates (Japanese '2026年9月6日' format). Identification is title-only (Japanese titles) → confidence 0.7; PSA/BGS grades parsed from the title. Only market data is stored; item pages, seller and bidder data are not fetched.",304 "enabled": true,305 "schemaVersion": "1.0",306 "config": {307 "seeds": [308 {309 "q": "ポケモンカード PSA10",310 "category": "pokemon",311 "language": "Japanese"312 },313 {314 "q": "ポケモンカード 旧裏 PSA",315 "category": "pokemon",316 "language": "Japanese"317 },318 {319 "q": "遊戯王 PSA10",320 "category": "yugioh",321 "language": "Japanese"322 },323 {324 "q": "ワンピースカード PSA10",325 "category": "one_piece_card_game",326 "language": "Japanese"327 },328 {329 "q": "ガンプラ MG 未組立",330 "category": "gundam",331 "language": null332 },333 {334 "q": "figma 新品",335 "category": "action_figures",336 "language": null337 },338 {339 "q": "ファミコン 未開封",340 "category": "nintendo_games",341 "language": null342 },343 {344 "q": "BE@RBRICK 1000%",345 "category": "designer_toys",346 "language": null347 }348 ],349 "pagesPerSeed": 2350 }351 },352 {353 "id": "bobs-watches",354 "displayName": "Bob's Watches (pre-owned Rolex listings)",355 "sourceId": "bobs-watches",356 "sourceName": "Bob's Watches",357 "sourceType": "dealer",358 "sourceUrl": "https://www.bobswatches.com",359 "module": "api/bobs-watches",360 "enginePriority": [361 "api",362 "firecrawl"363 ],364 "categories": [365 "rolex",366 "watches",367 "other_watches"368 ],369 "regions": [370 "US"371 ],372 "languages": [373 "en"374 ],375 "currency": [376 "USD"377 ],378 "supportsListings": true,379 "supportsSold": false,380 "supportsAuctions": false,381 "supportsImages": true,382 "supportsCatalog": false,383 "supportsPopulation": false,384 "supportsLookup": true,385 "refreshFrequencyMinutes": 720,386 "priority": "medium",387 "trustScore": 0.8,388 "attributionRequired": true,389 "termsUrl": "https://www.bobswatches.com/terms-and-conditions",390 "accessNotes": "Public model-family pages (bobswatches.com/rolex-<model>) fetched over plain HTTPS with the RareIndex user agent; robots.txt allows them (sort/query/search URLs are disallowed and never used). Each page embeds schema.org Product JSON-LD per watch (name, mpn = reference, sku = stock id, colour/material, USD price, availability). Listings only; Bob's does not publish realised prices. 1.5 s between pages.",391 "enabled": true,392 "schemaVersion": "1.0",393 "config": {394 "seeds": [395 "rolex-submariner",396 "rolex-daytona",397 "rolex-gmt-master-ii",398 "rolex-datejust",399 "rolex-day-date",400 "rolex-explorer",401 "rolex-sea-dweller",402 "rolex-yacht-master",403 "rolex-oyster-perpetual",404 "rolex-sky-dweller",405 "rolex-milgauss",406 "rolex-air-king",407 "vintage-rolex",408 "used-rolex-watches"409 ]410 }411 },412 {413 "id": "bonhams",414 "displayName": "Bonhams (auction results & upcoming lots)",415 "sourceId": "bonhams",416 "sourceName": "Bonhams",417 "sourceType": "auction_house",418 "sourceUrl": "https://www.bonhams.com",419 "module": "api/bonhams",420 "enginePriority": [421 "api"422 ],423 "categories": [424 "rolex",425 "patek_philippe",426 "audemars_piguet",427 "omega",428 "other_watches",429 "wine",430 "whisky",431 "coins",432 "banknotes",433 "medals",434 "automobiles",435 "motorcycles",436 "automotive_memorabilia",437 "luxury_handbags",438 "fashion_streetwear",439 "jewelry",440 "movie_memorabilia",441 "music_memorabilia",442 "musical_instruments",443 "movie_posters",444 "vintage_toys",445 "sports_memorabilia",446 "books",447 "maps",448 "photography",449 "art",450 "contemporary_art",451 "clocks",452 "silver",453 "glass_crystal",454 "porcelain",455 "scientific_instruments",456 "stamps",457 "fossils",458 "minerals",459 "meteorites",460 "militaria",461 "design_furniture",462 "antiques"463 ],464 "regions": [465 "GB",466 "US",467 "HK",468 "FR",469 "AU"470 ],471 "languages": [472 "en"473 ],474 "currency": [475 "GBP",476 "USD",477 "HKD",478 "EUR",479 "AUD",480 "CHF"481 ],482 "supportsListings": false,483 "supportsSold": true,484 "supportsAuctions": true,485 "supportsImages": true,486 "supportsCatalog": false,487 "supportsPopulation": false,488 "supportsLookup": true,489 "refreshFrequencyMinutes": 360,490 "priority": "high",491 "trustScore": 0.9,492 "attributionRequired": true,493 "termsUrl": "https://www.bonhams.com/legals/terms-of-use/",494 "accessNotes": "Plain HTTPS (no rendering, no credits). Public results listing https://www.bonhams.com/auctions/results/?page=N and upcoming listing /auctions/upcoming/ are server-rendered Next.js pages whose __NEXT_DATA__ carries 24 auctions per page (11k+ past auctions); each auction page /auction/<id>/<slug>/?page=N carries 48 lots per page with estimates, hammer price, price including buyer's premium (hammerPremium), status, currency, department and end date. bonhams.com/robots.txt only disallows /ldc/, /vms-assets/, */aggregate$ and */head_image* — none used. Prices: we store hammerPremium (hammer + buyer's premium as published by Bonhams) as the sale price with buyerPremiumIncluded=true and keep the hammer price in metadata. Sale date = the lot's hammerTime / auction end date from the source. Departments outside the configured whitelist are skipped, not guessed.",495 "enabled": true,496 "schemaVersion": "1.0",497 "config": {498 "departments": [499 "Watches",500 "Wine",501 "Whisky",502 "Coins, Medals and Banknotes",503 "Cars",504 "Motorcycles",505 "Automobilia",506 "Designer Handbags & Fashion",507 "Jewellery",508 "Popular Culture",509 "Sporting Memorabilia",510 "Books & Manuscripts",511 "Photographs",512 "Prints & Multiples",513 "Post-War and Contemporary Art",514 "Clocks",515 "Silver",516 "Glass",517 "Scientific Instruments",518 "Stamps, Covers & Postal History",519 "Natural History",520 "Arms and Armour",521 "Modern Decorative Art & Design",522 "Impressionist and Modern Art",523 "Modern British & Irish Art",524 "European Ceramics",525 "British Ceramics",526 "Travel & Exploration",527 "Home and Interiors"528 ],529 "maxResultsPages": 20,530 "maxAuctionsPerRun": 40,531 "upcomingAuctionsPerRun": 12,532 "lotsPerPage": 48533 }534 },535 {536 "id": "brickeconomy",537 "displayName": "BrickEconomy",538 "sourceId": "brickeconomy",539 "sourceName": "BrickEconomy",540 "sourceType": "pricing_guide",541 "sourceUrl": "https://www.brickeconomy.com",542 "module": "firecrawl/brickeconomy",543 "enginePriority": [544 "firecrawl",545 "scrapfly"546 ],547 "categories": [548 "lego",549 "lego_sets"550 ],551 "regions": [552 "US"553 ],554 "languages": [555 "en"556 ],557 "currency": [558 "USD"559 ],560 "supportsListings": false,561 "supportsSold": false,562 "supportsAuctions": false,563 "supportsImages": true,564 "supportsCatalog": true,565 "supportsPopulation": false,566 "supportsLookup": true,567 "refreshFrequencyMinutes": 4320,568 "priority": "medium",569 "trustScore": 0.65,570 "attributionRequired": true,571 "termsUrl": "https://www.brickeconomy.com/legal-terms",572 "accessNotes": "Public set pages fetched through Firecrawl (markdown; ~1 credit/page). robots.txt allows all crawlers (explicitly including AI bots). Plain HTTPS returns 403 for non-browser agents, so Firecrawl is the primary engine and Scrapfly the fallback. We capture set facts (number, name, theme, subtheme, year, release/retire dates, pieces, minifigs), retail price, and BrickEconomy's estimated New/Sealed and Used values as guide observations — never as sales. Discovery via theme/top lists in config.seeds.",573 "enabled": true,574 "schemaVersion": "1.0",575 "config": {576 "seeds": [577 "https://www.brickeconomy.com/sets/top/most-valuable-lego-sets",578 "https://www.brickeconomy.com/sets/theme/star-wars/subtheme/ultimate-collector-series",579 "https://www.brickeconomy.com/sets/theme/icons",580 "https://www.brickeconomy.com/sets/theme/ideas",581 "https://www.brickeconomy.com/sets/theme/creator-expert",582 "https://www.brickeconomy.com/sets/theme/harry-potter",583 "https://www.brickeconomy.com/sets/theme/technic",584 "https://www.brickeconomy.com/sets/retired"585 ],586 "setsPerSeed": 60587 }588 },589 {590 "id": "brickset",591 "displayName": "Brickset (LEGO set catalog + current values)",592 "sourceId": "brickset",593 "sourceName": "Brickset",594 "sourceType": "catalog",595 "sourceUrl": "https://brickset.com",596 "module": "api/brickset",597 "enginePriority": [598 "api",599 "firecrawl"600 ],601 "categories": [602 "lego_sets",603 "lego"604 ],605 "regions": [606 "global"607 ],608 "languages": [609 "en"610 ],611 "currency": [612 "USD",613 "GBP"614 ],615 "supportsListings": false,616 "supportsSold": false,617 "supportsAuctions": false,618 "supportsImages": true,619 "supportsCatalog": true,620 "supportsPopulation": false,621 "supportsLookup": true,622 "refreshFrequencyMinutes": 1440,623 "priority": "medium",624 "trustScore": 0.85,625 "attributionRequired": true,626 "termsUrl": "https://brickset.com/about",627 "accessNotes": "Public set pages (brickset.com/sets/<number>-1/...) and theme listings (/sets/theme-<Theme>/page-N, 25 sets per page) fetched over plain HTTPS with the RareIndex user agent; robots.txt disallows /admin, /export, /ajax, /profile, /webservices, /buy, /news, /reviews… — none of which are used (the Brickset API/webservices need a personal key: https://brickset.com/tools/webservices/requestkey). Fields parsed from the set page definition list: pieces, minifigs, RRP (GBP + USD), launch/exit dates, availability, packaging, barcodes (UPC/EAN), theme/subtheme and the 'Current value' New/Used estimates that Brickset derives from BrickLink — stored as guide_value observations (USD, confidence 0.65). 1.5 s politeness delay.",628 "enabled": true,629 "schemaVersion": "1.0",630 "config": {631 "seeds": [632 "theme-Star-Wars",633 "theme-Icons",634 "theme-Creator-Expert",635 "theme-Ideas",636 "theme-Technic",637 "theme-Harry-Potter",638 "theme-Marvel-Super-Heroes",639 "theme-Architecture",640 "theme-Ninjago",641 "theme-Castle",642 "theme-Space",643 "theme-Pirates",644 "theme-Indiana-Jones",645 "theme-The-Lord-of-the-Rings",646 "theme-DC-Comics-Super-Heroes"647 ],648 "pagesPerSeed": 2,649 "setsPerRun": 120650 }651 },652 {653 "id": "bring-a-trailer",654 "displayName": "Bring a Trailer (auction results)",655 "sourceId": "bring-a-trailer",656 "sourceName": "Bring a Trailer",657 "sourceType": "auction_house",658 "sourceUrl": "https://bringatrailer.com",659 "module": "api/bring-a-trailer",660 "enginePriority": [661 "api"662 ],663 "categories": [664 "automobiles",665 "motorcycles"666 ],667 "regions": [668 "US",669 "CA",670 "GB",671 "EU"672 ],673 "languages": [674 "en"675 ],676 "currency": [677 "USD",678 "CAD",679 "GBP",680 "EUR"681 ],682 "supportsListings": false,683 "supportsSold": true,684 "supportsAuctions": false,685 "supportsImages": true,686 "supportsCatalog": false,687 "supportsPopulation": false,688 "supportsLookup": true,689 "refreshFrequencyMinutes": 360,690 "priority": "high",691 "trustScore": 0.9,692 "attributionRequired": true,693 "termsUrl": "https://bringatrailer.com/terms-of-use/",694 "accessNotes": "Completed auctions read from the same public JSON the /auctions/results/ page uses (POST /wp-json/bringatrailer/1.0/data/listings-filter, 36 items/page, ~262k results, newest first) over plain HTTPS with the RareIndex user agent; no login, no bidder data. robots.txt allows the results pages (search and member areas are disallowed and not used). 'Sold for <CUR> <amount> on <date>' entries become sales; 'Bid to' (reserve not met) entries are skipped. Prices are the winning bid: BaT's buyer fee (5%, capped) is NOT included → buyer_premium_included=false. Lookup of a listing URL parses the public listing page (title, sold line, chassis/VIN, mileage). 1.5 s politeness delay.",695 "enabled": true,696 "schemaVersion": "1.0",697 "config": {698 "pagesPerRun": 20,699 "perPage": 36700 }701 },702 {703 "id": "cars-and-bids",704 "displayName": "Cars & Bids (past auctions)",705 "sourceId": "cars-and-bids",706 "sourceName": "Cars & Bids",707 "sourceType": "auction_house",708 "sourceUrl": "https://carsandbids.com",709 "module": "firecrawl/cars-and-bids",710 "enginePriority": [711 "firecrawl"712 ],713 "categories": [714 "automobiles"715 ],716 "regions": [717 "US",718 "CA"719 ],720 "languages": [721 "en"722 ],723 "currency": [724 "USD",725 "CAD"726 ],727 "supportsListings": false,728 "supportsSold": true,729 "supportsAuctions": false,730 "supportsImages": true,731 "supportsCatalog": false,732 "supportsPopulation": false,733 "supportsLookup": false,734 "refreshFrequencyMinutes": 360,735 "priority": "high",736 "trustScore": 0.9,737 "attributionRequired": true,738 "termsUrl": "https://carsandbids.com/terms-of-use/",739 "accessNotes": "Public 'Past Results' list (/past-auctions/?page=N, ~50 auctions per page, newest first) rendered through Firecrawl (plain HTTPS returns a Cloudflare interstitial; we do not bypass it — Firecrawl fetches the public page like a browser). robots.txt allows the page (only /sell-car/, /widgets/, /dealers/ are disallowed). 'Sold for $X' + 'Ended m/d/yy' rows become sales; 'Bid to' rows (reserve not met) are skipped. Price is the winning bid — the 4.5% buyer fee is NOT included → buyer_premium_included=false. 1 Firecrawl credit per page, 2 s politeness delay.",740 "enabled": true,741 "schemaVersion": "1.0",742 "config": {743 "pagesPerRun": 10744 }745 },746 {747 "id": "catawiki",748 "displayName": "Catawiki (closed-lot results & live lots)",749 "sourceId": "catawiki",750 "sourceName": "Catawiki",751 "sourceType": "auction_house",752 "sourceUrl": "https://www.catawiki.com",753 "module": "scrapfly/catawiki",754 "enginePriority": [755 "scrapfly"756 ],757 "categories": [758 "pokemon",759 "magic_the_gathering",760 "yugioh",761 "one_piece_card_game",762 "disney_lorcana",763 "other_tcg",764 "basketball_cards",765 "baseball_cards",766 "football_cards",767 "hockey_cards",768 "soccer_cards",769 "f1_cards",770 "non_sport_cards",771 "rolex",772 "patek_philippe",773 "audemars_piguet",774 "omega",775 "other_watches",776 "pens",777 "lighters",778 "marvel_comics",779 "dc_comics",780 "independent_comics",781 "manga",782 "animation_art",783 "lego_sets",784 "funko",785 "model_cars",786 "model_trains",787 "action_figures",788 "vintage_toys",789 "designer_toys",790 "dolls",791 "plush",792 "video_games",793 "coins",794 "banknotes",795 "stamps",796 "medals",797 "wine",798 "whisky",799 "rum",800 "cognac",801 "music",802 "movie_posters",803 "cameras",804 "sports_memorabilia",805 "art",806 "contemporary_art",807 "photography",808 "jewelry",809 "gemstones",810 "luxury_handbags",811 "sneakers",812 "fashion_streetwear",813 "automobiles",814 "motorcycles",815 "automotive_memorabilia",816 "books",817 "maps",818 "historical_documents",819 "fossils",820 "minerals",821 "meteorites",822 "antiques",823 "design_furniture"824 ],825 "regions": [826 "NL",827 "EU"828 ],829 "languages": [830 "en"831 ],832 "currency": [833 "EUR"834 ],835 "supportsListings": false,836 "supportsSold": true,837 "supportsAuctions": true,838 "supportsImages": true,839 "supportsCatalog": false,840 "supportsPopulation": false,841 "supportsLookup": true,842 "refreshFrequencyMinutes": 240,843 "priority": "high",844 "trustScore": 0.8,845 "attributionRequired": true,846 "termsUrl": "https://www.catawiki.com/en/help/terms-of-use",847 "accessNotes": "Scrapfly (asp, NL exit) because catawiki.com returns 403 to non-browser clients. Two-phase crawl: (1) discovery — a rendered category page (render_js, ~6 credits) lists the live themed auctions of the category; each auction page /en/a/<id>-slug is server-rendered (__NEXT_DATA__, 1 credit, no JS) with its full lot list and closeAt; live lots are emitted as auction_lot records and remembered in the cursor; (2) harvest — after an auction closes, each remembered lot page /en/l/<id>-slug (1 credit, no JS) exposes biddingBlockResponse {closed, sold, final bid in EUR, biddingEndTime} plus title/subtitle/specifications/expert estimate/images/seller country, and sold lots become sale records. Robots (via Scrapfly): /*/c/*/* and *lot_id are disallowed — we only use single-segment category URLs, auction pages and lot pages, never the lot_id query. Prices: Catawiki's final bid is the hammer; the buyer pays an additional ~9% buyer protection fee, so buyerPremiumIncluded=false (fee noted in metadata). Sale date = biddingEndTime from the source. Unsold closed lots are discarded.",848 "enabled": true,849 "schemaVersion": "1.0",850 "config": {851 "seeds": [852 {853 "id": 725,854 "path": "725-trading-cards",855 "hint": "cards"856 },857 {858 "id": 299,859 "path": "299-watches-pens-lighters",860 "hint": "watches"861 },862 {863 "id": 139,864 "path": "139-comics-animation",865 "hint": "comics"866 },867 {868 "id": 363,869 "path": "363-toys-models",870 "hint": "toys"871 },872 {873 "id": 165,874 "path": "165-coins-stamps",875 "hint": "coins"876 },877 {878 "id": 720,879 "path": "720-wine-whisky-spirits",880 "hint": "wine"881 },882 {883 "id": 347,884 "path": "347-music-movies-cameras",885 "hint": "music"886 },887 {888 "id": 1097,889 "path": "1097-sports",890 "hint": "sports"891 },892 {893 "id": 714,894 "path": "714-jewellery-precious-stones",895 "hint": "jewelry"896 },897 {898 "id": 721,899 "path": "721-fashion",900 "hint": "fashion"901 },902 {903 "id": 85,904 "path": "85-art",905 "hint": "art"906 },907 {908 "id": 708,909 "path": "708-classic-cars-motorcycles-automobilia",910 "hint": "cars"911 },912 {913 "id": 863,914 "path": "863-archaeology-natural-history",915 "hint": "natural_history"916 },917 {918 "id": 1099,919 "path": "1099-books-historical-memorabilia",920 "hint": "books"921 }922 ],923 "maxNewAuctionsPerRun": 30,924 "maxLotFetchesPerRun": 400,925 "pendingCap": 6000,926 "harvestDelayMinutes": 20927 }928 },929 {930 "id": "christies",931 "displayName": "Christie's (auction results)",932 "sourceId": "christies",933 "sourceName": "Christie's",934 "sourceType": "auction_house",935 "sourceUrl": "https://www.christies.com",936 "module": "api/christies",937 "enginePriority": [938 "api"939 ],940 "categories": [941 "rolex",942 "patek_philippe",943 "audemars_piguet",944 "omega",945 "other_watches",946 "luxury_handbags",947 "jewelry",948 "gemstones",949 "wine",950 "whisky",951 "cognac",952 "art",953 "contemporary_art",954 "photography",955 "books",956 "maps",957 "historical_documents",958 "antiques",959 "design_furniture",960 "scientific_instruments",961 "fossils",962 "minerals",963 "meteorites",964 "sports_memorabilia",965 "movie_memorabilia",966 "music_memorabilia",967 "sneakers",968 "vintage_toys",969 "automobiles"970 ],971 "regions": [972 "US",973 "GB",974 "HK",975 "FR",976 "CH"977 ],978 "languages": [979 "en"980 ],981 "currency": [982 "USD",983 "GBP",984 "HKD",985 "EUR",986 "CHF"987 ],988 "supportsListings": false,989 "supportsSold": true,990 "supportsAuctions": false,991 "supportsImages": true,992 "supportsCatalog": false,993 "supportsPopulation": false,994 "supportsLookup": false,995 "refreshFrequencyMinutes": 720,996 "priority": "high",997 "trustScore": 0.9,998 "attributionRequired": true,999 "termsUrl": "https://www.christies.com/en/help/terms-and-conditions",1000 "accessNotes": "Plain HTTPS JSON (no rendering, no credits) from the two endpoints the public christies.com pages themselves call: /api/discoverywebsite/auctioncalendar/auctionresults?language=en&month=M&year=Y (closed sales of a month with SaleID/SaleNumber, category/location filters and sale totals) and /api/discoverywebsite/auctionpages/lotsearch?language=en&SaleNumber=…&SaleId=…&page=N&pageSize=…&sortby=lotnumber (lots with estimate, price_realised, dates, image, lot url; max ~84 lots per page). christies.com/robots.txt (User-agent: *) disallows */search, */AjaxPages, */lotimages, */mychristies and similar — none of these paths are used. Prices realised are published by Christie's inclusive of buyer's premium → buyerPremiumIncluded=true; currency comes from price_realised_txt (e.g. 'GBP 190,500'); sale date = the lot's end_date. Categories come from the sale's category filter labels plus title keywords; unmapped lots keep the family suggested by the sale category. Upcoming lots are not exposed by these endpoints (calendar of future sales is a different client app), so supportsAuctions=false. Note: christies.com's edge drops requests whose User-Agent contains a URL or an e-mail address, so the connector identifies itself as 'RareIndex/0.1 (market data research; contact data at rareindex.io)' — no browser impersonation.",1001 "enabled": true,1002 "schemaVersion": "1.0",1003 "config": {1004 "categoryLabels": [1005 "Jewellery, Watches & Handbags",1006 "Wines & Spirits",1007 "Collectibles",1008 "Books & Manuscripts",1009 "Science and Natural History",1010 "Photographs & Prints",1011 "Fine Art",1012 "Furniture & Decorative Art",1013 "Antiquities",1014 "Asian Art",1015 "Design",1016 "Cars"1017 ],1018 "monthsPerRun": 2,1019 "backfillMonths": 36,1020 "maxSalesPerRun": 30,1021 "pageSize": 841022 }1023 },1024 {1025 "id": "chrono24",1026 "displayName": "Chrono24",1027 "sourceId": "chrono24",1028 "sourceName": "Chrono24",1029 "sourceType": "marketplace",1030 "sourceUrl": "https://www.chrono24.com",1031 "module": "scrapfly/chrono24",1032 "enginePriority": [1033 "scrapfly",1034 "firecrawl"1035 ],1036 "categories": [1037 "watches",1038 "rolex",1039 "patek_philippe",1040 "audemars_piguet",1041 "omega",1042 "other_watches"1043 ],1044 "regions": [1045 "global"1046 ],1047 "languages": [1048 "en"1049 ],1050 "currency": [1051 "USD"1052 ],1053 "supportsListings": true,1054 "supportsSold": false,1055 "supportsAuctions": false,1056 "supportsImages": true,1057 "supportsCatalog": false,1058 "supportsPopulation": false,1059 "supportsLookup": false,1060 "refreshFrequencyMinutes": 720,1061 "priority": "high",1062 "trustScore": 0.7,1063 "attributionRequired": true,1064 "termsUrl": "https://www.chrono24.com/info/terms-of-use.htm",1065 "accessNotes": "Public model listing pages (e.g. /rolex/daytona--mod2.htm) fetched through Scrapfly without JS rendering (Cloudflare shield → ~40 credits/page); robots.txt allows these paths (Crawl-delay 0.1). Each page embeds a schema.org ItemList of Offers (name, price in the site currency, image, listing URL) — we store asking prices as listings only, never as sales. No login, no per-listing detail fetch (seller details stay on Chrono24). Model pages are configured in config.seeds; pagination via --modN-P.htm.",1066 "enabled": true,1067 "schemaVersion": "1.0",1068 "config": {1069 "seeds": [1070 "/rolex/daytona--mod2.htm",1071 "/rolex/submariner--mod1.htm",1072 "/rolex/gmt-master-ii--mod3.htm",1073 "/rolex/datejust--mod4.htm",1074 "/rolex/day-date--mod6.htm",1075 "/rolex/explorer--mod8.htm",1076 "/patekphilippe/nautilus--mod15.htm",1077 "/patekphilippe/aquanaut--mod16.htm",1078 "/patekphilippe/calatrava--mod14.htm",1079 "/audemarspiguet/royal-oak--mod20.htm",1080 "/audemarspiguet/royal-oak-offshore--mod21.htm",1081 "/omega/speedmaster--mod24.htm",1082 "/omega/seamaster--mod22.htm",1083 "/cartier/santos--mod38.htm",1084 "/tudor/black-bay--mod1128.htm",1085 "/vacheronconstantin/overseas--mod1024.htm"1086 ],1087 "pagesPerSeed": 2,1088 "pageSize": 1201089 }1090 },1091 {1092 "id": "collecting-cars",1093 "displayName": "Collecting Cars (results)",1094 "sourceId": "collecting-cars",1095 "sourceName": "Collecting Cars",1096 "sourceType": "auction_house",1097 "sourceUrl": "https://collectingcars.com",1098 "module": "firecrawl/collecting-cars",1099 "enginePriority": [1100 "firecrawl"1101 ],1102 "categories": [1103 "automobiles",1104 "motorcycles",1105 "automotive_memorabilia"1106 ],1107 "regions": [1108 "GB",1109 "EU",1110 "AU",1111 "US",1112 "AE"1113 ],1114 "languages": [1115 "en"1116 ],1117 "currency": [1118 "GBP",1119 "EUR",1120 "AUD",1121 "USD",1122 "AED"1123 ],1124 "supportsListings": false,1125 "supportsSold": true,1126 "supportsAuctions": false,1127 "supportsImages": true,1128 "supportsCatalog": false,1129 "supportsPopulation": false,1130 "supportsLookup": false,1131 "refreshFrequencyMinutes": 720,1132 "priority": "low",1133 "trustScore": 0.9,1134 "attributionRequired": true,1135 "termsUrl": "https://collectingcars.com/terms-and-conditions",1136 "accessNotes": "Public results list (/sold?page=N, 48 lots per page, ~26k sold lots, newest first) rendered through Firecrawl (plain HTTPS gets a Cloudflare interstitial; not bypassed). robots.txt: Allow / for generic agents (named AI-training crawlers are disallowed; RareIndexBot is not one — we only record public sale facts and link back). Most sold prices are shown only to signed-in users ('Sign in to view sold price'); we NEVER log in, so only lots whose price is displayed publicly (a minority, typically the most recent/featured results) become sales — expect a few sales per page. Prices are hammer prices — the buyer's premium is charged on top → buyer_premium_included=false. 1 Firecrawl credit per page, 2 s politeness delay.",1137 "enabled": true,1138 "schemaVersion": "1.0",1139 "config": {1140 "pagesPerRun": 101141 }1142 },1143 {1144 "id": "comicconnect",1145 "displayName": "ComicConnect (sold archive)",1146 "sourceId": "comicconnect",1147 "sourceName": "ComicConnect",1148 "sourceType": "auction_house",1149 "sourceUrl": "https://www.comicconnect.com",1150 "module": "api/comicconnect",1151 "enginePriority": [1152 "api",1153 "firecrawl",1154 "scrapfly"1155 ],1156 "categories": [1157 "comics",1158 "marvel_comics",1159 "dc_comics",1160 "independent_comics"1161 ],1162 "regions": [1163 "US"1164 ],1165 "languages": [1166 "en"1167 ],1168 "currency": [1169 "USD"1170 ],1171 "supportsListings": false,1172 "supportsSold": true,1173 "supportsAuctions": true,1174 "supportsImages": true,1175 "supportsCatalog": false,1176 "supportsPopulation": false,1177 "supportsLookup": false,1178 "refreshFrequencyMinutes": 720,1179 "priority": "high",1180 "trustScore": 0.9,1181 "attributionRequired": true,1182 "termsUrl": "https://www.comicconnect.com/terms",1183 "accessNotes": "Public sold archive (/browse/comics/?filtertype=Sold, ~479k results, 20 per page) fetched over plain HTTPS with the RareIndex user agent. robots.txt: Allow / with Content-Signal search=yes, ai-train=no (we only index sale facts and link back). Each card exposes title, publisher + grade, sold date/time, 'Sold For' price and whether a 15% buyer's premium applies (bp attribute) — we store hammer price with buyer_premium_included=false and keep the premium note in metadata. No login, no bidder data. 1.5 s politeness delay.",1184 "enabled": true,1185 "schemaVersion": "1.0",1186 "config": {1187 "browsePath": "/browse/comics/",1188 "pagesPerRun": 25,1189 "sortType": "ended_desc"1190 }1191 },1192 {1193 "id": "crown-caliber",1194 "displayName": "European Watch Company (crownandcaliber.com) — pre-owned watch listings",1195 "sourceId": "europeanwatch",1196 "sourceName": "European Watch Company",1197 "sourceType": "dealer",1198 "sourceUrl": "https://www.europeanwatch.com",1199 "module": "api/crown-caliber",1200 "enginePriority": [1201 "api",1202 "firecrawl"1203 ],1204 "categories": [1205 "watches",1206 "rolex",1207 "patek_philippe",1208 "audemars_piguet",1209 "omega",1210 "other_watches"1211 ],1212 "regions": [1213 "US"1214 ],1215 "languages": [1216 "en"1217 ],1218 "currency": [1219 "USD"1220 ],1221 "supportsListings": true,1222 "supportsSold": false,1223 "supportsAuctions": false,1224 "supportsImages": true,1225 "supportsCatalog": false,1226 "supportsPopulation": false,1227 "supportsLookup": true,1228 "refreshFrequencyMinutes": 720,1229 "priority": "medium",1230 "trustScore": 0.8,1231 "attributionRequired": true,1232 "termsUrl": "https://www.europeanwatch.com/terms",1233 "accessNotes": "crownandcaliber.com now redirects to europeanwatch.com (Boston dealer). Public brand pages (/brand/<slug>?page=N) embed a schema.org ItemList of Products (name, sku, USD price, availability, condition) — fetched over plain HTTPS with the RareIndex user agent; robots.txt only disallows /login. References and circa years are parsed from the product name; box/papers/condition details live on product pages and are only fetched by lookup(). 1.5 s between pages, the whole brand inventory is served on one page (~130 watches for Rolex; pagination parameters are ignored, which the crawler detects).",1234 "enabled": true,1235 "schemaVersion": "1.0",1236 "config": {1237 "seeds": [1238 "rolex",1239 "patek-philippe",1240 "audemars-piguet",1241 "omega",1242 "cartier",1243 "tudor",1244 "vacheron-constantin",1245 "a-lange-and-sohne",1246 "iwc",1247 "jaeger-lecoultre",1248 "breitling",1249 "panerai",1250 "grand-seiko",1251 "f-p-journe",1252 "zenith"1253 ],1254 "pagesPerSeed": 11255 }1256 },1257 {1258 "id": "digimoncard",1259 "displayName": "DigimonCard.io (Digimon Card Game)",1260 "sourceId": "digimoncard",1261 "sourceName": "DigimonCard.io",1262 "sourceType": "catalog",1263 "sourceUrl": "https://digimoncard.io",1264 "module": "api/digimoncard",1265 "enginePriority": [1266 "api"1267 ],1268 "categories": [1269 "digimon_tcg"1270 ],1271 "regions": [1272 "US",1273 "JP"1274 ],1275 "languages": [1276 "en"1277 ],1278 "currency": [],1279 "supportsListings": false,1280 "supportsSold": false,1281 "supportsAuctions": false,1282 "supportsImages": true,1283 "supportsCatalog": true,1284 "supportsPopulation": false,1285 "supportsLookup": true,1286 "refreshFrequencyMinutes": 10080,1287 "priority": "low",1288 "trustScore": 0.7,1289 "attributionRequired": true,1290 "termsUrl": "https://digimoncard.io/api-public/",1291 "accessNotes": "Free public JSON API (https://digimoncard.io/api-public/search?series=Digimon%20Card%20Game returns every card in one call; the documented '.php' paths 301 to the extensionless ones). Catalog only — no prices; TCGplayer product ids are included and used as the deterministic identifier (tcgplayer_id) so TCGCSV prices attach to the same assets. Images from images.digimoncard.io/images/cards/<id>.jpg. Primary set derived from the card number prefix (BT5 → 'BT-05' set entry).",1292 "enabled": true,1293 "schemaVersion": "1.0",1294 "config": {}1295 },1296 {1297 "id": "discogs",1298 "displayName": "Discogs (releases + marketplace lows)",1299 "sourceId": "discogs",1300 "sourceName": "Discogs",1301 "sourceType": "collector_database",1302 "sourceUrl": "https://www.discogs.com",1303 "module": "api/discogs",1304 "enginePriority": [1305 "api"1306 ],1307 "categories": [1308 "music"1309 ],1310 "regions": [1311 "global"1312 ],1313 "languages": [1314 "en"1315 ],1316 "currency": [1317 "USD"1318 ],1319 "supportsListings": false,1320 "supportsSold": false,1321 "supportsAuctions": false,1322 "supportsImages": true,1323 "supportsCatalog": true,1324 "supportsPopulation": false,1325 "supportsLookup": true,1326 "refreshFrequencyMinutes": 1440,1327 "priority": "medium",1328 "trustScore": 0.85,1329 "attributionRequired": true,1330 "termsUrl": "https://support.discogs.com/hc/en-us/articles/360009334593-API-Terms-of-Use",1331 "accessNotes": "Official public Discogs API (api.discogs.com) used unauthenticated with the RareIndex user agent: database/search (type=master), masters/{id}/versions (pressings with label, catno, country, year, format and community have/want counts) and marketplace/stats/{release_id} (lowest asking price + number for sale). Unauthenticated limit is 25 requests/minute → 2.6 s throttle; price_suggestions requires a personal token and is not used. Marketplace stats have no timestamp: observationDate = fetch date (confidence 0.7). Catalog data is CC0; images are hot-linked thumbnails and attributed to Discogs. Sold-price history is not exposed publicly.",1332 "enabled": true,1333 "schemaVersion": "1.0",1334 "config": {1335 "seeds": [1336 "Nirvana Nevermind",1337 "The Beatles Abbey Road",1338 "Pink Floyd The Dark Side Of The Moon",1339 "Led Zeppelin IV",1340 "Miles Davis Kind Of Blue",1341 "Michael Jackson Thriller",1342 "Radiohead OK Computer",1343 "Fleetwood Mac Rumours",1344 "Daft Punk Random Access Memories",1345 "Kendrick Lamar To Pimp A Butterfly",1346 "The Velvet Underground & Nico",1347 "Joy Division Unknown Pleasures",1348 "Prince Purple Rain",1349 "David Bowie The Rise And Fall Of Ziggy Stardust",1350 "Amy Winehouse Back To Black",1351 "The Beatles Sgt. Pepper's Lonely Hearts Club Band",1352 "Bob Dylan Blonde On Blonde",1353 "John Coltrane A Love Supreme",1354 "The Rolling Stones Exile On Main St.",1355 "Wu-Tang Clan Enter The Wu-Tang (36 Chambers)",1356 "Taylor Swift 1989",1357 "Tyler, The Creator Igor",1358 "Frank Ocean Blonde",1359 "Arctic Monkeys AM",1360 "Björk Homogenic",1361 "Kraftwerk Autobahn",1362 "Sex Pistols Never Mind The Bollocks",1363 "Bruce Springsteen Born To Run",1364 "Nas Illmatic",1365 "Massive Attack Mezzanine"1366 ],1367 "formats": [1368 "Vinyl"1369 ],1370 "versionsPerMaster": 100,1371 "statsPerMaster": 61372 }1373 },1374 {1375 "id": "fashionphile",1376 "displayName": "FASHIONPHILE (pre-owned luxury listings & sold items)",1377 "sourceId": "fashionphile",1378 "sourceName": "FASHIONPHILE",1379 "sourceType": "marketplace",1380 "sourceUrl": "https://www.fashionphile.com",1381 "module": "api/fashionphile",1382 "enginePriority": [1383 "api"1384 ],1385 "categories": [1386 "luxury_handbags",1387 "watches",1388 "other_watches",1389 "rolex",1390 "jewelry",1391 "fashion_streetwear"1392 ],1393 "regions": [1394 "US"1395 ],1396 "languages": [1397 "en"1398 ],1399 "currency": [1400 "USD"1401 ],1402 "supportsListings": true,1403 "supportsSold": false,1404 "supportsAuctions": false,1405 "supportsImages": true,1406 "supportsCatalog": false,1407 "supportsPopulation": false,1408 "supportsLookup": true,1409 "refreshFrequencyMinutes": 720,1410 "priority": "medium",1411 "trustScore": 0.8,1412 "attributionRequired": true,1413 "termsUrl": "https://www.fashionphile.com/terms-of-use",1414 "accessNotes": "Public Shopify storefront feed (www.fashionphile.com/collections/<brand>/products.json) fetched over plain HTTPS with the RareIndex user agent; robots.txt allows /collections/ (only sort/filter permutations, cart, account and checkout paths are disallowed). Each product is one authenticated pre-owned item priced in USD; `available:false` on a still-published product means the item shows SOLD on the site, which is recorded as a listing with availability=sold (the last asking price is not asserted as the transaction price). Condition ratings are only on HTML product pages and are not fetched. 1.5 s between requests, 250 products per page.",1415 "enabled": true,1416 "schemaVersion": "1.0",1417 "config": {1418 "seeds": [1419 "hermes",1420 "chanel",1421 "louis-vuitton",1422 "dior",1423 "gucci",1424 "goyard",1425 "fendi",1426 "bottega-veneta",1427 "prada",1428 "celine",1429 "loewe",1430 "saint-laurent",1431 "rolex",1432 "cartier",1433 "van-cleef-arpels"1434 ],1435 "pagesPerSeed": 21436 }1437 },1438 {1439 "id": "flight-club",1440 "displayName": "Flight Club (sneaker lowest asks & retail)",1441 "sourceId": "flight-club",1442 "sourceName": "Flight Club",1443 "sourceType": "marketplace",1444 "sourceUrl": "https://www.flightclub.com",1445 "module": "firecrawl/flight-club",1446 "enginePriority": [1447 "firecrawl",1448 "scrapfly"1449 ],1450 "categories": [1451 "sneakers",1452 "nike_jordan",1453 "adidas_yeezy",1454 "new_balance_asics_other"1455 ],1456 "regions": [1457 "US"1458 ],1459 "languages": [1460 "en"1461 ],1462 "currency": [1463 "USD"1464 ],1465 "supportsListings": true,1466 "supportsSold": false,1467 "supportsAuctions": false,1468 "supportsImages": true,1469 "supportsCatalog": true,1470 "supportsPopulation": false,1471 "supportsLookup": false,1472 "refreshFrequencyMinutes": 1440,1473 "priority": "medium",1474 "trustScore": 0.75,1475 "attributionRequired": true,1476 "termsUrl": "https://www.flightclub.com/terms",1477 "accessNotes": "Plain HTTPS requests receive 403 (robots.txt itself is not served to non-browser agents); Firecrawl's standard fetch returns the public category pages (flightclub.com/air-jordans?page=N …) whose __NEXT_DATA__ holds the search grid: product id, name, brand, image, lowest price, retail price and a slug ending with the style code. 1 Firecrawl credit per page of 30 products; 2 s between pages. Listings/asks only — Flight Club does not publish sale history publicly.",1478 "enabled": true,1479 "schemaVersion": "1.0",1480 "config": {1481 "seeds": [1482 "air-jordans",1483 "nike",1484 "adidas/adidas-yeezy",1485 "adidas",1486 "new-balance",1487 "asics"1488 ],1489 "pagesPerSeed": 21490 }1491 },1492 {1493 "id": "fossilera",1494 "displayName": "FossilEra (fossils, minerals & meteorites dealer, USD)",1495 "sourceId": "fossilera",1496 "sourceName": "FossilEra",1497 "sourceType": "dealer",1498 "sourceUrl": "https://www.fossilera.com",1499 "module": "api/fossilera",1500 "enginePriority": [1501 "api",1502 "firecrawl"1503 ],1504 "categories": [1505 "fossils",1506 "minerals",1507 "meteorites"1508 ],1509 "regions": [1510 "US"1511 ],1512 "languages": [1513 "en"1514 ],1515 "currency": [1516 "USD"1517 ],1518 "supportsListings": true,1519 "supportsSold": false,1520 "supportsAuctions": false,1521 "supportsImages": true,1522 "supportsCatalog": false,1523 "supportsPopulation": false,1524 "supportsLookup": true,1525 "refreshFrequencyMinutes": 1440,1526 "priority": "low",1527 "trustScore": 0.85,1528 "attributionRequired": true,1529 "termsUrl": "https://www.fossilera.com/pages/terms-of-service",1530 "accessNotes": "Public category pages (fossilera.com/fossils-for-sale/<category>?page=N) and specimen pages fetched over plain HTTPS with the RareIndex user agent (robots.txt only disallows gift-card/checkout helpers). Each card gives the specimen title, price (and previous price when reduced), image and the FossilEra item number; specimen pages add species, geological age, location, formation, size and category. Every specimen is unique, so each becomes its own asset with one fixed-price listing (available or, when the page states it, sold — no sale date is published, so sold items are listings with availability=sold, never transactions). Compliance: fossilera states all items are legally collected; locality is kept in attributes.country/region so jurisdiction flags (taxonomy compliance 'jurisdiction_check') can be applied downstream.",1531 "enabled": true,1532 "schemaVersion": "1.0",1533 "config": {1534 "seeds": [1535 {1536 "path": "/fossils-for-sale/dinosaur-teeth",1537 "categorySlug": "fossils"1538 },1539 {1540 "path": "/fossils-for-sale/megalodon-teeth",1541 "categorySlug": "fossils"1542 },1543 {1544 "path": "/fossils-for-sale/ammonites",1545 "categorySlug": "fossils"1546 },1547 {1548 "path": "/fossils-for-sale/trilobites",1549 "categorySlug": "fossils"1550 },1551 {1552 "path": "/minerals-for-sale",1553 "categorySlug": "minerals"1554 },1555 {1556 "path": "/meteorites-for-sale",1557 "categorySlug": "meteorites"1558 }1559 ],1560 "pagesPerSeed": 11561 }1562 },1563 {1564 "id": "goldin",1565 "displayName": "Goldin (sold auction results)",1566 "sourceId": "goldin",1567 "sourceName": "Goldin",1568 "sourceType": "auction_house",1569 "sourceUrl": "https://goldin.co",1570 "module": "scrapfly/goldin",1571 "enginePriority": [1572 "scrapfly"1573 ],1574 "categories": [1575 "pokemon",1576 "magic_the_gathering",1577 "yugioh",1578 "one_piece_card_game",1579 "basketball_cards",1580 "baseball_cards",1581 "football_cards",1582 "hockey_cards",1583 "soccer_cards",1584 "f1_cards",1585 "sports_memorabilia",1586 "marvel_comics",1587 "nintendo_games",1588 "non_sport_cards"1589 ],1590 "regions": [1591 "US"1592 ],1593 "languages": [1594 "en"1595 ],1596 "currency": [1597 "USD"1598 ],1599 "supportsListings": false,1600 "supportsSold": true,1601 "supportsAuctions": false,1602 "supportsImages": true,1603 "supportsCatalog": false,1604 "supportsPopulation": false,1605 "supportsLookup": true,1606 "refreshFrequencyMinutes": 360,1607 "priority": "high",1608 "trustScore": 0.9,1609 "attributionRequired": true,1610 "termsUrl": "https://goldin.co/useragreement",1611 "accessNotes": "Public 'Sold Items' result grids (https://goldin.co/buy/sc/<subcategory>?show_only=Sold%20Items&sort=Most_Recent_Bids&number_of_lots=240) rendered through Scrapfly (asp + JS rendering, ~6 credits per page of 240 sold lots). goldin.co/robots.txt allows /buy/ and /item/ and disallows /api/; we never call goldin.co/api ourselves — the lot data is read from the XHR (lots_v2 on their CloudFront search endpoint) that the public page performs during rendering, exactly what a browser does. Plain HTTP and Firecrawl return the empty SPA shell / an Akamai challenge. Prices: the grid shows the final price INCLUDING buyer's premium (current_price × (1 + buyer_premium%)); we store that as the sale price with buyerPremiumIncluded=true and keep the hammer price and BP % in metadata. Sale date = lot end_timestamp; lots whose end_timestamp is in the future (placeholder private-sale dates like 2235-06-04) are skipped and counted as anomalies. Cert numbers appear only in item-page descriptions (lookup).",1612 "enabled": true,1613 "schemaVersion": "1.0",1614 "config": {1615 "seeds": [1616 {1617 "path": "/buy/sc/pokemon",1618 "categorySlug": "pokemon"1619 },1620 {1621 "path": "/buy/sc/Magic_The_Gathering",1622 "categorySlug": "magic_the_gathering"1623 },1624 {1625 "path": "/buy/sc/Yu-Gi-Oh!",1626 "categorySlug": "yugioh"1627 },1628 {1629 "path": "/buy/sc/One_Piece",1630 "categorySlug": "one_piece_card_game"1631 },1632 {1633 "path": "/buy/sc/Basketball",1634 "categorySlug": "basketball_cards",1635 "sport": "basketball"1636 },1637 {1638 "path": "/buy/sc/Baseball",1639 "categorySlug": "baseball_cards",1640 "sport": "baseball"1641 },1642 {1643 "path": "/buy/sc/Football",1644 "categorySlug": "football_cards",1645 "sport": "football"1646 },1647 {1648 "path": "/buy/sc/Hockey",1649 "categorySlug": "hockey_cards",1650 "sport": "hockey"1651 },1652 {1653 "path": "/buy/sc/Soccer",1654 "categorySlug": "soccer_cards",1655 "sport": "soccer"1656 },1657 {1658 "path": "/buy/sc/Racing",1659 "categorySlug": "f1_cards",1660 "sport": "racing"1661 },1662 {1663 "path": "/buy/sc/Marvel",1664 "categorySlug": "marvel_comics"1665 },1666 {1667 "path": "/buy/sc/Nintendo",1668 "categorySlug": "nintendo_games"1669 }1670 ],1671 "pageSize": 240,1672 "maxPagesPerSeed": 40,1673 "renderingWaitMs": 60001674 }1675 },1676 {1677 "id": "grand-archive",1678 "displayName": "Grand Archive Index (official card API)",1679 "sourceId": "grand-archive",1680 "sourceName": "Grand Archive TCG Index",1681 "sourceType": "manufacturer",1682 "sourceUrl": "https://index.gatcg.com",1683 "module": "api/grand-archive",1684 "enginePriority": [1685 "api"1686 ],1687 "categories": [1688 "other_tcg"1689 ],1690 "regions": [1691 "US"1692 ],1693 "languages": [1694 "en"1695 ],1696 "currency": [],1697 "supportsListings": false,1698 "supportsSold": false,1699 "supportsAuctions": false,1700 "supportsImages": true,1701 "supportsCatalog": true,1702 "supportsPopulation": true,1703 "supportsLookup": false,1704 "refreshFrequencyMinutes": 10080,1705 "priority": "low",1706 "trustScore": 0.85,1707 "attributionRequired": true,1708 "termsUrl": "https://index.gatcg.com",1709 "accessNotes": "Official Grand Archive card index API (https://api.gatcg.com/cards/search, paginated, no key). Emits one catalog_item per edition × circulation (non-foil / foil) with the publisher's declared print run in `productionQuantity` when the operator is exact ('=') and in metadata when approximate ('≈') — a rare case of manufacturer-published production counts. No prices (TCGCSV supplies Grand Archive prices via tcgplayer_id when available).",1710 "enabled": true,1711 "schemaVersion": "1.0",1712 "config": {1713 "pageSize": 501714 }1715 },1716 {1717 "id": "hobbysearch",1718 "displayName": "HobbySearch 1999.co.jp (Gunpla & model kits, JPY)",1719 "sourceId": "hobbysearch",1720 "sourceName": "HobbySearch",1721 "sourceType": "dealer",1722 "sourceUrl": "https://www.1999.co.jp",1723 "module": "firecrawl/hobbysearch",1724 "enginePriority": [1725 "firecrawl",1726 "scrapfly"1727 ],1728 "categories": [1729 "gundam",1730 "action_figures",1731 "model_cars"1732 ],1733 "regions": [1734 "JP"1735 ],1736 "languages": [1737 "en",1738 "ja"1739 ],1740 "currency": [1741 "JPY"1742 ],1743 "supportsListings": true,1744 "supportsSold": false,1745 "supportsAuctions": false,1746 "supportsImages": true,1747 "supportsCatalog": true,1748 "supportsPopulation": false,1749 "supportsLookup": true,1750 "refreshFrequencyMinutes": 1440,1751 "priority": "low",1752 "trustScore": 0.8,1753 "attributionRequired": true,1754 "termsUrl": "https://www.1999.co.jp/eng/guide/",1755 "accessNotes": "Public English search/list pages (1999.co.jp/eng/search?...; robots.txt allows all for generic agents) and item pages. Direct HTTPS returns 403 to non-browser clients, so pages go through Firecrawl (1 credit per page of 60 items). Parsed per card: HobbySearch item id, title, street price and list price (JPY), discount, stock state (In Stock / Sold Out / Pre-Order / Back-order), image. Emits catalog items (list price = manufacturer MSRP) and the retailer's fixed-price listing. Gundam categorisation is keyword-based on the seed + title; other kits fall back to the seed's category.",1756 "enabled": true,1757 "schemaVersion": "1.0",1758 "config": {1759 "seeds": [1760 {1761 "key": "Gundam MG",1762 "categorySlug": "gundam"1763 },1764 {1765 "key": "Gundam RG",1766 "categorySlug": "gundam"1767 },1768 {1769 "key": "Gundam PG",1770 "categorySlug": "gundam"1771 },1772 {1773 "key": "HGUC",1774 "categorySlug": "gundam"1775 },1776 {1777 "key": "Nendoroid",1778 "categorySlug": "action_figures"1779 },1780 {1781 "key": "figma",1782 "categorySlug": "action_figures"1783 }1784 ],1785 "pagesPerSeed": 11786 }1787 },1788 {1789 "id": "hypeboost",1790 "displayName": "Hypeboost (EU sneaker marketplace — lowest asks)",1791 "sourceId": "hypeboost",1792 "sourceName": "Hypeboost",1793 "sourceType": "marketplace",1794 "sourceUrl": "https://hypeboost.com",1795 "module": "firecrawl/hypeboost",1796 "enginePriority": [1797 "firecrawl",1798 "scrapfly"1799 ],1800 "categories": [1801 "sneakers",1802 "nike_jordan",1803 "adidas_yeezy",1804 "new_balance_asics_other"1805 ],1806 "regions": [1807 "NL",1808 "EU"1809 ],1810 "languages": [1811 "en"1812 ],1813 "currency": [1814 "EUR"1815 ],1816 "supportsListings": true,1817 "supportsSold": false,1818 "supportsAuctions": false,1819 "supportsImages": true,1820 "supportsCatalog": true,1821 "supportsPopulation": false,1822 "supportsLookup": true,1823 "refreshFrequencyMinutes": 1440,1824 "priority": "low",1825 "trustScore": 0.7,1826 "attributionRequired": true,1827 "termsUrl": "https://hypeboost.com/en/terms-and-conditions",1828 "accessNotes": "Plain HTTPS gets 403 (robots.txt not served to non-browser agents); Firecrawl's standard fetch returns the public category grid (hypeboost.com/en/category/sneakers/<brand>[?page=N]) with product name, EUR lowest price, brand/category data attributes and product id (36 per page, 1 credit). Product pages (lookup) expose the style code in schema.org Product sku. 2 s between pages.",1829 "enabled": true,1830 "schemaVersion": "1.0",1831 "config": {1832 "seeds": [1833 "air-jordan",1834 "nike",1835 "adidas",1836 "yeezy",1837 "new-balance",1838 "asics"1839 ],1840 "pagesPerSeed": 21841 }1842 },1843 {1844 "id": "idealwine",1845 "displayName": "iDealwine Price Estimate (wine price index)",1846 "sourceId": "idealwine",1847 "sourceName": "iDealwine",1848 "sourceType": "pricing_guide",1849 "sourceUrl": "https://www.idealwine.com",1850 "module": "api/idealwine",1851 "enginePriority": [1852 "api",1853 "firecrawl",1854 "scrapfly"1855 ],1856 "categories": [1857 "wine"1858 ],1859 "regions": [1860 "FR",1861 "EU"1862 ],1863 "languages": [1864 "en",1865 "fr"1866 ],1867 "currency": [1868 "EUR"1869 ],1870 "supportsListings": false,1871 "supportsSold": false,1872 "supportsAuctions": false,1873 "supportsImages": true,1874 "supportsCatalog": true,1875 "supportsPopulation": false,1876 "supportsLookup": false,1877 "refreshFrequencyMinutes": 10080,1878 "priority": "medium",1879 "trustScore": 0.85,1880 "attributionRequired": true,1881 "termsUrl": "https://www.idealwine.com/en/cgv",1882 "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.",1883 "enabled": true,1884 "schemaVersion": "1.0",1885 "config": {1886 "regions": [1887 "bordeaux",1888 "bourgogne",1889 "rhone",1890 "champagne",1891 "loire",1892 "italie",1893 "alsace",1894 "languedoc",1895 "provence",1896 "jura"1897 ],1898 "pagesPerRegion": 31899 }1900 },1901 {1902 "id": "laced",1903 "displayName": "Laced (UK sneaker marketplace — asks per size)",1904 "sourceId": "laced",1905 "sourceName": "Laced",1906 "sourceType": "marketplace",1907 "sourceUrl": "https://www.laced.com",1908 "module": "api/laced",1909 "enginePriority": [1910 "api",1911 "firecrawl"1912 ],1913 "categories": [1914 "sneakers",1915 "nike_jordan",1916 "adidas_yeezy",1917 "new_balance_asics_other"1918 ],1919 "regions": [1920 "GB",1921 "EU"1922 ],1923 "languages": [1924 "en"1925 ],1926 "currency": [1927 "GBP"1928 ],1929 "supportsListings": true,1930 "supportsSold": false,1931 "supportsAuctions": false,1932 "supportsImages": true,1933 "supportsCatalog": true,1934 "supportsPopulation": false,1935 "supportsLookup": true,1936 "refreshFrequencyMinutes": 720,1937 "priority": "medium",1938 "trustScore": 0.75,1939 "attributionRequired": true,1940 "termsUrl": "https://www.laced.com/pages/terms-and-conditions",1941 "accessNotes": "Public brand pages (laced.com/<brand>) list product slugs; each product page embeds a schema.org ProductGroup with the style code (sku), brand and one Product per size carrying the current lowest ask in GBP. Plain HTTPS with the RareIndex user agent; robots.txt allows everything except account/admin. New-condition marketplace (deadstock). 1.5 s between pages; productsPerSeed caps product-page fetches per run.",1942 "enabled": true,1943 "schemaVersion": "1.0",1944 "config": {1945 "seeds": [1946 "air-jordan",1947 "nike",1948 "adidas",1949 "yeezy",1950 "new-balance",1951 "asics"1952 ],1953 "productsPerSeed": 241954 }1955 },1956 {1957 "id": "lego-shop",1958 "displayName": "LEGO.com Shop (official retail price & availability)",1959 "sourceId": "lego-shop",1960 "sourceName": "LEGO Shop (official)",1961 "sourceType": "manufacturer",1962 "sourceUrl": "https://www.lego.com",1963 "module": "firecrawl/lego-shop",1964 "enginePriority": [1965 "firecrawl",1966 "scrapfly"1967 ],1968 "categories": [1969 "lego_sets",1970 "lego"1971 ],1972 "regions": [1973 "US"1974 ],1975 "languages": [1976 "en"1977 ],1978 "currency": [1979 "USD"1980 ],1981 "supportsListings": true,1982 "supportsSold": false,1983 "supportsAuctions": false,1984 "supportsImages": true,1985 "supportsCatalog": true,1986 "supportsPopulation": false,1987 "supportsLookup": true,1988 "refreshFrequencyMinutes": 1440,1989 "priority": "medium",1990 "trustScore": 0.95,1991 "attributionRequired": true,1992 "termsUrl": "https://www.lego.com/en-us/legal/notices-and-policies/terms-of-use",1993 "accessNotes": "Official manufacturer store. Public theme pages (lego.com/en-us/themes/<theme>?page=N) and product pages are rendered client-side and return 403 to plain non-browser clients, so they are fetched with Firecrawl (1 credit per page; ~22 products per theme page). Parsed per product leaf: set number (from the product URL), name, US retail price, badges (New / Retiring soon / Coming Soon / Exclusive / Hard to find / Sold out), image; product pages add availability, age and piece count. Emits catalog items (MSRP USD, identifiers.lego_set_number shared with PriceCharting/Brickset/BrickEconomy) and the official-store fixed-price listing. robots.txt only disallows account/checkout/identity paths.",1994 "enabled": true,1995 "schemaVersion": "1.0",1996 "config": {1997 "themes": [1998 "star-wars",1999 "icons",2000 "technic",2001 "ideas",2002 "harry-potter",2003 "marvel",2004 "architecture",2005 "ninjago",2006 "creator-expert",2007 "botanical-collection"2008 ],2009 "pagesPerTheme": 12010 }2011 },2012 {2013 "id": "lorcast",2014 "displayName": "Lorcast (Disney Lorcana)",2015 "sourceId": "lorcast",2016 "sourceName": "Lorcast",2017 "sourceType": "catalog",2018 "sourceUrl": "https://lorcast.com",2019 "module": "api/lorcast",2020 "enginePriority": [2021 "api"2022 ],2023 "categories": [2024 "disney_lorcana"2025 ],2026 "regions": [2027 "US",2028 "EU"2029 ],2030 "languages": [2031 "en"2032 ],2033 "currency": [2034 "USD"2035 ],2036 "supportsListings": false,2037 "supportsSold": false,2038 "supportsAuctions": false,2039 "supportsImages": true,2040 "supportsCatalog": true,2041 "supportsPopulation": false,2042 "supportsLookup": false,2043 "refreshFrequencyMinutes": 1440,2044 "priority": "medium",2045 "trustScore": 0.75,2046 "attributionRequired": true,2047 "termsUrl": "https://lorcast.com/docs/api",2048 "accessNotes": "Open Lorcast REST API (v0, no key): /sets then /cards/search?q=set:<code>&page=N. Cards carry TCGplayer ids and USD market prices (normal / foil) without a timestamp, so observations are dated by the fetch day with confidence 0.7. Enchanted cards are emitted as a single 'Enchanted' variant. ~4 req/s self-throttled.",2049 "enabled": true,2050 "schemaVersion": "1.0",2051 "config": {}2052 },2053 {2054 "id": "lyon-turnbull",2055 "displayName": "Lyon & Turnbull (auction results)",2056 "sourceId": "lyon-turnbull",2057 "sourceName": "Lyon & Turnbull",2058 "sourceType": "auction_house",2059 "sourceUrl": "https://www.lyonandturnbull.com",2060 "module": "api/lyon-turnbull",2061 "enginePriority": [2062 "api",2063 "firecrawl",2064 "scrapfly"2065 ],2066 "categories": [2067 "art",2068 "contemporary_art",2069 "photography",2070 "design_furniture",2071 "antiques",2072 "jewelry",2073 "silver",2074 "watches",2075 "other_watches",2076 "books",2077 "whisky",2078 "porcelain",2079 "glass_crystal",2080 "clocks",2081 "scientific_instruments"2082 ],2083 "regions": [2084 "GB"2085 ],2086 "languages": [2087 "en"2088 ],2089 "currency": [2090 "GBP"2091 ],2092 "supportsListings": false,2093 "supportsSold": true,2094 "supportsAuctions": true,2095 "supportsImages": true,2096 "supportsCatalog": false,2097 "supportsPopulation": false,2098 "supportsLookup": false,2099 "refreshFrequencyMinutes": 1440,2100 "priority": "medium",2101 "trustScore": 0.9,2102 "attributionRequired": true,2103 "termsUrl": "https://www.lyonandturnbull.com/auctions/buy-sell/buy",2104 "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.",2105 "enabled": true,2106 "schemaVersion": "1.0",2107 "config": {2108 "pastAuctionsUrl": "https://www.lyonandturnbull.com/auctions/past-auctions",2109 "auctionsPerRun": 32110 }2111 },2112 {2113 "id": "ma-shops",2114 "displayName": "MA-Shops (European coin, banknote & militaria dealer network)",2115 "sourceId": "ma-shops",2116 "sourceName": "MA-Shops",2117 "sourceType": "marketplace",2118 "sourceUrl": "https://www.ma-shops.com",2119 "module": "api/ma-shops",2120 "enginePriority": [2121 "api",2122 "firecrawl"2123 ],2124 "categories": [2125 "coins",2126 "banknotes",2127 "medals",2128 "militaria"2129 ],2130 "regions": [2131 "DE",2132 "EU"2133 ],2134 "languages": [2135 "en",2136 "de"2137 ],2138 "currency": [2139 "EUR",2140 "USD",2141 "CAD"2142 ],2143 "supportsListings": true,2144 "supportsSold": false,2145 "supportsAuctions": false,2146 "supportsImages": true,2147 "supportsCatalog": false,2148 "supportsPopulation": false,2149 "supportsLookup": false,2150 "refreshFrequencyMinutes": 1440,2151 "priority": "low",2152 "trustScore": 0.75,2153 "attributionRequired": true,2154 "termsUrl": "https://www.ma-shops.com/shops/help.php?id=1",2155 "accessNotes": "Public search gallery pages (ma-shops.com/search.php?keywords=…, 45 items per page; category landing pages only show a handful of featured items) fetched over plain HTTPS with the RareIndex user agent; robots.txt is fully permissive. Each gallery cell gives the dealer's item URL, title, price with the displayed currency (the site picks a currency per visitor — CAN$, US$ or EUR — which is parsed and stored as-is), the dealer name and the primary image. Emits dealer asks (fixed-price listings). Militaria items carry the taxonomy compliance flags (jurisdiction_check, restricted_symbols_review) and are presented neutrally.",2156 "enabled": true,2157 "schemaVersion": "1.0",2158 "config": {2159 "seeds": [2160 {2161 "path": "/search.php?keywords=denarius",2162 "categorySlug": "coins",2163 "label": "Roman denarius"2164 },2165 {2166 "path": "/search.php?keywords=thaler",2167 "categorySlug": "coins",2168 "label": "Thaler"2169 },2170 {2171 "path": "/search.php?keywords=tetradrachm",2172 "categorySlug": "coins",2173 "label": "Greek tetradrachm"2174 },2175 {2176 "path": "/search.php?keywords=20+mark+gold",2177 "categorySlug": "coins",2178 "label": "German 20 Mark gold"2179 },2180 {2181 "path": "/search.php?keywords=sovereign",2182 "categorySlug": "coins",2183 "label": "Sovereign"2184 },2185 {2186 "path": "/search.php?keywords=banknote",2187 "categorySlug": "banknotes",2188 "label": "Banknotes"2189 },2190 {2191 "path": "/search.php?keywords=medaille",2192 "categorySlug": "medals",2193 "label": "Medals"2194 }2195 ],2196 "pagesPerSeed": 12197 }2198 },2199 {2200 "id": "mecum",2201 "displayName": "Mecum Auctions (results)",2202 "sourceId": "mecum",2203 "sourceName": "Mecum Auctions",2204 "sourceType": "auction_house",2205 "sourceUrl": "https://www.mecum.com",2206 "module": "firecrawl/mecum",2207 "enginePriority": [2208 "firecrawl"2209 ],2210 "categories": [2211 "automobiles",2212 "motorcycles",2213 "automotive_memorabilia"2214 ],2215 "regions": [2216 "US"2217 ],2218 "languages": [2219 "en"2220 ],2221 "currency": [2222 "USD"2223 ],2224 "supportsListings": false,2225 "supportsSold": true,2226 "supportsAuctions": false,2227 "supportsImages": true,2228 "supportsCatalog": false,2229 "supportsPopulation": false,2230 "supportsLookup": false,2231 "refreshFrequencyMinutes": 720,2232 "priority": "high",2233 "trustScore": 0.9,2234 "attributionRequired": true,2235 "termsUrl": "https://www.mecum.com/terms-and-conditions/",2236 "accessNotes": "Public results: the /results/ page lists completed auctions (plain HTTPS), each auction's lot list (/auctions/<slug>/lots/?page=N, 24 lots per page) is rendered through Firecrawl because prices are client-rendered. robots.txt allows the pages (only /search/ is disallowed). Lots carrying the 'sold' badge with a price become sales; 'bid goes on'/unsold lots are skipped. Sale date = first day of the auction's date range (range kept in metadata). Mecum does not state on the results page whether displayed prices include the buyer's premium → buyer_premium_included=null (flagged for review). 1 credit per page, 2 s politeness delay.",2237 "enabled": true,2238 "schemaVersion": "1.0",2239 "config": {2240 "auctionsPerRun": 1,2241 "lotPagesPerAuction": 102242 }2243 },2244 {2245 "id": "mtggoldfish",2246 "displayName": "MTGGoldfish (paper prices & history)",2247 "sourceId": "mtggoldfish",2248 "sourceName": "MTGGoldfish",2249 "sourceType": "pricing_guide",2250 "sourceUrl": "https://www.mtggoldfish.com",2251 "module": "api/mtggoldfish",2252 "enginePriority": [2253 "api",2254 "firecrawl"2255 ],2256 "categories": [2257 "magic_the_gathering"2258 ],2259 "regions": [2260 "US"2261 ],2262 "languages": [2263 "en"2264 ],2265 "currency": [2266 "USD"2267 ],2268 "supportsListings": false,2269 "supportsSold": false,2270 "supportsAuctions": false,2271 "supportsImages": true,2272 "supportsCatalog": true,2273 "supportsPopulation": false,2274 "supportsLookup": true,2275 "refreshFrequencyMinutes": 1440,2276 "priority": "medium",2277 "trustScore": 0.75,2278 "attributionRequired": true,2279 "termsUrl": "https://www.mtggoldfish.com/robots.txt",2280 "accessNotes": "Public set pages (https://www.mtggoldfish.com/sets/<Set+Name>) embed a JSON payload with every printing (card_uuid, set code, collector number, finish, current paper/online price, images). robots.txt allows '/' for generic agents (only widgets/embeds are disallowed; Content-Signal ai-train=no is respected — data is used as market reference, not for training). Paper price = TCGplayer-derived market price → price_observation 'market' dated by fetch day (confidence 0.75). For cards above `history.minPrice` the public price-history component (/price_history_component, daily series since 2010) is fetched, capped per run → dated observations that give assets a real multi-year guide-price history. Politeness 1.5 s/page; ~340 sets.",2281 "enabled": true,2282 "schemaVersion": "1.0",2283 "config": {2284 "seeds": [],2285 "maxSetsPerRun": 60,2286 "history": {2287 "enabled": true,2288 "minPrice": 100,2289 "maxPerRun": 150,2290 "days": 10952291 }2292 }2293 },2294 {2295 "id": "novelship",2296 "displayName": "Novelship (sneaker catalog, last sale & lowest ask)",2297 "sourceId": "novelship",2298 "sourceName": "Novelship",2299 "sourceType": "marketplace",2300 "sourceUrl": "https://novelship.com",2301 "module": "api/novelship",2302 "enginePriority": [2303 "api",2304 "firecrawl",2305 "scrapfly"2306 ],2307 "categories": [2308 "sneakers",2309 "nike_jordan",2310 "adidas_yeezy",2311 "new_balance_asics_other"2312 ],2313 "regions": [2314 "SG",2315 "AU",2316 "NZ",2317 "TW",2318 "HK",2319 "MY",2320 "JP",2321 "US"2322 ],2323 "languages": [2324 "en"2325 ],2326 "currency": [2327 "USD"2328 ],2329 "supportsListings": true,2330 "supportsSold": false,2331 "supportsAuctions": false,2332 "supportsImages": true,2333 "supportsCatalog": true,2334 "supportsPopulation": false,2335 "supportsLookup": true,2336 "refreshFrequencyMinutes": 720,2337 "priority": "medium",2338 "trustScore": 0.7,2339 "attributionRequired": true,2340 "termsUrl": "https://novelship.com/terms",2341 "accessNotes": "Public Novelship browse pages (novelship.com/sneakers/<brand>?page=N) and product pages fetched over plain HTTPS with the RareIndex user agent; robots.txt only disallows sell/auth/dashboard/pay paths. The server-rendered payload embeds each product's SKU (style code), colorway, retail cost, release date, last sale price, lowest listing price and 180-day sales count — no login or private endpoint is used. Prices are read as USD (the anonymous international storefront prices in US$; cost_retail matches US retail) with confidence 0.7; per-size asks are not exposed on listing pages. Sizes/stock are not fetched. 1.5 s politeness delay.",2342 "enabled": true,2343 "schemaVersion": "1.0",2344 "config": {2345 "seeds": [2346 "jordan",2347 "nike",2348 "adidas",2349 "new-balance",2350 "asics",2351 "yeezy"2352 ],2353 "pagesPerSeed": 32354 }2355 },2356 {2357 "id": "optcg",2358 "displayName": "OPTCG API (One Piece Card Game)",2359 "sourceId": "optcgapi",2360 "sourceName": "OPTCG API",2361 "sourceType": "catalog",2362 "sourceUrl": "https://optcgapi.com",2363 "module": "api/optcg",2364 "enginePriority": [2365 "api"2366 ],2367 "categories": [2368 "one_piece_card_game"2369 ],2370 "regions": [2371 "US"2372 ],2373 "languages": [2374 "en"2375 ],2376 "currency": [2377 "USD"2378 ],2379 "supportsListings": false,2380 "supportsSold": false,2381 "supportsAuctions": false,2382 "supportsImages": true,2383 "supportsCatalog": true,2384 "supportsPopulation": false,2385 "supportsLookup": false,2386 "refreshFrequencyMinutes": 1440,2387 "priority": "medium",2388 "trustScore": 0.65,2389 "attributionRequired": true,2390 "termsUrl": "https://optcgapi.com/",2391 "accessNotes": "Open community API (no key): /api/allSets/ then /api/sets/<set_id>/ returning every card of the set with TCGplayer-derived market_price / inventory_price and a date_scraped, used as the observation date (confidence 0.7 / 0.65). Alternate arts share the card code and are distinguished by image id. One request per set, 0.5 s politeness.",2392 "enabled": true,2393 "schemaVersion": "1.0",2394 "config": {}2395 },2396 {2397 "id": "pba-galleries",2398 "displayName": "PBA Galleries (prices realized)",2399 "sourceId": "pba-galleries",2400 "sourceName": "PBA Galleries",2401 "sourceType": "auction_house",2402 "sourceUrl": "https://www.pbagalleries.com",2403 "module": "firecrawl/pba-galleries",2404 "enginePriority": [2405 "firecrawl"2406 ],2407 "categories": [2408 "books",2409 "comics",2410 "marvel_comics",2411 "dc_comics",2412 "independent_comics",2413 "photography",2414 "maps",2415 "movie_posters",2416 "art",2417 "historical_documents"2418 ],2419 "regions": [2420 "US"2421 ],2422 "languages": [2423 "en"2424 ],2425 "currency": [2426 "USD"2427 ],2428 "supportsListings": false,2429 "supportsSold": true,2430 "supportsAuctions": false,2431 "supportsImages": true,2432 "supportsCatalog": false,2433 "supportsPopulation": false,2434 "supportsLookup": false,2435 "refreshFrequencyMinutes": 1440,2436 "priority": "medium",2437 "trustScore": 0.85,2438 "attributionRequired": true,2439 "termsUrl": "https://www.pbagalleries.com/terms-conditions/",2440 "accessNotes": "Public auction list (pbagalleries.com/auctions/?page=N: sale number, title, date, catalog id) and closed catalogs (/auctions/catalog/id/<id>?page=N, 'Sold for $X' + 'Status Sold' per lot with title/publisher/date fields) rendered through Firecrawl (plain HTTPS gets a Cloudflare interstitial; not bypassed; robots.txt allows the site). PBA's realized prices include the 25% buyer's premium (verified: every price is a hammer bid × 1.25) → buyer_premium_included=true. Category from the sale title (comics/books/photographs/maps/posters). 1 credit per page, 2 s politeness delay.",2441 "enabled": true,2442 "schemaVersion": "1.0",2443 "config": {2444 "auctionsPerRun": 2,2445 "catalogPagesPerAuction": 52446 }2447 },2448 {2449 "id": "pcgs-priceguide",2450 "displayName": "PCGS Price Guide (US coins)",2451 "sourceId": "pcgs",2452 "sourceName": "PCGS",2453 "sourceType": "grading_company",2454 "sourceUrl": "https://www.pcgs.com",2455 "module": "firecrawl/pcgs-priceguide",2456 "enginePriority": [2457 "firecrawl",2458 "scrapfly"2459 ],2460 "categories": [2461 "coins"2462 ],2463 "regions": [2464 "US"2465 ],2466 "languages": [2467 "en"2468 ],2469 "currency": [2470 "USD"2471 ],2472 "supportsListings": false,2473 "supportsSold": false,2474 "supportsAuctions": false,2475 "supportsImages": false,2476 "supportsCatalog": true,2477 "supportsPopulation": false,2478 "supportsLookup": false,2479 "refreshFrequencyMinutes": 10080,2480 "priority": "low",2481 "trustScore": 0.9,2482 "attributionRequired": true,2483 "termsUrl": "https://www.pcgs.com/legal",2484 "accessNotes": "Public PCGS Price Guide category pages (pcgs.com/prices/detail/<series>/<id>/most-active) — no login required; robots.txt does not restrict /prices. Plain HTTPS is refused by the CDN (403) so pages are rendered through Firecrawl (1 credit per category page ≈ 100 coins × 10 grades). Values are PCGS retail guide values in USD per grade (columns 4…70 and '+' grades), dated with the page's 'Last Update' stamp. Stored as guide_value observations with grader 'pcgs' and grade like MS65 / PR65 / MS65+; PCGS coin numbers are kept as identifiers (pcgs_number). Auction Prices Realized and the Population Report on pcgs.com require a Collectors account and are not fetched.",2485 "enabled": true,2486 "schemaVersion": "1.0",2487 "config": {2488 "seeds": [2489 "morgan-dollar/744",2490 "peace-dollar/26",2491 "lincoln-cent-wheat-reverse/46",2492 "indian-cent/44",2493 "buffalo-nickel/83",2494 "mercury-dime/703",2495 "walking-liberty-half-dollar/733",2496 "standing-liberty-quarter/111",2497 "franklin-half-dollar/734",2498 "kennedy-half-dollar/125",2499 "washington-quarter/112",2500 "trade-dollar/743",2501 "flying-eagle-cent/664",2502 "barber-half-dollar/732",2503 "silver-eagles/939",2504 "liberty-seated-dollar/29"2505 ],2506 "designations": [2507 "ms"2508 ]2509 }2510 },2511 {2512 "id": "phillips-art",2513 "displayName": "Phillips Art, Editions, Design & Photographs (auction results)",2514 "sourceId": "phillips",2515 "sourceName": "Phillips",2516 "sourceType": "auction_house",2517 "sourceUrl": "https://www.phillips.com",2518 "module": "firecrawl/phillips-art",2519 "enginePriority": [2520 "firecrawl",2521 "scrapfly"2522 ],2523 "categories": [2524 "art",2525 "contemporary_art",2526 "photography",2527 "design_furniture",2528 "jewelry",2529 "luxury_handbags"2530 ],2531 "regions": [2532 "US",2533 "GB",2534 "HK",2535 "CH"2536 ],2537 "languages": [2538 "en"2539 ],2540 "currency": [2541 "USD",2542 "GBP",2543 "HKD",2544 "CHF",2545 "EUR"2546 ],2547 "supportsListings": false,2548 "supportsSold": true,2549 "supportsAuctions": true,2550 "supportsImages": true,2551 "supportsCatalog": false,2552 "supportsPopulation": false,2553 "supportsLookup": false,2554 "refreshFrequencyMinutes": 10080,2555 "priority": "medium",2556 "trustScore": 0.95,2557 "attributionRequired": true,2558 "termsUrl": "https://www.phillips.com/about/terms",2559 "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.",2560 "enabled": true,2561 "schemaVersion": "1.0",2562 "config": {2563 "pastAuctionsUrl": "https://www.phillips.com/auctions/past",2564 "salesPerRun": 4,2565 "departments": [2566 {2567 "filter": "editions",2568 "category": "contemporary_art"2569 },2570 {2571 "filter": "design",2572 "category": "design_furniture"2573 },2574 {2575 "filter": "photograph",2576 "category": "photography"2577 },2578 {2579 "filter": "contemporary art",2580 "category": "contemporary_art"2581 },2582 {2583 "filter": "jewels",2584 "category": "jewelry"2585 },2586 {2587 "filter": "handbags",2588 "category": "luxury_handbags"2589 }2590 ]2591 }2592 },2593 {2594 "id": "phillips-watches",2595 "displayName": "Phillips Watches (auction results)",2596 "sourceId": "phillips",2597 "sourceName": "Phillips",2598 "sourceType": "auction_house",2599 "sourceUrl": "https://www.phillips.com",2600 "module": "firecrawl/phillips-watches",2601 "enginePriority": [2602 "firecrawl",2603 "scrapfly"2604 ],2605 "categories": [2606 "watches",2607 "rolex",2608 "patek_philippe",2609 "audemars_piguet",2610 "omega",2611 "other_watches"2612 ],2613 "regions": [2614 "CH",2615 "US",2616 "HK",2617 "GB"2618 ],2619 "languages": [2620 "en"2621 ],2622 "currency": [2623 "CHF",2624 "USD",2625 "HKD",2626 "GBP",2627 "EUR"2628 ],2629 "supportsListings": false,2630 "supportsSold": true,2631 "supportsAuctions": true,2632 "supportsImages": true,2633 "supportsCatalog": false,2634 "supportsPopulation": false,2635 "supportsLookup": false,2636 "refreshFrequencyMinutes": 10080,2637 "priority": "high",2638 "trustScore": 0.95,2639 "attributionRequired": true,2640 "termsUrl": "https://www.phillips.com/about/terms",2641 "accessNotes": "Past watch sales are discovered from the public /auctions/past page (plain HTTPS; embedded JSON with saleNumber, title, end date, location). Each sale page is rendered through Firecrawl (JS wait ~6 s, 1 credit) to read the public lot list: lot number, maker, reference, model, estimate and 'Sold For' (Phillips publishes prices realised including buyer's premium). robots.txt disallows only /search and filter paths. No login, no bidder data. Large sales may lazy-load beyond the first ~70 lots — coverage is recorded per run.",2642 "enabled": true,2643 "schemaVersion": "1.0",2644 "config": {2645 "pastAuctionsUrl": "https://www.phillips.com/auctions/past",2646 "salesPerRun": 6,2647 "titleFilter": "watch"2648 }2649 },2650 {2651 "id": "pokemonprice",2652 "displayName": "PokemonPrice (graded Pokémon price guide)",2653 "sourceId": "pokemonprice",2654 "sourceName": "PokemonPrice.com",2655 "sourceType": "pricing_guide",2656 "sourceUrl": "https://www.pokemonprice.com",2657 "module": "api/pokemonprice",2658 "enginePriority": [2659 "api",2660 "firecrawl"2661 ],2662 "categories": [2663 "pokemon"2664 ],2665 "regions": [2666 "US"2667 ],2668 "languages": [2669 "en"2670 ],2671 "currency": [2672 "USD"2673 ],2674 "supportsListings": false,2675 "supportsSold": false,2676 "supportsAuctions": false,2677 "supportsImages": true,2678 "supportsCatalog": true,2679 "supportsPopulation": false,2680 "supportsLookup": true,2681 "refreshFrequencyMinutes": 2880,2682 "priority": "medium",2683 "trustScore": 0.7,2684 "attributionRequired": true,2685 "termsUrl": "https://www.pokemonprice.com/about-us",2686 "accessNotes": "Public server-rendered card pages (robots.txt allows '/' for generic agents; Content-Signal ai-train=no respected). Each card page embeds, in its React Server Components payload, a per-grade price model (Raw, PSA 1–10, BGS, CGC: fair/low/high price, model confidence, last sale date) derived from eBay and other public sold listings, plus monthly transaction counts. Emitted as price_observations 'guide_value' (+ low/high) per grade with the model confidence (capped 0.8) and the monthly transaction count as sampleSize — not transactions. Set naming follows pokemontcg ('Base Set', 'Jungle'…); edition suffixes (1st Edition, Shadowless) become the variant so assets merge with the API catalogs. ~167 set lists, ~25k card pages; politeness 1.5 s, `maxCardsPerRun` caps a run and the cursor rotates through sets.",2687 "enabled": true,2688 "schemaVersion": "1.0",2689 "config": {2690 "seeds": [],2691 "maxCardsPerRun": 300,2692 "priceKinds": [2693 "guide_value",2694 "low",2695 "high"2696 ]2697 }2698 },2699 {2700 "id": "pokemontcg",2701 "displayName": "Pokémon TCG API (pokemontcg.io)",2702 "sourceId": "pokemontcg",2703 "sourceName": "Pokémon TCG API",2704 "sourceType": "catalog",2705 "sourceUrl": "https://pokemontcg.io",2706 "module": "api/pokemontcg",2707 "enginePriority": [2708 "api",2709 "feed"2710 ],2711 "categories": [2712 "pokemon"2713 ],2714 "regions": [2715 "US",2716 "EU"2717 ],2718 "languages": [2719 "en"2720 ],2721 "currency": [2722 "USD",2723 "EUR"2724 ],2725 "supportsListings": false,2726 "supportsSold": false,2727 "supportsAuctions": false,2728 "supportsImages": true,2729 "supportsCatalog": true,2730 "supportsPopulation": false,2731 "supportsLookup": false,2732 "refreshFrequencyMinutes": 1440,2733 "priority": "high",2734 "trustScore": 0.8,2735 "attributionRequired": true,2736 "termsUrl": "https://docs.pokemontcg.io/",2737 "accessNotes": "Public REST API v2 (https://api.pokemontcg.io/v2). Optional X-Api-Key (POKEMONTCG_API_KEY) raises limits (20k/day) — without a key ~1k/day and 30/min. Crawl = sets, then cards per set (pageSize 250, cursor {setIndex,page}). The API is intermittently unavailable (5xx); the connector retries with backoff and falls back to the maintainers' public GitHub mirror (PokemonTCG/pokemon-tcg-data, same card schema, no prices) for the catalog when the API keeps failing. Prices are TCGplayer (USD, per printing variant: normal/holofoil/reverseHolofoil/1stEdition…) and Cardmarket (EUR) daily aggregates with their own updatedAt → stored as price_observations, never as sales. Pokémon © Nintendo/Creatures/GAME FREAK; data attributed to pokemontcg.io.",2738 "enabled": true,2739 "schemaVersion": "1.0",2740 "config": {2741 "pageSize": 250,2742 "requestIntervalMs": 2100,2743 "mirrorBase": "https://raw.githubusercontent.com/PokemonTCG/pokemon-tcg-data/master"2744 }2745 },2746 {2747 "id": "pricecharting",2748 "displayName": "PriceCharting",2749 "sourceId": "pricecharting",2750 "sourceName": "PriceCharting",2751 "sourceType": "pricing_guide",2752 "sourceUrl": "https://www.pricecharting.com",2753 "module": "api/pricecharting",2754 "enginePriority": [2755 "api",2756 "firecrawl",2757 "scrapfly"2758 ],2759 "categories": [2760 "video_games",2761 "nintendo_games",2762 "sega_games",2763 "playstation_games",2764 "xbox_games",2765 "atari_retro_games",2766 "pc_games",2767 "lego_sets",2768 "funko",2769 "comics",2770 "marvel_comics",2771 "dc_comics",2772 "independent_comics",2773 "trading_cards",2774 "pokemon",2775 "magic_the_gathering",2776 "yugioh"2777 ],2778 "regions": [2779 "US"2780 ],2781 "languages": [2782 "en"2783 ],2784 "currency": [2785 "USD"2786 ],2787 "supportsListings": false,2788 "supportsSold": true,2789 "supportsAuctions": false,2790 "supportsImages": true,2791 "supportsCatalog": true,2792 "supportsPopulation": false,2793 "supportsLookup": true,2794 "refreshFrequencyMinutes": 1440,2795 "priority": "high",2796 "trustScore": 0.7,2797 "attributionRequired": true,2798 "termsUrl": "https://www.pricecharting.com/page/terms-of-service",2799 "accessNotes": "Public product pages fetched over plain HTTPS with the RareIndex user agent (robots.txt only disallows /buy, /publish-offer, /stripe-connect). Each product page exposes PriceCharting guide values per condition and a table of recently completed eBay sales (date, title, price, eBay item id) — we store those as sales with the PriceCharting page as source URL. No account, no API key, no photos (TimeWarp is paid and not used). Console listings paginate through the public ?format=json cursor endpoint. ~1 request per product, 1.5 s politeness delay. Trading-card consoles (Pokémon, Magic, Yu-Gi-Oh!) are discovered from the public /category/<game>-cards pages; card pages expose guide values and eBay sales per grade (Ungraded, Grade 1–9.5, TAG/ACE/SGC/CGC/PSA/BGS 10, BGS 10 Black, CGC 10 Pristine). Graded rows without a named company use the generic grader 'graded' unless the eBay title names it. Pokémon sets are mapped to pokemontcg ids/codes through the maintainers' GitHub mirror and Magic sets/cards to Scryfall (one exact-name API lookup per Magic product, ≤ 10 req/s) so sales attach to the API catalogs' canonical assets.",2800 "enabled": true,2801 "schemaVersion": "2.0",2802 "config": {2803 "seeds": [2804 "nintendo-64",2805 "nes",2806 "super-nintendo",2807 "gamecube",2808 "gameboy",2809 "gameboy-color",2810 "gameboy-advance",2811 "nintendo-ds",2812 "nintendo-switch",2813 "wii",2814 "playstation",2815 "playstation-2",2816 "playstation-3",2817 "playstation-4",2818 "playstation-5",2819 "psp",2820 "xbox",2821 "xbox-360",2822 "xbox-one",2823 "xbox-series-x",2824 "sega-genesis",2825 "sega-dreamcast",2826 "sega-saturn",2827 "sega-master-system",2828 "sega-game-gear",2829 "atari-2600",2830 "neo-geo-aes",2831 "turbografx-16",2832 "pc-games",2833 "lego-star-wars",2834 "lego-creator",2835 "lego-technic",2836 "lego-icons",2837 "lego-harry-potter",2838 "lego-ideas",2839 "lego-marvel-super-heroes",2840 "lego-ninjago",2841 "lego-castle",2842 "lego-space",2843 "lego-modular-buildings",2844 "funko-pop-marvel",2845 "funko-pop-star-wars",2846 "funko-pop-disney",2847 "funko-pop-animation",2848 "funko-pop-television",2849 "funko-pop-movies",2850 "funko-pop-games",2851 "funko-pop-rocks",2852 "funko-pop-comics",2853 "comic-books-amazing-spider-man",2854 "comic-books-batman",2855 "comic-books-action-comics",2856 "comic-books-detective-comics",2857 "comic-books-x-men",2858 "comic-books-incredible-hulk",2859 "comic-books-fantastic-four",2860 "comic-books-avengers",2861 "comic-books-spawn",2862 "comic-books-walking-dead",2863 "pokemon-base-set",2864 "pokemon-jungle",2865 "pokemon-fossil",2866 "pokemon-team-rocket",2867 "pokemon-neo-genesis",2868 "pokemon-evolving-skies",2869 "pokemon-151",2870 "pokemon-promo",2871 "magic-alpha",2872 "magic-beta",2873 "magic-unlimited",2874 "magic-revised",2875 "magic-arabian-nights",2876 "magic-legends",2877 "magic-modern-horizons-3",2878 "yugioh-legend-of-blue-eyes-white-dragon",2879 "yugioh-metal-raiders",2880 "yugioh-spell-ruler",2881 "yugioh-pharaohs-servant"2882 ],2883 "productsPerConsole": 150,2884 "sort": "popularity",2885 "cardCategories": [2886 "pokemon-cards",2887 "magic-cards",2888 "yugioh-cards"2889 ],2890 "maxConsolesPerCategory": 302891 }2892 },2893 {2894 "id": "rebag",2895 "displayName": "Rebag (pre-owned luxury bags, watches & jewelry listings)",2896 "sourceId": "rebag",2897 "sourceName": "Rebag",2898 "sourceType": "marketplace",2899 "sourceUrl": "https://shop.rebag.com",2900 "module": "api/rebag",2901 "enginePriority": [2902 "api"2903 ],2904 "categories": [2905 "luxury_handbags",2906 "watches",2907 "rolex",2908 "omega",2909 "other_watches",2910 "jewelry",2911 "fashion_streetwear"2912 ],2913 "regions": [2914 "US"2915 ],2916 "languages": [2917 "en"2918 ],2919 "currency": [2920 "USD"2921 ],2922 "supportsListings": true,2923 "supportsSold": false,2924 "supportsAuctions": false,2925 "supportsImages": true,2926 "supportsCatalog": false,2927 "supportsPopulation": false,2928 "supportsLookup": true,2929 "refreshFrequencyMinutes": 720,2930 "priority": "medium",2931 "trustScore": 0.8,2932 "attributionRequired": true,2933 "termsUrl": "https://www.rebag.com/terms-of-service/",2934 "accessNotes": "Public Shopify storefront feed (shop.rebag.com/collections/<handle>/products.json) over plain HTTPS with the RareIndex user agent; rebag.com robots.txt disallows nothing relevant (only /digital_certificate/). Each product is one authenticated pre-owned item in USD; Rebag's condition grade (Pristine/Excellent/Great/Good/Fair) is the first token of the variant title and the estimated retail price comes from the description. 1.5 s between requests.",2935 "enabled": true,2936 "schemaVersion": "1.0",2937 "config": {2938 "seeds": [2939 "hermes",2940 "chanel",2941 "louis-vuitton",2942 "dior",2943 "gucci",2944 "goyard",2945 "fendi",2946 "bottega-veneta",2947 "prada",2948 "celine",2949 "loewe",2950 "saint-laurent",2951 "all-watches",2952 "rolex",2953 "omega",2954 "cartier",2955 "van-cleef-arpels"2956 ],2957 "pagesPerSeed": 22958 }2959 },2960 {2961 "id": "rm-sothebys",2962 "displayName": "RM Sotheby's (results)",2963 "sourceId": "rm-sothebys",2964 "sourceName": "RM Sotheby's",2965 "sourceType": "auction_house",2966 "sourceUrl": "https://rmsothebys.com",2967 "module": "firecrawl/rm-sothebys",2968 "enginePriority": [2969 "firecrawl"2970 ],2971 "categories": [2972 "automobiles",2973 "motorcycles",2974 "automotive_memorabilia"2975 ],2976 "regions": [2977 "US",2978 "EU",2979 "GB",2980 "AE"2981 ],2982 "languages": [2983 "en"2984 ],2985 "currency": [2986 "USD",2987 "EUR",2988 "GBP",2989 "CHF",2990 "AED"2991 ],2992 "supportsListings": false,2993 "supportsSold": true,2994 "supportsAuctions": false,2995 "supportsImages": true,2996 "supportsCatalog": false,2997 "supportsPopulation": false,2998 "supportsLookup": false,2999 "refreshFrequencyMinutes": 1440,3000 "priority": "medium",3001 "trustScore": 0.9,3002 "attributionRequired": true,3003 "termsUrl": "https://rmsothebys.com/terms-and-conditions/",3004 "accessNotes": "Public results: /results/ (auction list per year with date ranges) and each auction's lot grid (/auctions/<code>/lots/) rendered through Firecrawl because RM's site is an Angular app (no robots.txt is served; nothing is login-gated). Limitation: the lot grid paginates client-side (40 lots per view) and does not expose a page URL, so only the first 40 lots of each auction are captured per run — partial coverage, stated in the data. Lots marked 'Sold' with a price become sales; 'Not Sold' lots are skipped. RM publishes results inclusive of buyer's premium → buyer_premium_included=true. Sale date = first day of the auction (range in metadata). 1 credit per page, 2 s politeness delay.",3005 "enabled": true,3006 "schemaVersion": "1.0",3007 "config": {3008 "auctionsPerRun": 33009 }3010 },3011 {3012 "id": "rr-auction",3013 "displayName": "RR Auction (past auctions)",3014 "sourceId": "rr-auction",3015 "sourceName": "RR Auction",3016 "sourceType": "auction_house",3017 "sourceUrl": "https://www.rrauction.com",3018 "module": "firecrawl/rr-auction",3019 "enginePriority": [3020 "firecrawl"3021 ],3022 "categories": [3023 "space",3024 "autographs",3025 "historical_documents",3026 "apple_collectibles",3027 "music_memorabilia",3028 "sports_memorabilia",3029 "movie_memorabilia",3030 "meteorites",3031 "vintage_computers",3032 "animation_art",3033 "aviation"3034 ],3035 "regions": [3036 "US"3037 ],3038 "languages": [3039 "en"3040 ],3041 "currency": [3042 "USD"3043 ],3044 "supportsListings": false,3045 "supportsSold": true,3046 "supportsAuctions": false,3047 "supportsImages": true,3048 "supportsCatalog": false,3049 "supportsPopulation": false,3050 "supportsLookup": false,3051 "refreshFrequencyMinutes": 720,3052 "priority": "high",3053 "trustScore": 0.9,3054 "attributionRequired": true,3055 "termsUrl": "https://www.rrauction.com/terms-and-conditions",3056 "accessNotes": "Two public pages rendered through Firecrawl (plain HTTPS gets a Cloudflare interstitial; not bypassed; robots.txt allows everything except /admin): the past-auction calendar (/auctions/auction-calendar/cron/past/?page=N: auction id, title, date, realized total) and each auction's lot gallery (/auctions/auction-details/<id>?page=N&itemQty=96&view=gallery&sort=time&cat=0) whose cards show 'Sold For: $X (w/BP)', estimate and the auction date. RR's published prices explicitly include the buyer's premium → buyer_premium_included=true. Categories come from the auction title and lot title keywords. 1 credit per page (96 lots), 2 s politeness delay.",3057 "enabled": true,3058 "schemaVersion": "1.0",3059 "config": {3060 "auctionsPerRun": 2,3061 "lotPagesPerAuction": 6,3062 "calendarPagesPerRun": 13063 }3064 },3065 {3066 "id": "saatchi-art",3067 "displayName": "Saatchi Art (original artworks for sale)",3068 "sourceId": "saatchi-art",3069 "sourceName": "Saatchi Art",3070 "sourceType": "marketplace",3071 "sourceUrl": "https://www.saatchiart.com",3072 "module": "api/saatchi-art",3073 "enginePriority": [3074 "api",3075 "firecrawl",3076 "scrapfly"3077 ],3078 "categories": [3079 "art",3080 "contemporary_art",3081 "photography"3082 ],3083 "regions": [3084 "US",3085 "GB",3086 "EU"3087 ],3088 "languages": [3089 "en"3090 ],3091 "currency": [3092 "USD"3093 ],3094 "supportsListings": true,3095 "supportsSold": false,3096 "supportsAuctions": false,3097 "supportsImages": true,3098 "supportsCatalog": true,3099 "supportsPopulation": false,3100 "supportsLookup": true,3101 "refreshFrequencyMinutes": 1440,3102 "priority": "medium",3103 "trustScore": 0.7,3104 "attributionRequired": true,3105 "termsUrl": "https://www.saatchiart.com/termsofservice",3106 "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.",3107 "enabled": true,3108 "schemaVersion": "1.0",3109 "config": {3110 "seeds": [3111 {3112 "path": "/paintings",3113 "category": "contemporary_art"3114 },3115 {3116 "path": "/photography",3117 "category": "photography"3118 },3119 {3120 "path": "/sculpture",3121 "category": "contemporary_art"3122 },3123 {3124 "path": "/prints",3125 "category": "contemporary_art"3126 },3127 {3128 "path": "/drawings",3129 "category": "contemporary_art"3130 },3131 {3132 "path": "/collage",3133 "category": "contemporary_art"3134 }3135 ],3136 "pagesPerSeed": 43137 }3138 },3139 {3140 "id": "scotch-whisky-auctions",3141 "displayName": "Scotch Whisky Auctions (results)",3142 "sourceId": "scotch-whisky-auctions",3143 "sourceName": "Scotch Whisky Auctions",3144 "sourceType": "auction_house",3145 "sourceUrl": "https://www.scotchwhiskyauctions.com",3146 "module": "api/scotch-whisky-auctions",3147 "enginePriority": [3148 "api",3149 "firecrawl",3150 "scrapfly"3151 ],3152 "categories": [3153 "whisky",3154 "rum",3155 "cognac"3156 ],3157 "regions": [3158 "GB"3159 ],3160 "languages": [3161 "en"3162 ],3163 "currency": [3164 "GBP"3165 ],3166 "supportsListings": false,3167 "supportsSold": true,3168 "supportsAuctions": true,3169 "supportsImages": true,3170 "supportsCatalog": false,3171 "supportsPopulation": false,3172 "supportsLookup": true,3173 "refreshFrequencyMinutes": 1440,3174 "priority": "high",3175 "trustScore": 0.9,3176 "attributionRequired": true,3177 "termsUrl": "https://www.scotchwhiskyauctions.com/terms/",3178 "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).",3179 "enabled": true,3180 "schemaVersion": "1.0",3181 "config": {3182 "auctionsUrl": "https://www.scotchwhiskyauctions.com/auctions/",3183 "auctionsPerRun": 2,3184 "pagesPerRun": 123185 }3186 },3187 {3188 "id": "scryfall",3189 "displayName": "Scryfall (Magic: The Gathering)",3190 "sourceId": "scryfall",3191 "sourceName": "Scryfall",3192 "sourceType": "catalog",3193 "sourceUrl": "https://scryfall.com",3194 "module": "api/scryfall",3195 "enginePriority": [3196 "api"3197 ],3198 "categories": [3199 "magic_the_gathering"3200 ],3201 "regions": [3202 "US",3203 "EU"3204 ],3205 "languages": [3206 "en"3207 ],3208 "currency": [3209 "USD",3210 "EUR"3211 ],3212 "supportsListings": false,3213 "supportsSold": false,3214 "supportsAuctions": false,3215 "supportsImages": true,3216 "supportsCatalog": true,3217 "supportsPopulation": false,3218 "supportsLookup": true,3219 "refreshFrequencyMinutes": 1440,3220 "priority": "high",3221 "trustScore": 0.85,3222 "attributionRequired": true,3223 "termsUrl": "https://scryfall.com/docs/api",3224 "accessNotes": "Official public API, no key. Bulk 'default_cards' JSONL (gzip, ~78 MB, refreshed daily) is streamed for the full catalog; single-card lookups use /cards/<set>/<number>. Scryfall asks for ≤10 req/s (we pace 100 ms), an identifying User-Agent and Accept headers. Prices (usd/usd_foil/usd_etched/eur/eur_foil) are Scryfall's daily market aggregates from TCGplayer/Cardmarket → stored as price_observations, never as sales. Card data © Wizards of the Coast; Scryfall requests attribution and no implication of endorsement.",3225 "enabled": true,3226 "schemaVersion": "1.0",3227 "config": {3228 "bulkType": "default_cards",3229 "requestIntervalMs": 1003230 }3231 },3232 {3233 "id": "sorcery-tcg",3234 "displayName": "Sorcery: Contested Realm (official card API)",3235 "sourceId": "sorcery-tcg",3236 "sourceName": "Sorcery TCG (Erik's Curiosa)",3237 "sourceType": "manufacturer",3238 "sourceUrl": "https://sorcerytcg.com",3239 "module": "api/sorcery-tcg",3240 "enginePriority": [3241 "api"3242 ],3243 "categories": [3244 "other_tcg"3245 ],3246 "regions": [3247 "US",3248 "EU"3249 ],3250 "languages": [3251 "en"3252 ],3253 "currency": [],3254 "supportsListings": false,3255 "supportsSold": false,3256 "supportsAuctions": false,3257 "supportsImages": false,3258 "supportsCatalog": true,3259 "supportsPopulation": false,3260 "supportsLookup": false,3261 "refreshFrequencyMinutes": 10080,3262 "priority": "low",3263 "trustScore": 0.85,3264 "attributionRequired": true,3265 "termsUrl": "https://sorcerytcg.com",3266 "accessNotes": "Official public JSON (https://api.sorcerytcg.com/api/cards, one call ≈1,100 cards with every printing: set code/name, finish Standard/Foil, product Booster/Precon/Promo, print date). Catalog only, no prices or images; TCGCSV supplies Sorcery prices via TCGplayer product names. One catalog_item per printing (finish → 'Foil' variant; non-booster product noted in metadata).",3267 "enabled": true,3268 "schemaVersion": "1.0",3269 "config": {}3270 },3271 {3272 "id": "sothebys",3273 "displayName": "Sotheby's (auction results & upcoming lots)",3274 "sourceId": "sothebys",3275 "sourceName": "Sotheby's",3276 "sourceType": "auction_house",3277 "sourceUrl": "https://www.sothebys.com",3278 "module": "api/sothebys",3279 "enginePriority": [3280 "api",3281 "firecrawl"3282 ],3283 "categories": [3284 "rolex",3285 "patek_philippe",3286 "audemars_piguet",3287 "omega",3288 "other_watches",3289 "luxury_handbags",3290 "jewelry",3291 "gemstones",3292 "wine",3293 "whisky",3294 "cognac",3295 "sneakers",3296 "fashion_streetwear",3297 "pokemon",3298 "magic_the_gathering",3299 "basketball_cards",3300 "baseball_cards",3301 "football_cards",3302 "sports_memorabilia",3303 "marvel_comics",3304 "dc_comics",3305 "independent_comics",3306 "art",3307 "contemporary_art",3308 "photography",3309 "books",3310 "maps",3311 "historical_documents",3312 "coins",3313 "banknotes",3314 "design_furniture",3315 "antiques",3316 "automobiles",3317 "space",3318 "scientific_instruments",3319 "fossils",3320 "minerals",3321 "meteorites",3322 "music_memorabilia",3323 "movie_memorabilia",3324 "video_games",3325 "vintage_toys"3326 ],3327 "regions": [3328 "US",3329 "GB",3330 "HK",3331 "FR",3332 "CH"3333 ],3334 "languages": [3335 "en"3336 ],3337 "currency": [3338 "USD",3339 "GBP",3340 "HKD",3341 "EUR",3342 "CHF"3343 ],3344 "supportsListings": false,3345 "supportsSold": true,3346 "supportsAuctions": true,3347 "supportsImages": true,3348 "supportsCatalog": false,3349 "supportsPopulation": false,3350 "supportsLookup": true,3351 "refreshFrequencyMinutes": 360,3352 "priority": "high",3353 "trustScore": 0.9,3354 "attributionRequired": true,3355 "termsUrl": "https://www.sothebys.com/en/terms-conditions",3356 "accessNotes": "Auction pages https://www.sothebys.com/en/buy/auction/<year>/<slug> are server-rendered (__NEXT_DATA__ Apollo cache) with auction metadata, department names, currency, dates and the first 48 lot cards including estimates and, for closed sales, the visible result (BidState.sold.premiums.finalPriceV2 = price including buyer's premium, currentBidV2 = hammer). Remaining lots are paged with the same public GraphQL endpoint the page uses (clientapi.prod.sothelabs.com/graphql, query LotCardsFilterByPaginated, no authentication; we request only public lot-card fields). Auction discovery: links on the public /en/results and /en/calendar pages (rendered through Firecrawl, 1 credit each), plus config.seeds auction URLs; auctions seen while open are re-checked after they close so their results are captured. robots.txt disallows /bsp-api/* and PDFs — not used. Prices: finalPriceV2 (buyer's premium included) → buyerPremiumIncluded=true, hammer kept in metadata; sale date = lot closingTime or the auction's closed timestamp. Condition reports are behind login and are not fetched.",3357 "enabled": true,3358 "schemaVersion": "1.0",3359 "config": {3360 "seeds": [],3361 "discoveryPages": [3362 "https://www.sothebys.com/en/results",3363 "https://www.sothebys.com/en/calendar"3364 ],3365 "departments": [],3366 "maxAuctionsPerRun": 25,3367 "pageSize": 483368 }3369 },3370 {3371 "id": "sportscardspro",3372 "displayName": "SportsCardsPro",3373 "sourceId": "sportscardspro",3374 "sourceName": "SportsCardsPro (PriceCharting)",3375 "sourceType": "pricing_guide",3376 "sourceUrl": "https://www.sportscardspro.com",3377 "module": "api/sportscardspro",3378 "enginePriority": [3379 "firecrawl",3380 "scrapfly"3381 ],3382 "categories": [3383 "sports_cards",3384 "baseball_cards",3385 "basketball_cards",3386 "football_cards",3387 "hockey_cards",3388 "soccer_cards",3389 "f1_cards",3390 "other_sports_cards"3391 ],3392 "regions": [3393 "US"3394 ],3395 "languages": [3396 "en"3397 ],3398 "currency": [3399 "USD"3400 ],3401 "supportsListings": false,3402 "supportsSold": true,3403 "supportsAuctions": false,3404 "supportsImages": true,3405 "supportsCatalog": true,3406 "supportsPopulation": false,3407 "supportsLookup": true,3408 "refreshFrequencyMinutes": 1440,3409 "priority": "high",3410 "trustScore": 0.7,3411 "attributionRequired": true,3412 "termsUrl": "https://www.sportscardspro.com/page/terms-of-service",3413 "accessNotes": "Public product pages of PriceCharting's sports-card site. robots.txt only disallows /buy, /publish-offer, /stripe-connect. Plain HTTP with our user agent gets a Cloudflare interstitial (HTTP 403), so pages are fetched through Firecrawl (1 credit per page, ~1 MB each) — no login, no CAPTCHA solving, no account. Each page exposes guide values per grade (Ungraded, Grade 1–9.5, TAG/ACE/SGC/CGC/PSA/BGS 10, BGS 10 Black, CGC 10 Pristine) and recently completed eBay sales per grade tab; graded rows without a named grading company are stored with the generic grader 'graded' unless the eBay title names the company. Set lists come from the public /category/<sport>-cards pages; console listings use the ?format=json cursor endpoint.",3414 "enabled": true,3415 "schemaVersion": "2.0",3416 "config": {3417 "seeds": [3418 "basketball-cards-1986-fleer",3419 "basketball-cards-2003-topps-chrome",3420 "basketball-cards-2018-panini-prizm",3421 "basketball-cards-2019-panini-prizm",3422 "basketball-cards-1996-topps-chrome",3423 "baseball-cards-1952-topps",3424 "baseball-cards-1989-upper-deck",3425 "baseball-cards-2011-topps-update",3426 "baseball-cards-2018-topps-update",3427 "baseball-cards-1993-sp",3428 "football-cards-2000-playoff-contenders",3429 "football-cards-2017-panini-prizm",3430 "football-cards-2020-panini-prizm",3431 "football-cards-1957-topps",3432 "hockey-cards-1979-o-pee-chee",3433 "hockey-cards-2005-upper-deck",3434 "hockey-cards-2015-upper-deck",3435 "soccer-cards-2018-panini-prizm-world-cup",3436 "soccer-cards-2004-panini-mega-cracks"3437 ],3438 "cardCategories": [3439 "basketball-cards",3440 "baseball-cards",3441 "football-cards",3442 "hockey-cards",3443 "soccer-cards"3444 ],3445 "maxConsolesPerCategory": 25,3446 "productsPerConsole": 120,3447 "sort": "popularity"3448 }3449 },3450 {3451 "id": "subdial",3452 "displayName": "Subdial (UK pre-owned watch listings)",3453 "sourceId": "subdial",3454 "sourceName": "Subdial",3455 "sourceType": "marketplace",3456 "sourceUrl": "https://subdial.com",3457 "module": "api/subdial",3458 "enginePriority": [3459 "api",3460 "firecrawl"3461 ],3462 "categories": [3463 "watches",3464 "rolex",3465 "patek_philippe",3466 "audemars_piguet",3467 "omega",3468 "other_watches"3469 ],3470 "regions": [3471 "GB"3472 ],3473 "languages": [3474 "en"3475 ],3476 "currency": [3477 "GBP"3478 ],3479 "supportsListings": true,3480 "supportsSold": false,3481 "supportsAuctions": false,3482 "supportsImages": true,3483 "supportsCatalog": false,3484 "supportsPopulation": false,3485 "supportsLookup": true,3486 "refreshFrequencyMinutes": 720,3487 "priority": "medium",3488 "trustScore": 0.8,3489 "attributionRequired": true,3490 "termsUrl": "https://subdial.com/terms",3491 "accessNotes": "Listing URLs come from the public sitemap (subdial.com/sitemap-listing.xml); each listing page embeds a schema.org Product (brand, mpn = reference, sku = Subdial id, GBP price, availability) plus a specification table (reference, year, condition, box, papers). robots.txt allows / for generic agents (it blocks a list of named AI crawlers, which we are not). Plain HTTPS with the RareIndex user agent, 1.5 s between pages, capped per run; the crawl budget skips URLs already fetched recently.",3492 "enabled": true,3493 "schemaVersion": "1.0",3494 "config": {3495 "maxListingsPerRun": 2503496 }3497 },3498 {3499 "id": "surugaya",3500 "displayName": "Suruga-ya (Japanese second-hand hobby retailer, JPY)",3501 "sourceId": "surugaya",3502 "sourceName": "Suruga-ya",3503 "sourceType": "marketplace",3504 "sourceUrl": "https://www.suruga-ya.jp",3505 "module": "firecrawl/surugaya",3506 "enginePriority": [3507 "firecrawl"3508 ],3509 "categories": [3510 "pokemon",3511 "yugioh",3512 "one_piece_card_game",3513 "gundam",3514 "action_figures",3515 "nintendo_games",3516 "sega_games",3517 "playstation_games",3518 "designer_toys"3519 ],3520 "regions": [3521 "JP"3522 ],3523 "languages": [3524 "ja"3525 ],3526 "currency": [3527 "JPY"3528 ],3529 "supportsListings": true,3530 "supportsSold": false,3531 "supportsAuctions": false,3532 "supportsImages": true,3533 "supportsCatalog": true,3534 "supportsPopulation": false,3535 "supportsLookup": false,3536 "refreshFrequencyMinutes": 720,3537 "priority": "medium",3538 "trustScore": 0.75,3539 "attributionRequired": true,3540 "termsUrl": "https://www.suruga-ya.jp/man/index.html",3541 "accessNotes": "Public search result pages (suruga-ya.jp/search?...; robots.txt: 'Allow: /' for generic agents with Content-Signal search=yes, ai-train=no, use=reference — we only index prices and never train on content). Plain HTTPS returns 403 from data-centre IPs, so pages are fetched through Firecrawl (1 credit per page, ~24 items). Parsed per card: product id (shinaban), title, condition/type label, release date, brand, list price (定価), Suruga-ya price or 品切れ (sold out), and the marketplace (マケプレ) lowest price when Suruga-ya itself is out of stock. JPY. Emits catalog items + fixed-price listings; no sold history is available publicly.",3542 "enabled": true,3543 "schemaVersion": "1.0",3544 "config": {3545 "seeds": [3546 {3547 "query": "category=5&search_word=%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3%E3%82%AB%E3%83%BC%E3%83%89%20PSA",3548 "categorySlug": "pokemon",3549 "label": "Pokémon cards PSA"3550 },3551 {3552 "query": "category=5&search_word=%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3%E3%82%AB%E3%83%BC%E3%83%89%20SAR",3553 "categorySlug": "pokemon",3554 "label": "Pokémon SAR"3555 },3556 {3557 "query": "category=5&search_word=%E9%81%8A%E6%88%AF%E7%8E%8B%20%E3%83%97%E3%83%AA%E3%82%BA%E3%83%9E",3558 "categorySlug": "yugioh",3559 "label": "Yu-Gi-Oh! prismatic"3560 },3561 {3562 "query": "category=5&search_word=%E3%82%AC%E3%83%B3%E3%83%97%E3%83%A9%20MG",3563 "categorySlug": "gundam",3564 "label": "Gunpla MG"3565 },3566 {3567 "query": "category=5&search_word=figma",3568 "categorySlug": "action_figures",3569 "label": "figma"3570 },3571 {3572 "query": "category=5&search_word=%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%83%95%E3%82%A1%E3%83%9F%E3%82%B3%E3%83%B3%20%E3%82%BD%E3%83%95%E3%83%88",3573 "categorySlug": "nintendo_games",3574 "label": "Super Famicom software"3575 }3576 ],3577 "pagesPerSeed": 13578 }3579 },3580 {3581 "id": "swann",3582 "displayName": "Swann Auction Galleries (results)",3583 "sourceId": "swann",3584 "sourceName": "Swann Auction Galleries",3585 "sourceType": "auction_house",3586 "sourceUrl": "https://www.swanngalleries.com",3587 "module": "api/swann",3588 "enginePriority": [3589 "api",3590 "firecrawl"3591 ],3592 "categories": [3593 "autographs",3594 "photography",3595 "movie_posters",3596 "maps",3597 "books",3598 "art",3599 "contemporary_art",3600 "historical_documents",3601 "comics",3602 "animation_art"3603 ],3604 "regions": [3605 "US"3606 ],3607 "languages": [3608 "en"3609 ],3610 "currency": [3611 "USD"3612 ],3613 "supportsListings": false,3614 "supportsSold": true,3615 "supportsAuctions": false,3616 "supportsImages": true,3617 "supportsCatalog": false,3618 "supportsPopulation": false,3619 "supportsLookup": false,3620 "refreshFrequencyMinutes": 1440,3621 "priority": "medium",3622 "trustScore": 0.9,3623 "attributionRequired": true,3624 "termsUrl": "https://www.swanngalleries.com/conditions-of-sale/",3625 "accessNotes": "Public pages over plain HTTPS with the RareIndex user agent (robots.txt: Disallow empty): the past-auctions list (/auctions/past-auctions/: date, sale number, department, catalog link) and archived catalogs (/auction-catalog/<slug>?algoliaParam=archive_lotNumber_asc_prod[page]=N, 20 lots per page) whose server-rendered cards show lot number, title, estimate and 'Sold: $X' with the note 'Sold price includes buyer's premium' → buyer_premium_included=true; 'Passed' lots are skipped. Category from the sale's department. 1.5 s politeness delay.",3626 "enabled": true,3627 "schemaVersion": "1.0",3628 "config": {3629 "auctionsPerRun": 2,3630 "pagesPerAuction": 153631 }3632 },3633 {3634 "id": "swu-db",3635 "displayName": "SWU-DB (Star Wars: Unlimited)",3636 "sourceId": "swu-db",3637 "sourceName": "SWU-DB",3638 "sourceType": "catalog",3639 "sourceUrl": "https://www.swu-db.com",3640 "module": "api/swu-db",3641 "enginePriority": [3642 "api"3643 ],3644 "categories": [3645 "star_wars_tcg"3646 ],3647 "regions": [3648 "US"3649 ],3650 "languages": [3651 "en"3652 ],3653 "currency": [3654 "USD"3655 ],3656 "supportsListings": false,3657 "supportsSold": false,3658 "supportsAuctions": false,3659 "supportsImages": true,3660 "supportsCatalog": true,3661 "supportsPopulation": false,3662 "supportsLookup": true,3663 "refreshFrequencyMinutes": 1440,3664 "priority": "medium",3665 "trustScore": 0.7,3666 "attributionRequired": true,3667 "termsUrl": "https://www.swu-db.com/api",3668 "accessNotes": "Free community API (https://api.swu-db.com/cards/<set>, no key). Each card carries TCGplayer ids and USD MarketPrice/LowPrice (+ FoilPrice/LowFoilPrice) relayed from TCGplayer without a timestamp → observations dated by the fetch day, confidence 0.7. Set codes are configured (the /catalog/sets endpoint needs an API key); VariantType (Normal, Hyperspace, Showcase…) becomes the variant, foil prices create a 'Foil' variant.",3669 "enabled": true,3670 "schemaVersion": "1.0",3671 "config": {3672 "sets": {3673 "SOR": "Spark of Rebellion",3674 "SHD": "Shadows of the Galaxy",3675 "TWI": "Twilight of the Republic",3676 "JTL": "Jump to Lightspeed",3677 "LOF": "Legends of the Force",3678 "SEC": "Secrets of Power"3679 }3680 }3681 },3682 {3683 "id": "tcgcsv",3684 "displayName": "TCGCSV (TCGplayer catalog & prices)",3685 "sourceId": "tcgcsv",3686 "sourceName": "TCGCSV",3687 "sourceType": "pricing_guide",3688 "sourceUrl": "https://tcgcsv.com",3689 "module": "api/tcgcsv",3690 "enginePriority": [3691 "api"3692 ],3693 "categories": [3694 "trading_cards",3695 "pokemon",3696 "magic_the_gathering",3697 "yugioh",3698 "disney_lorcana",3699 "one_piece_card_game",3700 "digimon_tcg",3701 "flesh_and_blood",3702 "star_wars_tcg",3703 "dragon_ball_tcg",3704 "weiss_schwarz",3705 "final_fantasy_tcg",3706 "other_tcg",3707 "funko"3708 ],3709 "regions": [3710 "US"3711 ],3712 "languages": [3713 "en",3714 "ja"3715 ],3716 "currency": [3717 "USD"3718 ],3719 "supportsListings": false,3720 "supportsSold": false,3721 "supportsAuctions": false,3722 "supportsImages": true,3723 "supportsCatalog": true,3724 "supportsPopulation": false,3725 "supportsLookup": false,3726 "refreshFrequencyMinutes": 1440,3727 "priority": "high",3728 "trustScore": 0.8,3729 "attributionRequired": true,3730 "termsUrl": "https://tcgcsv.com/faq",3731 "accessNotes": "Public daily mirror of TCGplayer's catalog and price API (JSON endpoints /tcgplayer/{categoryId}/groups, /{groupId}/products, /{groupId}/prices; robots.txt allows everything and the FAQ explicitly invites programmatic access with an identifying User-Agent and ~4 req/s). Prices (low/mid/high/market per printing subtype) are TCGplayer market data, not transactions: stored as price_observations dated with the mirror's last-updated timestamp (/last-updated.txt), confidence 0.75. Categories are mapped to taxonomy slugs in config; incremental runs cover the newest `maxGroupsPerCategory` sets per category, backfill covers all. Identifiers: tcgplayer_id (product) + tcgplayer_group_id. Historical price archives (2024-02-08 →) exist as daily 7z files and can be backfilled later.",3732 "enabled": true,3733 "schemaVersion": "1.0",3734 "config": {3735 "categories": {3736 "1": {3737 "slug": "magic_the_gathering",3738 "franchise": "Magic: The Gathering",3739 "brand": "Wizards of the Coast"3740 },3741 "2": {3742 "slug": "yugioh",3743 "franchise": "Yu-Gi-Oh!",3744 "brand": "Konami"3745 },3746 "3": {3747 "slug": "pokemon",3748 "franchise": "Pokémon",3749 "brand": "The Pokémon Company",3750 "language": "English"3751 },3752 "16": {3753 "slug": "other_tcg",3754 "franchise": "Cardfight!! Vanguard",3755 "brand": "Bushiroad"3756 },3757 "17": {3758 "slug": "other_tcg",3759 "franchise": "Force of Will",3760 "brand": "Force of Will Co."3761 },3762 "20": {3763 "slug": "weiss_schwarz",3764 "franchise": "Weiß Schwarz",3765 "brand": "Bushiroad"3766 },3767 "24": {3768 "slug": "final_fantasy_tcg",3769 "franchise": "Final Fantasy TCG",3770 "brand": "Square Enix"3771 },3772 "25": {3773 "slug": "other_tcg",3774 "franchise": "UniVersus",3775 "brand": "UVS Games"3776 },3777 "27": {3778 "slug": "dragon_ball_tcg",3779 "franchise": "Dragon Ball Super Card Game",3780 "brand": "Bandai"3781 },3782 "29": {3783 "slug": "funko",3784 "franchise": null,3785 "brand": "Funko"3786 },3787 "59": {3788 "slug": "other_tcg",3789 "franchise": "KeyForge",3790 "brand": "Ghost Galaxy"3791 },3792 "62": {3793 "slug": "flesh_and_blood",3794 "franchise": "Flesh and Blood",3795 "brand": "Legend Story Studios"3796 },3797 "63": {3798 "slug": "digimon_tcg",3799 "franchise": "Digimon",3800 "brand": "Bandai"3801 },3802 "66": {3803 "slug": "other_tcg",3804 "franchise": "MetaZoo",3805 "brand": "MetaZoo Games"3806 },3807 "68": {3808 "slug": "one_piece_card_game",3809 "franchise": "One Piece",3810 "brand": "Bandai"3811 },3812 "71": {3813 "slug": "disney_lorcana",3814 "franchise": "Disney Lorcana",3815 "brand": "Ravensburger"3816 },3817 "72": {3818 "slug": "other_tcg",3819 "franchise": "Battle Spirits Saga",3820 "brand": "Bandai"3821 },3822 "74": {3823 "slug": "other_tcg",3824 "franchise": "Grand Archive",3825 "brand": "Weebs of the Shore"3826 },3827 "77": {3828 "slug": "other_tcg",3829 "franchise": "Sorcery: Contested Realm",3830 "brand": "Erik's Curiosa"3831 },3832 "79": {3833 "slug": "star_wars_tcg",3834 "franchise": "Star Wars: Unlimited",3835 "brand": "Fantasy Flight Games"3836 },3837 "80": {3838 "slug": "dragon_ball_tcg",3839 "franchise": "Dragon Ball Super Fusion World",3840 "brand": "Bandai"3841 },3842 "81": {3843 "slug": "other_tcg",3844 "franchise": "Union Arena",3845 "brand": "Bandai"3846 },3847 "85": {3848 "slug": "pokemon",3849 "franchise": "Pokémon",3850 "brand": "The Pokémon Company",3851 "language": "Japanese"3852 },3853 "86": {3854 "slug": "other_tcg",3855 "franchise": "Gundam Card Game",3856 "brand": "Bandai"3857 },3858 "89": {3859 "slug": "other_tcg",3860 "franchise": "Riftbound",3861 "brand": "Riot Games"3862 }3863 },3864 "maxGroupsPerCategory": 40,3865 "priceKinds": [3866 "market",3867 "low"3868 ]3869 }3870 },3871 {3872 "id": "tcgdex",3873 "displayName": "TCGdex (Pokémon, multilingual)",3874 "sourceId": "tcgdex",3875 "sourceName": "TCGdex",3876 "sourceType": "catalog",3877 "sourceUrl": "https://tcgdex.dev",3878 "module": "api/tcgdex",3879 "enginePriority": [3880 "api"3881 ],3882 "categories": [3883 "pokemon"3884 ],3885 "regions": [3886 "global"3887 ],3888 "languages": [3889 "en",3890 "ja",3891 "fr",3892 "de",3893 "es",3894 "it",3895 "pt",3896 "ko",3897 "zh"3898 ],3899 "currency": [3900 "USD",3901 "EUR"3902 ],3903 "supportsListings": false,3904 "supportsSold": false,3905 "supportsAuctions": false,3906 "supportsImages": true,3907 "supportsCatalog": true,3908 "supportsPopulation": false,3909 "supportsLookup": false,3910 "refreshFrequencyMinutes": 1440,3911 "priority": "high",3912 "trustScore": 0.8,3913 "attributionRequired": true,3914 "termsUrl": "https://tcgdex.dev/",3915 "accessNotes": "Open REST API (https://api.tcgdex.net/v2, no key, MIT-licensed data) covering every Pokémon TCG language including Japanese; English cards carry TCGplayer (USD) and Cardmarket (EUR) prices per variant with their own update timestamps, which we store as price observations dated by the price's `updated` field. One request per set and per card at ≈8 req/s (self-throttled 120 ms). English ids match pokemontcg.io (base1-4) so `pokemontcg_id` aligns; set codes use the PTCGO abbreviation like pokemontcg's ptcgoCode.",3916 "enabled": true,3917 "schemaVersion": "1.0",3918 "config": {3919 "languages": [3920 "en",3921 "ja"3922 ]3923 }3924 },3925 {3926 "id": "watchfinder",3927 "displayName": "Watchfinder & Co. (UK pre-owned watch listings)",3928 "sourceId": "watchfinder",3929 "sourceName": "Watchfinder & Co.",3930 "sourceType": "dealer",3931 "sourceUrl": "https://www.watchfinder.co.uk",3932 "module": "firecrawl/watchfinder",3933 "enginePriority": [3934 "firecrawl",3935 "scrapfly"3936 ],3937 "categories": [3938 "watches",3939 "rolex",3940 "patek_philippe",3941 "audemars_piguet",3942 "omega",3943 "other_watches"3944 ],3945 "regions": [3946 "GB"3947 ],3948 "languages": [3949 "en"3950 ],3951 "currency": [3952 "GBP"3953 ],3954 "supportsListings": true,3955 "supportsSold": false,3956 "supportsAuctions": false,3957 "supportsImages": true,3958 "supportsCatalog": false,3959 "supportsPopulation": false,3960 "supportsLookup": false,3961 "refreshFrequencyMinutes": 720,3962 "priority": "medium",3963 "trustScore": 0.85,3964 "attributionRequired": true,3965 "termsUrl": "https://www.watchfinder.co.uk/terms-and-conditions",3966 "accessNotes": "Plain HTTPS returns 403 to non-browser agents (robots.txt is not served either); Firecrawl's standard fetch returns the public model pages (watchfinder.co.uk/watches/<brand>/<model>?p=N). Each product card carries data attributes (sku, brand, series, model reference, image), box/papers icons, year and the GBP price (data-price-amount). 1 Firecrawl credit per page (~24 watches); 2 s between pages. Listings only.",3967 "enabled": true,3968 "schemaVersion": "1.0",3969 "config": {3970 "seeds": [3971 "rolex/daytona",3972 "rolex/submariner",3973 "rolex/gmt-master-ii",3974 "rolex/datejust",3975 "rolex/day-date",3976 "rolex/explorer",3977 "patek-philippe/nautilus",3978 "patek-philippe/aquanaut",3979 "audemars-piguet/royal-oak",3980 "audemars-piguet/royal-oak-offshore",3981 "omega/speedmaster",3982 "omega/seamaster",3983 "cartier/santos",3984 "tudor/black-bay",3985 "iwc/portugieser",3986 "jaeger-lecoultre/reverso"3987 ],3988 "pagesPerSeed": 23989 }3990 },3991 {3992 "id": "winebid",3993 "displayName": "WineBid (recent sales per wine)",3994 "sourceId": "winebid",3995 "sourceName": "WineBid",3996 "sourceType": "marketplace",3997 "sourceUrl": "https://www.winebid.com",3998 "module": "api/winebid",3999 "enginePriority": [4000 "api",4001 "firecrawl",4002 "scrapfly"4003 ],4004 "categories": [4005 "wine",4006 "whisky"4007 ],4008 "regions": [4009 "US"4010 ],4011 "languages": [4012 "en"4013 ],4014 "currency": [4015 "USD"4016 ],4017 "supportsListings": true,4018 "supportsSold": true,4019 "supportsAuctions": true,4020 "supportsImages": true,4021 "supportsCatalog": false,4022 "supportsPopulation": false,4023 "supportsLookup": true,4024 "refreshFrequencyMinutes": 1440,4025 "priority": "medium",4026 "trustScore": 0.85,4027 "attributionRequired": true,4028 "termsUrl": "https://www.winebid.com/Help/TermsAndConditions",4029 "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.",4030 "enabled": true,4031 "schemaVersion": "1.0",4032 "config": {4033 "categories": [4034 {4035 "path": "/BuyWine/Items/Bordeaux/18403",4036 "label": "Bordeaux"4037 },4038 {4039 "path": "/BuyWine/Items/Burgundy/15363",4040 "label": "Burgundy"4041 },4042 {4043 "path": "/BuyWine/Items/Napa-Valley/2910",4044 "label": "Napa Valley"4045 },4046 {4047 "path": "/BuyWine/Items/Barolo/16367",4048 "label": "Barolo"4049 },4050 {4051 "path": "/BuyWine/Items/Brunello-di-Montalcino/7725165",4052 "label": "Brunello di Montalcino"4053 },4054 {4055 "path": "/BuyWine/Items/Big-Bottles/7902856",4056 "label": "Large formats"4057 }4058 ],4059 "itemsPerRun": 244060 }4061 },4062 {4063 "id": "ygoprodeck",4064 "displayName": "YGOPRODeck (Yu-Gi-Oh!)",4065 "sourceId": "ygoprodeck",4066 "sourceName": "YGOPRODeck",4067 "sourceType": "catalog",4068 "sourceUrl": "https://ygoprodeck.com",4069 "module": "api/ygoprodeck",4070 "enginePriority": [4071 "api"4072 ],4073 "categories": [4074 "yugioh"4075 ],4076 "regions": [4077 "US",4078 "EU"4079 ],4080 "languages": [4081 "en"4082 ],4083 "currency": [4084 "USD",4085 "EUR"4086 ],4087 "supportsListings": false,4088 "supportsSold": false,4089 "supportsAuctions": false,4090 "supportsImages": true,4091 "supportsCatalog": true,4092 "supportsPopulation": false,4093 "supportsLookup": false,4094 "refreshFrequencyMinutes": 1440,4095 "priority": "high",4096 "trustScore": 0.75,4097 "attributionRequired": true,4098 "termsUrl": "https://ygoprodeck.com/api-guide/",4099 "accessNotes": "Public API v7 (https://db.ygoprodeck.com/api/v7/cardinfo.php), no key; rate limit 20 req/s — a full crawl is ONE request (~21 MB, ~14.5k cards / ~44k printings) plus optional misc=yes. The API carries no price timestamp: card_sets[].set_price (USD, per printing) and card_prices (cardmarket EUR / tcgplayer / ebay / amazon / coolstuffinc USD, card-level) are recorded as price_observations dated at fetch time with confidence 0.7 and metadata.price_scope. Images may not be hot-linked in bulk per the API guide (we store URLs, never mirror). Yu-Gi-Oh! © Konami.",4100 "enabled": true,4101 "schemaVersion": "1.0",4102 "config": {4103 "misc": true4104 }4105 }4106 ]4107}4108