Subscription Plans
Get subscription group by ID
Retrieves detailed information about a specific subscription group (selling plan group) by its ID. This endpoint provides complete configuration details for a single subscription group.
Response includes:
- Group name and configuration
- All selling plans with complete details
- Product and variant assignments
- Discount tiers and configurations
- Free trial settings
- Member restrictions
- Delivery and billing frequencies
Use Cases:
- Display detailed subscription options for editing
- Verify configuration before updates
- Debug subscription issues
- Integration with external systems
Authentication: Requires valid X-API-Key header
GET
/
api
/
external
/
v2
/
subscription-groups
/
{id}
Get subscription group by ID
curl --request GET \
--url https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id} \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}';
const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"groupName": "Monthly Coffee Subscription",
"id": 123456789,
"productCount": 10,
"productIds": "[{\"id\":987654321,\"title\":\"Premium Coffee Blend\",\"status\":\"ACTIVE\",\"handle\":\"premium-coffee-blend\",\"imageSrc\":\"https://cdn.shopify.com/...\",\"vendor\":\"Coffee Co\",\"tags\":\"coffee,subscription\",\"productType\":\"Coffee\",\"price\":\"19.99\"}]",
"productVariantCount": 35,
"subscriptionPlans": [
{
"afterCycle1": 0,
"afterCycle2": 6,
"appstleCycles": [],
"billingFrequencyCount": 1,
"billingFrequencyInterval": "MONTH",
"deliveryPolicyPreAnchorBehavior": "ASAP",
"discountEnabled": true,
"discountEnabled2": true,
"discountOffer": 10,
"discountOffer2": 15,
"discountType": "PERCENTAGE",
"discountType2": "PERCENTAGE",
"freeTrialEnabled": false,
"frequencyCount": 1,
"frequencyDescription": "Get fresh coffee delivered to your door every month",
"frequencyInterval": "MONTH",
"frequencyName": "Delivered Monthly",
"frequencySequence": 0,
"frequencyType": "ON_PURCHASE_DAY",
"groupId": 123456789,
"groupName": "Monthly Coffee Subscription",
"id": "gid://shopify/SellingPlan/111111",
"idNew": "gid://shopify/SellingPlan/111111",
"inventoryPolicyReserve": "ON_SALE",
"maxCycles": null,
"memberOnly": false,
"minCycles": 3,
"planType": "PAY_AS_YOU_GO",
"specificDayEnabled": false,
"upcomingOrderEmailBuffer": 3
}
],
"variantIds": "[{\"id\":123456789,\"title\":\"250g Bag\",\"status\":\"ACTIVE\"}]"
}{
"accessoryProductIds": "<string>",
"deleteProducts": {
"allProduct": true,
"collectionId": "<string>",
"deleteAllProduct": true,
"productDetails": "<string>",
"productIds": [
123
],
"variantDetails": "<string>",
"variantIds": [
123
]
},
"groupName": "<string>",
"id": 123,
"productCount": 123,
"productId": "<string>",
"productIds": "<string>",
"productVariantCount": 123,
"subscriptionPlans": [
{
"afterCycle1": 123,
"afterCycle2": 123,
"appstleCycles": [
{
"afterCycle": 3,
"discountType": "PERCENTAGE",
"freeProductHandle": "free-gift-product",
"freeProductTitle": "Ceramic Mug",
"freeVariantId": 42549172011164,
"preventDuplicationFreeProduct": true,
"repeatingCycle": true,
"repeatingNumberOfCycle": 6,
"value": 10
}
],
"billingFrequencyCount": 123,
"cutOff": 123,
"defaultSelectedPlan": true,
"discountEnabled": true,
"discountEnabled2": true,
"discountEnabled2Masked": true,
"discountEnabledMasked": true,
"discountOffer": 123,
"discountOffer2": 123,
"fixedBillingDates": [
{
"day": 123,
"month": 123
}
],
"formFieldJson": "<string>",
"freeTrialCount": 123,
"freeTrialEnabled": true,
"frequencyCount": 123,
"frequencyDescription": "<string>",
"frequencyName": "<string>",
"frequencyNameTranslations": {},
"frequencySequence": 123,
"groupId": 123,
"groupName": "<string>",
"id": "<string>",
"idNew": "<string>",
"keepOriginalNextBillingDateAfterTrial": true,
"maxCycles": 123,
"memberExclusiveTags": "<string>",
"memberInclusiveTags": "<string>",
"memberOnly": true,
"minCycles": 123,
"nonMemberOnly": true,
"payAsYouGoPrepaidBillingFrequencyCount": 123,
"prepaidFlag": "<string>",
"repeatingCycle": true,
"repeatingNumberOfCycle": 123,
"specificDayEnabled": true,
"specificDayValue": 123,
"specificMonthValue": 123,
"upcomingOrderEmailBuffer": 123
}
],
"translations": "<string>",
"updateProducts": {
"allProduct": true,
"collectionId": "<string>",
"deleteAllProduct": true,
"productDetails": "<string>",
"productIds": [
123
],
"variantDetails": "<string>",
"variantIds": [
123
]
},
"variantIds": "<string>"
}{
"accessoryProductIds": "<string>",
"deleteProducts": {
"allProduct": true,
"collectionId": "<string>",
"deleteAllProduct": true,
"productDetails": "<string>",
"productIds": [
123
],
"variantDetails": "<string>",
"variantIds": [
123
]
},
"groupName": "<string>",
"id": 123,
"productCount": 123,
"productId": "<string>",
"productIds": "<string>",
"productVariantCount": 123,
"subscriptionPlans": [
{
"afterCycle1": 123,
"afterCycle2": 123,
"appstleCycles": [
{
"afterCycle": 3,
"discountType": "PERCENTAGE",
"freeProductHandle": "free-gift-product",
"freeProductTitle": "Ceramic Mug",
"freeVariantId": 42549172011164,
"preventDuplicationFreeProduct": true,
"repeatingCycle": true,
"repeatingNumberOfCycle": 6,
"value": 10
}
],
"billingFrequencyCount": 123,
"cutOff": 123,
"defaultSelectedPlan": true,
"discountEnabled": true,
"discountEnabled2": true,
"discountEnabled2Masked": true,
"discountEnabledMasked": true,
"discountOffer": 123,
"discountOffer2": 123,
"fixedBillingDates": [
{
"day": 123,
"month": 123
}
],
"formFieldJson": "<string>",
"freeTrialCount": 123,
"freeTrialEnabled": true,
"frequencyCount": 123,
"frequencyDescription": "<string>",
"frequencyName": "<string>",
"frequencyNameTranslations": {},
"frequencySequence": 123,
"groupId": 123,
"groupName": "<string>",
"id": "<string>",
"idNew": "<string>",
"keepOriginalNextBillingDateAfterTrial": true,
"maxCycles": 123,
"memberExclusiveTags": "<string>",
"memberInclusiveTags": "<string>",
"memberOnly": true,
"minCycles": 123,
"nonMemberOnly": true,
"payAsYouGoPrepaidBillingFrequencyCount": 123,
"prepaidFlag": "<string>",
"repeatingCycle": true,
"repeatingNumberOfCycle": 123,
"specificDayEnabled": true,
"specificDayValue": 123,
"specificMonthValue": 123,
"upcomingOrderEmailBuffer": 123
}
],
"translations": "<string>",
"updateProducts": {
"allProduct": true,
"collectionId": "<string>",
"deleteAllProduct": true,
"productDetails": "<string>",
"productIds": [
123
],
"variantDetails": "<string>",
"variantIds": [
123
]
},
"variantIds": "<string>"
}{
"detail": "Subscription group with ID 999999 not found",
"status": 404,
"title": "Not Found",
"type": "https://example.com/errors/not-found"
}Headers
API Key for authentication
Path Parameters
Subscription group ID (numeric ID)
Query Parameters
API Key (Deprecated - Use X-API-Key header instead)
Response
Successfully retrieved subscription group
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Remove products or variants from ALL subscription groups
Previous
Add products or variants to an existing subscription group
Next
⌘I
Get subscription group by ID
curl --request GET \
--url https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id} \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}';
const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://subscription-admin.appstle.com/api/external/v2/subscription-groups/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"groupName": "Monthly Coffee Subscription",
"id": 123456789,
"productCount": 10,
"productIds": "[{\"id\":987654321,\"title\":\"Premium Coffee Blend\",\"status\":\"ACTIVE\",\"handle\":\"premium-coffee-blend\",\"imageSrc\":\"https://cdn.shopify.com/...\",\"vendor\":\"Coffee Co\",\"tags\":\"coffee,subscription\",\"productType\":\"Coffee\",\"price\":\"19.99\"}]",
"productVariantCount": 35,
"subscriptionPlans": [
{
"afterCycle1": 0,
"afterCycle2": 6,
"appstleCycles": [],
"billingFrequencyCount": 1,
"billingFrequencyInterval": "MONTH",
"deliveryPolicyPreAnchorBehavior": "ASAP",
"discountEnabled": true,
"discountEnabled2": true,
"discountOffer": 10,
"discountOffer2": 15,
"discountType": "PERCENTAGE",
"discountType2": "PERCENTAGE",
"freeTrialEnabled": false,
"frequencyCount": 1,
"frequencyDescription": "Get fresh coffee delivered to your door every month",
"frequencyInterval": "MONTH",
"frequencyName": "Delivered Monthly",
"frequencySequence": 0,
"frequencyType": "ON_PURCHASE_DAY",
"groupId": 123456789,
"groupName": "Monthly Coffee Subscription",
"id": "gid://shopify/SellingPlan/111111",
"idNew": "gid://shopify/SellingPlan/111111",
"inventoryPolicyReserve": "ON_SALE",
"maxCycles": null,
"memberOnly": false,
"minCycles": 3,
"planType": "PAY_AS_YOU_GO",
"specificDayEnabled": false,
"upcomingOrderEmailBuffer": 3
}
],
"variantIds": "[{\"id\":123456789,\"title\":\"250g Bag\",\"status\":\"ACTIVE\"}]"
}{
"accessoryProductIds": "<string>",
"deleteProducts": {
"allProduct": true,
"collectionId": "<string>",
"deleteAllProduct": true,
"productDetails": "<string>",
"productIds": [
123
],
"variantDetails": "<string>",
"variantIds": [
123
]
},
"groupName": "<string>",
"id": 123,
"productCount": 123,
"productId": "<string>",
"productIds": "<string>",
"productVariantCount": 123,
"subscriptionPlans": [
{
"afterCycle1": 123,
"afterCycle2": 123,
"appstleCycles": [
{
"afterCycle": 3,
"discountType": "PERCENTAGE",
"freeProductHandle": "free-gift-product",
"freeProductTitle": "Ceramic Mug",
"freeVariantId": 42549172011164,
"preventDuplicationFreeProduct": true,
"repeatingCycle": true,
"repeatingNumberOfCycle": 6,
"value": 10
}
],
"billingFrequencyCount": 123,
"cutOff": 123,
"defaultSelectedPlan": true,
"discountEnabled": true,
"discountEnabled2": true,
"discountEnabled2Masked": true,
"discountEnabledMasked": true,
"discountOffer": 123,
"discountOffer2": 123,
"fixedBillingDates": [
{
"day": 123,
"month": 123
}
],
"formFieldJson": "<string>",
"freeTrialCount": 123,
"freeTrialEnabled": true,
"frequencyCount": 123,
"frequencyDescription": "<string>",
"frequencyName": "<string>",
"frequencyNameTranslations": {},
"frequencySequence": 123,
"groupId": 123,
"groupName": "<string>",
"id": "<string>",
"idNew": "<string>",
"keepOriginalNextBillingDateAfterTrial": true,
"maxCycles": 123,
"memberExclusiveTags": "<string>",
"memberInclusiveTags": "<string>",
"memberOnly": true,
"minCycles": 123,
"nonMemberOnly": true,
"payAsYouGoPrepaidBillingFrequencyCount": 123,
"prepaidFlag": "<string>",
"repeatingCycle": true,
"repeatingNumberOfCycle": 123,
"specificDayEnabled": true,
"specificDayValue": 123,
"specificMonthValue": 123,
"upcomingOrderEmailBuffer": 123
}
],
"translations": "<string>",
"updateProducts": {
"allProduct": true,
"collectionId": "<string>",
"deleteAllProduct": true,
"productDetails": "<string>",
"productIds": [
123
],
"variantDetails": "<string>",
"variantIds": [
123
]
},
"variantIds": "<string>"
}{
"accessoryProductIds": "<string>",
"deleteProducts": {
"allProduct": true,
"collectionId": "<string>",
"deleteAllProduct": true,
"productDetails": "<string>",
"productIds": [
123
],
"variantDetails": "<string>",
"variantIds": [
123
]
},
"groupName": "<string>",
"id": 123,
"productCount": 123,
"productId": "<string>",
"productIds": "<string>",
"productVariantCount": 123,
"subscriptionPlans": [
{
"afterCycle1": 123,
"afterCycle2": 123,
"appstleCycles": [
{
"afterCycle": 3,
"discountType": "PERCENTAGE",
"freeProductHandle": "free-gift-product",
"freeProductTitle": "Ceramic Mug",
"freeVariantId": 42549172011164,
"preventDuplicationFreeProduct": true,
"repeatingCycle": true,
"repeatingNumberOfCycle": 6,
"value": 10
}
],
"billingFrequencyCount": 123,
"cutOff": 123,
"defaultSelectedPlan": true,
"discountEnabled": true,
"discountEnabled2": true,
"discountEnabled2Masked": true,
"discountEnabledMasked": true,
"discountOffer": 123,
"discountOffer2": 123,
"fixedBillingDates": [
{
"day": 123,
"month": 123
}
],
"formFieldJson": "<string>",
"freeTrialCount": 123,
"freeTrialEnabled": true,
"frequencyCount": 123,
"frequencyDescription": "<string>",
"frequencyName": "<string>",
"frequencyNameTranslations": {},
"frequencySequence": 123,
"groupId": 123,
"groupName": "<string>",
"id": "<string>",
"idNew": "<string>",
"keepOriginalNextBillingDateAfterTrial": true,
"maxCycles": 123,
"memberExclusiveTags": "<string>",
"memberInclusiveTags": "<string>",
"memberOnly": true,
"minCycles": 123,
"nonMemberOnly": true,
"payAsYouGoPrepaidBillingFrequencyCount": 123,
"prepaidFlag": "<string>",
"repeatingCycle": true,
"repeatingNumberOfCycle": 123,
"specificDayEnabled": true,
"specificDayValue": 123,
"specificMonthValue": 123,
"upcomingOrderEmailBuffer": 123
}
],
"translations": "<string>",
"updateProducts": {
"allProduct": true,
"collectionId": "<string>",
"deleteAllProduct": true,
"productDetails": "<string>",
"productIds": [
123
],
"variantDetails": "<string>",
"variantIds": [
123
]
},
"variantIds": "<string>"
}{
"detail": "Subscription group with ID 999999 not found",
"status": 404,
"title": "Not Found",
"type": "https://example.com/errors/not-found"
}