Microsoft Store App Intelligence Scraper
Pricing
Pay per event
Microsoft Store App Intelligence Scraper
🪟 Extract localized Microsoft Store app metadata, pricing, ratings, package details, requirements, images, and publisher links from URLs or ProductIds.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Extract localized Microsoft Store app metadata from direct product URLs or ProductIds.
Turn Windows Store listings into clean, exportable records for ASO research, catalog governance, competitive intelligence, and recurring app monitoring—without a Microsoft account or private API key.
- 🪟 App identity: title, description, ProductId, publisher, categories
- 💵 Localized commerce: numeric price, display price, currency, market
- ⭐ Market signals: average rating and rating count
- 📦 Technical catalog: package family, size, platforms, requirements, capabilities
- 🖼️ Creative assets: logo and screenshot URLs
- 🔗 Governance links: privacy, support, app website, canonical Store URL
- ⏱️ Monitoring fields: release date, update date, version, locale,
fetchedAt
The Actor uses lightweight HTTP extraction and writes one normalized dataset row per unique app. It is designed for precise product intelligence rather than broad Store search or review crawling.
What does Microsoft Store App Intelligence Scraper do?
Provide one or more values such as:
https://apps.microsoft.com/detail/9wzdncrfj3pz9WZDNCRFJ3PZ
The Actor resolves each unique ProductId against the selected market and locale, normalizes Microsoft catalog data, and saves the result to an Apify dataset.
Use the same app IDs on a schedule to detect listing changes over time. Export results as JSON, CSV, Excel, XML, or RSS through Apify.
V1 focuses on validated app-detail extraction. It deliberately does not promise Microsoft Store catalog search or customer review pagination.
Who is it for?
Windows app developers and ASO teams
Compare localized titles, prices, ratings, screenshots, supported languages, and update freshness across a portfolio.
Enterprise app-management teams
Refresh package family names, supported platforms, permissions, requirements, publisher information, and support links for internal software catalogs.
Competitive-intelligence analysts
Track release cadence, rating momentum, creative assets, and localization across competing Windows apps.
Data engineers and agencies
Feed normalized Microsoft Store records into warehouses, spreadsheets, dashboards, or client reporting workflows.
Why use this Microsoft Store scraper?
- ✅ No browser automation for the normal route
- ✅ No Microsoft login or user-supplied API key
- ✅ Batch input with automatic ProductId deduplication
- ✅ Market and locale controls for localized snapshots
- ✅ Typed numeric ratings, counts, prices, and sizes
- ✅ Source provenance for primary and fallback extraction
- ✅ Conservative retries and concurrency controls
- ✅ Pay per successful app record, not per attempted URL
A failed product is skipped only after the structured catalog endpoint and page-data fallback both fail. The run itself fails if it cannot produce any useful records.
What Microsoft Store data can I extract?
| Field group | Example fields | Typical use |
|---|---|---|
| Identity | productId, title, description | Catalog matching |
| Publisher | developer, publisher, publisherId | Vendor governance |
| Taxonomy | categories, productType | Portfolio segmentation |
| Commerce | price, displayPrice, currencyCode | Localized pricing |
| Ratings | averageRating, ratingCount | ASO monitoring |
| Releases | releaseDate, lastUpdateDate, version | Freshness checks |
| Compatibility | platforms, minimumRequirements | Device policy |
| Packages | packageFamilyNames, size fields | Software inventory |
| Security | permissions, capabilities | Review workflows |
| Assets | logoUrl, screenshotUrls | Creative audits |
| Links | privacy, support, website, canonical URL | Compliance checks |
| Provenance | market, locale, source, fetchedAt | Reproducible snapshots |
Optional fields are omitted when Microsoft does not expose them for a given product or market. The Actor does not fill missing values with misleading placeholders.
How to scrape Microsoft Store app data
- Open the Actor input page.
- Paste one or more Microsoft Store product URLs or ProductIds.
- Select a two-letter market such as
US,GB, orDE. - Select a locale such as
en-US,en-GB, orde-DE. - Keep the small default item limit for your first run.
- Click Start.
- Open the dataset and export the records in your preferred format.
For recurring intelligence, create an Apify schedule and compare each new dataset with the prior run in your automation platform or warehouse.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
appIds | string array | sample app URL | Direct URLs or ProductIds; required |
market | string | US | Two-letter Store market |
locale | string | en-US | Language-country locale |
maxItems | integer | 10 | Maximum unique apps, up to 100 |
maxConcurrency | integer | 5 | Simultaneous requests, from 1 to 10 |
Example input:
{"appIds": ["9WZDNCRFJ3PZ","https://apps.microsoft.com/detail/9nblggh4nns1"],"market": "US","locale": "en-US","maxItems": 2,"maxConcurrency": 2}
URLs and IDs may be mixed. Duplicate IDs are fetched once. Invalid values are reported in the log and ignored when another valid input remains.
Output example
{"productId": "9WZDNCRFJ3PZ","title": "Company Portal","publisher": "Microsoft Corporation","categories": ["Business"],"price": 0,"displayPrice": "Free","currencyCode": "USD","averageRating": 3.6,"ratingCount": 564,"platforms": ["ARM64", "x86", "x64", "ARM"],"packageFamilyNames": ["Microsoft.CompanyPortal_8wekyb3d8bbwe"],"canonicalUrl": "https://apps.microsoft.com/detail/9wzdncrfj3pz?hl=en-US&gl=US","market": "US","locale": "en-US","source": "storeedge","fetchedAt": "2026-07-15T00:00:00.000Z"}
The live record usually contains additional description, date, language, requirement, capability, image, and support fields.
How much does it cost to scrape Microsoft Store apps?
This Actor uses pay-per-event pricing:
- Run start: $0.005 once per run
- App detail: tiered by your Apify plan; current BRONZE reference is $0.00022225 per saved app
A one-app check is about $0.00522 at the BRONZE reference rate. A 100-app refresh is about $0.02723. Higher Apify plans receive lower per-record rates.
The Apify Free plan includes monthly platform credits, so small tests can often fit within existing credits. Check the Actor pricing panel for the exact rate on your plan before a large batch.
You are charged for records saved, not invalid IDs or products that fail both extraction routes.
Tips for reliable app intelligence
- 🎯 Start with one known ProductId before a portfolio batch.
- 🌍 Use matching market and locale values, such as
DEwithde-DE. - 🧾 Store
productId,market, andlocaleas your comparison key. - ⏰ Schedule refreshes at a cadence appropriate for release monitoring.
- 📉 Compare rating count deltas as well as average rating changes.
- 🧠 Keep
maxConcurrencybetween 2 and 5 for recurring monitors. - 🔍 Inspect
source;page-jsonldindicates the lower-fidelity fallback was used.
Some package and version fields are not populated by Microsoft for every product. Treat omitted optional values as unavailable, not zero.
Integrations and automation workflows
Google Sheets or Airtable catalog
Schedule the Actor weekly, send dataset rows through Make or Zapier, and upsert by productId + market + locale.
BigQuery, Snowflake, or PostgreSQL history
Append each run with fetchedAt, then calculate update intervals, rating changes, localized price differences, and creative-asset changes.
Slack or email release alerts
Compare lastUpdateDate, version, displayPrice, and ratingCount with the previous snapshot. Send an alert only when one of those values changes.
Enterprise software inventory enrichment
Join ProductIds to package family names, publishers, supported platforms, requirements, privacy URLs, and permissions before application approval.
Webhooks
Configure an Apify run-finished webhook to trigger your downstream ETL job as soon as the dataset is ready.
API usage
Replace YOUR_TOKEN with an Apify API token.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/microsoft-store-app-intelligence-scraper').call({appIds: ['9WZDNCRFJ3PZ'],market: 'US',locale: 'en-US',maxItems: 1});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('automation-lab/microsoft-store-app-intelligence-scraper').call(run_input={'appIds': ['9WZDNCRFJ3PZ'],'market': 'US','locale': 'en-US','maxItems': 1,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST \'https://api.apify.com/v2/acts/automation-lab~microsoft-store-app-intelligence-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"appIds":["9WZDNCRFJ3PZ"],"market":"US","locale":"en-US","maxItems":1}'
Use with Apify MCP
Connect the Actor to Claude Code:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/microsoft-store-app-intelligence-scraper"
For Claude Desktop, Cursor, or VS Code, add this MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/microsoft-store-app-intelligence-scraper"}}}
Example prompts:
- “Extract the US Microsoft Store record for ProductId 9WZDNCRFJ3PZ.”
- “Compare price, rating count, and last update date for these five Windows apps.”
- “Return package family names and minimum OS requirements for this app portfolio.”
MCP is useful when an analyst wants current structured catalog data inside an AI-assisted workflow without manually exporting a dataset.
Data quality and source behavior
The primary source is Microsoft's public Store catalog detail endpoint. It exposes richer package and compatibility data than the visible listing alone.
When that structured route fails, the Actor tries public product-page JSON-LD. Fallback records may contain fewer fields. The source field makes this explicit.
Localization can vary by market. An app may be unavailable, priced differently, translated differently, or expose different rating aggregates across markets.
The Actor never fabricates missing fields. Arrays are deduplicated and numeric source values remain numeric.
Limitations
- Direct app URLs and ProductIds only
- No broad Microsoft Store catalog search in V1
- No customer review pagination in V1
- Maximum 100 unique apps per run
- StoreEdge is undocumented and may change
- Some listings omit version, developer, currency, or package fields
- Market availability can differ from global product existence
- Fallback JSON-LD contains less technical metadata
For a rejected or market-unavailable ID, review the run log and verify that the product opens in the same market.
Legality of scraping Microsoft Store data
This Actor extracts publicly accessible product metadata. Public availability does not remove your obligations.
Use the data for legitimate purposes, respect applicable Microsoft terms, database rights, copyright, privacy laws, and contractual restrictions, and avoid republishing protected descriptions or images in misleading ways.
Do not use the Actor to bypass access controls. The Actor does not log in, purchase software, download packages, or access private account data.
If your workflow has legal or compliance implications, obtain professional advice appropriate to your jurisdiction and use case.
Troubleshooting
“No Microsoft Store records could be extracted”
Confirm that each value is a ProductId or an apps.microsoft.com product URL. Then open the product in the requested market. Some products are region-limited or retired.
My localized price or title looks unexpected
Check both market and locale. Market controls availability and commerce context; locale controls language. Use GB with en-GB, not US with en-GB, when you need a UK snapshot.
A field is missing
Microsoft does not expose every optional field for every app. Check source; fallback page-jsonld records are intentionally lower fidelity.
A duplicate URL produced one row
This is expected. Inputs are normalized to uppercase ProductIds and deduplicated before fetching.
The run is slower than expected
Reduce the batch or keep concurrency near the default. Retries may add time when Microsoft returns temporary errors.
FAQ
Do I need a Microsoft account?
No. The Actor uses public anonymous product-detail surfaces.
Can I scrape paid and free apps?
Yes, when the product is publicly available in the selected market. Price fields reflect the response for that market.
Can I monitor changes?
Yes. Schedule recurring runs and compare lastUpdateDate, version, rating fields, price fields, image URLs, and fetchedAt.
Does it download app packages?
No. This is a metadata and intelligence Actor, not a package downloader.
Does it return reviews?
No. Review extraction was not independently validated for V1, so it is excluded rather than over-promised.
Can I use more than one locale?
Run the same ProductIds once per market/locale pair. Keep each pair as part of your historical comparison key.
Related app store scrapers
- Apple App Store Scraper — iOS app details, search, ratings, and reviews
- Google Play Scraper — Android app intelligence and reviews
- Google Play Data Safety Scraper — privacy and data-safety declarations
- Google Play Developer Portfolio Scraper — developer-level Android portfolio monitoring
Use this Actor when the target is the Microsoft Store and Windows catalog metadata. Choose a related Actor only when your source platform or entity scope differs.
Support
For a reproducible support request, include:
- the ProductId or public product URL
- market and locale
- run ID
- whether the product opens manually in that market
- the field you expected and the value returned
Do not post private credentials or API tokens. The Actor does not need them.