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.

Shell
pip install requests

Credentials: none. You need the extension’s page, https://open-vsx.org/extension/<namespace>/<name>.

1. All reviews in one call

Python
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.

Python
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.

Get a free API key

2 locations free. Test keys return sample reviews from every platform.

Next step: read the reviews as JSON with the Open VSX reviews API, and compare plans on Prisma Reviews pricing.

Get your API key in a minute

Free Spark plan: 2 locations, no card. Test keys return sample data on all 84 platforms, so you can build before connecting a real one.