vsonline — quality + safety report

In the Skillier index (lap__visualstudio-com-visualstudio-com) · scanned 2026-06-03 · engine: builtin+triage

A
Quality
90/100
Safety

✓ Clean — no heuristic safety flags surfaced.

Heuristic flags from the builtin scanner, which is known to over-flag (it trips on legitimate env-reading integrations, security skills, and library .eval calls). This is NOT an authoritative malicious verdict — re-scan with SkillSpector for the authoritative result. Run the authoritative scan →

Skillproof quality grade A

📇 This skill is in the Skillier index (curated · deduped · quality-filtered). Install Skillier to route & load it into your AI client.

Quality notes

Skill is large (~2137 tokens)
medium · quality · body
→ Tighten to the essential procedure; move long reference material to linked files.
No example
low · quality · body
→ Add at least one worked example (input → expected action/output).

About this skill

VSOnline API skill. Use when working with VSOnline for api, health, internal. Covers 61 endpoints.

📄 Read the SKILL.md
---
name: vsonline
description: "VSOnline API skill. Use when working with VSOnline for api, health, internal. Covers 61 endpoints."
version: 1.0.0
generator: lapsh
---

# VSOnline
API version: v1

## Auth
Bearer bearer

## Base URL
https://online.visualstudio.com

## Setup
1. Set Authorization header with your Bearer token
2. GET /api/v1/Billing -- verify access
3. POST /api/v1/AgentTelemetry -- create first AgentTelemetry

## Endpoints

61 endpoints across 5 groups. See references/api-spec.lap for full details.

### api
| Method | Path | Description |
|--------|------|-------------|
| GET | /api/v1/Agents/{family} |  |
| POST | /api/v1/AgentTelemetry |  |
| POST | /api/v1/AgentTelemetry/standalone |  |
| PUT | /api/v1/Billing/ensure_plan |  |
| GET | /api/v1/Billing |  |
| GET | /api/v1/GenevaActions/Billing/{environmentId} |  |
| POST | /api/v1/GenevaActions/Billing/resend |  |
| POST | /api/v1/GenevaActions/Billing/{environmentId}/state-changes |  |
| GET | /api/v1/GenevaActions/Billing/{environmentId}/state-changes |  |
| GET | /api/v1/GenevaActions/Configuration/{key} |  |
| DELETE | /api/v1/GenevaActions/Configuration/{key} |  |
| POST | /api/v1/GenevaActions/Configuration |  |
| GET | /api/v1/Environments/{environmentId} |  |
| DELETE | /api/v1/Environments/{environmentId} |  |
| PATCH | /api/v1/Environments/{environmentId} |  |
| GET | /api/v1/Environments |  |
| POST | /api/v1/Environments |  |
| POST | /api/v1/Environments/{environmentId}/shutdown |  |
| POST | /api/v1/Environments/{environmentId}/start |  |
| POST | /api/v1/Environments/{environmentId}/archive |  |
| GET | /api/v1/Environments/{environmentId}/archive |  |
| POST | /api/v1/Environments/{environmentId}/export |  |
| PATCH | /api/v1/Environments/{environmentId}/restore |  |
| PATCH | /api/v1/Environments/{environmentId}/folder |  |
| PUT | /api/v1/Environments/{environmentId}/secrets |  |
| POST | /api/v1/Environments/{environmentId}/notify |  |
| GET | /api/v1/GenevaActions/Environments/{environmentId} |  |
| DELETE | /api/v1/GenevaActions/Environments/{environmentId} |  |
| PUT | /api/v1/GenevaActions/Environments/{environmentId}/shutdown |  |
| PUT | /api/v1/GenevaActions/Environments/{environmentId}/archive |  |
| GET | /api/v1/GenevaActions/Environments/storage/{environmentIdOrFriendlyName}/{targetBlob} |  |
| POST | /api/v1/GenevaActions/Environments/{environmentId}/upload/running/vm/logs |  |
| GET | /api/v1/Environments/{environmentId}/state |  |
| POST | /api/v1/GenevaActions/Failover/start/{region} |  |
| POST | /api/v1/HeartBeat |  |
| GET | /api/v1/Locations |  |
| GET | /api/v1/Locations/{location} |  |
| GET | /api/v1/pools/default |  |
| POST | /api/v1/GenevaActions/Pools/rotate-pools |  |
| POST | /api/v1/GenevaActions/Pools |  |
| POST | /api/v1/GenevaActions/Pools/change-resource-deletion-setting |  |
| POST | /api/v2/prebuilds/templates |  |
| POST | /api/v2/prebuilds/templates/{templateId}/updatestatus |  |
| GET | /api/v2/prebuilds/templates/skus/repo/{repoId}/branch/{branchName}/hash/{prebuildHash}/location/{location}/devcontainerpath/{devContainerPath} |  |
| POST | /api/v2/prebuilds/delete |  |
| POST | /api/v2/prebuilds/templates/updatemaxversions |  |
| PUT | /api/v2/prebuilds/pools/{poolId}/instances |  |
| POST | /api/v2/prebuilds/pools/{poolId}/instances |  |
| GET | /api/v2/prebuilds/template/{environmentId} |  |
| POST | /api/v1/GenevaActions/Prebuilds/pools/delete |  |
| POST | /api/v1/GenevaActions/Prebuilds/pools/createorupdatesettings |  |
| POST | /api/v1/GenevaActions/Resources/{resourceId}/under-investigation |  |
| POST | /api/v1/GenevaActions/Resources/{resourceId}/storage-credentials |  |
| GET | /api/v1/Tunnel/{environmentId}/portInfo |  |
| POST | /api/v1/GenevaActions/VnetPoolDefinitions |  |
| DELETE | /api/v1/GenevaActions/VnetPoolDefinitions |  |

### health
| Method | Path | Description |
|--------|------|-------------|
| GET | /health |  |

### internal
| Method | Path | Description |
|--------|------|-------------|
| GET | /internal/Netmon/correlation |  |

### .well-known
| Method | Path | Description |
|--------|------|-------------|
| GET | /.well-known/jwks |  |
| GET | /.well-known/openid-configuration |  |

### warmup
| Method | Path | Description |
|--------|------|-------------|
| GET | /warmup |  |

## Common Questions

Match user requests to endpoints in references/api-spec.lap. Key patterns:
- "Get Agent details?" -> GET /api/v1/Agents/{family}
- "Create a AgentTelemetry?" -> POST /api/v1/AgentTelemetry
- "Create a standalone?" -> POST /api/v1/AgentTelemetry/standalone
- "List all Billing?" -> GET /api/v1/Billing
- "Get Billing details?" -> GET /api/v1/GenevaActions/Billing/{environmentId}
- "Create a resend?" -> POST /api/v1/GenevaActions/Billing/resend
- "Create a state-change?" -> POST /api/v1/GenevaActions/Billing/{environmentId}/state-changes
- "List all state-changes?" -> GET /api/v1/GenevaActions/Billing/{environmentId}/state-changes
- "Get Configuration details?" -> GET /api/v1/GenevaActions/Configuration/{key}
- "Delete a Configuration?" -> DELETE /api/v1/GenevaActions/Configuration/{key}
- "Create a Configuration?" -> POST /api/v1/GenevaActions/Configuration
- "Get Environment details?" -> GET /api/v1/Environments/{environmentId}
- "Delete a Environment?" -> DELETE /api/v1/Environments/{environmentId}
- "Partially update a Environment?" -> PATCH /api/v1/Environments/{environmentId}
- "List all Environments?" -> GET /api/v1/Environments
- "Create a Environment?" -> POST /api/v1/Environments
- "Create a shutdown?" -> POST /api/v1/Environments/{environmentId}/shutdown
- "Create a start?" -> POST /api/v1/Environments/{environmentId}/start
- "Create a archive?" -> POST /api/v1/Environments/{environmentId}/archive
- "List all archive?" -> GET /api/v1/Environments/{environmentId}/archive
- "Create a export?" -> POST /api/v1/Environments/{environmentId}/export
- "Create a notify?" -> POST /api/v1/Environments/{environmentId}/notify
- "Get Environment details?" -> GET /api/v1/GenevaActions/Environments/{environmentId}
- "Delete a Environment?" -> DELETE /api/v1/GenevaActions/Environments/{environmentId}
- "Get storage details?" -> GET /api/v1/GenevaActions/Environments/storage/{environmentIdOrFriendlyName}/{targetBlob}
- "Create a log?" -> POST /api/v1/GenevaActions/Environments/{environmentId}/upload/running/vm/logs
- "List all state?" -> GET /api/v1/Environments/{environmentId}/state
- "List all health?" -> GET /health
- "Create a HeartBeat?" -> POST /api/v1/HeartBeat
- "List all Locations?" -> GET /api/v1/Locations
- "Get Location details?" -> GET /api/v1/Locations/{location}
- "List all correlation?" -> GET /internal/Netmon/correlation
- "List all jwks?" -> GET /.well-known/jwks
- "List all openid-configuration?" -> GET /.well-known/openid-configuration
- "List all default?" -> GET /api/v1/pools/default
- "Create a rotate-pool?" -> POST /api/v1/GenevaActions/Pools/rotate-pools
- "Create a Pool?" -> POST /api/v1/GenevaActions/Pools
- "Create a change-resource-deletion-setting?" -> POST /api/v1/GenevaActions/Pools/change-resource-deletion-setting
- "Create a template?" -> POST /api/v2/prebuilds/templates
- "Create a updatestatus?" -> POST /api/v2/prebuilds/templates/{templateId}/updatestatus
- "Get devcontainerpath details?" -> GET /api/v2/prebuilds/templates/skus/repo/{repoId}/branch/{branchName}/hash/{prebuildHash}/location/{location}/devcontainerpath/{devContainerPath}
- "Create a delete?" -> POST /api/v2/prebuilds/delete
- "Create a updatemaxversion?" -> POST /api/v2/prebuilds/templates/updatemaxversions
- "Create a instance?" -> POST /api/v2/prebuilds/pools/{poolId}/instances
- "Get template details?" -> GET /api/v2/prebuilds/template/{environmentId}
- "Create a delete?" -> POST /api/v1/GenevaActions/Prebuilds/pools/delete
- "Create a createorupdatesetting?" -> POST /api/v1/GenevaActions/Prebuilds/pools/createorupdatesettings
- "Create a under-investigation?" -> POST /api/v1/GenevaActions/Resources/{resourceId}/under-investigation
- "Create a storage-credential?" -> POST /api/v1/GenevaActions/Resources/{resourceId}/storage-credentials
- "List all portInfo?" -> GET /api/v1/Tunnel/{environmentId}/portInfo
- "Create a VnetPoolDefinition?" -> POST /api/v1/GenevaActions/VnetPoolDefinitions
- "List all warmup?" -> GET /warmup
- "How to authenticate?" -> See Auth section

## Response Tips
- Check response schemas in references/api-spec.lap for field details
- Create/update endpoints typically return the created/updated object

## References
- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas

> Generated from the official API spec by [LAP](https://lap.sh)
Scan or optimize your own skill →

Want a live grade + an embeddable README badge? Run your skill through the free scanner.

Graded independently by Skillproof — nothing to sell the author. Quality is mechanical + corpus-grounded; safety flags are heuristic (builtin+triage), not a malicious verdict.