Microsoft Store API endpoint
Returns typeahead-style Microsoft Store search suggestions for a partial search term: plain-text completions plus a short list of matching products (id, title, icon, department, and store URL).
/microsoftstore/suggestQuery parameters:
prefix (required) — partial search term to autocomplete (e.g. spot). An empty value is rejected by the upstream with a request-validation error, surfaced here as 400.country (optional, default US) — store country/region code (ISO-2).locale (optional, default en-US) — display locale (BCP-47).The upstream API returns a fixed number of product matches per call (no page-size parameter).
Returns prefix, completions[] (plain-text autocomplete strings), products[] (each: product_id, title, icon_url, media_type, is_application, is_game, url — an Xbox.com URL for a game listing that redirects there, otherwise the constructed apps.microsoft.com/detail/<id> URL), and source_url.
| Field | Filled in, of 5 checked | Values in the sample |
|---|---|---|
| product_id | 5 | |
| title | 5 | “Spot The Differences! Party” and 4 other values |
| icon_url | 5 | store-images.s-microsoft.com |
| media_type | 5 | games (2), apps (2), themes (1) |
| is_game | 2 | true in 2 of 2 |
| url | 5 | xbox.com and 1 other host |
| is_application | 2 | true in 2 of 2 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| prefix | string | Yes | Partial search term to autocomplete | spot | |
| country | string | No | Store country/region code (ISO-2) | ||
| locale | string | No | Display locale (BCP-47) | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/microsoftstore/suggest?prefix=spot&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"prefix": "spot",
"completions": [
"spotify",
"spot",
"spotify for podcasters"
],
"products": [
{
"product_id": "9p2hsmm82401",
"title": "Spot The Differences! Party",
"icon_url": "https://store-images.s-microsoft.com/image/apps.9200...",
"media_type": "games",
"is_game": true,
"url": "https://www.xbox.com/games/store/spot-the-differences-party/9p2hsmm82401?ocid=storeforweb"
},
{
"product_id": "9ncbcszsjrsb",
"title": "Spotify - Music and Podcasts",
"icon_url": "https://store-images.s-microsoft.com/image/apps.24630...",
"media_type": "apps",
"is_application": true,
"url": "https://apps.microsoft.com/detail/9ncbcszsjrsb"
}
],
"source_url": "https://apps.microsoft.com/api/products/getAutosuggestions?prefix=spot&gl=US&hl=en-US"
}
}Request schema
No body schema
Response schema
#/definitions/microsoftstore.suggestResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | microsoftstore.SuggestResponse | No | ||||
| data.completions | array | No | ["spotify","spot","spotify for podcasters"] | |||
| data.prefix | string | No | spot | |||
| data.products | array | No | ||||
| data.products[].icon_url | string | No | ||||
| data.products[].is_application | boolean | No | true | |||
| data.products[].is_game | boolean | No | ||||
| data.products[].media_type | string | No | apps | |||
| data.products[].product_id | string | No | 9ncbcszsjrsb | |||
| data.products[].title | string | No | Spotify - Music and Podcasts | |||
| data.products[].url | string | No | https://apps.microsoft.com/detail/9ncbcszsjrsb | |||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/microsoftstore/suggest?prefix=spot&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"