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

# Microsoft Azure SubscriptionClient

Jentic publishes the only available OpenAPI specification for SubscriptionClient, keeping it validated and agent-ready. The User Subscription Management Client exposes the public-tenant offers catalogue used during Azure subscription acquisition, including offers presented directly and offers presented via delegated providers. It supports listing offers and retrieving a specific offer scoped to a delegated provider id. Use it to enumerate the subscription offers a tenant can acquire and to integrate the offer catalogue into custom signup or procurement flows.

## For AI agents

List the Azure subscription offers available to a tenant, including delegated-provider offers, for procurement and signup flows.

## Scope

Does not create subscriptions, manage billing, or transact purchases - use for listing Azure subscription offers (public and delegated-provider) only.

## Capabilities

- List the public offers a tenant can acquire to create new subscriptions
- List the offers presented through a specific delegated provider
- Retrieve a specific delegated-provider offer by name
- Surface offer metadata such as plan name, identifiers, and entitlements
- Drive a custom signup or procurement UI from a live offer catalogue

## Use cases

### Custom Subscription Signup Flow

A managed-service provider building a self-service portal needs to show prospective customers the subscription offers they can sign up for, including any partner-mediated plans. SubscriptionClient surfaces both the public offers list and the offers exposed by a specific delegated provider. The portal calls Offers_List during page load and renders the live catalogue without hard-coding offer ids.

Example prompt: Call GET /offers to list public Azure subscription offers, then call /delegatedProviders/{delegatedProviderId}/offers for the partner id 'csp-eu-1' and merge the results.

### Partner-Mediated Procurement Integration

Cloud Solution Provider (CSP) partners expose offers through delegated provider records. SubscriptionClient supports listing those offers per delegated provider and retrieving a specific offer by name, enabling a procurement system to ingest the partner's catalogue and reconcile it with internal SKUs. Combined with deeper Azure billing APIs, this drives end-to-end procurement automation.

Example prompt: Retrieve the offer named 'MS-AZR-0145P' from delegated provider 'csp-eu-1' and emit its plan identifier and display metadata.

### Agent-Driven Catalogue Refresh via Jentic

An AI agent supporting a procurement or finance team refreshes the offer catalogue on demand. Through Jentic, the agent searches by intent, loads the Offers_List operation schema, and returns the catalogue to the user without learning the Azure tenant model. Tokens stay inside your Jentic One instance.

Example prompt: Use Jentic to load the SubscriptionClient Offers_List operation, then return the full list of offers to the user.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /offers | List public Azure subscription offers |
| GET | /delegatedProviders/{delegatedProviderId}/offers | List offers exposed by a delegated provider |
| GET | /delegatedProviders/{delegatedProviderId}/offers/{offerName} | Retrieve a delegated-provider offer by name |

## Key resources

- **Offers** — List public subscription offers available to the tenant
- **Delegated Provider Offers** — List and retrieve offers exposed through a delegated provider id

## Why Jentic

- **Setup:** Wiring SubscriptionClient by hand means configuring Azure AD OAuth 2.0 against management.azure.com, pinning the required 2015-11-01 api-version as a query parameter, and coding the ARM read throttling and 429 back-off yourself just to list offers. Through Jentic you install once, import SubscriptionClient from the API Directory, store the Azure AD OAuth token once, and your agent calls it.
- **Permission scoping:** This surface is read-only over the offers catalogue, with the delegated provider id and offer name carried in the URL path (/delegatedProviders/{delegatedProviderId}/offers/{offerName}). You choose the operations it may call, so you can limit the agent to listing offers and retrieving a single offer by name and nothing more.
- **Credential handling:** Your Azure AD OAuth token 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 Azure subscription offers' or 'find offers from a delegated provider', and Jentic returns the matching SubscriptionClient operation with its input schema so the agent calls the right endpoint without reading the ARM reference.

## Related APIs

- **SubscriptionDefinitionsClient** — Create and modify subscription definitions programmatically
- **SubscriptionsManagementClient** — Azure Stack admin-side subscriptions management on the admin endpoint
- **SqlManagementClient** — Manage Azure SQL Database resources inside subscriptions created from offers

## FAQ

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

Microsoft Azure publishes Swagger fragments for the subscription offers surface but does not publish a consolidated, validated OpenAPI 3 spec. Jentic generates and maintains this spec so that AI agents and developers can call SubscriptionClient via structured tooling. It is validated against the live Azure Resource Manager endpoint and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the SubscriptionClient use?

All endpoints require Azure Active Directory OAuth 2.0, declared as the azure_auth security scheme with the user_impersonation scope against https://login.microsoftonline.com. Through Jentic, tokens are held in the vault and injected at call time so the agent never sees the raw bearer token.

### Can I list offers from a specific delegated provider?

Yes. Call GET /delegatedProviders/{delegatedProviderId}/offers to list every offer exposed through the specified delegated provider, and GET /delegatedProviders/{delegatedProviderId}/offers/{offerName} to retrieve a single offer by name.

### What are the rate limits for the SubscriptionClient?

Calls go through Azure Resource Manager, which applies subscription-level read throttling (typically 12,000 reads per hour per subscription, varying by region and tenant). Throttled responses return HTTP 429 with a Retry-After header.

### How do I list Azure offers through Jentic?

Run pip install jentic, search Jentic for 'list azure subscription offers', load the SubscriptionClient Offers_List operation, and execute it. The api-version 2015-11-01 is required by the Azure endpoint; Jentic injects it automatically as a query parameter.

### Does this API let me create a new subscription?

No. SubscriptionClient at this api-version exposes only the offers catalogue. Subscription creation lives under different Microsoft.Subscription endpoints, including SubscriptionDefinitionsClient for creating subscription definitions.

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

Yes. Because Jentic One is self-hosted, your own rules decide which operations and credentials the agent may use, and this surface is read-only over the offers catalogue. You can restrict the agent to just listing public offers via GET /offers, or narrow it further to listing a delegated provider's offers via GET /delegatedProviders/{delegatedProviderId}/offers and retrieving a single offer by name via GET /delegatedProviders/{delegatedProviderId}/offers/{offerName}. Any operation you do not grant stays off limits, so the agent cannot reach beyond reading offer metadata.
