BYTETOOLS

Open VSX Registry API

Search and read VS Code extension metadata from the vendor-neutral Open VSX registry as JSON. No key, generous rate limit, real download counts and ratings.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Open VSX Registry API?

Open VSX is an open registry of VS Code extensions with a public JSON API. `GET https://open-vsx.org/api/-/search?query=python&size=2` returns matching extensions with download counts, ratings and file URLs, and `/api/{namespace}/{name}` returns one extension's metadata. No API key is required.

Microsoft's own marketplace requires a POST to an undocumented endpoint and its terms restrict use to Microsoft products, which leaves a real gap for anyone building on VS Code forks such as VSCodium, Gitpod or Eclipse Theia. Open VSX, run by the Eclipse Foundation, fills it with a documented REST API that answers plain GET requests and publishes its rate limit in response headers, which we observed as 10,800 requests.

The `files` object on each result is the most immediately useful part: it hands you direct URLs for the `.vsix` download, the icon, the SHA-256 digest and the signature file. That means a self-hosted extension mirror or an offline installer needs no scraping at all. Watch the `namespace` and `name` split, since the marketplace's familiar `publisher.extension` identifier is two separate fields here.

Quick facts

Base URL
https://open-vsx.org/api
Authentication
Reads are anonymous. An access token is only needed to publish extensions, which is not covered here.
Rate limit
Reported live in `X-RateLimit-Limit` and `X-RateLimit-Remaining`; the observed limit was 10,800 requests, which is ample for ordinary use.
Pricing
Free and open source, run by the Eclipse Foundation.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Open VSX Registry API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Search for extensions by keyword

GET https://open-vsx.org/api/-/search?query=python&size=2

curl
curl 'https://open-vsx.org/api/-/search?query=python&size=2'
JavaScript (fetch)
const res = await fetch("https://open-vsx.org/api/-/search?query=python&size=2");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://open-vsx.org/api/-/search?query=python&size=2", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "extensions": [
    {
      "averageRating": 4.428571428571429,
      "deprecated": false,
      "description": "Python autocomplete, typechecking, code navigation and more! Powered by Pyrefly, an open-source language server",
      "displayName": "Pyrefly - Python Language Tooling",
      "downloadCount": 79271971,
      "files": {
        "download": "https://open-vsx.org/api/meta/pyrefly/alpine-arm64/1.2.9002/file/meta.pyrefly-1.2.9002@alpine-arm64.vsix",
        "signature": "https://open-vsx.org/api/meta/pyrefly/alpine-arm64/1.2.9002/file/meta.pyrefly-1.2.9002@alpine-arm64.sigzip",
        "icon": "https://open-vsx.org/api/meta/pyrefly/alpine-arm64/1.2.9002/file/pyrefly-symbol.png",
        "sha256": "https://open-vsx.org/api/meta/pyrefly/alpine-arm64/1.2.9002/file/meta.pyrefly-1.2.9002@alpine-arm64.sha256",
        "publicKey": "https://open-vsx.org/api/-/public-key/14ccb407-4e79-41ed-be5a-6d608325c45a"
      },
      "name": "pyrefly",
      "namespace": "meta",
      "reviewCount": 7,
      "timestamp": "2026-08-18T21:58:53.549203Z",
      "url": "https://open-vsx.org/api/meta/pyrefly",
      "verified": true,
      "version": "1.2.9002"
    },
    {
      "averageRating": 3.875,
      "deprecated": false,
      "description": "Python language support with extension access points for IntelliSense (Pylance), Debugging (Python Debugger), linting, formatting, refactoring, unit tests, and more.",
      "displayName": "Python",
      "downloadCount": 56011607,
      "files": {
        "download": "https://open-vsx.org/api/ms-python/python/2026.4.0/file/ms-python.pyth

Parameters

ParameterTypeRequiredDescription
querystringOptionalFree-text search across name, description and publisher. python
sizeintegerOptionalResults per page, default 18. 2
offsetintegerOptionalZero-based offset for paging through `totalSize`. 20
categorystringOptionalFilter by marketplace category such as `Programming Languages` or `Themes`. Themes
sortBy / sortOrderstringOptionalSort field (`relevance`, `downloadCount`, `rating`, `timestamp`) and direction. downloadCount

Response fields

extensionsarray
Matching extensions. The response also carries `offset` and `totalSize` for paging.
namespace / namestring
The two halves of the familiar `publisher.extension` identifier, returned separately. Join them with a dot to match a marketplace id.
versionstring
Latest published version for the platform matched by the search.
downloadCountinteger
Total downloads from Open VSX only. It will be far lower than the Microsoft marketplace figure for the same extension, because they are different registries.
averageRating / reviewCountfloat / integer
Rating out of five and the number of reviews. `averageRating` is an unrounded float, so format it before display.
filesobject
Direct URLs for `download` (the .vsix), `icon`, `sha256` and `signature`. Everything you need for an offline mirror.
verifiedboolean
Whether the publishing namespace has been verified by the registry, which is the closest thing to a trust signal here.
timestampstring
ISO 8601 publication time of the version returned.

What you can build with the Open VSX Registry API

  • Power an extension browser in a VS Code fork or a web IDE
  • Mirror extensions internally for air-gapped or regulated environments
  • Check whether an extension your team depends on is published outside Microsoft's marketplace
  • Track download trends for an extension you maintain
  • Verify the SHA-256 of a `.vsix` before installing it in an automated image build

Common errors and how to fix them

404 on /api/{namespace}/{name}

The extension is not published to Open VSX, which is common for Microsoft-authored extensions.

Fix: Search first. Many popular extensions exist only on the Microsoft marketplace and legally cannot be republished here.

Empty search results

The query matched nothing, or a category filter is too narrow.

Fix: Drop filters one at a time; `query` alone is a broad full-text match.

429

The published rate limit was exceeded.

Fix: Check `X-RateLimit-Remaining` and back off. The default allowance is high, so a 429 usually means a runaway loop.

Open VSX Registry API — frequently asked questions

Is Open VSX the same as the VS Code Marketplace?

No. It is a separate, vendor-neutral registry run by the Eclipse Foundation for VS Code forks. Extension availability and download counts differ, and some Microsoft extensions are absent by licence.

Do I need a token to search Open VSX?

No. All read endpoints are anonymous. Tokens are only required for publishing.

How do I download an extension file?

Use the `download` URL inside the `files` object of a search result, which points directly at the `.vsix`. The `sha256` URL alongside it lets you verify the file.

Why is the download count lower than the Microsoft marketplace?

They are independent registries with independent counters. Open VSX counts only downloads served by Open VSX.

Tools that pair with this API

Open VSX Registry is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.