VS Code Marketplace Extensions API
Query, search, and retrieve VS Code extensions from the Marketplace
Query, search, and retrieve VS Code extensions from the Marketplace
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/vs-code-marketplace-extensions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: VS Code Marketplace Gallery Assets Extensions API
description: The VS Code Marketplace Gallery API provides programmatic access to the Visual Studio Marketplace, enabling search, discovery, and retrieval of extensions for Visual Studio Code and other Microsoft developer tools. It supports querying extensions by name, publisher, category, and tags, as well as fetching extension details, versions, statistics, and reviews.
version: 7.2-preview.1
contact:
name: Microsoft Visual Studio Code
url: https://code.visualstudio.com/
termsOfService: https://marketplace.visualstudio.com/policies/agree
servers:
- url: https://marketplace.visualstudio.com/_apis/public/gallery
description: VS Code Marketplace Gallery API
security: []
tags:
- name: Extensions
description: Query, search, and retrieve VS Code extensions from the Marketplace
paths:
/extensionquery:
post:
operationId: queryExtensions
summary: Query Extensions
description: Search and filter extensions in the VS Code Marketplace using criteria such as text search, tags, categories, publisher name, or extension ID. Supports pagination and response flag bitmasks to control the detail level returned.
tags:
- Extensions
parameters:
- name: api-version
in: query
schema:
type: string
default: 7.2-preview.1
description: API version string.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionQueryRequest'
responses:
'200':
description: Extension query results
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionQueryResponse'
components:
schemas:
QueryFilter:
type: object
properties:
criteria:
type: array
description: Filter criteria items.
items:
$ref: '#/components/schemas/FilterCriteria'
pageNumber:
type: integer
default: 1
description: Page number for pagination.
pageSize:
type: integer
default: 10
maximum: 100
description: Number of results per page.
sortBy:
type: integer
description: Sort order field. 0=Default, 1=NoneOrRelevance, 4=Downloads, 5=Rating, 6=PublishedDate, 12=InstallCount.
default: 0
sortOrder:
type: integer
description: Sort direction. 0=Default, 1=Ascending, 2=Descending.
default: 0
ExtensionVersion:
type: object
properties:
version:
type: string
description: Semantic version string (e.g., 2024.1.0).
flags:
type: integer
lastUpdated:
type: string
format: date-time
files:
type: array
items:
type: object
properties:
assetType:
type: string
source:
type: string
format: uri
properties:
type: array
items:
type: object
properties:
key:
type: string
value:
type: string
assetUri:
type: string
format: uri
fallbackAssetUri:
type: string
format: uri
ExtensionQueryRequest:
type: object
properties:
filters:
type: array
description: Array of filter criteria to apply to the query.
items:
$ref: '#/components/schemas/QueryFilter'
assetTypes:
type: array
description: Specific asset types to include in the response.
items:
type: string
enum:
- Microsoft.VisualStudio.Services.VSIXPackage
- Microsoft.VisualStudio.Services.Icons.Default
- Microsoft.VisualStudio.Services.Icons.Small
- Microsoft.VisualStudio.Services.Content.Details
- Microsoft.VisualStudio.Services.Content.Changelog
- Microsoft.VisualStudio.Services.Content.License
flags:
type: integer
description: 'Bitmask of ExtensionQueryFlags controlling response detail level. Common values: 16863 (AllAttributes), 914 (basic details), 7 (minimal).'
example: 16863
example:
filters:
- criteria:
- filterType: 10
value: python
pageNumber: 1
pageSize: 10
sortBy: 4
sortOrder: 0
flags: 16863
FilterCriteria:
type: object
required:
- filterType
- value
properties:
filterType:
type: integer
description: The type of filter to apply. 1=Tag, 4=ExtensionId, 5=Category, 7=ExtensionName (publisher.name), 8=Target (VSCode), 10=FullText, 12=ExcludeWithFlags.
example: 10
value:
type: string
description: The filter value to match.
example: python
ExtensionQueryResponse:
type: object
properties:
results:
type: array
items:
type: object
properties:
extensions:
type: array
items:
$ref: '#/components/schemas/Extension'
pagingToken:
type: string
resultMetadata:
type: array
items:
type: object
properties:
metadataType:
type: string
metadataItems:
type: array
items:
type: object
properties:
name:
type: string
count:
type: integer
ExtensionStatistic:
type: object
properties:
statisticName:
type: string
description: Statistic type name (e.g., install, averagerating, ratingcount, trendingdaily, trendingweekly, trendingmonthly, updateCount).
value:
type: number
description: The statistic value.
Publisher:
type: object
properties:
publisherId:
type: string
format: uuid
description: Unique identifier for the publisher.
publisherName:
type: string
description: Publisher's unique name (used in extension IDs).
displayName:
type: string
description: Publisher's display name.
flags:
type: integer
domain:
type: string
description: Publisher's verified domain.
isDomainVerified:
type: boolean
description: Whether the publisher's domain is verified.
extensions:
type: array
items:
$ref: '#/components/schemas/Extension'
Extension:
type: object
properties:
publisher:
$ref: '#/components/schemas/Publisher'
extensionId:
type: string
format: uuid
description: Unique identifier for the extension.
extensionName:
type: string
description: The extension's short name.
displayName:
type: string
description: Human-readable display name.
flags:
type: integer
description: Extension flags bitmask.
lastUpdated:
type: string
format: date-time
description: When the extension was last updated.
publishedDate:
type: string
format: date-time
description: When the extension was first published.
releaseDate:
type: string
format: date-time
description: When the current version was released.
shortDescription:
type: string
description: Brief description of the extension.
versions:
type: array
items:
$ref: '#/components/schemas/ExtensionVersion'
categories:
type: array
items:
type: string
description: Extension categories.
tags:
type: array
items:
type: string
description: Extension tags.
statistics:
type: array
items:
$ref: '#/components/schemas/ExtensionStatistic'
installationTargets:
type: array
items:
type: object
properties:
target:
type: string
targetVersion:
type: string
deploymentType:
type: integer
averageRating:
type: number
description: Average user rating (0-5).
ratingCount:
type: integer
description: Number of ratings submitted.