Prisma Reviews / Guides / Open VSX reviews API in Python
Open VSX reviews API in Python: extension reviews without a key
Open VSX, the vendor-neutral registry for VS Code extensions used by VSCodium, Gitpod, Eclipse Theia and others, has the simplest reviews API on our list: one public GET per extension that returns every review at once. No key, no paging, no replies. This guide reads it with requests, as Prisma’s Open VSX connector does (checked live), and covers the one quirk, reviews without ids. The developer-platform picture is on B2B software reviews API.
pip install requestsCredentials: none. You need the extension’s page, https://open-vsx.org/extension/<namespace>/<name>.
1. All reviews in one call
import requests
from datetime import datetime, timedelta, timezone
NAMESPACE, NAME = "redhat", "java" # from /extension/<namespace>/<name>
PAGE = f"https://open-vsx.org/extension/{NAMESPACE}/{NAME}"
r = requests.get(f"https://open-vsx.org/api/{NAMESPACE}/{NAME}/reviews", headers={"Accept": "application/json"}, timeout=30)
r.raise_for_status()
reviews = r.json().get("reviews", [])
since = datetime.now(timezone.utc) - timedelta(days=31)
for rv in sorted(reviews, key=lambda x: x["timestamp"], reverse=True):
created = datetime.fromisoformat(rv["timestamp"].replace("Z", "+00:00"))
if created <= since:
break
u = rv.get("user") or {}
key = f"{u.get('loginName', 'anon')}:{rv['timestamp']}" # reviews have no id
print(key, rv.get("rating"), u.get("fullName") or u.get("loginName"), created.date(), (rv.get("comment") or "")[:80], PAGE)Fields per review: timestamp, rating (0 to 5; treat 0 as no rating), comment (optional) and user with loginName and fullName. Each user has one review per extension, so loginName plus timestamp is a stable key. The response has no paging and no next: extensions with thousands of reviews still come back in one body.
2. What the API won’t do
No replies, no date filter, no ids. For incremental syncs, keep the keys you’ve seen and the newest timestamp, and skip the rest.
3. The same job through Prisma
Prisma connects an Open VSX extension from its page (no login), reads the reviews, derives the key from user and timestamp, and returns them in the same JSON as JetBrains Marketplace, Firefox add-ons, the App Store and 80+ other platforms, with a webhook per new review.
import os
H = {"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"}
r = requests.get("https://api.prismareviews.com/v1/reviews", headers=H, params={"platform": "openvsx", "limit": 100}, timeout=30)
for rev in r.json()["data"]:
print(rev["rating"], rev["author"], rev["text"], rev["url"])Open VSX is read-only in Prisma and in beta. Connection fields: Platforms. A test key returns sample reviews so the code runs now.
FAQ
How do I get the reviews of an Open VSX extension?
GET https://open-vsx.org/api/{namespace}/{name}/reviews, documented as getReviews in Open VSX’s OpenAPI. It is public, needs no token and returns every review in one response under reviews.
Do Open VSX reviews have ids?
No. Each user has at most one review per extension, so the user’s loginName plus the timestamp identifies a review for deduplication.
Can a publisher reply to Open VSX reviews?
No. The registry has no reply feature in the API or on the site. Publishers answer in their issue tracker or docs.
Open VSX, JetBrains, Firefox add-ons and app stores, one key.
2 locations free. Test keys return sample reviews from every platform.