Microsoft Store Scraper: Apps, Games & Reviews avatar

Microsoft Store Scraper: Apps, Games & Reviews

Pricing

from $0.70 / 1,000 search results

Go to Apify Store
Microsoft Store Scraper: Apps, Games & Reviews

Microsoft Store Scraper: Apps, Games & Reviews

Search Microsoft Store apps and games, extract 106-field product details with localized prices, rating trends, system requirements and media, or collect filtered reviews across multiple countries. No API key.

Pricing

from $0.70 / 1,000 search results

Rating

0.0

(0)

Developer

ScrapingMonkey

ScrapingMonkey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Microsoft Store Scraper - Search, Complete Product Details and Reviews

Search Microsoft Store apps and games, extract complete product metadata, compare prices and system requirements, or collect public customer reviews. This all-in-one Apify Actor uses structured JSON responses and requires no Microsoft account, API key, browser, or proxy configuration.

  • Three modes in one Actor: search, details, and reviews
  • Batch input for multiple keywords, Product IDs, Microsoft Store URLs, or up to 50 markets
  • Stable 64-field Search, 106-field Details, and 35-field Review records
  • Prices, SKU offers, ratings, permissions, installation data, media, and requirements
  • Cursor-based Search pagination and page-based Reviews pagination
  • Four review sorting options plus score, date, and keyword filters
  • Single-market or multi-country collection through Microsoft Store gl and hl
  • Controlled concurrent processing for faster multi-input runs
  • Mandatory built-in Apify Proxy, retries, deduplication, and partial-failure handling

What can you do with this Actor?

ModeInputDataset outputTypical use
searchOne or more keywordsRanked 64-field product recordsProduct discovery, keyword monitoring, app and game research
detailsProduct IDs or URLsOne 106-field record per available productCatalog, pricing, rating momentum, requirements, installer, and SKU research
reviewsProduct IDs or URLsOne 35-field row per matching public reviewSentiment analysis, issue discovery, review monitoring

One mode runs per execution. Use Search to discover productId values, pass them to Details for complete profiles, and use Reviews when each review should be a separate dataset item.

Quick start

  1. Open the Actor and choose Try for free.
  2. Select search, details, or reviews.
  3. Enter search terms or Microsoft Store Product IDs/URLs.
  4. Choose the limit, market, locale, filters, and review ordering.
  5. Start the run, then preview or download the default dataset.

Input examples

Search for apps

{
"mode": "search",
"searchTerms": ["video editor", "photo viewer"],
"maxResults": 20,
"countries": ["US", "DE"],
"language": "en-US",
"maxConcurrency": 5,
"mediaType": "apps",
"age": "all",
"price": "all"
}

maxResults applies independently to each search term. Every row includes its searchTerm, global searchRank, source page, source-page position, and requested filters.

Get complete product details

{
"mode": "details",
"appIds": ["9NLVZ8WTBGW1", "https://apps.microsoft.com/detail/vlc/xpdm1zw6815mqm"],
"country": "US",
"language": "en-US",
"includeReviews": false
}

Product IDs are normalized to uppercase and duplicate IDs are removed before requests.

Collect recent reviews

{
"mode": "reviews",
"appIds": ["9PMF91N3LZ3M"],
"maxResults": 100,
"country": "US",
"language": "en-US",
"reviewSort": "mostRecent",
"reviewScores": ["1", "2"],
"reviewsFrom": "2026-01-01",
"reviewsTo": "2026-12-31",
"reviewKeywords": ["crash", "support"]
}

Review filters are optional. maxResults is the maximum number of reviews that match all score and date filters and at least one requested keyword.

Get details with embedded reviews

{
"mode": "details",
"appIds": ["9NLVZ8WTBGW1"],
"includeReviews": true,
"maxResults": 50,
"reviewSort": "mostHelpful",
"country": "US",
"language": "en-US"
}

Complete output examples

Live titles, prices, ratings, availability, versions, reviews, and regional values change over time. Values below are representative, while the field sets are complete.

Search result - all 64 top-level fields

{
"productId": "9NLVZ8WTBGW1",
"title": "Beauty Video Player",
"description": "Play and organize videos.",
"categories": [
"Photo & video"
],
"publisherName": "Example Publisher",
"images": [
{
"imageType": "logo",
"backgroundColor": null,
"foregroundColor": null,
"caption": null,
"imagePositionInfo": null,
"url": "https://example.com/icon.png",
"height": 300,
"width": 300
}
],
"averageRating": 4.5,
"price": 45,
"displayPrice": "PHP 45.00",
"strikethroughPrice": "PHP 60.00",
"productFamilyName": "Apps",
"packageFamilyNames": [
"Example.Package_abc"
],
"isGamingAppOnly": false,
"installer": {
"type": "WindowsUpdate",
"id": "9NLVZ8WTBGW1",
"productCode": null,
"architectures": {}
},
"previews": [
{
"$type": "ImageItem",
"imageType": "Screenshot",
"backgroundColor": null,
"foregroundColor": null,
"caption": null,
"title": null,
"imagePositionInfo": null,
"url": "https://example.com/screen.png",
"height": 1080,
"width": 1920,
"videoPurpose": null,
"audioEncoding": null,
"videoEncoding": null,
"image": {
"imageType": "thumbnail",
"caption": "Preview thumbnail",
"url": "https://example.com/preview.jpg",
"height": 720,
"width": 1280
},
"bitrate": null,
"videoPositionInfo": null,
"sortOrder": null
}
],
"typeTag": "app",
"ratingCountFormatted": "128",
"iconUrl": "https://example.com/icon.png",
"posterArtUrl": "https://example.com/poster.png",
"boxArtUrl": "https://example.com/box.png",
"iconUrlBackground": "transparent",
"screenshots": [],
"encodedTitle": "beauty-video-player",
"isApplication": true,
"isGame": false,
"isTvSeries": false,
"isMovie": false,
"isMoviesOrTVs": false,
"isPwa": false,
"isTheme": false,
"isCoreGame": false,
"isAllowed": true,
"isBrowsable": true,
"isPurchaseEnabled": true,
"isAd": false,
"isSparkProduct": false,
"isAndroid": false,
"isHardware": false,
"isSubscription": false,
"isTencent": false,
"isTencentMini": false,
"pageTitleLocalization": "Common.PageAppsTitle",
"disableDownload": false,
"cardActions": [
"Install",
"Purchase"
],
"productRatings": [
{
"ratingSystem": "IARC",
"ratingSystemShortName": "IARC",
"ratingSystemId": "IARC",
"ratingSystemUrl": "https://www.globalratings.com/",
"ratingValue": "3+",
"ratingId": "IARC:3",
"ratingValueLogoUrl": "https://example.com/iarc-3.png",
"ratingAge": 0,
"restrictMetadata": false,
"restrictPurchase": false,
"ratingDescriptors": [],
"ratingDescriptorLogoUrls": [],
"ratingDisclaimers": [],
"interactiveElements": [
"In-App Purchases"
],
"longName": "3+",
"shortName": "3+",
"description": "For ages 3 and up",
"hasInAppPurchases": true
}
],
"skusSummary": [
{
"msrp": 45,
"displayMSRP": "PHP 45.00",
"salePrices": [
{
"price": 45,
"displayPrice": "PHP 45.00",
"badgeId": "default"
}
]
}
],
"releaseDateUtc": "2026-08-07T07:40:25Z",
"appExtCategoryNames": [],
"priceInfo": {
"msrp": 45,
"price": 45,
"badgeText": "On sale",
"displayPrice": "PHP 45.00",
"forceToDisplayPrice": false,
"narratorText": "PHP 45.00",
"ownership": 0
},
"redirectUrl": null,
"url": "https://apps.microsoft.com/detail/9nlvz8wtbgw1?hl=en-US&gl=US",
"searchPage": 1,
"searchPosition": 1,
"country": "US",
"language": "en-US",
"requestedMediaType": "apps",
"requestedAge": "all",
"requestedPrice": "all",
"searchRank": 1,
"recordType": "search",
"searchTerm": "video editor",
"source": "microsoft-store",
"schemaVersion": "2.0",
"scrapedAt": "2026-08-10T10:00:00Z"
}

Every Search top-level field and every known nested field for images, previews, preview thumbnails, ratings, installer information, SKU summaries, sale prices, and price information is shown.

Product details result - all 106 top-level fields

{
"shortDescription": "A lightweight video player.",
"categoryId": "Photo & video",
"developerName": "Example Publisher",
"durationInSeconds": 0,
"hasAddOns": true,
"hasThirdPartyIAPs": false,
"language": "en-us",
"mediaType": "Apps",
"publisherId": "72169360",
"ratingCount": 0,
"additionalLicenseTerms": "Standard publisher license terms.",
"appWebsiteUrl": "https://example.com/",
"disclaimerText": "Seller compliance information.",
"features": [
"Video playback"
],
"gamingOptionsXboxLive": false,
"isMsixvc": false,
"lastUpdateDateUtc": "2026-08-07T07:40:25Z",
"notes": [
"Added trial and performance improvements."
],
"permissionsRequired": [
"Access your Internet connection"
],
"platforms": [
"x64"
],
"privacyUrl": "https://example.com/privacy",
"productRatings": [
{
"ratingSystem": "IARC",
"ratingSystemShortName": "IARC",
"ratingSystemId": "IARC",
"ratingSystemUrl": "https://www.globalratings.com/",
"ratingValue": "3+",
"ratingId": "IARC:3",
"ratingValueLogoUrl": "https://example.com/iarc-3.png",
"ratingAge": 0,
"restrictMetadata": false,
"restrictPurchase": false,
"ratingDescriptors": [],
"ratingDescriptorLogoUrls": [],
"ratingDisclaimers": [],
"interactiveElements": [
"In-App Purchases"
],
"longName": "3+",
"shortName": "3+",
"description": "For ages 3 and up",
"hasInAppPurchases": true
}
],
"publisherCopyrightInformation": "Copyright Example Publisher",
"packageLastUpdateDateUtc": "2026-08-07T07:40:25Z",
"supportedLanguages": [
"English"
],
"supportUris": [
{
"uri": "https://example.com/support"
}
],
"systemRequirements": {
"minimum": {
"title": "Minimum",
"items": [
{
"level": "HardBlock",
"itemCode": "ops",
"name": "OS",
"description": "Windows 10",
"validationHint": "required",
"helpLink": "https://example.com/windows",
"helpTitle": "Supported Windows versions",
"isValidationPassed": true,
"priority": "Default"
}
]
},
"recommended": {
"title": "Recommended",
"items": [
{
"level": "SoftBlock",
"itemCode": "mem",
"name": "Memory",
"description": "8 GB",
"validationHint": "recommended",
"helpLink": "https://example.com/requirements",
"helpTitle": "Requirements help",
"isValidationPassed": true,
"priority": "Default"
}
]
}
},
"warningMessages": [
{
"header": "Seizure warning",
"text": "Photosensitive seizure warning",
"target": "https://support.xbox.com/help"
}
],
"pdpImageUrl": "https://example.com/pdp.png",
"productId": "9NLVZ8WTBGW1",
"title": "Beauty Video Player",
"description": "Play and organize videos.",
"categories": [
"Photo & video"
],
"publisherName": "Example Publisher",
"images": [
{
"imageType": "logo",
"backgroundColor": null,
"foregroundColor": null,
"caption": null,
"imagePositionInfo": null,
"url": "https://example.com/icon.png",
"height": 300,
"width": 300
}
],
"averageRating": 4.5,
"price": 45,
"displayPrice": "PHP 45.00",
"strikethroughPrice": null,
"productFamilyName": null,
"packageFamilyNames": [
"Example.Package_abc"
],
"installer": {
"type": "WPM",
"id": "9NLVZ8WTBGW1",
"productCode": "example",
"architectures": {
"x64": {
"version": "1.0",
"sourceUri": "https://example.com/app.exe",
"cdnUri": "https://cdn.example.com/app.exe",
"args": "/S",
"hash": "abc"
}
}
},
"eventsInfo": [],
"previews": [
{
"$type": "ImageItem",
"imageType": "Screenshot",
"backgroundColor": null,
"foregroundColor": null,
"caption": null,
"title": null,
"imagePositionInfo": null,
"url": "https://example.com/screen.png",
"height": 1080,
"width": 1920,
"videoPurpose": null,
"audioEncoding": null,
"videoEncoding": null,
"image": {
"imageType": "thumbnail",
"caption": "Preview thumbnail",
"url": "https://example.com/preview.jpg",
"height": 720,
"width": 1280
},
"bitrate": null,
"videoPositionInfo": null,
"sortOrder": null
}
],
"ratingCountFormatted": "128",
"productType": "Application",
"skus": [
{
"skuId": "0010",
"actions": [
"Purchase"
],
"availabilityId": "ABC",
"price": 45,
"displayPrice": "PHP 45.00",
"fulfillmentData": "{}",
"skuType": "full",
"msrp": 45,
"displayMSRP": "PHP 45.00",
"salePrices": [
{
"price": 45,
"displayPrice": "PHP 45.00",
"badgeId": "default"
}
]
}
],
"catalogSource": "BigCat",
"iconUrl": "https://example.com/icon.png",
"posterArtUrl": "https://example.com/poster.png",
"boxArtUrl": "https://example.com/box.png",
"iconUrlBackground": "transparent",
"screenshots": [
{
"imageType": "Screenshot",
"backgroundColor": null,
"foregroundColor": null,
"caption": null,
"imagePositionInfo": null,
"url": "https://example.com/screen.png",
"height": 1080,
"width": 1920
}
],
"encodedTitle": "beauty-video-player",
"isApplication": true,
"isGame": false,
"isTvSeries": false,
"isMovie": false,
"isMoviesOrTVs": false,
"isPwa": false,
"isTheme": false,
"isCoreGame": false,
"isAllowed": true,
"isBrowsable": true,
"isPurchaseEnabled": true,
"isAd": false,
"isSparkProduct": false,
"isAndroid": false,
"isHardware": false,
"isSubscription": false,
"isTencent": false,
"isTencentMini": false,
"pageTitleLocalization": "Common.PageAppsTitle",
"disableDownload": false,
"cardActions": [
"Details",
"Purchase"
],
"shortTitle": "Beauty Player",
"categoryIds": [
"Photo & video"
],
"subcategoryName": "Video players",
"approximateSizeInBytes": 66790402,
"capabilities": [
"internetClient"
],
"maxInstallSizeInBytes": 136364032,
"installationTerms": "Install on up to ten Windows devices.",
"isMicrosoftProduct": false,
"version": "1.0.0",
"isGamingAppOnly": false,
"skusSummary": [
{
"msrp": 45,
"displayMSRP": "PHP 45.00",
"salePrices": [
{
"price": 45,
"displayPrice": "PHP 45.00",
"badgeId": "default"
}
]
}
],
"releaseDateUtc": "2026-08-01T07:40:25Z",
"priceInfo": {
"msrp": 45,
"price": 45,
"badgeText": "On sale",
"displayPrice": "PHP 45.00",
"forceToDisplayPrice": false,
"narratorText": "PHP 45.00",
"ownership": 0
},
"allowedPlatforms": [
"Windows.Desktop"
],
"trailers": [],
"ratingAllTimeAverage": 4.5,
"ratingAllTimeCount": 128,
"rating7DaysAverage": 4.6,
"rating7DaysCount": 7,
"rating30DaysAverage": 4.5,
"rating30DaysCount": 32,
"ratingWindows": [
{
"aggregateTimeSpan": "7Days",
"averageRating": 4.6,
"playCount": 0,
"ratingCount": 7,
"rentalCount": 0,
"trialCount": 0,
"purchaseCount": 0
},
{
"aggregateTimeSpan": "30Days",
"averageRating": 4.5,
"playCount": 0,
"ratingCount": 32,
"rentalCount": 0,
"trialCount": 0,
"purchaseCount": 0
},
{
"aggregateTimeSpan": "AllTime",
"averageRating": 4.5,
"playCount": 0,
"ratingCount": 128,
"rentalCount": 0,
"trialCount": 0,
"purchaseCount": 0
}
],
"url": "https://apps.microsoft.com/detail/9nlvz8wtbgw1?hl=en-US&gl=US",
"country": "US",
"requestedLanguage": "en-US",
"available": true,
"includedReviews": [
{
"productId": "9NLVZ8WTBGW1",
"reviewerName": "Example User",
"rating": 4,
"market": "PH",
"locale": "EN-US",
"helpfulPositive": 15,
"helpfulNegative": 1,
"osVersion": "10.0.26200.8894",
"reviewId": "review-id",
"reviewText": "Useful app.",
"title": "Works well",
"submittedDateTimeUtc": "2026-07-23T22:31:52.005323Z",
"isProductTrial": false,
"isTakenDown": false,
"violationsFound": false,
"isPublished": true,
"isRevised": true,
"updatedSinceResponse": false,
"isAppInstalled": true,
"packageFullName": "Example.Package_1.0.0.0_x64__abc",
"deviceFamily": "Windows.Desktop",
"reviewUrl": "https://ratingsedge.rnr.microsoft.com/example/review-id",
"reviewRank": 1,
"reviewSort": "mostRecent",
"totalReviews": 25,
"requestedCountry": "US",
"requestedLanguage": "en-US",
"requestedScores": [],
"requestedFrom": null,
"requestedTo": null,
"requestedKeywords": []
}
],
"recordType": "details",
"source": "microsoft-store",
"schemaVersion": "2.0",
"scrapedAt": "2026-08-10T10:00:00Z"
}

Every Details top-level field and every known nested field for ratings, support links, requirements, warnings, images, previews, installer architectures, SKUs, sale prices, screenshots, pricing, and embedded reviews is shown. Real arrays can contain more items; the Actor returns all received items and does not truncate individual objects.

eventsInfo and trailers are empty in the captured Microsoft responses. If Microsoft publishes source-defined objects in those arrays, the Actor preserves them without inventing undocumented meanings.

Review result - all 35 top-level fields

{
"productId": "9NLVZ8WTBGW1",
"reviewerName": "Example User",
"rating": 4,
"market": "PH",
"locale": "EN-US",
"helpfulPositive": 15,
"helpfulNegative": 1,
"osVersion": "10.0.26200.8894",
"reviewId": "review-id",
"reviewText": "Useful app.",
"title": "Works well",
"submittedDateTimeUtc": "2026-07-23T22:31:52.005323Z",
"isProductTrial": false,
"isTakenDown": false,
"violationsFound": false,
"isPublished": true,
"isRevised": true,
"updatedSinceResponse": false,
"isAppInstalled": true,
"packageFullName": "Example.Package_1.0.0.0_x64__abc",
"deviceFamily": "Windows.Desktop",
"reviewUrl": "https://ratingsedge.rnr.microsoft.com/example/review-id",
"reviewRank": 1,
"reviewSort": "mostRecent",
"totalReviews": 25,
"requestedCountry": "US",
"requestedLanguage": "en-US",
"requestedScores": [1, 2],
"requestedFrom": "2026-01-01",
"requestedTo": "2026-12-31",
"requestedKeywords": ["crash", "support"],
"recordType": "review",
"source": "microsoft-store",
"schemaVersion": "2.0",
"scrapedAt": "2026-08-10T10:00:00Z"
}

The captured review API does not expose reviewer profile images or developer replies. The Actor does not fabricate those fields.

Missing products do not abort a batch. They are reported in the run log and are never charged as successful result events.

What data can you extract?

Complete Search fields

All 64 top-level fields are: recordType, source, schemaVersion, scrapedAt, searchTerm, searchRank, productId, title, description, categories, publisherName, images, averageRating, price, displayPrice, strikethroughPrice, productFamilyName, packageFamilyNames, isGamingAppOnly, installer, previews, typeTag, ratingCountFormatted, iconUrl, posterArtUrl, boxArtUrl, iconUrlBackground, screenshots, encodedTitle, isApplication, isGame, isTvSeries, isMovie, isMoviesOrTVs, isPwa, isTheme, isCoreGame, isAllowed, isBrowsable, isPurchaseEnabled, isAd, isSparkProduct, isAndroid, isHardware, isSubscription, isTencent, isTencentMini, pageTitleLocalization, disableDownload, cardActions, productRatings, skusSummary, releaseDateUtc, appExtCategoryNames, priceInfo, redirectUrl, url, searchPage, searchPosition, country, language, requestedMediaType, requestedAge, requestedPrice.

Complete Details fields

All 106 top-level fields are: recordType, source, schemaVersion, scrapedAt, shortDescription, categoryId, developerName, durationInSeconds, hasAddOns, hasThirdPartyIAPs, language, mediaType, publisherId, ratingCount, additionalLicenseTerms, appWebsiteUrl, disclaimerText, features, gamingOptionsXboxLive, isMsixvc, lastUpdateDateUtc, notes, permissionsRequired, platforms, privacyUrl, productRatings, publisherCopyrightInformation, packageLastUpdateDateUtc, supportedLanguages, supportUris, systemRequirements, warningMessages, pdpImageUrl, productId, title, description, categories, publisherName, images, averageRating, price, displayPrice, strikethroughPrice, productFamilyName, packageFamilyNames, installer, eventsInfo, previews, ratingCountFormatted, productType, skus, catalogSource, iconUrl, posterArtUrl, boxArtUrl, iconUrlBackground, screenshots, encodedTitle, isApplication, isGame, isTvSeries, isMovie, isMoviesOrTVs, isPwa, isTheme, isCoreGame, isAllowed, isBrowsable, isPurchaseEnabled, isAd, isSparkProduct, isAndroid, isHardware, isSubscription, isTencent, isTencentMini, pageTitleLocalization, disableDownload, cardActions, shortTitle, categoryIds, subcategoryName, approximateSizeInBytes, capabilities, maxInstallSizeInBytes, installationTerms, isMicrosoftProduct, version, isGamingAppOnly, skusSummary, releaseDateUtc, priceInfo, allowedPlatforms, trailers, ratingAllTimeAverage, ratingAllTimeCount, rating7DaysAverage, rating7DaysCount, rating30DaysAverage, rating30DaysCount, ratingWindows, url, country, requestedLanguage, available, includedReviews.

Complete Review fields

All 35 top-level fields are: recordType, source, schemaVersion, scrapedAt, productId, reviewerName, rating, market, locale, helpfulPositive, helpfulNegative, osVersion, reviewId, reviewText, title, submittedDateTimeUtc, isProductTrial, isTakenDown, violationsFound, isPublished, isRevised, updatedSinceResponse, isAppInstalled, packageFullName, deviceFamily, reviewUrl, reviewRank, reviewSort, totalReviews, requestedCountry, requestedLanguage, requestedScores, requestedFrom, requestedTo, requestedKeywords.

Complete nested object schemas

Nested valueComplete fields
Images and screenshotsimageType, backgroundColor, foregroundColor, caption, imagePositionInfo, url, height, width
Previews$type, imageType, backgroundColor, foregroundColor, caption, title, imagePositionInfo, url, height, width, videoPurpose, audioEncoding, videoEncoding, image, bitrate, videoPositionInfo, sortOrder
Preview thumbnailimageType, caption, url, height, width
Content ratingratingSystem, ratingSystemShortName, ratingSystemId, ratingSystemUrl, ratingValue, ratingId, ratingValueLogoUrl, ratingAge, restrictMetadata, restrictPurchase, ratingDescriptors, ratingDescriptorLogoUrls, ratingDisclaimers, interactiveElements, longName, shortName, description, hasInAppPurchases
Installertype, id, productCode, architectures
Installer architectureversion, sourceUri, cdnUri, args, hash
SKU summarymsrp, displayMSRP, salePrices
SKUskuId, actions, availabilityId, price, displayPrice, fulfillmentData, skuType, msrp, displayMSRP, salePrices
Sale priceprice, displayPrice, badgeId
Price informationmsrp, price, badgeText, displayPrice, forceToDisplayPrice, narratorText, ownership
Requirement itemlevel, itemCode, name, description, validationHint, helpLink, helpTitle, isValidationPassed, priority
Warningheader, text, target
Support URIuri
Rating windowaggregateTimeSpan, averageRating, playCount, ratingCount, rentalCount, trialCount, purchaseCount
Embedded reviewproductId, reviewerName, rating, market, locale, helpfulPositive, helpfulNegative, osVersion, reviewId, reviewText, title, submittedDateTimeUtc, isProductTrial, isTakenDown, violationsFound, isPublished, isRevised, updatedSinceResponse, isAppInstalled, packageFullName, deviceFamily, reviewUrl, reviewRank, reviewSort, totalReviews, requestedCountry, requestedLanguage, requestedScores, requestedFrom, requestedTo, requestedKeywords

Architecture names inside installer.architectures, such as x64 or ARM64, are dynamic Microsoft keys. Their value schema is fully listed.

Input parameters

ParameterTypeRequiredDefaultDescription
modestringYessearchsearch, details, or reviews
searchTermsstring[]Search mode["video editor"]One or more Microsoft Store keywords
appIdsstring[]Details/reviews-Product IDs or full Microsoft Store URLs
maxResultsintegerNo50Maximum Search results per term or Reviews per product, 1-500
countrystringNoUSTwo-letter market passed as gl
countriesstring[]No[]Up to 50 markets; overrides country when non-empty
languagestringNoen-USLocale passed as hl
maxConcurrencyintegerNo5Simultaneous country, keyword, or product jobs, 1-20
includeReviewsbooleanNofalsePopulate includedReviews in Details
reviewSortstringNomostHelpfulmostHelpful, mostRecent, highestRating, or lowestRating
reviewScoresstring[]No[]Star filters from "1" through "5"; empty means all
reviewsFromstringNo""Inclusive review start date in YYYY-MM-DD format
reviewsTostringNo""Inclusive review end date in YYYY-MM-DD format
reviewKeywordsstring[]No[]Keep reviews whose title or text contains any keyword
mediaTypestringNoallSearch filter: all, apps, or games
agestringNoallSearch filter: all or TO3 through TO17
pricestringNoallSearch filter: all, Free, Paid, or Sale

Search filters are ignored by Details and Reviews. Review filters apply to Reviews and embedded Details reviews. In Details, maxResults applies only when includeReviews is enabled. Every keyword or Product ID is processed once for every selected country.

Use cases

Microsoft Store market research

  • Discover products ranking for target keywords
  • Compare apps and games by publisher, category, rating, price, and product type
  • Detect rating momentum with all-time, 7-day, and 30-day averages and counts
  • Build recurring catalogs across countries and locales

Pricing and technical intelligence

  • Track regular, sale, display, and strikethrough prices
  • Compare SKUs, trials, versions, package families, sizes, architectures, and platforms
  • Review permissions, capabilities, requirements, content ratings, and update dates

Review monitoring

  • Collect newest, most helpful, highest-rated, or lowest-rated reviews
  • Analyze text, helpful votes, Windows version, package version, and device family
  • Track revised reviews and installation or trial indicators

Performance and cost

The Actor uses lightweight JSON requests instead of launching a browser. Independent country, keyword, and product jobs run concurrently up to maxConcurrency. Details makes one additional lightweight DisplayCatalog request for rating windows. Search and Reviews use more requests as maxResults grows; restrictive Review filters can require scanning additional pages, and includeReviews adds review pagination to every Details record.

The repository does not define a public Actor price or repeatable production benchmarks, so this README does not claim fixed runtime or cost. Check the Actor's Pricing tab before a large run. Usage depends on pages, product count, response size, retries, and proxy traffic.

Pay-per-event billing

  • search-result is charged once for every saved Search row.
  • app-details is charged once for every saved Details row.
  • review is charged once for every saved standalone review and every review visible inside includedReviews.
  • Missing products and failed requests are logged and do not call a custom billing event.
  • Remove the synthetic apify-default-dataset-item event from the Actor pricing configuration to avoid charging every Dataset row a second time.

Retries and proxy behavior

  • Every Microsoft Store request is routed through Apify Proxy.
  • The input schema has no proxy field; users do not configure networking.
  • Direct Microsoft Store traffic is disabled.
  • No sticky proxy session ID is supplied.
  • Temporary HTTP failures, timeouts, proxy failures, and invalid JSON structures are retried with exponential backoff.
  • Products and reviews are deduplicated by stable IDs.
  • One failed Product ID does not discard successful batch records or create a paid error row.
  • x-api-ref is calculated for each exact request URL with SHA-256; saved browser tokens are not reused.

API usage

Replace YOUR_ACTOR_ID and YOUR_APIFY_TOKEN with values from the Actor's API page:

curl "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_APIFY_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{"mode":"search","searchTerms":["password manager"],"maxResults":20,"country":"US","language":"en-US"}'

Results are available in the default dataset. Export JSON, CSV, Excel, XML, RSS, or JSONL, or connect Make, Zapier, n8n, Google Sheets, webhooks, schedules, and warehouses.

The Output tab contains one unified Results view instead of separate mode tabs. It exposes the complete 144-field union of Search, Details, and Review outputs. Columns that do not apply to a particular recordType remain empty, while every available field stays accessible in the same table without switching views or opening the automatic All fields view.

Best for / not for

Best for: public Microsoft Store discovery, product catalogs, regional prices, compatibility research, SKU analysis, and public review monitoring.

Not for: Partner Center data, authenticated account information, purchasing or installing products, executing installer URLs, licensing operations, or guaranteeing every historical review.

Limits and good to know

  • One mode runs per execution.
  • maxResults is an upper limit of 500 per term, product, and selected country; Microsoft can expose fewer records.
  • Search processes the final page before stopping when hasMorePages becomes false, including a page without cursor.
  • Reviews are returned in pages of 10.
  • The Reviews endpoint uses the same empty envelope for an unknown product and a valid product with no reviews. Standalone Reviews verifies empty results through Details.
  • Details differs between WindowsUpdate/MSIX, WPM, apps, and games. Stable fields use null, [], or {} when unpublished.
  • Prices, ratings, languages, availability, and totals can differ by country and locale.
  • Rating-window enrichment is non-fatal: if DisplayCatalog is unavailable, its six summary fields are null and ratingWindows is empty while the main Details record is still saved.
  • language in Details is Microsoft's product value; requestedLanguage is the requested locale.
  • Review score, date, and keyword filters are applied while paginating the public review response.
  • Missing products are recorded in logs rather than the Dataset and do not stop other jobs.
  • Public response structures can change. The Actor validates them and fails visibly.
  • The Actor does not download packages or execute installer links.

Frequently asked questions

Do I need a Microsoft account, API key, or proxy?

No. The Actor uses public responses and configures Apify Proxy automatically.

Can I pass full Microsoft Store URLs?

Yes. Product IDs and URLs from apps.microsoft.com or www.microsoft.com can be mixed in appIds.

Can I process several keywords or products?

Yes. Add multiple values to searchTerms or appIds. maxResults applies independently.

Why are some fields null or empty?

Microsoft publishes different metadata for different product, installer, catalog, and regional variants. The Actor keeps stable keys.

Does language translate reviews?

No. It selects the Store interface locale. Review text remains as published; locale and market contain Microsoft's review metadata.

Why can Reviews perform an extra Details request?

An empty Reviews response does not reveal whether the product exists. Details is checked only for that edge case.

Can I schedule recurring runs?

Yes. Use Apify schedules and webhooks for recurring searches, snapshots, and review collection.

Responsible use

Use the Actor in accordance with applicable laws and Microsoft Store terms. Do not use reviewer or publisher information for spam, harassment, deception, or unlawful profiling.

This independent Actor is not affiliated with, endorsed by, or sponsored by Microsoft Corporation. Microsoft, Windows, Xbox, and Microsoft Store are trademarks of their respective owners.

Support

For a missing field, changed response, or unexpected empty result, create an issue in the Actor's Issues tab. Include the run ID, mode, country, locale, and a non-sensitive reproducible input.

Local development

Use Python 3.11 or newer:

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe -m unittest discover -s tests -v

The production image uses Python 3.13 and starts with python -m my_actor.