For Agents
Provision and manage Azure IoTSpaces Graph service instances and check service name availability via Azure Resource Manager.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the IoTSpacesClient, 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 IoTSpacesClient API.
Create or update an IoTSpaces Graph service instance in a resource group
List Graph service instances across a subscription or filtered by resource group
Retrieve a single Graph instance by resource name
Check whether a candidate IoTSpaces service name is available before deploy
GET STARTED
Use for: I need to provision a new IoTSpaces Graph service, List all IoTSpaces instances in my subscription, Check whether the name 'acme-spaces' is available for IoTSpaces, Retrieve a specific IoTSpaces instance by resource name
Not supported: Does not handle spatial graph queries, telemetry routing, or device-side data ingestion — use for IoTSpaces Graph control-plane management only.
Jentic publishes the only available OpenAPI document for IoTSpacesClient, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for IoTSpacesClient, keeping it validated and agent-ready. The Microsoft.IoTSpaces resource provider (the predecessor of Azure Digital Twins) manages IoTSpaces Graph service instances under an Azure subscription. It exposes 8 ARM endpoints to create, update, list, and delete Graph instances, check service name availability, and enumerate provider operations.
Enumerate Microsoft.IoTSpaces operations exposed on the subscription
Patterns agents use IoTSpacesClient API for, with concrete tasks.
★ Spatial Intelligence for Smart Buildings
Building operators provision an IoTSpaces Graph instance per facility to model rooms, floors, and zones, then attach sensors and devices to those nodes for spatial telemetry. The control-plane API drives the create-and-update lifecycle through ARM, so the same automation that provisions IoT Hubs can stand up a Graph instance alongside. Setup of a Graph instance is a few minutes through the API.
Check name availability for 'hq-spaces', then PUT a new IoTSpaces Graph in resource group 'rg-iot' using sku F1.
Subscription-Wide IoTSpaces Inventory
Operations teams enumerate every IoTSpaces Graph instance across a subscription to track sprawl, audit billing, and align tagging with other IoT resources. Both subscription-scoped and resource-group-scoped listings are available, so the inventory pivots cleanly by team. Inventory completes in seconds for typical fleets.
List every IoTSpaces Graph in the subscription and emit a CSV with name, resourceGroup, location, and sku.
Migration Discovery to Azure Digital Twins
Teams planning migration from IoTSpaces to its successor Azure Digital Twins start by enumerating existing IoTSpaces Graph instances and capturing their location and sku. The output drives the migration plan because each Graph instance maps to an ADT instance in the new model. Discovery typically takes minutes.
List every IoTSpaces Graph in the subscription and produce a JSON migration plan keyed by resourceName.
Agent-Driven IoTSpaces Operations via Jentic
An AI ops agent can stand up and audit IoTSpaces Graph instances through Jentic without holding raw Azure AD credentials. The agent searches Jentic for 'create an Azure IoTSpaces graph', loads the operation schema, and executes against Microsoft.IoTSpaces. Jentic's MAXsystem injects a scoped bearer token for management.azure.com.
Use the Jentic MCP tool azure_iotspaces_create_graph to provision IoTSpaces Graph 'demo-spaces' in resource group 'rg-iot'.
8 endpoints — jentic publishes the only available openapi specification for iotspacesclient, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/subscriptions/{subscriptionId}/providers/Microsoft.IoTSpaces/Graph
List IoTSpaces Graph instances in the subscription
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTSpaces/Graph
List IoTSpaces Graph instances in a resource group
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTSpaces/Graph/{resourceName}
Create or update an IoTSpaces Graph
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTSpaces/Graph/{resourceName}
Get a single IoTSpaces Graph by name
/subscriptions/{subscriptionId}/providers/Microsoft.IoTSpaces/checkNameAvailability
Check if an IoTSpaces service name is available
/subscriptions/{subscriptionId}/providers/Microsoft.IoTSpaces/Graph
List IoTSpaces Graph instances in the subscription
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTSpaces/Graph
List IoTSpaces Graph instances in a resource group
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTSpaces/Graph/{resourceName}
Create or update an IoTSpaces Graph
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTSpaces/Graph/{resourceName}
Get a single IoTSpaces Graph by name
/subscriptions/{subscriptionId}/providers/Microsoft.IoTSpaces/checkNameAvailability
Check if an IoTSpaces service name is available
Three things that make agents converge on Jentic-routed access.
Credential isolation
Azure AD OAuth 2.0 client secrets for management.azure.com are stored encrypted in the Jentic vault (MAXsystem). Agents receive scoped bearer tokens — raw client secrets never enter the agent's context.
Intent-based discovery
Agents search Jentic by intent (e.g. 'create an Azure IoTSpaces graph') and Jentic returns the matching Microsoft.IoTSpaces operation with its parameter schema.
Time to first call
Direct IoTSpaces RP integration: 1-2 days to wire AAD against the management audience and handle ARM responses. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Azure IoT Hub
IoT Hub ingests device messages that an IoTSpaces Graph projects into spatial nodes.
Use IoT Hub when the next step is wiring device telemetry into the spatial model.
Azure IoT Central
IoT Central is a SaaS app shell that includes its own modelling without IoTSpaces.
Choose IoT Central when the team needs a managed app rather than a custom spatial graph.
Azure IoT Device Provisioning Service
DPS handles zero-touch onboarding for the devices that feed into a spatial graph.
Use DPS to onboard devices automatically before mapping them onto IoTSpaces nodes.
Specific to using IoTSpacesClient API through Jentic.
Why is there no official OpenAPI spec for IoTSpacesClient?
Microsoft does not publish a maintained OpenAPI 3 specification for the legacy Microsoft.IoTSpaces resource provider. Jentic generates and maintains this spec so that AI agents and developers can call IoTSpacesClient 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 IoTSpacesClient 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 Jentic vault (MAXsystem) and a scoped bearer token is injected per call so the agent never sees raw secrets.
Can I check service name availability before creating an IoTSpaces graph?
Yes. POST to /subscriptions/{subscriptionId}/providers/Microsoft.IoTSpaces/checkNameAvailability with the candidate name in the request body. The response indicates whether the name is taken and surfaces a reason code if it is invalid.
What are the rate limits for IoTSpacesClient?
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 IoTSpaces RP itself does not document tighter management-plane limits.
How do I provision an IoTSpaces graph through Jentic?
Run pip install jentic, then search Jentic with 'create an Azure IoTSpaces graph', load the create-or-update operation, and execute with subscriptionId, resourceGroupName, resourceName, location, and sku. Jentic returns the deployed resource.
Should I be using IoTSpaces or Azure Digital Twins?
For new workloads, Azure Digital Twins is the supported successor to IoTSpaces and offers a richer DTDL-based modelling surface. Use this API only when you are operating an existing IoTSpaces deployment that has not yet been migrated.