{
  "id": "thecardvault",
  "displayName": "The Card Vault",
  "sourceId": "thecardvault",
  "sourceName": "The Card Vault",
  "sourceType": "dealer",
  "sourceUrl": "https://thecardvault.co.uk",
  "module": "api/thecardvault",
  "enginePriority": [
    "api"
  ],
  "categories": [
    "pokemon",
    "magic_the_gathering",
    "yugioh",
    "one_piece_card_game",
    "disney_lorcana",
    "dragon_ball_tcg",
    "digimon_tcg",
    "weiss_schwarz",
    "star_wars_tcg",
    "final_fantasy_tcg",
    "other_sports_cards",
    "funko",
    "designer_toys",
    "action_figures",
    "gundam",
    "flesh_and_blood",
    "other_tcg",
    "basketball_cards",
    "football_cards",
    "soccer_cards",
    "baseball_cards",
    "hockey_cards",
    "f1_cards"
  ],
  "regions": [
    "GB"
  ],
  "country": "GB",
  "languages": [
    "en"
  ],
  "currency": [
    "GBP"
  ],
  "supportsListings": true,
  "supportsSold": false,
  "supportsAuctions": false,
  "supportsImages": true,
  "supportsCatalog": false,
  "supportsPopulation": false,
  "supportsLookup": true,
  "refreshFrequencyMinutes": 720,
  "priority": "medium",
  "trustScore": 0.65,
  "attributionRequired": true,
  "termsUrl": "https://thecardvault.co.uk/policies/terms-of-service",
  "accessNotes": "The Card Vault (thecardvault.co.uk) is a Shopify shop; we read only the public, unauthenticated storefront JSON the shop serves to every visitor: /collections/<handle>/products.json?limit=250&page=N for the configured collections and /products/<handle>.json for URL lookups (singles-all-card-games, pokemon-tcg-all-products, magic-the-gathering-all-products, sealed-yu-gi-oh-products, one-piece-tcg-all-products, disney-lorcana-all-products, dragon-ball-super-cg-all-products, digimon-trading-card-game, weiss-schwarz-all-products, star-wars-unlimited-all-products, final-fantasy-tcg-all-products, sports-cards-all-products, funko-pop-vinyl-figures, youtooz-collectable-vinyl-figures, iron-studios-scale-statue, good-smile-company-nendoroid-figures, bandai-gunpla). robots.txt (checked 2026-09-08) is the standard Shopify file: for User-agent * it disallows /admin, /cart, /orders, /checkout(s), /carts, /account, /search, /policies, /recommendations/products, sort_by / filter / \"+\" collection permutations, preview_theme_id, oseid, the -remote product variants and /cdn/wpm; it blocks AhrefsBot, AhrefsSiteAudit, MJ12bot, Bytespider, Nutch and Pinterest entirely. The /collections/<handle>/products.json and /products/<handle>.json endpoints we read are not disallowed. Rate: 1 request per 1.5 s, one connection (connectors/domains.d/g4-shops-intl.json), honest RareIndexBot UA, twice a day, 3 pages per collection per incremental run (backfill bounded by backfillMaxPages). Prices are the base currency GBP (/meta.json currency GBP, Shopify.currency rate 1.0). Dealer asking prices are stored as listings, never as sales (SPEC §111); out-of-stock variants are kept as ended listings for price-history audit. Deliberately not fetched: cart/checkout/account pages, customer names, reviews or any personal data, search and sort/filter permutations (robots-disallowed), /recommendations, blog pages, and images beyond the URLs already present in the JSON.",
  "enabled": true,
  "schemaVersion": "1.0",
  "acquisitionMethod": "Shopify storefront products.json (public JSON)",
  "historicalDepth": "none",
  "requires": [],
  "config": {
    "currency": "GBP",
    "seller": "The Card Vault",
    "location": null,
    "collections": [
      {
        "handle": "singles-all-card-games",
        "categorySlug": null
      },
      {
        "handle": "pokemon-tcg-all-products",
        "categorySlug": "pokemon",
        "franchise": "Pokémon"
      },
      {
        "handle": "magic-the-gathering-all-products",
        "categorySlug": "magic_the_gathering",
        "franchise": "Magic: The Gathering"
      },
      {
        "handle": "sealed-yu-gi-oh-products",
        "categorySlug": "yugioh",
        "franchise": "Yu-Gi-Oh!"
      },
      {
        "handle": "one-piece-tcg-all-products",
        "categorySlug": "one_piece_card_game",
        "franchise": "One Piece"
      },
      {
        "handle": "disney-lorcana-all-products",
        "categorySlug": "disney_lorcana",
        "franchise": "Disney Lorcana"
      },
      {
        "handle": "dragon-ball-super-cg-all-products",
        "categorySlug": "dragon_ball_tcg",
        "franchise": "Dragon Ball"
      },
      {
        "handle": "digimon-trading-card-game",
        "categorySlug": "digimon_tcg",
        "franchise": "Digimon"
      },
      {
        "handle": "weiss-schwarz-all-products",
        "categorySlug": "weiss_schwarz"
      },
      {
        "handle": "star-wars-unlimited-all-products",
        "categorySlug": "star_wars_tcg",
        "franchise": "Star Wars"
      },
      {
        "handle": "final-fantasy-tcg-all-products",
        "categorySlug": "final_fantasy_tcg",
        "franchise": "Final Fantasy"
      },
      {
        "handle": "sports-cards-all-products",
        "categorySlug": "other_sports_cards"
      },
      {
        "handle": "funko-pop-vinyl-figures",
        "categorySlug": "funko",
        "brand": "Funko"
      },
      {
        "handle": "youtooz-collectable-vinyl-figures",
        "categorySlug": "designer_toys",
        "brand": "Youtooz"
      },
      {
        "handle": "iron-studios-scale-statue",
        "categorySlug": "action_figures",
        "brand": "Iron Studios"
      },
      {
        "handle": "good-smile-company-nendoroid-figures",
        "categorySlug": "action_figures",
        "brand": "Good Smile Company",
        "series": "Nendoroid"
      },
      {
        "handle": "bandai-gunpla",
        "categorySlug": "gundam",
        "brand": "Bandai",
        "franchise": "Gundam"
      }
    ],
    "rules": [
      {
        "match": "^(?=.*\\| singles \\|)(?=.*\\bmagic\\b)",
        "categorySlug": "magic_the_gathering",
        "franchise": "Magic: The Gathering"
      },
      {
        "match": "^(?=.*\\| singles \\|)(?=.*one piece)",
        "categorySlug": "one_piece_card_game",
        "franchise": "One Piece"
      },
      {
        "match": "^(?=.*\\| singles \\|)(?=.*dragon ball)",
        "categorySlug": "dragon_ball_tcg",
        "franchise": "Dragon Ball"
      },
      {
        "match": "^(?=.*\\| singles \\|)(?=.*star wars)",
        "categorySlug": "star_wars_tcg",
        "franchise": "Star Wars"
      },
      {
        "match": "^(?=.*\\| singles \\|)(?=.*final fantasy)",
        "categorySlug": "final_fantasy_tcg",
        "franchise": "Final Fantasy"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:star wars:? unlimited))",
        "categorySlug": "star_wars_tcg",
        "franchise": "Star Wars"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:lorcana))",
        "categorySlug": "disney_lorcana",
        "franchise": "Disney Lorcana"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:one piece (card|tcg|ccg|single|promo|sealed|booster|starter)|\\bop\\d{2}\\b|one-piece-(single|tcg|card)|\\| one piece single))",
        "categorySlug": "one_piece_card_game",
        "franchise": "One Piece"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:dragon ?ball (super |z )?(card|tcg|ccg|fusion world)|fusion world|dragonball-super|dragon-ball-super))",
        "categorySlug": "dragon_ball_tcg",
        "franchise": "Dragon Ball"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:digimon))",
        "categorySlug": "digimon_tcg",
        "franchise": "Digimon"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:flesh (and|&) blood|\\bfab\\b))",
        "categorySlug": "flesh_and_blood",
        "franchise": "Flesh and Blood"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:wei(ss|ß) schwarz))",
        "categorySlug": "weiss_schwarz"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:final fantasy (tcg|trading card|opus)|\\bopus (i{1,3}|iv|v|vi{0,3}|ix|x{1,2}|xi{1,3}|xiv|xv)\\b|\\bfftcg\\b))",
        "categorySlug": "final_fantasy_tcg",
        "franchise": "Final Fantasy"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:yu-?gi-?oh|\\bygo\\b|yugioh))",
        "categorySlug": "yugioh",
        "franchise": "Yu-Gi-Oh!"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:pok[eé]mon|\\bpkm\\b))",
        "categorySlug": "pokemon",
        "franchise": "Pokémon"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:magic:? the gathering|\\bmtg\\b|magic single|secret lair|\\bcommander\\b|universes beyond|planeswalker))",
        "categorySlug": "magic_the_gathering",
        "franchise": "Magic: The Gathering"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:cardfight|vanguard|battle spirits|union arena|riftbound|grand archive|gundam (card|tcg)|hololive (official )?card|shadowverse|sorcery:? contested|\\baltered\\b|elestrals|alpha clash|universus|my hero academia (ccg|tcg|single)|akora|kryptik|cyberpunk tcg|neuroscape|beyblade x (tcg|card)))",
        "categorySlug": "other_tcg"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:\\bnba\\b|basketball|wnba))",
        "categorySlug": "basketball_cards"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:\\bnfl\\b|american football))",
        "categorySlug": "football_cards"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:soccer|premier league|uefa|champions league|world cup|\\bepl\\b|bundesliga|la liga|serie a|match attax|\\bfifa\\b|road to (world cup|euro)))",
        "categorySlug": "soccer_cards"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:\\bmlb\\b|baseball))",
        "categorySlug": "baseball_cards"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:\\bnhl\\b|hockey))",
        "categorySlug": "hockey_cards"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:\\bf1\\b|formula (1|one)|grand prix))",
        "categorySlug": "f1_cards"
      },
      {
        "match": "^(?!.*\\| [^|]*(?:figure|statue|plush|model kit|nendoroid|gunpla|calendar)[^|]* \\|)(?=.*(?:\\bufc\\b|wrestling|\\bwwe\\b|\\baew\\b|\\bafl\\b|\\bnrl\\b|tennis|\\bgolf\\b|cricket|rugby|boxing|nascar|racing|olympic))",
        "categorySlug": "other_sports_cards"
      }
    ],
    "defaultCategory": null,
    "exclude": "gift card|\\bsleeves?\\b|deck box|deck case|deck holder|binder|playmat|play mat|toploader|top loader|storage box|card case|portfolio|\\balbum\\b|\\bdice\\b|spindown|life counter|tokens? only|bundle of|mystery (box|pack|bundle|bag)|repack|\\bticket|event entry|entry fee|weekly league|display case|acrylic (stand|display|case)|card holder|card protector|magnetic holder|semi-rigid|perfect fit|penny sleeve|team bag|card saver|\\baccessor|dice set|d20|d6\\b|\\bpaint|brush|primer|glue|hobby tool|cutter|tweezers|sticker|keyring|key ring|lanyard|badge|coaster|mug\\b|t-shirt|hoodie|\\bcap\\b|socks|towel|blanket|poster|wall scroll|calendar|advent|advent calendar|cable guy|mocchi|plush|collection only|9-pocket|12-pocket|4-pocket",
    "keepOutOfStock": true,
    "titlePattern": "^(?<name>[^()]+?) \\((?<number>\\d[\\w/-]*)\\)$",
    "pageSize": 250,
    "fetchBarcodes": false,
    "wholeShop": false
  }
}
