TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1{2 "id": "cdncoin",3 "displayName": "Canadian Coin & Currency (Canadian coin & banknote store, CAD)",4 "sourceId": "cdncoin",5 "sourceName": "Canadian Coin & Currency",6 "sourceType": "dealer",7 "sourceUrl": "https://www.cdncoin.com",8 "module": "api/cdncoin",9 "enginePriority": [10 "api"11 ],12 "categories": [13 "coins",14 "banknotes",15 "medals"16 ],17 "regions": [18 "CA"19 ],20 "languages": [21 "en"22 ],23 "currency": [24 "CAD"25 ],26 "supportsListings": true,27 "supportsSold": false,28 "supportsAuctions": false,29 "supportsImages": true,30 "supportsCatalog": false,31 "supportsPopulation": false,32 "supportsLookup": true,33 "refreshFrequencyMinutes": 720,34 "priority": "medium",35 "trustScore": 0.75,36 "attributionRequired": true,37 "termsUrl": "https://www.cdncoin.com/policies/terms-of-service",38 "accessNotes": "Canadian Coin & Currency (cdncoin.com) runs on Shopify. The connector reads ONLY the public, unauthenticated storefront JSON that every Shopify shop serves to any visitor: /collections/<handle>/products.json?limit=250&page=N for the 17 configured collections (certified, pcgs, canadian-collections, world-coins, us-coins, ancient-coins, pre-confederation-tokens, royal-canadian-mint-products-2 … (+9 more, see config.collections)) and /products/<handle>.json for URL lookups (~23k products; 4.7k certified (ICCS/PCGS/PMG), 4k Canadian paper money). robots.txt (verified 2026-09-08, User-agent *): standard Shopify rules — Disallow /admin, /cart, /checkout(s), /orders, /account, /services, /sf_*, /cart.js, /recommendations/products, /cdn/wpm/*.js and the filter/sort crawl traps (/collections/*sort_by*, /collections/*+*, /collections/*filter*&*filter*); no Crawl-delay for *. The /collections/<handle>/products.json and /products/<handle>.json paths we read carry none of those patterns and are allowed. Sitemap declared at /sitemap.xml (not needed). Access behaviour: plain HTTP 200 JSON with the honest RareIndexBot UA, no anti-bot challenge, no login, no key. Market pinning: Shopify Markets localises products.json prices by the requester IP as soon as an Accept-Language header is present (observed on Markets-enabled shops: a Canadian crawler receives CAD-converted prices with content-language en-CA while the JSON carries no currency field). Every request therefore sends the public localization=CA cookie — the shop's own home market, exactly what a CA visitor gets — so prices are always the declared CAD (verified 2026-09-08: 30.00 vs 43.00 on a Markets shop). Politeness: 1 request per 1.5 s, concurrency 1 per host (connectors/domains.d/g3-shops-na.json), crawlDepth pages per collection per incremental run, backfill bounded by backfillMaxPages. Data: asking prices in CAD (the shop's declared currency) — these are LISTINGS, never sales (§111); one listing per variant (condition/size/edition), variant SKU kept as identifier, out-of-stock variants kept as 'ended' listings, 0.00-priced placeholders dropped. Dates: published_at only; no fetch time is ever used as a sale date. Third-party grades in titles (PSA/BGS/CGC/ICCS/PMG…) are parsed by parseGradeFromTitle; cert numbers are not extracted. Deliberately NOT fetched: cart/checkout/account/customer endpoints, per-product .js barcode enrichment (fetchBarcodes=false: one extra request per product is not worth it for listings), the whole-shop /products.json, and unmapped collections — bullion (silver/gold), gift/theme collections (\"for nature lovers\"…), supplies, new-arrivals umbrella. No personal data is collected; seller = the store itself.",39 "enabled": true,40 "schemaVersion": "1.0",41 "acquisitionMethod": "Shopify storefront products.json",42 "historicalDepth": "none",43 "requires": [],44 "config": {45 "currency": "CAD",46 "market": "CA",47 "seller": "Canadian Coin & Currency",48 "location": "Richmond Hill, ON, Canada",49 "collections": [50 {51 "handle": "certified",52 "categorySlug": "coins"53 },54 {55 "handle": "pcgs",56 "categorySlug": "coins"57 },58 {59 "handle": "canadian-collections",60 "categorySlug": "coins"61 },62 {63 "handle": "world-coins",64 "categorySlug": "coins"65 },66 {67 "handle": "us-coins",68 "categorySlug": "coins"69 },70 {71 "handle": "ancient-coins",72 "categorySlug": "coins"73 },74 {75 "handle": "pre-confederation-tokens",76 "categorySlug": "coins"77 },78 {79 "handle": "royal-canadian-mint-products-2",80 "categorySlug": "coins"81 },82 {83 "handle": "canadian-paper-money",84 "categorySlug": "banknotes"85 },86 {87 "handle": "pmg",88 "categorySlug": "banknotes"89 },90 {91 "handle": "world-paper-money",92 "categorySlug": "banknotes"93 },94 {95 "handle": "us-paper-money",96 "categorySlug": "banknotes"97 },98 {99 "handle": "replacement-notes",100 "categorySlug": "banknotes"101 },102 {103 "handle": "bank-of-canada-1937",104 "categorySlug": "banknotes"105 },106 {107 "handle": "dominion-province-of-canada",108 "categorySlug": "banknotes"109 },110 {111 "handle": "chartered",112 "categorySlug": "banknotes"113 },114 {115 "handle": "medals-exonumia",116 "categorySlug": "medals"117 }118 ],119 "rules": [120 {121 "match": "\\bPMG\\b|\\bbanknotes?\\b|\\bpaper money\\b|\\| (Canadian Paper Money|World Paper Money|US Paper Money|Chartered Bank Notes?|Dominion of Canada|Bank of Canada)[^|]* \\||\\bBC-\\d|\\bDC-\\d",122 "categorySlug": "banknotes"123 },124 {125 "match": "\\bmedal(lion)?s?\\b",126 "categorySlug": "medals"127 }128 ],129 "defaultCategory": null,130 "exclude": "gift card|supplies|\\balbums?\\b|\\bholders?\\b|\\bcapsules?\\b|catalogue|catalog|magnifier|cleaning|\\bflips?\\b|\\bpages?\\b|\\brolls?\\b|\\bbooks?\\b|\\btubes?\\b|\\bcases?\\b|storage|\\bbinder|\\bloupe\\b|\\bgloves?\\b|\\bscale\\b|\\bmaps?\\b|\\bframe",131 "keepOutOfStock": true,132 "fetchBarcodes": false,133 "wholeShop": false,134 "pageSize": 250135 }136}137