# Nintendo eShop Scraper (`unfenced-group/nintendo-eshop-scraper`) Actor

Scrape Nintendo eShop games with localized prices and discounts across 33 countries in one run. Genres, ratings, players, file size and more.

- **URL**: https://apify.com/unfenced-group/nintendo-eshop-scraper.md
- **Developed by:** [Unfenced Group](https://apify.com/unfenced-group) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.29 / 1,000 games

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Nintendo eShop Scraper

Scrape Nintendo eShop games with localized pricing across 33 countries in a single run. Get prices, discounts, ratings, genres and full game metadata in any of 13 currencies — all from one search. No API key required, no login, no setup.

---

### Why this scraper?

#### 🌍 33 countries, 13 currencies, one run
Price any game across the UK, all of Europe, Australia, New Zealand and South Africa at once. Every result carries each country's exact local price and currency. No other Nintendo scraper does multi-country pricing.

#### 🏷️ Live discounts and sale windows
See the current sale price, discount percentage, and the exact date the sale ends — per country. Filter to on-sale games only to find the best deals across regions.

#### 🎮 Deep game metadata
Genres, age ratings (PEGI and others), player counts, play modes, supported languages, file size, demo availability, cloud-save support, and physical-release status — all in every record.

#### 🔎 Search or browse the full catalogue
Search by keyword across 18,000+ Switch and Switch 2 titles, browse the most-downloaded games, or pass exact eShop IDs to price specific titles.

#### 🎯 Powerful filtering
Filter by price band, free/paid/on-sale, age tier, genre, release window, multiplayer, handheld mode, demos, cloud saves and physical releases.

#### 💸 Pay only for results
Flat per-game pricing. You only pay for games actually returned.

---

### Input parameters

| Field | Type | Default | Description |
|---|---|---|---|
| `searchQuery` | string | `""` | Keyword(s) to search the eShop catalogue. Leave empty to browse the most-downloaded games. |
| `country` | string | `GB` | Single storefront to price against. Ignored if `countries` or `allCountries` is set. |
| `countries` | array | `[]` | Multiple storefronts to price each game against in one run. |
| `allCountries` | boolean | `false` | Price across all 33 supported storefronts. Overrides the country fields. |
| `maxResults` | integer | `5` | Maximum number of games to return. |
| `searchLanguage` | string | `en` | Catalogue language for titles, descriptions and genres. Prices stay localized per country. |
| `nsuids` | array | `[]` | Exact Nintendo eShop IDs (nsuid) to price directly. Bypasses search. |
| `priceFilter` | string | `all` | `all`, `free`, `paid`, or `onSale`. |
| `minPrice` | integer | – | Only games whose lowest price across selected countries is at least this amount. |
| `maxPrice` | integer | – | Only games whose lowest price across selected countries is at most this amount. |
| `ageRatings` | array | `[]` | Maturity tier: `everyone`, `teen`, `mature`, `unrated`. |
| `genres` | array | `[]` | Filter by genre (substring match — e.g. `action`, `rpg`, `puzzle`). |
| `releasedAfter` | string | `""` | Only games released on or after this date (YYYY-MM-DD). |
| `releasedBefore` | string | `""` | Only games released on or before this date (YYYY-MM-DD). |
| `multiplayer` | boolean | `false` | Only games supporting 2+ players. |
| `handheldOnly` | boolean | `false` | Only games playable in handheld mode. |
| `hasDemo` | boolean | `false` | Only games with a downloadable demo. |
| `cloudSaves` | boolean | `false` | Only games supporting cloud saves. |
| `physicalVersion` | boolean | `false` | Only games with a physical (cartridge) release. |
| `includeMedia` | boolean | `true` | Include cover, banner and screenshot image URLs. |
| `includeDescription` | boolean | `true` | Include the game description text. |
| `useProxy` | boolean | `false` | Route requests through Apify Proxy. Off by default. |

---

### Output schema

Every game returns the following fields.

| Field | Type | Description |
|---|---|---|
| `nsuid` | string | Nintendo eShop ID — the stable unique identifier for the title. |
| `title` | string | Game title. |
| `region` | string | Catalogue region the metadata came from. |
| `platform` | string | Console (e.g. Nintendo Switch). |
| `publisher` | string | Publisher name. |
| `developer` | string | Developer name (falls back to the rights holder from the copyright line when not explicitly listed). |
| `copyright` | string | Full copyright/rights line, when listed. |
| `releaseDate` | string | Release date (ISO 8601). |
| `releaseDateDisplay` | string | Release date as displayed (localized). |
| `genres` | array | Game genres. |
| `ageRating` | string | Age rating label (e.g. "PEGI 12"). |
| `ageRatingSystem` | string | Rating system (e.g. PEGI). |
| `ageRatingValue` | string | Numeric age value. |
| `players` | number | Maximum supported players. |
| `playersMin` | number | Minimum supported players, when listed. |
| `playModes` | array | Supported play modes (TV, Tabletop, Handheld). |
| `languages` | array | Supported languages. |
| `fileSize` | string | Download size, when listed. |
| `hasDemo` | boolean | A downloadable demo is available. |
| `physicalVersion` | boolean | A physical (cartridge) release exists. |
| `digitalVersion` | boolean | A digital release exists. |
| `cloudSaves` | boolean | Cloud saves supported. |
| `onlinePlayPaid` | boolean | Online play requires a paid subscription. |
| `subscriptionRequired` | boolean | A subscription is required to play. |
| `gameVoucherEligible` | boolean | Eligible for the Nintendo Switch Game Voucher. |
| `addOnContent` | boolean | Has add-on content (DLC). |
| `eshopRemoved` | boolean | The title has been delisted from the eShop. |
| `gameSeries` | array | Game series the title belongs to (human-readable labels). |
| `compatibleControllers` | array | Compatible controllers. |
| `productCode` | string | Nintendo product code. |
| `description` | string | Game description. |
| `coverImage` | string | Square cover image URL. |
| `bannerImage` | string | Wide banner image URL. |
| `prices` | array | Per-country price blocks (see below). |
| `priceByCountry` | object | The same prices keyed by country code. |
| `countriesPriced` | number | How many countries returned a price. |
| `isOnSaleAnywhere` | boolean | The game is on sale in at least one country. |
| `lowestPriceValue` | number | Lowest final price across all priced countries in this run. |
| `lowestPriceEver` | number | Lowest price the title has ever reached (Nintendo's recorded historical low). |
| `eshopUrl` | string | Link to the game on the Nintendo store. |
| `scrapedAt` | string | Timestamp of the scrape (ISO 8601). |

Each entry in `prices` contains:

| Field | Type | Description |
|---|---|---|
| `country` | string | ISO country code. |
| `countryName` | string | Country name. |
| `currency` | string | Local currency code. |
| `salesStatus` | string | Nintendo sales status (e.g. onsale). |
| `regularPrice` | string | Regular price as displayed locally. |
| `regularValue` | number | Regular price as a number. |
| `discountPrice` | string | Sale price as displayed locally, when on sale. |
| `discountValue` | number | Sale price as a number. |
| `finalValue` | number | Effective price (sale price if on sale, else regular). |
| `isOnSale` | boolean | The game is on sale in this country. |
| `discountPercent` | number | Discount percentage, when on sale. |
| `discountStart` | string | Sale start time (ISO 8601). |
| `discountEnd` | string | Sale end time (ISO 8601). |
| `isFree` | boolean | The game is free in this country. |

#### Example record

```json
{
  "nsuid": "70010000063715",
  "title": "The Legend of Zelda: Tears of the Kingdom",
  "region": "PAL",
  "platform": "Nintendo Switch",
  "publisher": "Nintendo",
  "developer": null,
  "releaseDate": "2023-05-12T00:00:00Z",
  "releaseDateDisplay": "12/05/2023",
  "genres": ["Action", "Adventure"],
  "ageRating": "PEGI 12",
  "ageRatingSystem": "PEGI",
  "ageRatingValue": "12",
  "players": 1,
  "playModes": ["TV", "Tabletop", "Handheld"],
  "languages": ["english", "french", "german", "spanish", "italian", "dutch"],
  "fileSize": "16.5 GB",
  "hasDemo": false,
  "physicalVersion": true,
  "digitalVersion": false,
  "cloudSaves": false,
  "onlinePlayPaid": false,
  "subscriptionRequired": false,
  "gameVoucherEligible": true,
  "addOnContent": false,
  "gameSeries": ["the_legend_of_zelda"],
  "compatibleControllers": ["nintendoswitch_pro_controller"],
  "productCode": "HACPAAAAA",
  "description": "An epic adventure across the land and skies of Hyrule awaits.",
  "coverImage": "https://www.nintendo.com/eu/media/images/.../1x1.png",
  "bannerImage": "https://www.nintendo.com/eu/media/images/.../h2x1.png",
  "prices": [
    { "country": "GB", "countryName": "United Kingdom", "currency": "GBP", "salesStatus": "onsale", "regularPrice": "£59.99", "regularValue": 59.99, "discountPrice": null, "discountValue": null, "finalValue": 59.99, "isOnSale": false, "discountPercent": null, "discountStart": null, "discountEnd": null, "isFree": false },
    { "country": "DE", "countryName": "Germany", "currency": "EUR", "salesStatus": "onsale", "regularPrice": "69,99 €", "regularValue": 69.99, "discountPrice": null, "discountValue": null, "finalValue": 69.99, "isOnSale": false, "discountPercent": null, "discountStart": null, "discountEnd": null, "isFree": false }
  ],
  "priceByCountry": { "GB": { "...": "..." }, "DE": { "...": "..." } },
  "countriesPriced": 2,
  "isOnSaleAnywhere": false,
  "lowestPriceValue": 59.99,
  "eshopUrl": "https://www.nintendo.com/en-gb/Games/...",
  "scrapedAt": "2026-06-23T19:39:00.000Z"
}
````

***

### Examples

**1. Search a title and compare prices across Europe**

```json
{
  "searchQuery": "tears of the kingdom",
  "countries": ["GB", "DE", "FR", "ES", "IT"],
  "maxResults": 5
}
```

**2. Find the best deals across every storefront**

```json
{
  "priceFilter": "onSale",
  "allCountries": true,
  "maxResults": 50
}
```

**3. Browse top free multiplayer games in the UK**

```json
{
  "priceFilter": "free",
  "multiplayer": true,
  "country": "GB",
  "maxResults": 20
}
```

**4. Daily price feed for specific titles**

```json
{
  "nsuids": ["70010000063715", "70010000020034"],
  "allCountries": true
}
```

***

### 💰 Pricing

**$1.49 per 1,000 games** — you only pay for games actually returned. Failed retries and filtered-out games are never charged.

| Games | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
| 100,000 | ~$149.00 |

Subscribers pay less at every tier, down to **$0.99 per 1,000** on the Diamond plan.

> Flat-rate alternatives typically charge $29–$49/month regardless of usage.

Use the **Max results** cap in the input to control your spend exactly.

***

### Performance

| Run size | Approx. time |
|---|---|
| 10 games × 1 country | ~10 s |
| 50 games × 5 countries | ~60 s |
| 100 games × all countries | ~6 min |

Multi-country runs add one fast pricing pass per country. Memory stays under 100 MB.

***

### Known limitations

- Covers 33 storefronts: the UK, EU member states, Switzerland, Norway, Australia, New Zealand and South Africa. The Americas (US, Canada, Mexico, Brazil and more) and Japan use a separate Nintendo catalogue and are planned for a future update.
- File size and developer are not listed for every title.
- Region-exclusive titles only appear in the storefronts that carry them.

***

### Technical details

- **Source:** Nintendo eShop — official catalogue and pricing.
- **Memory:** 512 MB.
- **Retry:** Automatic retry on network errors, exponential backoff, 3 attempts per request.
- **Output:** Every run writes an `OUTPUT` summary and a `HEALTH` status to the key-value store.

### Related scrapers

Other scrapers in our **Game & App Stores** collection:

- [PlayStation Store Scraper](https://apify.com/unfenced-group/playstation-store-scraper)
- [Steam Store Scraper](https://apify.com/unfenced-group/steam-store-scraper)
- [Xbox Store Scraper](https://apify.com/unfenced-group/xbox-store-scraper)
- [iOS App Store Scraper](https://apify.com/unfenced-group/ios-app-store-scraper)

***

### Need a custom scraper?

**[Unfenced Group](https://www.unfencedgroup.nl)** builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

**Get in touch:** [www.unfencedgroup.nl](https://www.unfencedgroup.nl)

# Actor input Schema

## `searchQuery` (type: `string`):

Keyword(s) to search the Nintendo eShop catalogue (e.g. "zelda", "mario kart"). Leave empty to browse the most-downloaded games.

## `country` (type: `string`):

Single storefront to price against. Ignored if 'Countries' or 'All countries' is set.

## `countries` (type: `array`):

Price each game across multiple storefronts in one run — every selected country's local price and currency is returned per game.

## `allCountries` (type: `boolean`):

Price across all 33 supported storefronts in a single run. Overrides the country fields.

## `maxResults` (type: `integer`):

Maximum number of games to return.

## `searchLanguage` (type: `string`):

Language for game titles, descriptions and genres. Prices stay localized to each country regardless of this setting.

## `nsuids` (type: `array`):

Optional list of exact Nintendo eShop IDs (nsuid, e.g. 70010000063715) to price directly. Bypasses search.

## `priceFilter` (type: `string`):

Restrict to free, paid, or on-sale games.

## `minPrice` (type: `integer`):

Only games whose lowest price across selected countries is at least this amount (in local major units).

## `maxPrice` (type: `integer`):

Only games whose lowest price across selected countries is at most this amount (in local major units).

## `ageRatings` (type: `array`):

Filter by maturity tier (mapped across PEGI/USK/etc).

## `genres` (type: `array`):

Filter by genre (substring match, case-insensitive — e.g. "action", "rpg", "puzzle").

## `releasedAfter` (type: `string`):

Only games released on or after this date (YYYY-MM-DD).

## `releasedBefore` (type: `string`):

Only games released on or before this date (YYYY-MM-DD).

## `multiplayer` (type: `boolean`):

Only games supporting 2+ players.

## `handheldOnly` (type: `boolean`):

Only games playable in handheld mode.

## `hasDemo` (type: `boolean`):

Only games with a downloadable demo.

## `cloudSaves` (type: `boolean`):

Only games supporting cloud saves.

## `physicalVersion` (type: `boolean`):

Only games with a physical (cartridge) release.

## `includeMedia` (type: `boolean`):

Include cover, banner and screenshot image URLs.

## `includeDescription` (type: `boolean`):

Include the game description text.

## `useProxy` (type: `boolean`):

Route requests through Apify Proxy. Off by default — the Nintendo endpoints are reachable directly.

## Actor input object example

```json
{
  "searchQuery": "",
  "country": "GB",
  "countries": [],
  "allCountries": false,
  "maxResults": 5,
  "searchLanguage": "en",
  "nsuids": [],
  "priceFilter": "all",
  "ageRatings": [],
  "genres": [],
  "releasedAfter": "",
  "releasedBefore": "",
  "multiplayer": false,
  "handheldOnly": false,
  "hasDemo": false,
  "cloudSaves": false,
  "physicalVersion": false,
  "includeMedia": true,
  "includeDescription": true,
  "useProxy": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("unfenced-group/nintendo-eshop-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("unfenced-group/nintendo-eshop-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call unfenced-group/nintendo-eshop-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=unfenced-group/nintendo-eshop-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Nintendo eShop Scraper",
        "description": "Scrape Nintendo eShop games with localized prices and discounts across 33 countries in one run. Genres, ratings, players, file size and more.",
        "version": "0.0",
        "x-build-id": "jxeM7S8QimW7PZwxF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/unfenced-group~nintendo-eshop-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-unfenced-group-nintendo-eshop-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/unfenced-group~nintendo-eshop-scraper/runs": {
            "post": {
                "operationId": "runs-sync-unfenced-group-nintendo-eshop-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/unfenced-group~nintendo-eshop-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-unfenced-group-nintendo-eshop-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keyword(s) to search the Nintendo eShop catalogue (e.g. \"zelda\", \"mario kart\"). Leave empty to browse the most-downloaded games.",
                        "default": ""
                    },
                    "country": {
                        "title": "Country (single)",
                        "enum": [
                            "GB",
                            "IE",
                            "DE",
                            "FR",
                            "NL",
                            "BE",
                            "LU",
                            "ES",
                            "PT",
                            "IT",
                            "AT",
                            "CH",
                            "PL",
                            "CZ",
                            "SK",
                            "HU",
                            "SE",
                            "NO",
                            "DK",
                            "FI",
                            "GR",
                            "RO",
                            "BG",
                            "HR",
                            "SI",
                            "EE",
                            "LV",
                            "LT",
                            "CY",
                            "MT",
                            "AU",
                            "NZ",
                            "ZA"
                        ],
                        "type": "string",
                        "description": "Single storefront to price against. Ignored if 'Countries' or 'All countries' is set.",
                        "default": "GB"
                    },
                    "countries": {
                        "title": "Countries (multi-select)",
                        "type": "array",
                        "description": "Price each game across multiple storefronts in one run — every selected country's local price and currency is returned per game.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "GB",
                                "IE",
                                "DE",
                                "FR",
                                "NL",
                                "BE",
                                "LU",
                                "ES",
                                "PT",
                                "IT",
                                "AT",
                                "CH",
                                "PL",
                                "CZ",
                                "SK",
                                "HU",
                                "SE",
                                "NO",
                                "DK",
                                "FI",
                                "GR",
                                "RO",
                                "BG",
                                "HR",
                                "SI",
                                "EE",
                                "LV",
                                "LT",
                                "CY",
                                "MT",
                                "AU",
                                "NZ",
                                "ZA"
                            ],
                            "enumTitles": [
                                "🇬🇧 United Kingdom (GBP)",
                                "🇮🇪 Ireland (EUR)",
                                "🇩🇪 Germany (EUR)",
                                "🇫🇷 France (EUR)",
                                "🇳🇱 Netherlands (EUR)",
                                "🇧🇪 Belgium (EUR)",
                                "🇱🇺 Luxembourg (EUR)",
                                "🇪🇸 Spain (EUR)",
                                "🇵🇹 Portugal (EUR)",
                                "🇮🇹 Italy (EUR)",
                                "🇦🇹 Austria (EUR)",
                                "🇨🇭 Switzerland (CHF)",
                                "🇵🇱 Poland (PLN)",
                                "🇨🇿 Czechia (CZK)",
                                "🇸🇰 Slovakia (EUR)",
                                "🇭🇺 Hungary (EUR)",
                                "🇸🇪 Sweden (SEK)",
                                "🇳🇴 Norway (NOK)",
                                "🇩🇰 Denmark (DKK)",
                                "🇫🇮 Finland (EUR)",
                                "🇬🇷 Greece (EUR)",
                                "🇷🇴 Romania (EUR)",
                                "🇧🇬 Bulgaria (EUR)",
                                "🇭🇷 Croatia (EUR)",
                                "🇸🇮 Slovenia (EUR)",
                                "🇪🇪 Estonia (EUR)",
                                "🇱🇻 Latvia (EUR)",
                                "🇱🇹 Lithuania (EUR)",
                                "🇨🇾 Cyprus (EUR)",
                                "🇲🇹 Malta (EUR)",
                                "🇦🇺 Australia (AUD)",
                                "🇳🇿 New Zealand (NZD)",
                                "🇿🇦 South Africa (ZAR)"
                            ]
                        },
                        "default": []
                    },
                    "allCountries": {
                        "title": "All countries",
                        "type": "boolean",
                        "description": "Price across all 33 supported storefronts in a single run. Overrides the country fields.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of games to return.",
                        "default": 5
                    },
                    "searchLanguage": {
                        "title": "Catalogue language",
                        "enum": [
                            "en",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "pt"
                        ],
                        "type": "string",
                        "description": "Language for game titles, descriptions and genres. Prices stay localized to each country regardless of this setting.",
                        "default": "en"
                    },
                    "nsuids": {
                        "title": "Specific eShop IDs (nsuids)",
                        "type": "array",
                        "description": "Optional list of exact Nintendo eShop IDs (nsuid, e.g. 70010000063715) to price directly. Bypasses search.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "priceFilter": {
                        "title": "Price filter",
                        "enum": [
                            "all",
                            "free",
                            "paid",
                            "onSale"
                        ],
                        "type": "string",
                        "description": "Restrict to free, paid, or on-sale games.",
                        "default": "all"
                    },
                    "minPrice": {
                        "title": "Minimum price",
                        "type": "integer",
                        "description": "Only games whose lowest price across selected countries is at least this amount (in local major units)."
                    },
                    "maxPrice": {
                        "title": "Maximum price",
                        "type": "integer",
                        "description": "Only games whose lowest price across selected countries is at most this amount (in local major units)."
                    },
                    "ageRatings": {
                        "title": "Age rating tier",
                        "type": "array",
                        "description": "Filter by maturity tier (mapped across PEGI/USK/etc).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "everyone",
                                "teen",
                                "mature",
                                "unrated"
                            ],
                            "enumTitles": [
                                "Everyone",
                                "Teen",
                                "Mature",
                                "Unrated"
                            ]
                        },
                        "default": []
                    },
                    "genres": {
                        "title": "Genres",
                        "type": "array",
                        "description": "Filter by genre (substring match, case-insensitive — e.g. \"action\", \"rpg\", \"puzzle\").",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "releasedAfter": {
                        "title": "Released after",
                        "type": "string",
                        "description": "Only games released on or after this date (YYYY-MM-DD).",
                        "default": ""
                    },
                    "releasedBefore": {
                        "title": "Released before",
                        "type": "string",
                        "description": "Only games released on or before this date (YYYY-MM-DD).",
                        "default": ""
                    },
                    "multiplayer": {
                        "title": "Multiplayer only",
                        "type": "boolean",
                        "description": "Only games supporting 2+ players.",
                        "default": false
                    },
                    "handheldOnly": {
                        "title": "Handheld mode only",
                        "type": "boolean",
                        "description": "Only games playable in handheld mode.",
                        "default": false
                    },
                    "hasDemo": {
                        "title": "Has demo",
                        "type": "boolean",
                        "description": "Only games with a downloadable demo.",
                        "default": false
                    },
                    "cloudSaves": {
                        "title": "Cloud saves",
                        "type": "boolean",
                        "description": "Only games supporting cloud saves.",
                        "default": false
                    },
                    "physicalVersion": {
                        "title": "Physical release",
                        "type": "boolean",
                        "description": "Only games with a physical (cartridge) release.",
                        "default": false
                    },
                    "includeMedia": {
                        "title": "Include media",
                        "type": "boolean",
                        "description": "Include cover, banner and screenshot image URLs.",
                        "default": true
                    },
                    "includeDescription": {
                        "title": "Include description",
                        "type": "boolean",
                        "description": "Include the game description text.",
                        "default": true
                    },
                    "useProxy": {
                        "title": "Use proxy",
                        "type": "boolean",
                        "description": "Route requests through Apify Proxy. Off by default — the Nintendo endpoints are reachable directly.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
