Overview
Public APIs for managing VS Codespaces
VSOnline is a development API from visualstudio.com. Requests are authenticated with a bearer token. It is served over HTTPS. Its OpenAPI description documents 152 endpoints.
At a glance
- Authentication
- Bearer token
- HTTPS
- Yes
- CORS
- Unknown
- Category
- Development
- Base URL
https://online.visualstudio.com- Version
- v1
- Endpoints
- 152
- OpenAPI
- Specification ↗
- Spec updated
- 2023-03-06
Make a first request
Replace the placeholders; the documentation says exactly where credentials go.
curl -X GET "https://online.visualstudio.com/api/v1/Environments" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://online.visualstudio.com/api/v1/Environments", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer YOUR_TOKEN",
},
});
const data = await response.json();
console.log(data);import requests
response = requests.request(
"GET",
"https://online.visualstudio.com/api/v1/Environments",
headers={
"Accept": "application/json",
"Authorization": "Bearer YOUR_TOKEN",
},
timeout=30,
)
print(response.json())Endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /api/v1/AgentTelemetry | — |
| POST | /api/v1/AgentTelemetry/standalone | — |
| GET | /api/v1/Agents/{family} | — |
| GET | /api/v1/Environments | — |
| POST | /api/v1/Environments | — |
| GET | /api/v1/Environments/{environmentId} | GetEnvironmentRoute |
| PATCH | /api/v1/Environments/{environmentId} | — |
| DELETE | /api/v1/Environments/{environmentId} | — |
| POST | /api/v1/Environments/{environmentId}/_callback | UpdateEnvironmentRoute |
| GET | /api/v1/Environments/{environmentId}/archive | — |
| POST | /api/v1/Environments/{environmentId}/archive | — |
| POST | /api/v1/Environments/{environmentId}/export | — |
| PATCH | /api/v1/Environments/{environmentId}/folder | — |
| GET | /api/v1/Environments/{environmentId}/heartbeattoken | — |
| POST | /api/v1/Environments/{environmentId}/notify | — |
| PUT | /api/v1/Environments/{environmentId}/ports/{port} | — |
| DELETE | /api/v1/Environments/{environmentId}/ports/{port} | — |
| PATCH | /api/v1/Environments/{environmentId}/restore | — |
| PUT | /api/v1/Environments/{environmentId}/secrets | — |
| POST | /api/v1/Environments/{environmentId}/shutdown | — |
| POST | /api/v1/Environments/{environmentId}/start | — |
| GET | /api/v1/Environments/{environmentId}/state | — |
| GET | /api/v1/Environments/{environmentId}/updates | — |
| POST | /api/v1/GenevaActions/Billing/resend | — |
| GET | /api/v1/GenevaActions/Billing/{environmentId} | — |
| GET | /api/v1/GenevaActions/Billing/{environmentId}/state-changes | — |
| POST | /api/v1/GenevaActions/Billing/{environmentId}/state-changes | — |
| POST | /api/v1/GenevaActions/Configuration/{target} | — |
| GET | /api/v1/GenevaActions/Configuration/{target}/{key} | — |
| DELETE | /api/v1/GenevaActions/Configuration/{target}/{key} | — |
| GET | /api/v1/GenevaActions/Environments/{environmentId} | — |
| DELETE | /api/v1/GenevaActions/Environments/{environmentId} | — |
| PUT | /api/v1/GenevaActions/Environments/{environmentId}/archive | — |
| GET | /api/v1/GenevaActions/Environments/{environmentId}/archived_storage_sas/{targetBlob} | — |
| PUT | /api/v1/GenevaActions/Environments/{environmentId}/shutdown | — |
| POST | /api/v1/GenevaActions/Environments/{environmentId}/upload/running/vm/logs | — |
| POST | /api/v1/GenevaActions/Pools/change-resource-deletion-setting | — |
| POST | /api/v1/GenevaActions/Pools/{poolCode}/rotate-pool | — |
| POST | /api/v1/GenevaActions/Pools/{target} | — |
| POST | /api/v1/GenevaActions/Prebuilds/pools/createorupdatesettings | — |
| POST | /api/v1/GenevaActions/Prebuilds/pools/delete | — |
| POST | /api/v1/GenevaActions/Privacy/refresh-profile-telemetry-properties | — |
| POST | /api/v1/GenevaActions/Resources/{resourceId}/under-investigation | — |
| POST | /api/v1/GenevaActions/VnetPoolDefinitions | — |
| DELETE | /api/v1/GenevaActions/VnetPoolDefinitions | — |
| POST | /api/v1/HeartBeat | — |
| GET | /api/v1/Locations | — |
| GET | /api/v1/Locations/{location} | — |
| POST | /api/v1/Prebuilds/pools/{poolId}/instances | — |
| PUT | /api/v1/Prebuilds/pools/{poolId}/instances | — |
| GET | /api/v1/Prebuilds/template/{environmentId} | GetTemplateInfoRoute |
| GET | /api/v1/Prebuilds/templates/repo/{repoId}/branch/{branchName}/hash/{prebuildHash}/location/{location}/skus | GetPrebuildReadinessRoute |
| GET | /api/v1/Sas | — |
| GET | /api/v1/Secrets | — |
| POST | /api/v1/Secrets | — |
| PUT | /api/v1/Secrets/{secretId} | — |
| DELETE | /api/v1/Secrets/{secretId} | — |
| GET | /api/v1/Tenant/{tenantId} | — |
| PUT | /api/v1/Tenant/{tenantId} | — |
| DELETE | /api/v1/Tenant/{tenantId} | — |
| POST | /api/v1/Tokens/plans/{planName}/deleteAllCodespaces | — |
| POST | /api/v1/Tokens/plans/{planName}/readAllCodespaces | — |
| POST | /api/v1/Tokens/plans/{planName}/writeCodespaces | — |
| POST | /api/v1/Tokens/plans/{planName}/writeDelegates | — |
| PUT | /api/v1/Tokens/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{providerNamespace}/plans/{resourceName} | — |
| POST | /api/v1/Tokens/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{providerNamespace}/plans/{resourceName}/deleteAllCodespaces | — |
| POST | /api/v1/Tokens/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{providerNamespace}/plans/{resourceName}/deleteAllEnvironments | — |
| POST | /api/v1/Tokens/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{providerNamespace}/plans/{resourceName}/readAllCodespaces | — |
| POST | /api/v1/Tokens/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{providerNamespace}/plans/{resourceName}/readAllEnvironments | — |
| POST | /api/v1/Tokens/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{providerNamespace}/plans/{resourceName}/writeCodespaces | — |
| POST | /api/v1/Tokens/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{providerNamespace}/plans/{resourceName}/writeDelegates | — |
| POST | /api/v1/Tokens/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{providerNamespace}/plans/{resourceName}/writeEnvironments | — |
| GET | /api/v1/Tunnel/{environmentId}/portInfo | — |
| POST | /api/v1/UserSubscriptions | — |
| DELETE | /api/v1/UserSubscriptions | — |
| GET | /api/v1/pools/default | — |
| PUT | /api/v1/subscriptions/{subscriptionId}/providers/GitHub.Network/{resourceType}/SubscriptionLifeCycleNotification | — |
| POST | /api/v1/subscriptions/{subscriptionId}/providers/GitHub.Network/{resourceType}/resourceReadBegin | — |
| PUT | /api/v1/subscriptions/{subscriptionId}/providers/Microsoft.Codespaces/plans/SubscriptionLifeCycleNotification | — |
| POST | /api/v1/subscriptions/{subscriptionId}/providers/Microsoft.Codespaces/plans/resourceReadBegin | — |
| PUT | /api/v1/subscriptions/{subscriptionId}/providers/Microsoft.VSOnline/plans/SubscriptionLifeCycleNotification | — |
| POST | /api/v1/subscriptions/{subscriptionId}/providers/Microsoft.VSOnline/plans/resourceReadBegin | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/resourceReadBegin | — |
| PUT | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName} | — |
| PATCH | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName} | — |
| DELETE | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName} | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName}/resourceCreationCompleted | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName}/resourceCreationValidate | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName}/resourceDeletionCompleted | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName}/resourceDeletionValidate | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName}/resourcePatchCompleted | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName}/resourcePatchValidate | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/GitHub.Network/{resourceType}/{resourceName}/resourceReadBegin | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Codespaces/plans/resourceReadBegin | — |
| PUT | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Codespaces/plans/{resourceName} | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Codespaces/plans/{resourceName}/deleteAllCodespaces | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Codespaces/plans/{resourceName}/deleteAllEnvironments | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Codespaces/plans/{resourceName}/readAllCodespaces | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Codespaces/plans/{resourceName}/readAllEnvironments | — |
| POST | /api/v1/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Codespaces/plans/{resourceName}/readDelegates | — |
Showing the first 100 of 152 endpoints; the full list is in the documentation.
Questions
Does the VSOnline API need an API key?
Yes. The VSOnline API uses Bearer token authentication; the documentation explains how to get credentials.
Does the VSOnline API support HTTPS?
Yes, the VSOnline API is served over HTTPS.
How many endpoints does the VSOnline API have?
Its OpenAPI description lists 152 endpoints in version v1. The first 100 are shown on this page.
What are alternatives to the VSOnline API?
Other Development APIs include Cloudflare, Azure DevOps, IPify, App Store Connect API, StackExchange.
Similar development APIs
Compare alternatives →Cloudflare
DevelopmentManage DNS, CDN, Workers and other services; documented with an official OpenAPI 3.0 spec
Azure DevOps
DevelopmentThe Azure DevOps basic components of a REST API request/response pair
IPify
DevelopmentA simple IP Address API
App Store Connect API
DevelopmentThe data structure that represents an app store connect api resource.
StackExchange
DevelopmentQ&A forum for developers
IPinfo
DevelopmentAnother simple IP Address API
Listed from APIs.guru (CC0).