openapi: 3.2.0
info:
termsOfService: https://www.eclipse.org/legal/termsofuse.php
license:
name: Eclipse Public License 2.0
url: https://www.eclipse.org/legal/epl-2.0/
version: '0.1'
title: Eclipse Vs Code API
servers:
- url: https://open-vsx.org
description: Generated server url
tags:
- name: vs-code-api
paths:
/vscode/gallery/extensionquery:
get:
tags:
- vs-code-api
summary: Provides metadata of extensions matching the given parameters
operationId: extensionQueryAsGet
parameters:
- name: q
in: query
required: true
schema:
type: string
responses:
'200':
description: Returns the query results
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionQueryResult'
'429':
description: A client has sent too many requests in a given amount of time
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Retry-After:
description: Number of seconds to wait after receiving a 429 response
schema:
format: int32
X-RateLimit-Reset:
description: Number of seconds until the rate limit tokens will be fully filled to its maximum
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
post:
tags:
- vs-code-api
summary: Provides metadata of extensions matching the given parameters
operationId: extensionQuery
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionQueryParam'
required: true
responses:
'200':
description: Returns the query results
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionQueryResult'
'429':
description: A client has sent too many requests in a given amount of time
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Retry-After:
description: Number of seconds to wait after receiving a 429 response
schema:
format: int32
X-RateLimit-Reset:
description: Number of seconds until the rate limit tokens will be fully filled to its maximum
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
/vscode/unpkg/{namespaceName}/{extensionName}/{version}/**:
get:
tags:
- vs-code-api
summary: Browse an extension package
operationId: browse
parameters:
- name: namespaceName
in: path
description: Extension namespace
required: true
schema:
type: string
example: malloydata
- name: extensionName
in: path
description: Extension name
required: true
schema:
type: string
example: malloy-vscode
- name: version
in: path
description: Extension version
required: true
schema:
type: string
example: 0.3.1710435722
responses:
'200':
description: The file content is returned in binary format or a list of file URLs is returned in JSON format in case the path is a directory
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
content:
application/json:
example:
- https://open-vsx.org/vscode/unpkg/redhat/java/0.65.0/extension
- https://open-vsx.org/vscode/unpkg/redhat/java/0.65.0/extension.vsixmanifest
application/octet-stream: {}
'302':
description: The file is found at the specified location
headers:
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Location:
description: The actual URL where the file can be accessed
style: simple
schema:
type: string
'400':
description: The namespace name is the built-in extension namespace
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'404':
description: The specified file or directory could not be found
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'429':
description: A client has sent too many requests in a given amount of time
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Retry-After:
description: Number of seconds to wait after receiving a 429 response
schema:
format: int32
X-RateLimit-Reset:
description: Number of seconds until the rate limit tokens will be fully filled to its maximum
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
/vscode/item:
get:
tags:
- vs-code-api
summary: Access an extension item
operationId: getItemUrl
parameters:
- name: itemName
in: query
description: Identifier in the format {publisher}.{name}
required: true
schema:
type: string
example: foo.bar
responses:
'302':
description: The item is found at the specified location
headers:
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Location:
description: The actual URL where the item can be accessed
style: simple
schema:
type: string
'400':
description: The itemName could not be parsed to publisher and extension name
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'404':
description: The specified item could not be found
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'429':
description: A client has sent too many requests in a given amount of time
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Retry-After:
description: Number of seconds to wait after receiving a 429 response
schema:
format: int32
X-RateLimit-Reset:
description: Number of seconds until the rate limit tokens will be fully filled to its maximum
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
/vscode/gallery/{namespaceName}/{extensionName}/latest:
get:
tags:
- vs-code-api
summary: Provides metadata of the extension matching the given parameters
operationId: getLatest
parameters:
- name: namespaceName
in: path
description: Extension namespace
required: true
schema:
type: string
example: malloydata
- name: extensionName
in: path
description: Extension name
required: true
schema:
type: string
example: malloy-vscode
responses:
'200':
description: Returns the extension metadata
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
content:
application/json:
schema:
$ref: '#/components/schemas/Extension'
'404':
description: The specified extension could not be found
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'429':
description: A client has sent too many requests in a given amount of time
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Retry-After:
description: Number of seconds to wait after receiving a 429 response
schema:
format: int32
X-RateLimit-Reset:
description: Number of seconds until the rate limit tokens will be fully filled to its maximum
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
/vscode/gallery/publishers/{namespaceName}/vsextensions/{extensionName}/{version}/vspackage:
get:
tags:
- vs-code-api
summary: Access an extension package
operationId: download
parameters:
- name: namespaceName
in: path
description: Extension namespace
required: true
schema:
type: string
example: JFrog
- name: extensionName
in: path
description: Extension name
required: true
schema:
type: string
example: jfrog-vscode-extension
- name: version
in: path
description: Extension version
required: true
schema:
type: string
example: 2.11.7
- name: targetPlatform
in: query
description: Target platform
required: false
schema:
type: string
enum:
- win32-x64
- win32-ia32
- win32-arm64
- linux-x64
- linux-arm64
- linux-armhf
- alpine-x64
- alpine-arm64
- darwin-x64
- darwin-arm64
- web
- universal
example: linux-x64
responses:
'302':
description: The package is found at the specified location
headers:
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Location:
description: The actual URL where the package can be downloaded
style: simple
schema:
type: string
'400':
description: The namespace name is the built-in extension namespace
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'404':
description: The specified package could not be found
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'429':
description: A client has sent too many requests in a given amount of time
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Retry-After:
description: Number of seconds to wait after receiving a 429 response
schema:
format: int32
X-RateLimit-Reset:
description: Number of seconds until the rate limit tokens will be fully filled to its maximum
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
/vscode/asset/{namespaceName}/{extensionName}/{version}/{assetType}/**:
get:
tags:
- vs-code-api
summary: Access an extension asset
operationId: getAsset
parameters:
- name: namespaceName
in: path
description: Extension namespace
required: true
schema:
type: string
example: vitest
- name: extensionName
in: path
description: Extension name
required: true
schema:
type: string
example: explorer
- name: version
in: path
description: Extension version
required: true
schema:
type: string
example: 1.6.6
- name: assetType
in: path
description: Asset type
required: true
schema:
type: string
enum:
- Microsoft.VisualStudio.Services.Icons.Default
- Microsoft.VisualStudio.Services.Content.Details
- Microsoft.VisualStudio.Services.Content.Changelog
- Microsoft.VisualStudio.Code.Manifest
- Microsoft.VisualStudio.Services.VSIXPackage
- Microsoft.VisualStudio.Services.Content.License
- Microsoft.VisualStudio.Code.WebResources
- Microsoft.VisualStudio.Services.VsixManifest
- Microsoft.VisualStudio.Services.VsixSignature
- Microsoft.VisualStudio.Services.PublicKey
example: Microsoft.VisualStudio.Services.VSIXPackage
- name: targetPlatform
in: query
description: Target platform
required: false
schema:
type: string
enum:
- win32-x64
- win32-ia32
- win32-arm64
- linux-x64
- linux-arm64
- linux-armhf
- alpine-x64
- alpine-arm64
- darwin-x64
- darwin-arm64
- web
- universal
example: linux-x64
responses:
'200':
description: The file content is returned
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
content:
application/octet-stream: {}
'302':
description: The asset is found at the specified location
headers:
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Location:
description: The actual URL where the asset can be accessed
style: simple
schema:
type: string
'400':
description: The namespace name is the built-in extension namespace
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'404':
description: The specified asset could not be found
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
'429':
description: A client has sent too many requests in a given amount of time
headers:
X-RateLimit-Limit:
description: Number of requests that can be made in a given amount of time
schema:
format: int32
Retry-After:
description: Number of seconds to wait after receiving a 429 response
schema:
format: int32
X-RateLimit-Reset:
description: Number of seconds until the rate limit tokens will be fully filled to its maximum
schema:
format: int32
X-RateLimit-Remaining:
description: Remaining number of requests left in the current time window
schema:
format: int32
components:
schemas:
Extension:
allOf:
- $ref: '#/components/schemas/Result'
- type: object
properties:
namespaceUrl:
type: string
description: URL to get metadata of the extension's namespace
reviewsUrl:
type: string
description: URL to get the list of reviews of this extension
files:
type: object
additionalProperties:
type: string
description: Map of file types (download, manifest, icon, readme, license, changelog) to their respective URLs
name:
type: string
description: Name of the extension
namespace:
type: string
description: Namespace of the extension
targetPlatform:
type: string
description: Name of the target platform
enum:
- win32-x64
- win32-ia32
- win32-arm64
- linux-x64
- linux-arm64
- linux-armhf
- alpine-x64
- alpine-arm64
- darwin-x64
- darwin-arm64
- web
- universal
version:
type: string
description: Selected version, or the latest version if none was specified
preRelease:
type: boolean
description: Indicates whether this is a pre-release version
publishedBy:
$ref: '#/components/schemas/User'
description: Data of the user who published this version
reviewStatus:
type: string
description: 'Review/publishing status: published (active and visible to all), under_review (being reviewed), rejected (blocked)'
enum:
- published
- under_review
- rejected
reviewMessage:
type: string
description: Message explaining the review status (e.g., why extension was quarantined or rejected)
verified:
type: boolean
description: The value 'true' means the publishing user is a privileged user or the publishing user is a member of the extension's namespace and the namespace has at least one owner.
allVersions:
type: object
additionalProperties:
type: string
deprecated: true
deprecated: true
description: 'Map of available versions to their metadata URLs. Deprecated: only returns the last 100 versions. Use allVersionsUrl instead.'
allVersionsUrl:
type: string
description: URL to get a map of available versions to their metadata URLs.
averageRating:
type: number
format: double
description: Average rating
maximum: 5
minimum: 0
downloadCount:
type: integer
format: int32
description: Number of downloads of the extension package
minimum: 0
reviewCount:
type: integer
format: int64
description: Number of reviews
minimum: 0
versionAlias:
type: array
description: Available version aliases ('latest' or 'pre-release')
items:
type: string
timestamp:
type: string
description: Date and time when this version was published (ISO-8601)
preview:
type: boolean
description: Indicates whether this is a preview extension
displayName:
type: string
description: Name to be displayed in user interfaces
namespaceDisplayName:
type: string
description: Namespace name to be displayed in user interfaces
description:
type: string
engines:
type: object
additionalProperties:
type: string
description: Map of engine names to the respective version constraints
categories:
type: array
items:
type: string
extensionKind:
type: array
description: A list that indicates where the extension should run in remote configurations. Values are "ui" (run locally), "workspace" (run on remote machine) and "web"
items:
type: string
tags:
type: array
items:
type: string
license:
type: string
description: License identifier
homepage:
type: string
description: URL of the extension's homepage
repository:
type: string
description: URL of the extension's source repository
sponsorLink:
type: string
description: URL to sponsor the extension
bugs:
type: string
description: URL of the extension's bug tracker
markdown:
type: string
description: Markdown rendering engine to use in user interfaces
enum:
- standard
- github
galleryColor:
type: string
description: CSS color to use as background in user interfaces
galleryTheme:
type: string
description: Theme type for user interfaces
enum:
- light
- dark
localizedLanguages:
type: array
description: Languages the extension has been translated in
items:
type: string
qna:
type: string
description: URL of the extension's Q&A page
badges:
type: array
description: List of badges to display in user interfaces
items:
$ref: '#/components/schemas/Badge'
dependencies:
type: array
description: List of dependencies to other extensions
items:
$ref: '#/components/schemas/ExtensionReference'
bundledExtensions:
type: array
description: List of extensions bundled with this extension
items:
$ref: '#/components/schemas/ExtensionReference'
downloads:
type: object
additionalProperties:
type: string
description: Map of download links by target platform
allTargetPlatformVersions:
type: array
description: Map of target platforms by extension version
items:
$ref: '#/components/schemas/VersionTargetPlatformsJson'
url:
type: string
description: version metadata URL
deprecated:
type: boolean
description: Indicates whether the extension is deprecated
replacement:
$ref: '#/components/schemas/ExtensionReplacement'
description: Reference to extension that replaces this extension when it's deprecated
downloadable:
type: boolean
description: Whether to show downloads in user interfaces
description: Metadata of an extension
required:
- name
- namespace
- namespaceDisplayName
- namespaceUrl
- publishedBy
- reviewsUrl
- timestamp
- verified
- version
ResultItem:
type: object
properties:
extensions:
type: array
items:
$ref: '#/components/schemas/Extension'
resultMetadata:
type: array
items:
$ref: '#/components/schemas/ResultMetadata'
ExtensionReplacement:
type: object
description: Metadata of an extension replacement
properties:
url:
type: string
description: URL of the extension replacement
displayName:
type: string
description: Name to be displayed in user interfaces
ExtensionReference:
type: object
description: A reference to another extension in the registry
properties:
url:
type: string
description: URL to get metadata of the referenced extension
namespace:
type: string
description: Namespace of the referenced extension
extension:
type: string
description: Name of the referenced extension
required:
- extension
- namespace
- url
Result:
type: object
description: Generic result indicator
properties:
success:
type: string
description: Indicates success of the operation (omitted if a more specific result type is returned)
warning:
type: string
description: Indicates a warning; when this is present, other properties can still be used
error:
type: string
description: Indicates an error; when this is present, all other properties should be ignored
ExtensionQueryParam:
type: object
description: Parameters of the extension query
properties:
filters:
type: array
description: List of query filters
items:
$ref: '#/components/schemas/Filter'
flags:
type: integer
format: int32
description: Flags to indicate what metadata to include in the query response
ResultMetadata:
type: object
properties:
metadataType:
type: string
metadataItems:
type: array
items:
$ref: '#/components/schemas/ResultMetadataItem'
Badge:
type: object
description: A badge to be shown in the sidebar of the extension page in the registry
properties:
url:
type: string
description: Image URL of the badge
href:
type: string
description: The link users will follow when clicking the badge
description:
type: string
Criterion:
type: object
description: Filter criteria
properties:
filterType:
type: integer
format: int32
description: Filter type
values:
* 1 TAG
* 4 EXTENSION_ID
* 5 CATEGORY
* 7 EXTENSION_NAME
* 8 TARGET
* 9 FEATURED
* 10 SEARCH_TEXT
* 12 EXCLUDE_WITH_FLAGS
enum:
- '1'
- '4'
- '5'
- '7'
- '8'
- '9'
- '10'
- '12'
value:
type: string
description: Filter value
VersionTargetPlatformsJson:
type: object
properties:
version:
type: string
targetPlatforms:
type: array
items:
$ref: '#/components/schemas/TargetPlatformActive'
canDelete:
type: boolean
TargetPlatformActive:
type: object
description: Target platform of an extension version and whether it is active
properties:
targetPlatform:
type: string
description: Name of the target platform
enum:
- win32-x64
- win32-ia32
- win32-arm64
- linux-x64
- linux-arm64
- linux-armhf
- alpine-x64
- alpine-arm64
- darwin-x64
- darwin-arm64
- web
- universal
active:
type: boolean
description: Whether this extension version for this target platform is active
removed:
type: boolean
description: Whether this extension version for this target platform has been removed (soft-deleted)
User:
type: object
description: User data
properties:
success:
type: string
description: Indicates success of the operation (omitted if a more specific result type is returned)
warning:
type: string
description: Indicates a warning; when this is present, other properties can still be used
error:
type: string
description: Indicates an error; when this is present, all other properties should be ignored
loginName:
type: string
description: Login name
fullName:
type: string
description: Full name
avatarUrl:
type: string
description: URL to the user's avatar image
homepage:
type: string
description: URL to the user's profile page
provider:
type: string
description: Authentication provider (e.g. github)
required:
- loginName
Filter:
type: object
description: Query filter
properties:
criteria:
type: array
description: List of filter criteria
items:
$ref: '#/components/schemas/Criterion'
pageNumber:
type: integer
format: int32
description: Page number
pageSize:
type: integer
format: int32
description: Maximal number of results per page
sortBy:
type: integer
format: int32
default: 0
description: Query result sort key
values:
* 0 Relevance
* 4 InstallCount
* 5 PublishedDate
* 6 AverageRating
enum:
- '0'
- '4'
- '5'
- '6'
sortOrder:
type: integer
format: int32
default: 0
description: Query result sort order
values:
* 0 Descending
* 1 Ascending
enum:
- '0'
- '1'
ExtensionQueryResult:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/ResultItem'
ResultMetadataItem:
type: object
properties:
name:
type: string
count:
type: integer
format: int64