For Agents
Provision, list, update, and delete Windows IoT device services in an Azure subscription, and check device-service name availability before creating a new one.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the DeviceServices, 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 DeviceServices API.
Provision a Windows IoT device service in a resource group
List Windows IoT device services at subscription or resource-group scope
Retrieve a specific device service and inspect its configuration
Update tags and configuration on an existing device service
GET STARTED
Use for: Provision a new Windows IoT device service in a resource group, List all Windows IoT device services in a subscription, Check whether a Windows IoT device service name is available, Update the tags on an existing Windows IoT device service
Not supported: Does not enrol or manage individual IoT devices, deliver firmware updates, or stream telemetry — use for the Microsoft.WindowsIoT device service resource lifecycle only.
Jentic publishes the only available OpenAPI document for DeviceServices, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for DeviceServices, keeping it validated and agent-ready. The API manages Windows IoT Device Services under Microsoft.WindowsIoT — the resource type that backs Windows IoT device fleets in Azure. It covers the create, read, update, and delete lifecycle of device service resources at subscription and resource-group scope plus the dedicated name-availability check needed before provisioning.
Delete a Windows IoT device service
Check whether a device service name is available before provisioning
Patterns agents use DeviceServices API for, with concrete tasks.
★ Windows IoT fleet onboarding
A team standing up a fleet of Windows IoT devices first provisions a Microsoft.WindowsIoT/deviceServices resource that anchors the fleet in Azure. The API lets an automation flow check the desired name, provision the resource in the target region, and tag it with project metadata before devices are enrolled.
Create a Windows IoT device service named 'fleet-prod-eu' in resource group 'iot-rg' in West Europe with project tag 'fleet=prod'
Self-service name validation
Before a portal lets an operator pick a device service name, it calls the name-availability check. This avoids a failed provisioning call and gives the operator immediate feedback on whether the chosen name is unique within the Microsoft.WindowsIoT namespace.
Check whether the Windows IoT device service name 'fleet-prod-eu' is available and return the conflict reason if it is taken
Decommissioning idle device services
When a Windows IoT project ends, the device service resource should be decommissioned so it stops accruing capacity. A cleanup job lists device services across the subscription, filters by an end-of-life tag, and deletes the matching resources without manual portal steps.
List device services in the subscription with tag 'lifecycle=eol' and delete each one after confirming the deletion criteria
Agent-driven IoT provisioning
An AI agent fronting a self-service IoT portal accepts a fleet provisioning request, searches Jentic for the device service create operation, validates the name, and provisions the resource. Jentic isolates the operator's Azure credentials so the agent never sees the underlying client secret.
Provision a device service for the fleet name supplied by the user, falling back to a numbered suffix if the desired name is not available
8 endpoints — jentic publishes the only available openapi specification for deviceservices, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/subscriptions/{subscriptionId}/providers/Microsoft.WindowsIoT/deviceServices
List Windows IoT device services in a subscription
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices
List device services in a resource group
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices/{deviceName}
Create or update a Windows IoT device service
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices/{deviceName}
Get a specific device service
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices/{deviceName}
Update a device service
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices/{deviceName}
Delete a device service
/subscriptions/{subscriptionId}/providers/Microsoft.WindowsIoT/checkDeviceServiceNameAvailability
Check device service name availability
/subscriptions/{subscriptionId}/providers/Microsoft.WindowsIoT/deviceServices
List Windows IoT device services in a subscription
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices
List device services in a resource group
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices/{deviceName}
Create or update a Windows IoT device service
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices/{deviceName}
Get a specific device service
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices/{deviceName}
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 windows iot device service') and Jentic returns the matching create operation with its required resource-group, device-name, location, and SKU parameters resolved from the spec.
Time to first call
Direct integration with the Microsoft.WindowsIoT API, including AAD setup and long-running provisioning polling, typically takes 1-2 days. Through Jentic: under 1 hour to first successful provisioning.
Alternatives and complements available in the Jentic catalogue.
DevSpacesManagement
Manages Dev Spaces controllers for Kubernetes-based development
Pick this when the agent is wiring up developer Kubernetes workspaces rather than IoT device fleets.
DeploymentScriptsClient
Runs ARM Deployment Scripts that may bootstrap IoT device services
Pick this when an ARM template needs an inline script to seed an IoT device service after creation.
DevTestLabsClient
Provisions DevTest Labs environments rather than Windows IoT fleets
Pick this when the workload is dev/test VM environments instead of Windows IoT devices.
Specific to using DeviceServices API through Jentic.
Why is there no official OpenAPI spec for DeviceServices?
Microsoft Azure does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call DeviceServices 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 Windows IoT Device Services 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 check whether a device service name is available before creating it?
Yes. POST /subscriptions/{subscriptionId}/providers/Microsoft.WindowsIoT/checkDeviceServiceNameAvailability accepts a candidate name and returns whether it is available, plus a reason and message when it is not. Call it before issuing PUT to avoid name-collision errors.
What are the rate limits for the Windows IoT Device Services 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. Provisioning is a long-running operation and should be polled with backoff.
How do I provision a device service through Jentic?
Search Jentic for 'create windows iot device service', load the schema for PUT .../deviceServices/{deviceName}, then execute with your subscriptionId, resourceGroupName, location, and SKU. The pip install jentic Python SDK uses the async search, load, execute pattern.
Is the Windows IoT Device Services API free?
There is no per-call charge for the management API itself; you pay for the Windows IoT Core Services subscription and consumption based on the SKU you select on the device service resource. Reads against the management plane are not separately metered.
Update a device service
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsIoT/deviceServices/{deviceName}
Delete a device service
/subscriptions/{subscriptionId}/providers/Microsoft.WindowsIoT/checkDeviceServiceNameAvailability
Check device service name availability