Microsoft Store API endpoint
Returns a department's "Special events" promotional shelf -- featured/limited-time products, distinct from the ranked charts (/microsoftstore/charts) and the curated home/department spotlight (/microsoftstore/spotlight). Only apps and games have this shelf; any other media_type is rejected.
/microsoftstore/eventsQuery parameters:
media_type (optional, default apps) — department to fetch special events for. One of apps, games. Any other value is rejected with 400 (the upstream itself 404s for every other department, confirmed live).page (optional, default 1) — 1-based page number.page_size (optional, default 20, max 24) — items per page.country (optional, default US) — store country/region code (ISO-2).locale (optional, default en-US) — display locale (BCP-47).Returns media_type, title (the shelf's own display title, e.g. "Special events"), page, page_size, count, items[] (same shape as /microsoftstore/search's items[]), and source_url. The shelf is small (confirmed live: 7 apps, 32 games) — a page past the end returns 200 with an empty items[].
| Field | Filled in, of 19 checked | Values in the sample |
|---|---|---|
| product_id | 19 | |
| title | 19 | Amazon Music (5), Paramount+ (3), Netflix (3) and 5 more |
| description | 19 | median 1,209 characters |
| publisher | 19 | AMZN Mobile LLC (5), CBS Interactive Inc. (3), Netflix, Inc. (3) and 5 more |
| categories | 19 | median 1 entry |
| media_type | 19 | Apps in all 19 |
| kind | 19 | app in all 19 |
| average_rating | 19 | 2.6 to 4.7, median 3.8 |
| rating_count | 19 | 57K (5), 25 (3), 323K (3) and 5 more |
| price | 19 | 0 |
| display_price | 19 | Free in all 19 |
| free | 19 | true in 19 of 19 |
| icon_url | 19 | images-eds-ssl.xboxlive.com and 1 other host |
| poster_art_url | 19 | images-eds-ssl.xboxlive.com and 1 other host |
| url | 19 | apps.microsoft.com |
| is_application | 19 | true in 19 of 19 |
| release_date_utc | 18 | 2010-10-18 to 2026-06-10 |
| is_pwa | 8 | true in 8 of 8 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| media_type | string | No | Department to fetch special events for Allowed values: apps, games. | ||
| page | integer | No | 1-based page number | ||
| page_size | integer | No | Items per page (max 24) | ||
| 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/events?media_type=apps&page=1&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"media_type": "apps",
"title": "Special events",
"page": 1,
"page_size": 3,
"count": 3,
"items": [
{
"product_id": "9pp6qxxzs9d1",
"title": "Noteastic | Handwritten Note-Taking",
"media_type": "Apps",
"kind": "app",
"price": 0,
"display_price": "Free",
"free": true,
"url": "https://apps.microsoft.com/detail/9pp6qxxzs9d1"
}
],
"source_url": "https://apps.microsoft.com/api/Reco/GetEventProductsList?gl=US&hl=en-US&mediaType=apps&noItems=3&pgNo=1"
}
}Request schema
No body schema
Response schema
#/definitions/microsoftstore.eventsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | microsoftstore.EventsResponse | No | ||||
| data.count | integer | No | 7 | |||
| 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 | apps | |||
| data.page | integer | No | 1 | |||
| data.page_size | integer | No | 20 | |||
| data.source_url | string | No | ||||
| data.title | string | No | Special events | |||
| 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/events?media_type=apps&page=1&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"