canonical: https://jentic.com/apis/azure.com/azure-marketplaceordering-agreements

# Microsoft Azure MarketplaceOrdering.Agreements

Jentic publishes the only available OpenAPI specification for MarketplaceOrdering.Agreements, keeping it validated and agent-ready. The Azure Marketplace Ordering API manages the legal agreements that must be accepted before a marketplace plan can be deployed in a subscription. Use it to retrieve the current agreement for a publisher, offer, and plan combination, sign or cancel an agreement, and list every signed agreement in a subscription. Authentication is via Azure Active Directory OAuth 2.0 on Azure Resource Manager.

## For AI agents

Sign, cancel, and inspect Azure Marketplace plan agreements so deployments can proceed. Useful for automating marketplace consent before provisioning third-party software.

## Scope

Does not curate marketplace catalogs, deploy marketplace resources, or handle billing - use for managing marketplace plan agreements at subscription scope only.

## Capabilities

- Retrieve the current marketplace agreement for a publisher, offer, and plan combination
- Sign a marketplace agreement so the plan becomes deployable in the subscription
- Cancel a previously signed marketplace agreement
- List every signed marketplace agreement in a subscription for compliance review
- Get a specific agreement by publisher, offer, and plan to verify acceptance state
- Create or update an agreement record explicitly through the offerTypes path
- Enumerate Microsoft.MarketplaceOrdering operations exposed for agreement tooling

## Use cases

### Automate marketplace agreement acceptance

Provisioning pipelines call this API before deploying any third-party marketplace VM or solution to ensure the legal terms have been accepted. The agent retrieves the current agreement for the publisher, offer, and plan, inspects the terms payload, and POSTs the sign endpoint when policy permits, allowing the downstream resource creation to succeed without a manual portal step.

Example prompt: GET /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/agreements/{publisherId}/offers/{offerId}/plans/{planId} to fetch terms, then POST .../sign to accept.

### Audit signed marketplace agreements

Compliance teams query the subscription-scoped list endpoint to inventory every accepted marketplace agreement and the plan, publisher, and timestamp behind it. The output drives quarterly reviews of which third-party publishers have legal commitments tied to the subscription, supporting renewal and cancellation decisions.

Example prompt: Call GET /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/agreements and emit a CSV of publisher, offer, plan, and acceptance timestamp.

### Cancel an obsolete agreement

When a marketplace plan is no longer in use and the team wants to fully decommission its footprint, the agent calls the cancel endpoint to revoke the previously signed agreement. Existing deployments are unaffected, but new deployments of that plan in the subscription will need a fresh agreement before they can proceed.

Example prompt: POST /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/agreements/{publisherId}/offers/{offerId}/plans/{planId}/cancel and verify with the matching GET that the agreement is no longer accepted.

### Agent-driven deployment unblock

Through Jentic, an AI agent can intercept a marketplace deployment failure caused by a missing agreement, automatically retrieve and sign the agreement, and retry the deployment. The agent searches Jentic for 'sign azure marketplace agreement', loads the operation, and executes the sign call, all while Jentic injects the Azure AD bearer token at execution time.

Example prompt: Use Jentic search 'sign azure marketplace plan agreement', load MarketplaceAgreements_Sign, supply publisher, offer, and plan IDs, and execute.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/agreements/{publisherId}/offers/{offerId}/plans/{planId} | Get the current agreement for a plan |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/agreements/{publisherId}/offers/{offerId}/plans/{planId}/sign | Sign a marketplace agreement |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/agreements/{publisherId}/offers/{offerId}/plans/{planId}/cancel | Cancel a marketplace agreement |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/agreements | List all signed agreements in a subscription |
| PUT | /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/offerTypes/{offerType}/publishers/{publisherId}/offers/{offerId}/plans/{planId}/agreements/current | Create or update an agreement record |

## Key resources

- **MarketplaceAgreements** — Get, list, sign, cancel, and create or update marketplace plan agreements at subscription scope.
- **Operations** — Enumerate Microsoft.MarketplaceOrdering resource provider operations available for agreement tooling.

## Why Jentic

- **Setup:** Wiring MarketplaceOrdering.Agreements by hand means implementing Azure AD OAuth 2.0, minting a bearer token scoped to Azure Resource Manager on management.azure.com, and handling the unusual offerType and sign or cancel POST paths plus ARM throttling yourself. Through Jentic you install once, import MarketplaceOrdering.Agreements from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** The API puts the subscription, publisher, offer, and plan in the URL path, so a rule can pin your agent to reading and signing agreements for a specific plan and nothing else. You choose the operations it may call, so destructive ones like cancelling an agreement are not included unless you add them.
- **Credential handling:** Your Azure AD credential is stored once, encrypted, by your own Jentic One instance and exchanged for a short-lived ARM-scoped bearer token at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'sign an Azure marketplace plan agreement' or 'list signed marketplace agreements', and Jentic returns the matching MarketplaceAgreements operation with its input schema so the agent supplies the publisher, offer, and plan and executes.

## Related APIs

- **Marketplace RP Service** — Curate which marketplace offers are admitted to a tenant private store.
- **Compute Management Client** — Provision Azure VMs from marketplace images once their agreements are signed.
- **Subscription Client** — Enumerate subscriptions that need marketplace agreements signed.
- **Policy Client** — Govern marketplace deployments via Azure Policy rather than agreement state.

## FAQ

### Why is there no official OpenAPI spec for MarketplaceOrdering.Agreements?

Microsoft Azure does not publish a standalone OpenAPI specification for the marketplace ordering agreements API. Jentic generates and maintains this spec so that AI agents and developers can call MarketplaceOrdering.Agreements 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 Marketplace Ordering API use?

The API uses Azure Active Directory OAuth 2.0 via the azure_auth scheme on https://management.azure.com/. Through Jentic, your Azure AD application credentials are stored encrypted in your Jentic One instance and exchanged for a short-lived bearer token at execution time.

### Can I sign a marketplace agreement programmatically?

Yes. Call POST /subscriptions/{subscriptionId}/providers/Microsoft.MarketplaceOrdering/agreements/{publisherId}/offers/{offerId}/plans/{planId}/sign. The response confirms acceptance and the same agreement then satisfies subsequent deployments of that plan in the subscription.

### What are the rate limits for the Marketplace Ordering API?

The endpoints inherit the standard Azure Resource Manager throttle quotas, surfaced through x-ms-ratelimit-remaining-* response headers. Bulk sign or cancel calls should respect those headers and back off when remaining quota approaches zero.

### How do I check if a marketplace agreement is signed through Jentic?

Search Jentic for 'get azure marketplace agreement', load MarketplaceAgreements_GetAgreement, supply publisher, offer, and plan IDs, and execute. The response includes an accepted boolean and signedDate that the agent can branch on.

### Does cancelling an agreement affect existing deployments?

No. POST .../cancel revokes the agreement so new deployments of that plan require a fresh signature, but resources already provisioned under the previously signed agreement keep running. Decommission those resources separately through their resource provider APIs.

### Is the Marketplace Ordering API free?

The control-plane endpoints themselves do not incur charges. Marketplace plans deployed under signed agreements bill against the publisher's terms in addition to standard Azure resource consumption charges.

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

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, so you can grant it just the read (get and list agreements) and sign operations while leaving out cancelling an agreement entirely. Since the subscription, publisher, offer, and plan all sit in the request path, a rule can pin the agent to a specific plan and refuse anything outside it. Your Azure AD credential stays with your instance and is exchanged for a short-lived token only at execution time, never entering the agent's prompt or logs.
