For Agents
Manage Azure DevTest Labs end-to-end — create labs and lab VMs, apply artefacts and ARM templates, schedule auto-shutdown, enforce policies, and manage formulas and custom images.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the DevTestLabsClient, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with DevTestLabsClient API.
Create labs and provision lab virtual machines from formulas, custom images, or marketplace images
Apply artefacts and ARM-template-based environments to lab VMs
Schedule auto-shutdown and auto-start on labs and individual VMs
Define and enforce per-user policies including VM-per-user, gallery image, and allowed VM sizes
GET STARTED
Use for: Create a DevTest Lab in a resource group, Provision a lab virtual machine from a formula, Apply an artefact to an existing lab VM, Schedule auto-shutdown at 19:00 on every VM in a lab
Not supported: Does not manage Azure subscriptions, run application workloads inside provisioned VMs, or handle billing — use for Microsoft.DevTestLab lab and lab-resource lifecycle only.
Jentic publishes the only available OpenAPI document for DevTestLabsClient, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for DevTestLabsClient, keeping it validated and agent-ready. The API is the full management surface for Azure DevTest Labs under Microsoft.DevTestLab — labs, virtual machines, formulas, custom images, ARM templates, artifacts, schedules, policies, environments, and disks. Across 132 endpoints it covers every step of provisioning self-service dev/test environments, scheduling auto-shutdown, and enforcing per-user quotas without giving developers direct subscription access.
Manage formulas, custom images, secrets, and disks owned by lab users
List artifact sources, ARM templates, and notification channels for a lab
Patterns agents use DevTestLabsClient API for, with concrete tasks.
★ Self-service dev/test environments
Engineering organisations use DevTest Labs to give developers self-service access to VMs and full ARM-template environments without granting subscription-level access. The API provisions the lab, attaches policies and artefact sources, and lets each developer spin up VMs that automatically shut down at the configured time, controlling cost without manual intervention.
Create a DevTest Lab named 'platform-lab' in resource group 'lab-rg', attach the corporate artefact source, and set auto-shutdown to 19:00 in the local time zone
Cost-controlled VM provisioning
Lab admins enforce limits on which VM sizes developers can pick, how many VMs a single user can run, and which gallery images are allowed. The policies and policy-set endpoints let an automation flow apply these guardrails consistently across every lab in the subscription.
Apply a policy on lab 'platform-lab' that restricts allowed VM sizes to Standard_B2ms and Standard_D2s_v3 and caps each user at 3 VMs
Reproducible environment templates
Teams distribute reproducible environments as DevTest Labs formulas and ARM-template environments. Developers pick from a catalogue, the lab provisions the matching environment, and artefacts run automatically on first boot to install required tooling — turning environment setup into a one-click action.
Provision a lab VM from formula 'fullstack-dev' on lab 'platform-lab' for the requesting user and apply the 'install-corporate-tooling' artefact after boot
Auto-shutdown sweep
Cost reports often surface lab VMs that escape auto-shutdown because they were created outside the standard provisioning flow. A nightly sweep iterates labs across the subscription, lists running VMs, and attaches the standard shutdown schedule to any VM missing one — capping idle spend without disrupting active work.
Walk every lab in the subscription, list its VMs, and attach the standard 19:00 shutdown schedule to any VM that does not already have one
Agent-driven environment hand-out
An AI agent fronting an internal developer portal accepts a 'give me a workspace' request, searches Jentic for the lab VM create operation, picks a formula based on the requested role, and provisions the VM with the right artefacts. Jentic isolates the lab admin's Azure credentials so the agent never sees the underlying client secret.
Provision a lab VM from formula 'fullstack-dev' for the user 'alice@example.com' and confirm the auto-shutdown schedule is attached
132 endpoints — jentic publishes the only available openapi specification for devtestlabsclient, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs
List labs in a subscription
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs
List labs in a resource group
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources
List artefact sources on a lab
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/armtemplates
List ARM templates from an artefact source
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/armtemplates/{name}
Get a specific ARM template
/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/schedules
List global schedules across the subscription
/providers/Microsoft.DevTestLab/operations
List Microsoft.DevTestLab provider operations
/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs
List labs in a subscription
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs
List labs in a resource group
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources
List artefact sources on a lab
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/armtemplates
List ARM templates from an artefact source
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/armtemplates/{name}
Three things that make agents converge on Jentic-routed access.
Credential isolation
Azure AD OAuth 2.0 client credentials are stored encrypted in the Jentic vault. Agents receive a scoped bearer token at execute time; client secrets and refresh tokens never reach the agent's context.
Intent-based discovery
Agents search by intent (e.g., 'provision lab vm from formula') and Jentic returns the matching virtualmachines createOrUpdate operation with its required lab-name, vm-name, and formula parameters resolved from the spec.
Time to first call
Direct integration with the 132-endpoint DevTest Labs surface, including AAD setup, long-running operation polling, and policy modelling, typically takes 3-5 days. Through Jentic: under 1 hour to first successful lab VM provisioning.
Alternatives and complements available in the Jentic catalogue.
DevSpacesManagement
Provides Kubernetes-based per-developer namespaces instead of VM labs
Pick this when the developer experience is Kubernetes-based rather than VM-based.
DeploymentScriptsClient
Runs inline ARM Deployment Scripts that may seed lab artefacts
Pick this when an ARM template needs an inline script step alongside DevTest Labs provisioning.
DeviceServices
Manages Windows IoT device services rather than dev/test VMs
Pick this when the workload is IoT fleets rather than developer VMs.
DeletedWebApps API Client
Surfaces soft-deleted App Service apps that may have hosted lab webhooks
Pick this when investigating App Service apps that disappeared from the same subscription as a lab.
Specific to using DevTestLabsClient API through Jentic.
Why is there no official OpenAPI spec for DevTestLabsClient?
Microsoft Azure does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call DevTestLabsClient via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the DevTest Labs API use?
The API runs through Azure Resource Manager and uses OAuth 2.0 bearer tokens issued by Azure Active Directory. Through Jentic, the AAD client secret or managed identity refresh token is held in the encrypted vault and a short-lived access token is supplied at execute time so the bearer token never appears in the agent's context.
Can I provision a lab VM from a formula with this API?
Yes. PUT under .../labs/{labName}/virtualmachines/{name} accepts a payload referencing a formula or custom image and creates the VM in the lab. The call returns immediately with a long-running operation; poll the VM resource until provisioningState reaches Succeeded before claiming or applying artefacts.
What are the rate limits for the DevTest Labs API?
Azure Resource Manager applies subscription-level read and write throttles (around 12,000 reads per hour and 1,200 writes per hour per region per subscription) and returns 429 with a Retry-After header when exceeded. Lab-scoped operations like listing artefacts share the read budget, so cache results across short windows.
How do I attach an auto-shutdown schedule to a lab through Jentic?
Search Jentic for 'attach auto shutdown schedule devtest lab', load the schema for the schedule createOrUpdate operation under .../labs/{labName}/schedules/{name}, then execute with the desired daily recurrence and time zone. The pip install jentic Python SDK uses the async search, load, execute pattern.
Is the DevTest Labs API free?
There is no per-call charge for the management API itself; Azure DevTest Labs bills the underlying VMs, disks, storage, and network according to standard Azure pricing. The lab construct is free — costs come from the resources you provision through it.
Get a specific ARM template
/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/schedules
List global schedules across the subscription
/providers/Microsoft.DevTestLab/operations
List Microsoft.DevTestLab provider operations