# Get product swap variant groups for a contract Retrieves product swap variant groups for the next 10 billing cycles of a specific subscription contract. This endpoint calculates and returns which products will be swapped to in future billing cycles based on configured swap automations. Response Structure: Returns a 2D array (List>): - Outer array: Represents the next 10 billing cycles - Inner arrays: Contains the variant(s) that will be swapped to for that specific cycle - Index 0: Variants for the next (upcoming) billing cycle - Index 1: Variants for the cycle after that - And so on for the next 10 cycles Variant Details: Each variant object includes: - variantId: Shopify variant ID - quantity: Number of units to swap - title: Variant title (e.g., "Medium Roast - 12oz") - image: Product/variant image URL - productTitle: Full product name - productId: Shopify product GID - variantTitle: Full display name combining product and variant titles - swapId: ID of the swap automation rule that triggered this swap How It Works: 1. Takes the current products in the subscription 2. Applies configured swap automations for the next 10 cycles 3. Calculates which products will be swapped based on: - Billing cycle number - Swap rule configurations (forBillingCycle, checkForEveryRecurringOrder) - Rule sequence/priority 4. Returns the projected product lineup for each cycle Use Cases: - Preview upcoming product swaps in customer portals - Show customers their subscription product timeline - Build interactive swap calendars - Display "what you'll receive" for future orders - Debug and verify swap automation configurations Important Notes: - Returns 10 cycles even if no swaps are configured (returns current products) - Multiple variants in an inner array means multiple products will be in that order - Empty inner arrays indicate no products for that cycle (rare edge case) - The swapId can be used to trace which automation rule triggered the swap Authentication: Requires valid X-API-Key header Endpoint: POST /api/external/v2/product-swaps-by-variant-groups/{contractId} Version: 0.0.1 ## Query parameters: - `api_key` (string) API Key (Deprecated - Use Header X-API-Key instead) ## Header parameters: - `X-API-Key` (string) ## Path parameters: - `contractId` (integer, required) ## Request fields (application/json): - `variantQuantityList` (array) - `variantQuantityList.variantId` (integer) - `variantQuantityList.quantity` (integer) - `variantQuantityList.title` (string) - `variantQuantityList.image` (string) - `variantQuantityList.productTitle` (string) - `variantQuantityList.productId` (string) - `variantQuantityList.variantTitle` (string) - `variantQuantityList.swapId` (integer) ## Response 200 fields ## Response 400 fields ## Response 401 fields ## Response 403 fields ## Response 404 fields