{
  "id": "magi",
  "displayName": "magi (Japanese card marketplace)",
  "sourceId": "magi",
  "sourceName": "magi",
  "sourceType": "marketplace",
  "sourceUrl": "https://magi.camp",
  "module": "api/magi",
  "enginePriority": ["api"],
  "categories": ["pokemon", "yugioh", "magic_the_gathering", "one_piece_card_game", "other_tcg"],
  "regions": ["JP"],
  "country": "JP",
  "languages": ["ja"],
  "currency": ["JPY"],
  "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://magi.camp/terms/use",
  "acquisitionMethod": "public series browse pages (server-rendered HTML) + JSON-LD Product on item pages",
  "historicalDepth": "none",
  "capabilities": ["live_listings", "url_lookup", "images"],
  "accessNotes": "magi is a Japanese C2C/B2C marketplace for trading cards (PSA-graded singles, sealed boxes). Public, login-free browse pages per game series — https://magi.camp/series/<id>/items?page=<n> (31 Pokémon, 34 Yu-Gi-Oh!, 32 Magic, 20 Duel Masters, 100148 One Piece; 96 items per page) — list each item's title, JPY price (tax incl.) and a SOLD marker for items that already sold. Item pages (/items/<id>) expose a schema.org Product JSON-LD (name, description, image, offers.price JPY, availability InStock/OutOfStock) and are used only for URL lookups. robots.txt: `User-Agent: * Disallow:` (everything allowed) except that /items/search and /products/search are disallowed for named AI crawlers because the faceted search is expensive for them — we therefore never call the search endpoints at all and only paginate the series browse pages, ≥ 4 s apart, 1 concurrent, honest UA. Prices are asking prices → listings (availability 'sold' when the SOLD marker is present; magi shows no sale date, so sold items are NOT emitted as sales). Seller usernames are personal data of private sellers and are never stored; only the 'certified seller' badge is kept as a boolean. Mystery packs (オリパ), grab bags (福袋), lots and supplies are skipped; multi-card listings (N枚 > 1) are flagged isBundle via quantity.",
  "enabled": true,
  "schemaVersion": "1.0",
  "config": {
    "seeds": [
      { "series": "31", "categorySlug": "pokemon", "name": "ポケモンカードゲーム", "franchise": "Pokémon" },
      { "series": "34", "categorySlug": "yugioh", "name": "遊戯王", "franchise": "Yu-Gi-Oh!" },
      { "series": "32", "categorySlug": "magic_the_gathering", "name": "マジック：ザ・ギャザリング", "franchise": "Magic: The Gathering" },
      { "series": "100148", "categorySlug": "one_piece_card_game", "name": "ワンピースカード", "franchise": "One Piece" },
      { "series": "20", "categorySlug": "other_tcg", "name": "デュエル・マスターズ", "franchise": "Duel Masters" }
    ],
    "pagesPerSeed": 3
  }
}
