diff --git a/docs/usage.rst b/docs/usage.rst
index 3ac4e4b..28ad0d0 100644
--- a/docs/usage.rst
+++ b/docs/usage.rst
@@ -836,6 +836,17 @@ Check `Open Vsx `_ for updates.
openvsx
The extension's Unique Identifier on open-vsx.org, e.g. ``ritwickdey.LiveServer``.
+Check Visual Studio Code Marketplace
+~~~~~~~~~~~~~~~
+::
+
+ source = "vsmarketplace"
+
+Check `Visual Studio Code Marketplace `_ for updates.
+
+vsmarketplace
+ The extension's Unique Identifier on marketplace.visualstudio.com/vscode, e.g. ``ritwickdey.LiveServer``.
+
Combine others' results
~~~~~~~~~~~~~~~~~~~~~~~
::
diff --git a/nvchecker_source/vsmarketplace.py b/nvchecker_source/vsmarketplace.py
new file mode 100644
index 0000000..265829e
--- /dev/null
+++ b/nvchecker_source/vsmarketplace.py
@@ -0,0 +1,54 @@
+# MIT licensed
+# Copyright (c) 2013-2021 Th3Whit3Wolf , et al.
+
+from nvchecker.api import (
+ VersionResult, Entry, AsyncCache, KeyManager,
+ TemporaryError, session, GetVersionError,
+)
+
+API_URL = 'https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery'
+
+HEADERS = {
+ 'Accept': 'application/json;api-version=6.1-preview.1',
+ 'Content-Type': 'application/json'
+}
+
+async def get_version(name: str, conf: Entry, *, cache: AsyncCache, **kwargs):
+ name = conf.get('vsmarketplace') or name
+
+ q = {
+ 'filters': [
+ {
+ 'criteria': [
+ {
+ 'filterType': 8,
+ 'value': 'Microsoft.VisualStudio.Code'
+ },
+ {
+ 'filterType': 10,
+ 'value': name
+ },
+ {
+ 'filterType': 12,
+ 'value': '4096'
+ }
+ ],
+ 'pageNumber': 1,
+ 'pageSize': 2,
+ 'sortBy': 0,
+ 'sortOrder': 0
+ }
+ ],
+ 'assetTypes': [],
+ 'flags': 946
+ }
+
+ res = await session.post(
+ API_URL,
+ headers = HEADERS,
+ json = q,
+ )
+ j = res.json()
+
+ version = j['results'][0]['extensions'][0]['versions'][0]['version']
+ return version
\ No newline at end of file
diff --git a/tests/test_vsmarketplace.py b/tests/test_vsmarketplace.py
new file mode 100644
index 0000000..a2d1ab8
--- /dev/null
+++ b/tests/test_vsmarketplace.py
@@ -0,0 +1,10 @@
+# MIT licensed
+# Copyright (c) 2013-2021 Th3Whit3Wolf , et al.
+
+import pytest
+pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
+
+async def test_vsmarketplace(get_version):
+ assert await get_version("usernamehw.indent-one-space", {
+ "source": "vsmarketplace",
+ }) == "0.2.6"
\ No newline at end of file