Get growth margins

Applies To

  • Partner Center

Appropriate roles

  • Admin agent

Important

The growth margins API is currently available in the Sandbox environment only and is not yet available in production.

Partners can get a list of active growth margins for a given market (country/region) and segment. This method returns available current growth margins based on the growth margins available start and end dates.

Prerequisites

  • Credentials as described in Partner Center authentication. This scenario supports authentication with both standalone App and App+User credentials.

  • Segment represents the type of customer the growth margins are enabled for. Currently supports only commercial.

  • Country represents the customer country/region growth margins are available for. Country is represented by a two character country code.

REST request

[GET] /v1/catalog/benefits?type=growthmargin&country={country-code}&segment={segment}&baseSkuPaths={baseSkuPaths}

Request syntax

Method Request URI
GET {baseURL}/v1/catalog/benefits?type=growthmargin&country={country-code}&segment={segment}&baseSkuPaths={baseSkuPaths} HTTP/1.1

URI parameter

Use the following query parameters to return available growth margins.

Name Type Required Description
type string Y The type of benefit to retrieve. Use growthmargin for growth margins.
segment string Y A string that determines which growth margins are available for a given segment.
country string Y A two letter country code determining which customer country/region growth margins are available for.
baseSkuPaths string N Optional. A comma-separated list of base product SKUs in format {productId}:{skuId} (for example, CFQ7TTC0ZSXK:0002,CFQ7TTC0ZSXK:0005). Filters benefits to return only the ones with the specified required products. Maximum of 10 SKU paths allowed. Requests exceeding this limit are truncated to the first 10.

Request headers

For more information, see Partner Center REST headers.

Request body

None

Request example

GET https://api.partnercenter.microsoft.com/v1/catalog/benefits?type=growthmargin&country=US&segment=commercial HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

Request example with baseSkuPaths filter

GET https://api.partnercenter.microsoft.com/v1/catalog/benefits?type=growthmargin&country=US&segment=commercial&baseSkuPaths=CFQ7TTC0ZSXK:0002,CFQ7TTC0ZSXK:0005 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

REST response

If successful, this method returns a list of growth margins.

Response fields

Field Type Description
id string The growth margin identifier.
productCodes array The product code identifiers (UPN) for the growth margin.
name string The name of the growth margin.
description string The description of the growth margin.
requiredProducts array The base products and SKUs the growth margin applies to.
productPolicy.pricingPolicies array The growth margin value.
productPolicy.offerPolicies array The growth margin duration covering start/end dates.
productPolicy.eligibilityPolicies array The eligibility constraints that determine whether a customer transaction qualifies for the growth margin.

The eligibilityPolicies contains the following constraint types:

Constraint Definition
seatConstraints Defines the minimum or maximum seat requirements that must be met for a transaction to qualify for Growth Margin. Examples include minimum net-new seats or required seat expansion thresholds.
assetOwnershipLimits Defines limits based on the customer's existing ownership of qualifying subscriptions or assets. Growth Margin eligibility may depend on whether the customer already owns, previously owned, or currently holds qualifying subscriptions.
eligibilityConstraints Defines the set of business rules that determine whether a transaction qualifies for Growth Margin. These rules can include customer history, seat growth requirements, product eligibility, purchase timing, and other qualifying criteria.
productOwnershipConstraints Defines product ownership conditions that must be met before Growth Margin can be applied. For example, eligibility may depend on whether the customer currently owns, previously owned, or does not own a specific product or SKU. The structure uses AND-of-OR groups: the outer array represents AND conditions (all must be met), and each inner array represents OR alternatives (at least one must be met). For example, [[A, B], [C]] means the customer must own (A or B) AND C.
purchaseRequirementConstraints Defines purchase-specific requirements that must be satisfied for Growth Margin eligibility, such as purchasing a qualifying product, meeting a minimum seat threshold, selecting an eligible term, or creating a new subscription when required.
prerequisiteConstraints Defines prerequisite product ownership conditions evaluated within a configurable lookback window. Uses MustHaveAll, MustHaveAny, and MustHaveNone rules to specify products the customer must own, may own any of, or must not own to qualify. Each rule can include seat constraints and a lookback period over which ownership is evaluated.

Response success and error codes

Each response comes with an HTTP status code that indicates success or failure and more debugging information. Use a network trace tool to read this code, error type, and more parameters. For the full list, see Error Codes.

Response example

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 27 Jun 2026 20:42:26 GMT


[
    {
        "id": "39NFJQT10HW7:0002:084R5MQ9QF27",
        "productCodes": [
            {
                "productCode": "00093c3a-0000-0280-f57d-f85412b6826d"
            }
        ],
        "name": "CSP Growth Margin Discount",
        "description": "CSP Growth Margin Discount",
        "requiredProducts": [
            {
                "productId": "CFQ7TTC0ZSXK",
                "skuId": "0002",
                "termDuration": "P1Y",
                "billingCycle": "Monthly"
            }
        ],
        "productPolicy": {
            "pricingPolicies": [
                {
                    "policyId": "PricingPolicyId:1w11wcikt5po",
                    "policyData": {
                        "benefits": [
                            {
                                "type": "PercentDiscount",
                                "value": 0.185
                            }
                        ]
                    }
                }
            ],
            "offerPolicies": [
                {
                    "policyId": "OfferPolicyId:qossxtmg4hky",
                    "policyData": {
                        "beneficiary": "Partner",
                        "properties": {
                            "startDate": "2026-05-12T14:20:05Z",
                            "endDate": "2026-08-12T14:20:11Z"
                        },
                        "isOptional": false
                    }
                }
            ],
            "eligibilityPolicies": [
                {
                    "policyId": "EligibilityPolicyId:ewgn4xy9whko",
                    "policyData": {
                        "eligibility": {
                            "constraintsData": {
                                "seatConstraints": [
                                    {
                                        "minSeats": 0,
                                        "maxSeats": 0,
                                        "seatIncreaseMultiplier": 0,
                                        "type": "SeatGrowthMultiplier"
                                    }
                                ],
                                "assetOwnershipLimits": [],
                                "eligibilityConstraints": [],
                                "productOwnershipConstraints": [
                                    []
                                ],
                                "purchaseRequirementConstraints": [],
                                "prerequisiteConstraints": {
                                    "MustHaveAll": null,
                                    "MustHaveAny": null,
                                    "MustHaveNone": {
                                        "Products": [
                                            {
                                                "BigId": "CFQ7TTC10849/0002",
                                                "MinSeats": null,
                                                "MaxSeats": 5
                                            }
                                        ],
                                        "SeatConstraint": {
                                            "MinSeats": null,
                                            "MaxSeats": null,
                                            "Type": "BaseCumulativeQuantity"
                                        },
                                        "LookbackWindow": {
                                            "Type": "Period",
                                            "Period": "P1Y"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            ]
        }
    }
]

Note

The baseSkuPaths parameter is purely a server-side filter. The response shape is the same whether or not baseSkuPaths is supplied — it only restricts the result set to benefits matching those base SKUs.