TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1{2 "id": "cardboard-memories",3 "displayName": "Cardboard Memories (Canadian sports-card & TCG & collector-toy store, CAD)",4 "sourceId": "cardboard-memories",5 "sourceName": "Cardboard Memories",6 "sourceType": "dealer",7 "sourceUrl": "https://www.cardboardmemories.ca",8 "module": "api/cardboard-memories",9 "enginePriority": [10 "api"11 ],12 "categories": [13 "hockey_cards",14 "football_cards",15 "baseball_cards",16 "basketball_cards",17 "sports_cards",18 "sports_memorabilia",19 "yugioh",20 "pokemon",21 "magic_the_gathering",22 "funko",23 "comics",24 "dc_comics",25 "soccer_cards",26 "f1_cards",27 "marvel_comics"28 ],29 "regions": [30 "CA"31 ],32 "languages": [33 "en"34 ],35 "currency": [36 "CAD"37 ],38 "supportsListings": true,39 "supportsSold": false,40 "supportsAuctions": false,41 "supportsImages": true,42 "supportsCatalog": false,43 "supportsPopulation": false,44 "supportsLookup": true,45 "refreshFrequencyMinutes": 720,46 "priority": "medium",47 "trustScore": 0.75,48 "attributionRequired": true,49 "termsUrl": "https://www.cardboardmemories.ca/policies/terms-of-service",50 "accessNotes": "Cardboard Memories (cardboardmemories.ca) 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 14 configured collections (hockey-cards, football-cards-1, baseball-cards, basketball-cards, sports-cards, upper-deck-authenticated, yu-gi-oh-singles, pokemon … (+6 more, see config.collections)) and /products/<handle>.json for URL lookups (~26k comics, 1.1k hockey card products, Yu-Gi-Oh!/Pokémon singles, Funko). 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. 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 — RPG books, miniatures, paints, supplies (binders, sleeves, deck boxes), trade paperbacks. No personal data is collected; seller = the store itself.",51 "enabled": true,52 "schemaVersion": "1.0",53 "acquisitionMethod": "Shopify storefront products.json",54 "historicalDepth": "none",55 "requires": [],56 "config": {57 "currency": "CAD",58 "market": "CA",59 "seller": "Cardboard Memories",60 "location": "Moncton, NB, Canada",61 "collections": [62 {63 "handle": "hockey-cards",64 "categorySlug": "hockey_cards"65 },66 {67 "handle": "football-cards-1",68 "categorySlug": "football_cards"69 },70 {71 "handle": "baseball-cards",72 "categorySlug": "baseball_cards"73 },74 {75 "handle": "basketball-cards",76 "categorySlug": "basketball_cards"77 },78 {79 "handle": "sports-cards",80 "categorySlug": "sports_cards"81 },82 {83 "handle": "upper-deck-authenticated",84 "categorySlug": "sports_memorabilia",85 "brand": "Upper Deck Authenticated"86 },87 {88 "handle": "yu-gi-oh-singles",89 "categorySlug": "yugioh",90 "franchise": "Yu-Gi-Oh!"91 },92 {93 "handle": "pokemon",94 "categorySlug": "pokemon",95 "franchise": "Pokémon"96 },97 {98 "handle": "pokemon-booster-boxes",99 "categorySlug": "pokemon",100 "franchise": "Pokémon"101 },102 {103 "handle": "magic-the-gathering",104 "categorySlug": "magic_the_gathering",105 "franchise": "Magic: The Gathering"106 },107 {108 "handle": "magic-the-gathering-boxes",109 "categorySlug": "magic_the_gathering",110 "franchise": "Magic: The Gathering"111 },112 {113 "handle": "funko-pop",114 "categorySlug": "funko",115 "brand": "Funko"116 },117 {118 "handle": "comic-books",119 "categorySlug": "comics"120 },121 {122 "handle": "dc-comics",123 "categorySlug": "dc_comics",124 "franchise": "DC"125 }126 ],127 "rules": [128 {129 "match": "^(?=[\\s\\S]*\\bhockey\\b)[\\s\\S]*\\| sports-cards$",130 "categorySlug": "hockey_cards"131 },132 {133 "match": "^(?=[\\s\\S]*\\bbaseball\\b)[\\s\\S]*\\| sports-cards$",134 "categorySlug": "baseball_cards"135 },136 {137 "match": "^(?=[\\s\\S]*\\bbasketball\\b)[\\s\\S]*\\| sports-cards$",138 "categorySlug": "basketball_cards"139 },140 {141 "match": "^(?=[\\s\\S]*\\bfootball\\b)[\\s\\S]*\\| sports-cards$",142 "categorySlug": "football_cards"143 },144 {145 "match": "^(?=[\\s\\S]*\\b(soccer|premier league|uefa|fifa)\\b)[\\s\\S]*\\| sports-cards$",146 "categorySlug": "soccer_cards"147 },148 {149 "match": "^(?=[\\s\\S]*\\b(formula 1|formula one|\\bf1\\b)\\b)[\\s\\S]*\\| sports-cards$",150 "categorySlug": "f1_cards"151 },152 {153 "match": "^(?=[\\s\\S]*\\b(marvel|spider-?man|x-men|avengers|wolverine|hulk|deadpool|iron man|captain america|fantastic four|daredevil|venom|punisher)\\b)[\\s\\S]*\\| (comic-books)$",154 "categorySlug": "marvel_comics",155 "franchise": "Marvel"156 },157 {158 "match": "^(?=[\\s\\S]*\\b(dc comics|batman|superman|wonder woman|justice league|the flash|green lantern|aquaman|detective comics|action comics|harley quinn|joker|nightwing|swamp thing)\\b)[\\s\\S]*\\| (comic-books)$",159 "categorySlug": "dc_comics",160 "franchise": "DC"161 }162 ],163 "defaultCategory": null,164 "exclude": "gift card|sleeves?|deck box|binder|playmat|toploader|top loader|storage box|dice|tokens? only|bundle of|mystery|buylist|submission|event ticket|\\bentry\\b|tournament|store credit|pre-?release event|supplies|card savers?|\\brepack|bulk lot|\\blot of\\b|\\bpaints?\\b|primer|brushes|online (pack|code)|digital code|code card|unused digital|ptcgo|ptcg live|bags? (and|&) boards|\\bmylar|comic bags|backing boards|magnetic holder|one-touch|\\bpaint",165 "keepOutOfStock": true,166 "fetchBarcodes": false,167 "wholeShop": false,168 "pageSize": 250169 }170}171