Updated Oct 2026
Microsoft Store reviews API in Python: Partner Center analytics, Entra ID token
Microsoft Store reviews are exposed through the Partner Center analytics API, with a Microsoft Entra ID application as the credential. Reading works well; replying by API doesn’t, because Microsoft itself documents the response endpoint as not working. This guide does the read with requests, following learn.microsoft.com, which is also how Prisma’s Microsoft Store connector works (in beta, built from the docs). The wider app-store picture is on app reviews API.
pip install requestsSetup, once: register a Microsoft Entra ID application, add it to your Partner Center account under Account settings → User management → Azure AD applications with the Manager or Developer role, and note the tenant id, client id and a client secret.
1. Token (60 minutes)
import os, requests
from datetime import date, timedelta
RESOURCE = "https://manage.devcenter.microsoft.com"
API = f"{RESOURCE}/v1.0/my"
r = requests.post(f"https://login.microsoftonline.com/{os.environ['MS_TENANT_ID']}/oauth2/token",
headers={"Content-Type": "application/x-www-form-urlencoded"},
data={"grant_type": "client_credentials", "client_id": os.environ["MS_CLIENT_ID"], "client_secret": os.environ["MS_CLIENT_SECRET"], "resource": RESOURCE}, timeout=30)
r.raise_for_status()
H = {"Authorization": f"Bearer {r.json()['access_token']}"}2. Your applications
apps = requests.get(f"{API}/applications", headers=H, timeout=30).json().get("value", [])
for a in apps:
print(a["id"], a.get("primaryName"), f"https://apps.microsoft.com/detail/{a['id']}")
APP_ID = apps[0]["id"]3. Reviews by date range, newest first
def reviews(app_id, start, end, top=10000):
url = f"{API}/analytics/reviews"
params = {"applicationId": app_id, "startDate": start, "endDate": end, "top": top, "skip": 0, "orderby": "date desc"}
while url:
r = requests.get(url, headers=H, params=params, timeout=60)
r.raise_for_status()
body = r.json()
yield from body.get("Value", [])
url = body.get("@nextLink") # absolute, with its own parameters
params = None
start = (date.today() - timedelta(days=365)).isoformat()
end = (date.today() + timedelta(days=1)).isoformat()
for rev in reviews(APP_ID, start, end):
print(rev["id"], rev.get("market"), rev.get("rating"), rev.get("reviewerName"), rev["date"], rev.get("reviewTitle"), (rev.get("reviewText") or "")[:80],
"| responded" if (rev.get("responseText") or "").strip() else "")Fields: id, date, market, reviewerName, rating (1 to 5), reviewTitle, reviewText, responseText and responseDate (your Partner Center response), plus device, OS and package metadata. Dates are days, not timestamps, so an incremental sync starts a day before the last check and de-duplicates by id.
4. Replies
Microsoft’s “respond to reviews” API is documented as not in a working state (checked October 2026), so treat the store as read-only from code: write responses in Partner Center and read them back here. If Microsoft restores the endpoint, it will show up in the API changes log.
5. The same job through Prisma
Prisma connects a Partner Center account with the tenant id, client id and secret (checked before storing, encrypted), imports your apps as locations, syncs reviews with the market and the response, and returns them in the same JSON as the App Store, Google Play, Steam and 50+ other platforms, with a webhook per new review.
H = {"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"}
r = requests.get("https://api.prismareviews.com/v1/reviews", headers=H, params={"platform": "microsoft_store", "limit": 100}, timeout=30)
for rev in r.json()["data"]:
print(rev["rating"], rev["author"], rev["title"], rev["text"], rev["url"])Microsoft Store is read-only in Prisma for the reason above; each review carries the store link. Connection fields: Platforms. A test key returns sample reviews so the code runs now.
FAQ
How do I authenticate to the Microsoft Store analytics API?
Register a Microsoft Entra ID application, add it to your Partner Center account (Account settings → User management → Azure AD applications) with the Manager or Developer role, then request a client-credentials token from login.microsoftonline.com/<tenant>/oauth2/token with resource https://manage.devcenter.microsoft.com. Tokens last 60 minutes.
Can I reply to Microsoft Store reviews by API?
Not reliably. Microsoft documents the review-response API as not in a working state (checked October 2026). Responses are written in Partner Center and come back in the analytics reviews data as responseText and responseDate.
Which fields does the reviews analytics endpoint return?
Per review: id, date, market, reviewerName, rating (1 to 5), reviewTitle, reviewText, responseText and responseDate, plus device and OS metadata. Pages are up to 10,000 rows with an @nextLink for the next page.
Microsoft Store, App Store, Google Play and Steam, one JSON.
2 locations free. Test keys return sample reviews from every platform.