# Microsoft Store API

> Microsoft Store returns app and game listings, search results, and chart rankings as a workflow and API.

Microsoft Store (MS Store) Get app returns listing details using an app name, store link, or product ID, with optional country and publisher. Search apps returns keyword-matched apps or games in Store order, using a required query and optional type, country, and result count. List top charts returns ranked apps or games for a chart, with optional country, category, and result count.

- Page: https://fous.com/tools/microsoft-store
- Handle: `@microsoft-store`
- Category: [Marketing](https://fous.com/tools/category/marketing)
- Source website: https://apps.microsoft.com
- Last verified: Sep 29, 2026

## Methods

### Get app

Operation `get_app`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get the best-matching Microsoft Store app or game listing by name or store link, optionally choosing a publisher and country. Update notes and in-app purchase price ranges may be unavailable on listings that do not publish them.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `app` | string | yes | `"WhatsApp"` | App or game name, store link, or store product ID, for example WhatsApp. |
| `country` | string | no | `"United Kingdom"` | Country name or two-letter code for the listing, for example United States. |
| `publisher` | string | no | `"Spotify AB"` | Publisher name to select the right listing, for example WhatsApp Inc. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "app"
  ],
  "properties": {
    "app": {
      "type": "string",
      "description": "App or game name, store link, or store product ID, for example WhatsApp.",
      "examples": [
        "WhatsApp",
        "Spotify",
        "https://apps.microsoft.com/detail/9NSN56SL5HC0"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code for the listing, for example United States.",
      "examples": [
        "United Kingdom",
        "US"
      ]
    },
    "publisher": {
      "type": "string",
      "default": "",
      "description": "Publisher name to select the right listing, for example WhatsApp Inc.",
      "examples": [
        "Spotify AB"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "app": "WhatsApp"
    },
    {
      "app": "Spotify",
      "country": "United Kingdom",
      "publisher": "Spotify AB"
    },
    {
      "app": "https://apps.microsoft.com/detail/9NSN56SL5HC0",
      "country": "US"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `name` | string | `"WhatsApp"` | The matched listing name. |
| `size` | string or null | `"339.3 MB"` | Approximate download size. |
| `price` | number or null | `0` | Current listed price, or 0 if free. |
| `category` | string or null | `"Social"` | The Store category. |
| `currency` | string or null | `"USD"` | Currency code for the price. |
| `publisher` | string or null | `"WhatsApp Inc."` | The publisher. |
| `whats_new` | string or null |  | What is new in this version, if published. |
| `age_rating` | string or null | `"EVERYONE"` | Age rating. |
| `free_trial` | boolean | `false` | Whether a free trial is available. |
| `store_link` | string | `"https://apps.microsoft.com/detail/9nksqgp7f2nh?hl=en-US&gl=US"` | Link to the matched store listing. |
| `description` | string or null |  | The listing description. |
| `rating_count` | integer or null | `309526` | Number of ratings. |
| `average_rating` | number or null | `4.6` | Average rating out of 5. |
| `in_app_purchases` | boolean | `true` | Whether the listing reports in-app purchases. |
| `store_product_id` | string | `"9NKSQGP7F2NH"` | Microsoft Store product ID. |
| `last_updated_date` | string or null | `"2026-09-23"` | Last updated date (YYYY-MM-DD). |
| `in_app_purchase_price_range` | string or null |  | In-app purchase price range shown by the Store, if available. |
| `minimum_system_requirements` | string or null | `"Available on: PC; OS: Windows 10 version 18362.0 or higher"` | Minimum system requirements. |
| `recommended_system_requirements` | string or null | `"Available on: PC; OS: Windows 10 version 18362.0 or higher; Keyboard: Integrated Keyboard; Mouse: Integrated Mouse; Cam` | Recommended system requirements. |

**Example input**

```json
{
  "app": "WhatsApp"
}
```

**Example output**

```json
{
  "name": "WhatsApp",
  "size": "339.3 MB",
  "price": 0,
  "category": "Social",
  "currency": "USD",
  "publisher": "WhatsApp Inc.",
  "whats_new": null,
  "age_rating": "EVERYONE",
  "free_trial": false,
  "store_link": "https://apps.microsoft.com/detail/9nksqgp7f2nh?hl=en-US&gl=US",
  "description": "WhatsApp from Meta is a 100% free messaging app. It’s used by over 2B people in more than 180 countries. It’s simple, reliable, and private, so you can easily keep in touch with your friends and famil…",
  "rating_count": 309526,
  "average_rating": 4.6,
  "in_app_purchases": true,
  "store_product_id": "9NKSQGP7F2NH",
  "last_updated_date": "2026-09-23",
  "in_app_purchase_price_range": null,
  "minimum_system_requirements": "Available on: PC; OS: Windows 10 version 18362.0 or higher",
  "recommended_system_requirements": "Available on: PC; OS: Windows 10 version 18362.0 or higher; Keyboard: Integrated Keyboard; Mouse: Integrated Mouse; Camera: Integrated Camera"
}
```

### List top charts

Operation `list_top_charts`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List ranked Microsoft Store apps or games from a top chart, optionally for a category and country. Some paid listings do not publish a numeric price; their price is null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `chart` | string | no | `"top_free_apps"` | Chart to list, for example top_free_apps. |
| `country` | string | no | `"United States"` | Country name or two-letter code, for example United States or US. |
| `category` | string | no | `"productivity"` | Store category name, for example productivity or photo and video; default all. |
| `max_results` | integer | no | `8` | Maximum ranked items to return, for example 50. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "chart": {
      "type": "string",
      "default": "top_free_apps",
      "description": "Chart to list, for example top_free_apps.",
      "examples": [
        "top_free_apps",
        "top_paid_games",
        "best_selling_games"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code, for example United States or US.",
      "examples": [
        "United States",
        "United Kingdom",
        "US"
      ]
    },
    "category": {
      "type": "string",
      "default": "all",
      "description": "Store category name, for example productivity or photo and video; default all.",
      "examples": [
        "productivity",
        "action & adventure"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum ranked items to return, for example 50.",
      "x-fous-developer": true,
      "examples": [
        8,
        5,
        7
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "chart": "top_free_apps",
      "country": "United States",
      "category": "productivity",
      "max_results": 8
    },
    {
      "chart": "top_paid_games",
      "country": "United Kingdom",
      "max_results": 5
    },
    {
      "chart": "best_selling_games",
      "country": "US",
      "category": "action & adventure",
      "max_results": 7
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `chart` | string | `"Top free apps"` | Chart name. |
| `items` | array |  |  |
| `items[].name` | string | `"Zoom Workplace"` |  |
| `items[].rank` | integer | `1` |  |
| `items[].price` | number or null | `0` |  |
| `items[].currency` | string or null | `"USD"` |  |
| `items[].publisher` | string or null | `"Zoom Communications, Inc."` |  |
| `items[].store_link` | string | `"https://apps.microsoft.com/detail/xp99j3kp4xz4vv?hl=en-US&gl=US"` |  |
| `items[].average_rating` | number or null | `4.2` |  |
| `items[].store_product_id` | string | `"xp99j3kp4xz4vv"` |  |

**Example input**

```json
{
  "chart": "top_free_apps",
  "country": "United States",
  "category": "productivity",
  "max_results": 8
}
```

**Example output**

```json
{
  "chart": "Top free apps",
  "items": [
    {
      "name": "Zoom Workplace",
      "rank": 1,
      "price": 0,
      "currency": "USD",
      "publisher": "Zoom Communications, Inc.",
      "store_link": "https://apps.microsoft.com/detail/xp99j3kp4xz4vv?hl=en-US&gl=US",
      "average_rating": 4.2,
      "store_product_id": "xp99j3kp4xz4vv"
    },
    {
      "name": "Adobe Acrobat Reader DC",
      "rank": 2,
      "price": 0,
      "currency": "USD",
      "publisher": "ADOBE INC.",
      "store_link": "https://apps.microsoft.com/detail/xpdp273c0xhqh2?hl=en-US&gl=US",
      "average_rating": 3.4,
      "store_product_id": "xpdp273c0xhqh2"
    },
    {
      "name": "Microsoft Teams",
      "rank": 3,
      "price": 0,
      "currency": "USD",
      "publisher": "Microsoft Corporation",
      "store_link": "https://apps.microsoft.com/detail/xp8bt8dw290mpq?hl=en-US&gl=US",
      "average_rating": 3.3,
      "store_product_id": "xp8bt8dw290mpq"
    }
  ]
}
```

### Search apps

Operation `search_apps`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Search Microsoft Store apps and games by keywords in a selected country, in Store order. Subscription-included items can display a price of 0; rounded game ratings may have no exact count.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `type` | string | no | `"games"` | Search all listings, apps only or games only; for example games. |
| `query` | string | yes | `"minecraft"` | Words to search for, for example pdf editor. |
| `country` | string | no | `"Canada"` | Country name or two-letter code, for example Canada or CA. |
| `max_results` | integer | no | `25` | Maximum number of results, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "all",
        "apps",
        "games"
      ],
      "type": "string",
      "default": "all",
      "description": "Search all listings, apps only or games only; for example games.",
      "examples": [
        "games",
        "apps"
      ]
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Words to search for, for example pdf editor.",
      "examples": [
        "minecraft",
        "notepad",
        "pdf editor"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code, for example Canada or CA.",
      "examples": [
        "Canada",
        "GB"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of results, for example 20.",
      "x-fous-developer": true,
      "examples": [
        25,
        8
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "type": "games",
      "query": "minecraft",
      "country": "Canada",
      "max_results": 25
    },
    {
      "type": "apps",
      "query": "notepad",
      "country": "GB",
      "max_results": 8
    },
    {
      "query": "pdf editor"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `results` | array |  |  |
| `results[].name` | string | `"Minecraft Dungeons II"` |  |
| `results[].type` | string | `"game"` |  |
| `results[].price` | number or null | `39.99` |  |
| `results[].currency` | string or null | `"CAD"` |  |
| `results[].publisher` | string or null | `"Xbox Game Studios"` |  |
| `results[].store_link` | string | `"https://apps.microsoft.com/detail/9nsn56sl5hc0?gl=CA&hl=en-US"` |  |
| `results[].rating_count` | integer or null | `428` | Exact rating count when shown on the product page. |
| `results[].average_rating` | number or null | `0` |  |
| `results[].store_product_id` | string | `"9nsn56sl5hc0"` |  |

**Example input**

```json
{
  "type": "games",
  "query": "minecraft",
  "country": "Canada",
  "max_results": 25
}
```

**Example output**

```json
{
  "results": [
    {
      "name": "Minecraft Dungeons II",
      "type": "game",
      "price": 39.99,
      "currency": "CAD",
      "publisher": "Xbox Game Studios",
      "store_link": "https://apps.microsoft.com/detail/9nsn56sl5hc0?gl=CA&hl=en-US",
      "rating_count": null,
      "average_rating": 0,
      "store_product_id": "9nsn56sl5hc0"
    },
    {
      "name": "Minecraft Dungeons II Deluxe Edition",
      "type": "game",
      "price": 69.99,
      "currency": "CAD",
      "publisher": "Xbox Game Studios",
      "store_link": "https://apps.microsoft.com/detail/9nfdxgj16m47?gl=CA&hl=en-US",
      "rating_count": null,
      "average_rating": 0,
      "store_product_id": "9nfdxgj16m47"
    },
    {
      "name": "Minecraft Launcher",
      "type": "game",
      "price": 0,
      "currency": "CAD",
      "publisher": "Microsoft Studios",
      "store_link": "https://apps.microsoft.com/detail/9pgw18npbzv5?gl=CA&hl=en-US",
      "rating_count": null,
      "average_rating": 4.2,
      "store_product_id": "9pgw18npbzv5"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@microsoft-store",
  "visibility": "public",
  "operation": "get_app",
  "version": 1,
  "input": {
    "app": "WhatsApp"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@microsoft-store\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_app\",\n  \"version\": 1,\n  \"input\": {\n    \"app\": \"WhatsApp\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@microsoft-store",
  "visibility": "public",
  "operation": "get_app",
  "version": 1,
  "input": {
    "app": "WhatsApp"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/microsoft-store`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_app`: Get app. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_top_charts`: List top charts. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_apps`: Search apps. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-microsoft-store https://api.fous.com/mcp/tools/microsoft-store --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare app prices, ratings, and publishers.
- Find apps or games by keyword.
- Track top-ranked apps by category and country.
- Review app descriptions and system requirements.
- Identify listings with free trials or in-app purchases.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Microsoft Store tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Microsoft Store account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from apps.microsoft.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What is an app's price, rating, or publisher?

Get app returns a matched listing's price, rating, and publisher when you provide its name, store link, or product ID.

### Which apps match a keyword search?

Search apps returns matching listings in Store order for the supplied query.

### Which apps or games rank in a top chart?

List top charts returns ranked listings for the selected chart.

## Related

- [Google Play API](https://fous.com/tools/google-play.md): Google Play helps people discover Android apps and games, view public listings and search results, read reviews when available by app and region, and see country-specific top charts.
- [Apple App Store API](https://fous.com/tools/apple-app-store.md): Apple App Store returns public app listings, keyword search, ratings, prices, listed purchases, country-specific reviews and visible replies, and up to 200 ranked chart apps.
- [Xbox API](https://fous.com/tools/xbox.md): Xbox provides game details, country-specific prices and Game Pass availability, catalog-ordered listings, and current country sales; prices may be unavailable and some dates unpublished.
- [Apple Podcasts API](https://fous.com/tools/apple-podcasts.md): Apple Podcasts returns chart listings, relevant show search results, show details with newest available episodes, and country-specific ratings and reviews; results are capped, and older or subscription episodes may be unavailable.
- [Apple Music API](https://fous.com/tools/apple-music.md): Apple Music returns albums, tracks, artist profiles, latest releases, top music, matching songs, and current charts; prices, previews, and older albums may be unavailable.
- [Steam API](https://fous.com/tools/steam.md): Steam returns game details, country-specific prices, reviews, and current and historical player counts, plus player rankings and sales lists; some details or prices may be unavailable, and review totals span languages and verdicts.
- [Spotify API](https://fous.com/tools/spotify.md): Spotify returns public artist profiles, album credits and ordered tracks, song details and play counts, up to 500 playlist songs, keyword results, and country-based podcast charts; dates and regional options vary.
- [Epic Games Store API](https://fous.com/tools/epic-games-store.md): Epic Games Store provides current and upcoming free games, plus game details including country-specific prices and sales; free-game availability varies by country.
- [All Marketing tools](https://fous.com/tools/category/marketing)
