{
  "id": "hareruya",
  "displayName": "Hareruya (晴れる屋) MTG singles",
  "sourceId": "hareruya",
  "sourceName": "Hareruya",
  "sourceType": "dealer",
  "sourceUrl": "https://www.hareruyamtg.com/en/",
  "module": "api/hareruya",
  "enginePriority": ["api"],
  "categories": ["magic_the_gathering"],
  "regions": ["JP"],
  "country": "JP",
  "languages": ["en", "ja"],
  "currency": ["JPY"],
  "supportsListings": true,
  "supportsSold": false,
  "supportsAuctions": false,
  "supportsImages": true,
  "supportsCatalog": false,
  "supportsPopulation": false,
  "supportsLookup": false,
  "refreshFrequencyMinutes": 1440,
  "priority": "medium",
  "trustScore": 0.8,
  "attributionRequired": true,
  "termsUrl": "https://www.hareruyamtg.com/en/help/agreement",
  "acquisitionMethod": "the storefront's own search JSON endpoint (unisearch_api) per card set",
  "historicalDepth": "none",
  "capabilities": ["live_listings", "images"],
  "accessNotes": "Hareruya is Japan's largest Magic retailer with an English storefront (EC-CUBE). The HTML search page renders its results through a public, unauthenticated JSON endpoint — GET https://www.hareruyamtg.com/en/products/search/unisearch_api?fq.category_id=1&fq.cardset=<id>&fq.price=1~*&rows=60&page=<n> — which we call exactly as the page does (60 docs per page, capped by the site at 4 000 results per query): product id, English/Japanese product name (《Card》[SET]), card_name, language code (1 JP, 2 EN, 3 CS, 4 CT, 5 FR, 6 DE, 7 IT, 8 KO …), JPY price incl. tax, foil flag, stock, weekly_sales, product_class (per language/condition/foil offer), card_condition code and image. Card-set ids/names are read once per run from the <select name=cardset> of the public search form (https://www.hareruyamtg.com/en/products/search, no query parameters). robots.txt allows / and disallows only /en/products/search?*page=* | *sort=* | *order=* (the HTML result pages), /*.csv$, deck downloads, purchase forwards and news; we never request those HTML pages — only the JSON endpoint the page itself loads, ≥ 4 s apart, 1 concurrent, honest UA. Not fetched: buy-list (purchase) prices, product detail pages (only linked), carts, member areas. Prices are shop asking prices → listings, never sales. The numeric card_condition code is kept in metadata only (Hareruya's NM/EX/PL labels are not exposed by the endpoint, so condition is left null rather than guessed).",
  "enabled": true,
  "schemaVersion": "1.0",
  "config": {
    "setsPerRun": 12,
    "maxPagesPerSet": 67,
    "rows": 60
  }
}
