canonical: https://jentic.com/apis/azure.com/azure-portal-dashboards

# Microsoft Azure portal

Jentic publishes the only available OpenAPI specification for the Azure Portal dashboard API, keeping it validated and agent-ready. The Microsoft.Portal management API exposes 7 operations for managing shared dashboards in the Azure portal - the rectangular layouts of tiles (charts, markdown notes, resource lists) that engineering and operations teams pin into the portal home page. Use it to publish a dashboard programmatically as code, share it across a resource group, version it through CI, and tear down ephemeral dashboards when an investigation is finished.

## For AI agents

Provision and manage shared Azure portal dashboards (tile layouts) at subscription and resource group scope through 7 ARM operations on Microsoft.Portal.

## Scope

Does not produce metrics, run KQL queries, or render tile contents - use for managing shared Azure portal dashboard layouts only.

## Capabilities

- Create a shared portal dashboard from a JSON layout definition
- List shared dashboards in a subscription or in a specific resource group
- Retrieve a dashboard definition for export or version control
- Update an existing dashboard's tile layout, scope filters, or markdown content
- Delete dashboards used for short-lived investigations or retired services
- Promote dashboards from a development resource group to a production one
- List Microsoft.Portal provider operations supported on a subscription

## Use cases

### Dashboards as Code

Treat operational dashboards the same way you treat infrastructure - JSON definitions in a repository, deployed through CI. The API's create/update endpoint takes the dashboard layout in the request body, so a pipeline can render a dashboard from a template, apply environment-specific variables (subscription IDs, resource names), and push it to the target resource group. Drift between environments disappears because the source of truth is the repo, not what someone clicked together in the portal.

Example prompt: Read the dashboard JSON template at /dashboards/prod-overview.json, substitute the production subscription ID, and create or update the dashboard in resource group 'observability'

### Incident Dashboard Lifecycle

During an incident an SRE may stand up an ad-hoc dashboard pinning all the relevant resources, log queries, and metric charts for the incident's duration. After the incident closes the dashboard is no longer useful and should be removed. Listing dashboards in the incident resource group, identifying ones older than a threshold, and deleting them keeps the portal home page tidy without anyone needing to remember to clean up manually.

Example prompt: List dashboards in resource group 'incident-response', filter to those tagged 'incident' with createdDate older than 14 days, and delete each one

### Cross-Environment Dashboard Promotion

Promote a dashboard from a development resource group to production. The flow is: GET the dashboard from the source resource group, rewrite the embedded resource scopes (subscription IDs, resource group names) to point at production resources, and PUT the new dashboard to the target resource group. This pattern lets observability teams iterate on dashboards in a sandbox before exposing them to on-call engineers.

Example prompt: Get dashboard 'service-health' from resource group 'dashboards-dev', substitute every reference to subscription dev-sub with prod-sub, and create the dashboard in resource group 'dashboards-prod'

### AI Agent Dashboard Operator

An AI agent in an SRE workflow can publish and tear down portal dashboards through Jentic. The agent searches by intent ('create an azure portal dashboard'), Jentic returns the Dashboards_CreateOrUpdate operation with its schema, and the agent executes the call with managed Azure credentials. Listing, retrieval, and deletion follow the same intent-driven flow.

Example prompt: Search Jentic for 'create an Azure portal dashboard', load the Dashboards_CreateOrUpdate schema, and execute it with the supplied dashboard JSON in the target resource group

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Portal/dashboards | List all shared dashboards in a subscription |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Portal/dashboards | List dashboards in a resource group |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Portal/dashboards/{dashboardName} | Get a specific dashboard |
| GET | /providers/Microsoft.Portal/operations | List Microsoft.Portal provider operations |

## Key resources

- **Dashboard** — Create, list, retrieve, update, and delete shared Azure portal dashboards
- **Operations** — List Microsoft.Portal provider operations

## Why Jentic

- **Setup:** Wiring the Azure Portal dashboards API by hand means getting an Azure AD token from login.microsoftonline.com, sending every request to management.azure.com with the right preview api-version, and separating subscription-wide dashboard listing from resource-group-scoped calls yourself. Through Jentic you install once, import the portal API from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** This API puts the subscription id, resource group, and dashboard name in the URL path (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Portal/dashboards/{dashboardName}), so a rule can pin your agent to one dashboard in one resource group. You choose the operations it may call, so deleting a shared dashboard is not included unless you add it, leaving the agent to list and read layouts.
- **Credential handling:** Your Azure AD credential 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 'create an Azure portal dashboard' or 'list Azure dashboards', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without learning the Microsoft.Portal namespace.

## Related APIs

- **Azure Monitor** — Provides the metrics and log queries that dashboard tiles render.
- **Application Insights Management** — Provision the Application Insights resources whose data dashboards display.
- **Azure Advisor Management** — Provides recommendations that operations dashboards commonly surface.

## FAQ

### Why is there no official OpenAPI spec for the Azure Portal dashboard API?

Microsoft Azure does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call the Azure Portal dashboard API 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 Azure Portal dashboard API use?

It uses Azure Active Directory OAuth 2.0 against https://management.azure.com/ with the user_impersonation scope. The caller needs Contributor or a custom role with Microsoft.Portal/dashboards/* permissions on the resource group. Jentic stores service principal credentials encrypted and issues short-lived bearer tokens at execution time.

### Can I publish a dashboard from a JSON template through this API?

Yes. PUT to /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Portal/dashboards/{name} with the dashboard layout (lenses, parts, metadata) in the request body. The dashboard appears in the Azure portal under Shared Dashboards immediately after the call returns 201.

### What are the rate limits for the Azure Portal dashboard API?

Azure Resource Manager applies subscription-level throttling at roughly 1,200 reads and 1,200 writes per hour. Dashboard create and update operations are synchronous and typically complete in well under a second.

### How do I publish a dashboard through Jentic?

Run pip install jentic and search for 'create an azure portal dashboard'. Jentic returns the Dashboards_CreateOrUpdate operation; load its schema and execute it with your resource group, dashboard name, and the JSON layout body.

### Can I export an existing portal dashboard to JSON through this API?

Yes. GET /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Portal/dashboards/{name} returns the full dashboard definition, including its lenses and tile parts, ready to commit into version control or apply to another environment.

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

Yes. Because you run Jentic One yourself, your own rules decide which Microsoft.Portal operations the agent may call and which Azure credential it uses. Since the subscription id, resource group, and dashboard name live in the URL path, a rule can pin the agent to a single dashboard in one resource group and grant only listing and reading of layouts. Create, update, and delete stay off unless you explicitly add them, so the agent cannot tear down a shared dashboard you did not authorize.
