Microsoft Store API endpoint
Returns the curated hero/spotlight shelf shown at the top of the store's home page or one department's landing page (the large featured banners, not the ranked charts or the smaller "Special events" shelf). Only home, apps, and games have a spotlight; any other media_type is rejected.
/microsoftstore/spotlightQuery parameters:
media_type (optional, default home) — which spotlight to fetch. One of home (the store home page), apps, games. Any other value is rejected with 400 — devices/passes/fonts/themes have no spotlight collection at all (confirmed live: the same call pattern returns zero items for every one of them).country (optional, default US) — store country/region code (ISO-2).locale (optional, default en-US) — display locale (BCP-47).Returns media_type, count, items[] (same shape as /microsoftstore/search's items[]), and source_url.
| Field | Filled in, of 8 checked | Values in the sample |
|---|---|---|
| product_id | 8 | |
| title | 8 | “Spotify - Music and Podcasts” and 7 other values |
| description | 8 | “Download now” and 6 other values |
| media_type | 7 | Apps (3), Games (3), Passes (1) |
| kind | 8 | app (3), game (3), collection (1) and 1 more |
| price | 8 | 0 to 99.99, median 0 |
| display_price | 7 | Free (3), Included (2), $99.99 (1) and 1 more |
| free | 8 | true in 6 of 8 |
| release_date_utc | 6 | 2017-02-01 to 9999-12-31 |
| url | 8 | apps.microsoft.com |
| is_application | 3 | true in 3 of 3 |
| is_game | 3 | true in 3 of 3 |
| is_subscription | 1 | true in 1 of 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| media_type | string | No | Which spotlight to fetch Allowed values: home, apps, games. | ||
| 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/spotlight?media_type=home&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"media_type": "home",
"count": 8,
"items": [
{
"product_id": "9ncbcszsjrsb",
"title": "Spotify - Music and Podcasts",
"media_type": "Apps",
"kind": "app",
"price": 0,
"display_price": "Free",
"free": true,
"url": "https://apps.microsoft.com/detail/9ncbcszsjrsb"
}
],
"source_url": "https://apps.microsoft.com/api/reco/getPromotionProducts?collectionName=Home%2FSpotlight%2FHome_Spotlight_T1_T2&gl=US&hl=en-US&site=SFA"
}
}Request schema
No body schema
Response schema
#/definitions/microsoftstore.spotlightResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | microsoftstore.SpotlightResponse | No | ||||
| data.count | integer | No | 8 | |||
| data.items | array | No | Product record, 27 fields: average_rating, award, categories, description, display_price, free, icon_url, is_application, is_game, is_pwa, is_subscription, is_theme and 10 more. Described under Microsoft Store Charts API. | |||
| data.media_type | string | No | home | |||
| 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/spotlight?media_type=home&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"