canonical: https://jentic.com/apis/azure.com/iotcentralclient

# Microsoft Azure IotCentralClient

Jentic publishes the only available OpenAPI specification for IotCentralClient, keeping it validated and agent-ready. The Microsoft.IoTCentral resource provider API manages Azure IoT Central applications in an Azure subscription. It exposes 10 ARM endpoints to create and update IoT Central apps, list them by subscription or resource group, browse the catalogue of app templates, and check that a chosen name and subdomain are available before provisioning.

## For AI agents

Provision and manage Azure IoT Central applications, list app templates, and validate app names and subdomains via Azure Resource Manager.

## Scope

Does not handle in-app device messaging, rules, dashboards, or telemetry - use for IoT Central application provisioning and inventory only.

## Capabilities

- Create or update an IoT Central application in a resource group
- List all IoT Central applications across a subscription or filtered by resource group
- Browse the catalogue of available IoT Central app templates
- Check whether a candidate IoT Central application name is available
- Check whether a candidate subdomain is available before provisioning
- Enumerate Microsoft.IoTCentral operations exposed on the subscription

## Use cases

### Provisioning Customer-Specific IoT Central Tenants

SaaS providers that resell IoT Central to their customers script the creation of a new IoT Central application per customer, including subdomain availability checks before commit. The API provides checkSubdomainAvailability and checkNameAvailability so the provisioning flow fails fast on collisions. End-to-end provisioning of a new tenant is a few minutes through ARM.

Example prompt: Check subdomain availability for 'customer-acme', then if available PUT a new IoT Central app named 'customer-acme' in resource group 'rg-iot' using the ST1 sku.

### Subscription-Wide IoT Central Inventory

Operations teams enumerate every IoT Central app across a subscription to track sprawl, audit billing, and align tagging. The API supports both a subscription-wide list and a resource-group-scoped list, so the inventory script can pivot by team or environment. Inventory completes in seconds for typical fleets.

Example prompt: List all IoTApps in the subscription and emit a CSV with name, resourceGroup, location, and sku.

### Template-Driven Application Bootstrapping

Pick the right IoT Central template for a given vertical by listing /appTemplates and matching by name or industry tag, then provision the app referencing that template. Because templates are queried separately from app creation, automation can validate the template choice before issuing the PUT. Bootstrapping a templated app takes minutes.

Example prompt: List appTemplates and pick the one whose name contains 'retail', then provision an IoT Central app referencing that template.

### Agent-Driven IoT Central Provisioning via Jentic

An AI agent can stand up IoT Central applications through Jentic without holding raw Azure AD credentials. The agent searches Jentic for 'create an Azure IoT Central application', loads the operation schema, and executes with subscriptionId, resourceGroupName, and the desired subdomain. Jentic's your Jentic One instance injects a scoped bearer token for management.azure.com.

Example prompt: Use the Jentic MCP tool azure_iotcentral_create_app to create app 'demo-fleet' in resource group 'rg-iot' with subdomain 'demo-fleet'.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/IoTApps | List IoT Central apps in the subscription |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/IoTApps | List IoT Central apps in a resource group |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/IoTApps/{resourceName} | Create or update an IoT Central app |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/checkNameAvailability | Check whether an app name is available |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/checkSubdomainAvailability | Check whether a subdomain is available |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/appTemplates | List available app templates |

## Key resources

- **IoTApps** — IoT Central application resources in a subscription or resource group
- **AppTemplates** — Catalogue of templates that bootstrap a new IoT Central app for a given vertical
- **NameAvailability** — Pre-flight checks for application name and subdomain collisions
- **Operations** — Microsoft.IoTCentral operations advertised by the resource provider

## Why Jentic

- **Setup:** Wiring the IoT Central management API by hand means registering an Azure AD app, negotiating OAuth 2.0 tokens for management.azure.com, and carrying subscription and resource-group scope through every provisioning call. Through Jentic you install once, import IotCentralClient from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** This API puts the IoT Central application in the URL path (/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/IoTApps/{resourceName}), so a rule can pin your agent to one application: it can read and check availability for that app. You choose the operations it may call, so creating or replacing an application is not included unless you add it.
- **Credential handling:** Your Azure AD credential for the IoT Central control plane is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list IoT Central applications' or 'check an IoT Central subdomain', and Jentic returns the matching IoT Central operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Azure IoT Hub** — IoT Hub is the unmanaged building block under IoT Central; choose it when you want raw device messaging without the IoT Central UI.
- **Azure IoT Device Provisioning Service** — DPS handles zero-touch device provisioning into IoT Hub or IoT Central applications.
- **Azure Digital Twins (IoT Spaces)** — Digital Twins models the physical environment that IoT Central apps observe.

## FAQ

### Why is there no official OpenAPI spec for IotCentralClient?

Microsoft does not publish a maintained OpenAPI 3 specification for the Microsoft.IoTCentral resource provider. Jentic generates and maintains this spec so that AI agents and developers can call IotCentralClient via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the IotCentralClient use?

It uses Azure Active Directory OAuth 2.0 against management.azure.com with the user_impersonation scope, the standard ARM auth. Through Jentic the AAD client secret is held in the your Jentic One instance and a scoped bearer token is injected per call so the agent never sees raw secrets.

### Can I check subdomain availability before creating an app?

Yes. POST to /subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/checkSubdomainAvailability with the candidate subdomain in the request body. The response indicates whether it is taken and surfaces a reason code if it is invalid.

### What are the rate limits for IotCentralClient?

It runs on the Azure Resource Manager plane and inherits ARM throttling - typically 12,000 reads and 1,200 writes per hour per subscription, surfaced via x-ms-ratelimit-remaining-subscription-* headers. The IoT Central RP itself does not document tighter limits at the management surface.

### How do I create an IoT Central app through Jentic?

Run pip install jentic, then search Jentic with 'create an Azure IoT Central application', load the create-app operation, and execute with subscriptionId, resourceGroupName, resourceName, location, and subdomain. Jentic returns the deployed app resource.

### Does this API manage devices inside an IoT Central app?

No. This is the management plane that creates and tracks IoT Central application resources. To manage devices, dashboards, rules, and telemetry inside an IoT Central app, use the IoT Central per-application data-plane API at {subdomain}.azureiotcentral.com instead.

### Can I limit what my agent is allowed to do with the Microsoft Azure IoT Central API?

Yes. Because you run Jentic One yourself, your own rules decide which IoT Central operations and credentials your agent may use. Since this API carries the application in the URL path (/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/IoTApps/{resourceName}), a rule can pin the agent to a single app so it only lists apps and checks name or subdomain availability. Higher-impact calls such as creating or replacing an IoT Central application are excluded unless you explicitly grant them, and the stored Azure AD credential is injected at execution time rather than exposed to the agent.
