canonical: https://jentic.com/apis/azure.com/feature-client

# Microsoft Azure FeatureClient

Jentic publishes the only available OpenAPI specification for the Azure FeatureClient, keeping it validated and agent-ready. This API surfaces the preview features that Azure exposes through AFEC (Azure Feature Exposure Control) so subscriptions can opt into preview behaviours of resource providers. It supports listing all preview features, listing features in a specific provider namespace, reading a single feature, and registering a feature for the subscription.

## For AI agents

List Azure preview features available through AFEC, read individual features, and register a preview feature for a subscription.

## Scope

Does not unregister features, manage application-level feature flags, or change resource provider registrations - use only to list, read, and register Azure preview features through AFEC for a subscription.

## Capabilities

- List all preview features available to a subscription through AFEC
- List preview features for a specific resource provider namespace
- Read the registration state of a single preview feature by name
- Register a preview feature for the current subscription
- Discover the available Microsoft.Features REST API operations

## Use cases

### Inventory Preview Features for a Subscription

Platform engineering teams audit which Azure preview features are exposed to a subscription before promoting workloads. GET /subscriptions/{subscriptionId}/providers/Microsoft.Features/features returns every feature visible through AFEC, with each entry's registration state, so the audit can flag features the subscription has opted into and those still pending.

Example prompt: List all preview features for subscription 1111-2222-3333-4444 and emit the names of any with state Registered

### Opt In to a Preview Behaviour

When a team wants to use a preview behaviour of a resource provider (for example, a new Microsoft.Compute capability), they register the feature on the subscription. POST /subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName}/register flips the feature into the registered state, after which the provider re-registration unlocks the behaviour.

Example prompt: Register the feature EncryptionAtHost under Microsoft.Compute for subscription 1111-2222-3333-4444 and read it back to confirm the state is Registered or Pending

### Verify a Feature State Before Deploying

Pipelines that depend on a preview feature gate the deployment on the feature's registration state. GET /subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName} returns the current state so the pipeline can fail fast if the feature is not Registered, instead of failing deep inside an ARM template.

Example prompt: Get feature EncryptionAtHost under Microsoft.Compute for subscription 1111-2222-3333-4444 and return true only if state == Registered

### Agent-Driven Subscription Hardening

An AI agent running subscription readiness checks can list every preview feature, register the ones a tenant policy requires, and report any still pending - all through Jentic. Intent search returns the Features list, get, and register operations with their schemas; the AAD token is held in the vault so the agent never sees the service principal secret.

Example prompt: Search Jentic for 'register an Azure preview feature', execute Features_Register for each feature in a tenant policy list, then call Features_Get on each to report the resulting state

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Features/features | List all preview features for a subscription |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features | List preview features for a provider namespace |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName} | Get a single preview feature |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName}/register | Register a preview feature for the subscription |
| GET | /providers/Microsoft.Features/operations | List Microsoft.Features REST API operations |

## Key resources

- **Features** — List all features, list features per provider namespace, get a feature, and register a feature
- **Operations** — List of operations exposed by Microsoft.Features

## Why Jentic

- **Setup:** Wiring the Azure FeatureClient by hand means minting Azure AD OAuth 2.0 tokens against management.azure.com, building the Microsoft.Features paths for AFEC preview features, and backing off on ARM subscription throttling. Through Jentic you install once, import FeatureClient from the API Directory, store the Azure AD client credentials once, and your agent calls it.
- **Permission scoping:** The API puts the subscription, provider namespace, and feature name in the URL path (/subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName}/...), so a rule can scope your agent to one provider namespace such as Microsoft.Compute. You choose the operations it may call, so the state-changing Features_Register is not included unless you add it, leaving the agent with the list and get reads.
- **Credential handling:** Your Azure AD client credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time as a scoped bearer token. The service principal secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list Azure preview features' or 'register an Azure preview feature', and Jentic returns the matching Features_List, Features_Get, or Features_Register operation with its input schema so the agent calls the right endpoint without remembering the Microsoft.Features path layout.

## Related APIs

- **Azure Policy Client** — Encodes and enforces tenant policies that often govern which preview features may be enabled.
- **Azure Advisor Management Client** — Surfaces recommendations that may depend on, or be unlocked by, preview feature registrations.
- **LaunchDarkly REST API** — Application-level feature flag service used to gate code paths in customer apps rather than Azure platform features.
- **ConfigCat API** — Hosted feature flag and config management service for application code paths.

## FAQ

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

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

The API uses Azure Active Directory OAuth 2.0 bearer tokens (the azure_auth scheme) on management.azure.com. Through Jentic, the AAD service principal secret is stored in your Jentic One instance and exchanged for a short-lived bearer token per call.

### Can I register an Azure preview feature with this API?

Yes. Call POST /subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName}/register. The feature transitions to Pending or Registered; you may also need to re-register the parent resource provider before the new behaviour takes effect.

### How do I list every preview feature available to my subscription?

Call GET /subscriptions/{subscriptionId}/providers/Microsoft.Features/features. To narrow to a single resource provider, call GET .../providers/Microsoft.Features/providers/{resourceProviderNamespace}/features instead.

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

Azure Resource Manager applies subscription-level throttling. Listing features is cheap and safe to poll on the order of seconds; the register call is rarer in practice and does not need aggressive retries. On HTTP 429, back off using the Retry-After header.

### How do I register a preview feature from an agent through Jentic?

Run pip install jentic, then search Jentic with 'register an Azure preview feature'. Load Features_Register, supply the subscription, provider namespace, and feature name, and execute. Read it back with Features_Get to confirm the state. The AAD token is sourced from the vault on every call.

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

Yes. Because you run Jentic One yourself, your own rules decide which Microsoft.Features operations and credentials the agent may use. Since the subscription, provider namespace, and feature name all sit in the URL path, a rule can scope the agent to a single namespace such as Microsoft.Compute, and you choose the operations it may call. That lets you leave the agent with the read-only Features_List and Features_Get calls while withholding the state-changing Features_Register unless you explicitly grant it.
