Skip to main content
Returns the effective subscription offer for a product, optionally scoped to a specific variant. Variant-level offers take precedence over product-level offers. Returns is_subscription_available: false when no active offer exists.

GET /store/products/:id/subscription-offer

Path parameters

id
string
required
Product ID.

Query parameters

variant_id
string
Optional variant ID. When provided, the response reflects the variant-level offer if one exists.

Response

subscription_offer
object
required
Response example — offer available
{
  "subscription_offer": {
    "is_subscription_available": true,
    "product_id": "prod_123",
    "variant_id": "variant_123",
    "source_offer_id": "offer_456",
    "source_scope": "variant",
    "allowed_frequencies": [
      {
        "frequency_interval": "month",
        "frequency_value": 1,
        "label": "Every month",
        "discount": {
          "type": "percentage",
          "value": 10
        }
      },
      {
        "frequency_interval": "month",
        "frequency_value": 2,
        "label": "Every 2 months",
        "discount": {
          "type": "percentage",
          "value": 5
        }
      }
    ],
    "discount_semantics": null,
    "minimum_cycles": null,
    "trial": null
  }
}
Response example — no offer
{
  "subscription_offer": {
    "is_subscription_available": false,
    "product_id": "prod_789",
    "variant_id": null,
    "source_offer_id": null,
    "source_scope": null,
    "allowed_frequencies": [],
    "discount_semantics": null,
    "minimum_cycles": null,
    "trial": null
  }
}