Nintendo
Nintendo eShop Deals API
Nintendo eShop games on sale now, on 42 markets, with the country's sale price, regular price, discount and sale end date. Europe and Japan: every discounted game in the catalog, up to 50 a page, sorted by discount, price or newest (Europe) or newest and price (Japan). Americas: Nintendo's featured sale pages (the nintendo.com sales and deals pages, not every discounted game), with the sale page each item is featured in, every sale page's slug, and sorts featured, discount, price, newest and ending soon. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsoncountrystringdefault:usThe eShop market, as a lowercase country code. This endpoint serves 42 markets: the Americas (us, ca, mx, br, ar, cl, co, pe), Europe with a catalog in its own language (gb, ie, de, at, ch, fr, be, nl, lu, it, es, pt, au, nz, za), 18 European countries with no Nintendo site of their own that read the English European catalog with their own prices (pl, cz, se, no, dk, fi, sk, hu, ro, bg, gr, hr, si, ee, lv, lt, mt, cy), and Japan (jp). kr, hk, tw and il are prices only and answer 400 here. Titles come back in the market's language and prices in its currency, never converted; the answer echoes country, language, currency and region. ph (Nintendo has not published Philippines item ids yet), ru (no eShop), uk (use gb) and countries with no eShop data answer 400, not charged.
Example: us
us— United States, USD, en (English); Americas store. The default.ca— Canada, CAD, en (English) or fr (French); default en; Americas store.mx— Mexico, MXN, es (Spanish); Americas store.br— Brazil, BRL, pt (Portuguese); Americas store.ar— Argentina, ARS, es (Spanish); Americas store.cl— Chile, CLP, es (Spanish); Americas store.co— Colombia, COP, es (Spanish); Americas store.pe— Peru, PEN, es (Spanish); Americas store.gb— United Kingdom, GBP, en (English); European catalog in the market's language.ie— Ireland, EUR, en (English); European catalog in the market's language.de— Germany, EUR, de (German); European catalog in the market's language.at— Austria, EUR, de (German); European catalog in the market's language.ch— Switzerland, CHF, de (German) or fr (French) or it (Italian); default de; European catalog in the market's language.fr— France, EUR, fr (French); European catalog in the market's language.be— Belgium, EUR, fr (French) or nl (Dutch); default fr; European catalog in the market's language.nl— Netherlands, EUR, nl (Dutch); European catalog in the market's language.lu— Luxembourg, EUR, fr (French); European catalog in the market's language.it— Italy, EUR, it (Italian); European catalog in the market's language.es— Spain, EUR, es (Spanish); European catalog in the market's language.pt— Portugal, EUR, pt (Portuguese); European catalog in the market's language.au— Australia, AUD, en (English); European catalog in the market's language.nz— New Zealand, NZD, en (English); European catalog in the market's language.za— South Africa, ZAR, en (English); European catalog in the market's language.pl— Poland, PLN, en (English); English European catalog, this country's prices.cz— Czechia, CZK, en (English); English European catalog, this country's prices.se— Sweden, SEK, en (English); English European catalog, this country's prices.no— Norway, NOK, en (English); English European catalog, this country's prices.dk— Denmark, DKK, en (English); English European catalog, this country's prices.fi— Finland, EUR, en (English); English European catalog, this country's prices.sk— Slovakia, EUR, en (English); English European catalog, this country's prices.hu— Hungary, EUR, en (English); English European catalog, this country's prices.ro— Romania, EUR, en (English); English European catalog, this country's prices.bg— Bulgaria, EUR, en (English); English European catalog, this country's prices.gr— Greece, EUR, en (English); English European catalog, this country's prices.hr— Croatia, EUR, en (English); English European catalog, this country's prices.si— Slovenia, EUR, en (English); English European catalog, this country's prices.ee— Estonia, EUR, en (English); English European catalog, this country's prices.lv— Latvia, EUR, en (English); English European catalog, this country's prices.lt— Lithuania, EUR, en (English); English European catalog, this country's prices.mt— Malta, EUR, en (English); English European catalog, this country's prices.cy— Cyprus, EUR, en (English); English European catalog, this country's prices.jp— Japan, JPY, ja (Japanese); Japanese catalog.
languagestringThe answer's language, from the market's own list (the first is the default): ca en or fr; ch de, fr or it; be fr or nl; mx, ar, cl, co, pe and es es; br and pt pt; de and at de; fr and lu fr; it it; nl nl; jp ja; kr ko; hk and tw zh; every other market en. Titles, genres and descriptions come back in it. A language the market does not serve answers 400.
Example: fr
pageintegerdefault:1Results page, 1-based, up to 400.
Example: 2
page_sizeintegerdefault:24Items per page, 1 to 50.
Example: 50
sortenum<string>Americas: featured (default, Nintendo's order), discount, price_asc, newest or ending_soon; Europe: discount (default), price_asc or newest; jp: newest (default) or price_asc. Another sort answers 400.
Example: ending_soon
featured— Nintendo's order on its sale pages. Americas default.discount— Deepest discount first. Americas and Europe; the Europe default.price_asc— Price, low to high. Every catalog.newest— Newest release first. Every catalog; the jp default.ending_soon— Sale ending soonest first. Americas.
platformenum<string>switch or switch_2.
Example: switch_2
switch— Nintendo Switch.switch_2— Nintendo Switch 2.
salestringAmericas only: one sale page, by its slug from sales[].sale.
Example: square-enix
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key", timeout=120)
# Every discounted game in the German eShop, deepest discount first.
r = client.nintendo.deals(country="de", sort="discount", page_size=50)["data"]
print(r["total"], "games on sale")
for i in r["items"]:
print(i["nsuid"], i["title"], i["price"], i["regular_price"], i["discount_percent"], i["sale_end"])Response