TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1{2 "id": "everything-games",3 "displayName": "Everything Games (Canadian TCG & board-game store, CAD)",4 "sourceId": "everything-games",5 "sourceName": "Everything Games",6 "sourceType": "dealer",7 "sourceUrl": "https://www.everythinggames.ca",8 "module": "api/everything-games",9 "enginePriority": [10 "api"11 ],12 "categories": [13 "magic_the_gathering",14 "pokemon",15 "other_tcg",16 "flesh_and_blood",17 "weiss_schwarz",18 "board_games"19 ],20 "regions": [21 "CA"22 ],23 "languages": [24 "en"25 ],26 "currency": [27 "CAD"28 ],29 "supportsListings": true,30 "supportsSold": false,31 "supportsAuctions": false,32 "supportsImages": true,33 "supportsCatalog": false,34 "supportsPopulation": false,35 "supportsLookup": true,36 "refreshFrequencyMinutes": 720,37 "priority": "medium",38 "trustScore": 0.75,39 "attributionRequired": true,40 "termsUrl": "https://www.everythinggames.ca/policies/terms-of-service",41 "accessNotes": "Everything Games (everythinggames.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 8 configured collections (mtg-singles, pokemon-singles-instock, grand-archive-1, flesh-and-blood-singles, weiss-singles, riftbound-singles, shadowverse, board-games) and /products/<handle>.json for URL lookups (~20k MTG singles, 3k Pokémon, Grand Archive/FaB/Weiß singles). 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 — Warhammer/miniature ranges, paints, dice, RPG books, supplies. No personal data is collected; seller = the store itself.",42 "enabled": true,43 "schemaVersion": "1.0",44 "acquisitionMethod": "Shopify storefront products.json",45 "historicalDepth": "none",46 "requires": [],47 "config": {48 "currency": "CAD",49 "market": "CA",50 "seller": "Everything Games",51 "location": "Winnipeg, MB, Canada",52 "collections": [53 {54 "handle": "mtg-singles",55 "categorySlug": "magic_the_gathering",56 "franchise": "Magic: The Gathering"57 },58 {59 "handle": "pokemon-singles-instock",60 "categorySlug": "pokemon",61 "franchise": "Pokémon"62 },63 {64 "handle": "grand-archive-1",65 "categorySlug": "other_tcg",66 "franchise": "Grand Archive"67 },68 {69 "handle": "flesh-and-blood-singles",70 "categorySlug": "flesh_and_blood",71 "franchise": "Flesh and Blood"72 },73 {74 "handle": "weiss-singles",75 "categorySlug": "weiss_schwarz",76 "franchise": "Weiß Schwarz"77 },78 {79 "handle": "riftbound-singles",80 "categorySlug": "other_tcg",81 "franchise": "Riftbound"82 },83 {84 "handle": "shadowverse",85 "categorySlug": "other_tcg",86 "franchise": "Shadowverse Evolve"87 },88 {89 "handle": "board-games",90 "categorySlug": "board_games"91 }92 ],93 "rules": [],94 "defaultCategory": null,95 "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",96 "keepOutOfStock": true,97 "fetchBarcodes": false,98 "wholeShop": false,99 "pageSize": 250,100 "titlePattern": "^(?<name>.+?) \\[(?<set>[A-Z0-9]+)(?: - (?<number>\\S+))?\\]$"101 }102}103