{
  "id": "tcgcsv",
  "displayName": "TCGCSV (TCGplayer catalog & prices)",
  "sourceId": "tcgcsv",
  "sourceName": "TCGCSV",
  "sourceType": "pricing_guide",
  "sourceUrl": "https://tcgcsv.com",
  "module": "api/tcgcsv",
  "enginePriority": ["api"],
  "categories": ["trading_cards", "pokemon", "magic_the_gathering", "yugioh", "disney_lorcana", "one_piece_card_game", "digimon_tcg", "flesh_and_blood", "star_wars_tcg", "dragon_ball_tcg", "weiss_schwarz", "final_fantasy_tcg", "other_tcg", "funko"],
  "regions": ["US"],
  "languages": ["en", "ja"],
  "currency": ["USD"],
  "supportsListings": false,
  "supportsSold": false,
  "supportsAuctions": false,
  "supportsImages": true,
  "supportsCatalog": true,
  "supportsPopulation": false,
  "supportsLookup": false,
  "refreshFrequencyMinutes": 1440,
  "priority": "high",
  "trustScore": 0.8,
  "attributionRequired": true,
  "termsUrl": "https://tcgcsv.com/faq",
  "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.",
  "enabled": true,
  "schemaVersion": "1.0",
  "config": {
    "categories": {
      "3": { "slug": "pokemon", "franchise": "Pokémon", "brand": "The Pokémon Company", "language": "English" },
      "85": { "slug": "pokemon", "franchise": "Pokémon", "brand": "The Pokémon Company", "language": "Japanese" },
      "1": { "slug": "magic_the_gathering", "franchise": "Magic: The Gathering", "brand": "Wizards of the Coast" },
      "2": { "slug": "yugioh", "franchise": "Yu-Gi-Oh!", "brand": "Konami" },
      "71": { "slug": "disney_lorcana", "franchise": "Disney Lorcana", "brand": "Ravensburger" },
      "68": { "slug": "one_piece_card_game", "franchise": "One Piece", "brand": "Bandai" },
      "63": { "slug": "digimon_tcg", "franchise": "Digimon", "brand": "Bandai" },
      "62": { "slug": "flesh_and_blood", "franchise": "Flesh and Blood", "brand": "Legend Story Studios" },
      "79": { "slug": "star_wars_tcg", "franchise": "Star Wars: Unlimited", "brand": "Fantasy Flight Games" },
      "80": { "slug": "dragon_ball_tcg", "franchise": "Dragon Ball Super Fusion World", "brand": "Bandai" },
      "27": { "slug": "dragon_ball_tcg", "franchise": "Dragon Ball Super Card Game", "brand": "Bandai" },
      "20": { "slug": "weiss_schwarz", "franchise": "Weiß Schwarz", "brand": "Bushiroad" },
      "24": { "slug": "final_fantasy_tcg", "franchise": "Final Fantasy TCG", "brand": "Square Enix" },
      "74": { "slug": "other_tcg", "franchise": "Grand Archive", "brand": "Weebs of the Shore" },
      "77": { "slug": "other_tcg", "franchise": "Sorcery: Contested Realm", "brand": "Erik's Curiosa" },
      "81": { "slug": "other_tcg", "franchise": "Union Arena", "brand": "Bandai" },
      "86": { "slug": "other_tcg", "franchise": "Gundam Card Game", "brand": "Bandai" },
      "89": { "slug": "other_tcg", "franchise": "Riftbound", "brand": "Riot Games" },
      "16": { "slug": "other_tcg", "franchise": "Cardfight!! Vanguard", "brand": "Bushiroad" },
      "17": { "slug": "other_tcg", "franchise": "Force of Will", "brand": "Force of Will Co." },
      "59": { "slug": "other_tcg", "franchise": "KeyForge", "brand": "Ghost Galaxy" },
      "66": { "slug": "other_tcg", "franchise": "MetaZoo", "brand": "MetaZoo Games" },
      "72": { "slug": "other_tcg", "franchise": "Battle Spirits Saga", "brand": "Bandai" },
      "25": { "slug": "other_tcg", "franchise": "UniVersus", "brand": "UVS Games" },
      "29": { "slug": "funko", "franchise": null, "brand": "Funko" }
    },
    "maxGroupsPerCategory": 40,
    "priceKinds": ["market", "low"]
  }
}
