Product
ProductType fields
-
autoshipByDefault Boolean! Non-null
-
autoshipEnabled Boolean! Non-null
-
created DateTime
-
detailUrl String
-
discontinued Boolean! Non-null
-
every Int
-
everyPeriod Int
-
externalProductId String! Non-null
-
extraData String
-
groups [ProductGroupType!]! Non-null Show fields
ProductGroupType fields-
groupType String! Non-null
-
name String! Non-null
-
-
imageUrl String
-
lastUpdate DateTime
-
live Boolean! Non-null
-
name String
-
prepaidEligible Boolean! Non-null
-
price Decimal! Non-null
-
productType String! Non-null
-
sku String! Non-null
Related queries
-
Get subscription details by orderorder
Show query
Retrieve complete subscription details from order
query { order(publicId: "abc123") { publicId status subTotal shippingTotal discountTotal taxTotal total created place updated customer { merchantUserId firstName lastName email phoneNumber } shippingAddress { publicId firstName lastName address address2 city stateProvinceCode zipPostalCode countryCode phone } payment { publicId ccType ccNumberEnding ccExpDate ccHolder paymentMethod } items { nodes { publicId quantity price totalPrice product { name externalProductId sku every everyPeriod } subscription { publicId every everyPeriod } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { order(publicId: \"abc123\") { publicId status subTotal shippingTotal discountTotal taxTotal total created place updated customer { merchantUserId firstName lastName email phoneNumber } shippingAddress { publicId firstName lastName address address2 city stateProvinceCode zipPostalCode countryCode phone } payment { publicId ccType ccNumberEnding ccExpDate ccHolder paymentMethod } items { nodes { publicId quantity price totalPrice product { name externalProductId sku every everyPeriod } subscription { publicId every everyPeriod } } } } }"}'const query = ` query { order(publicId: "abc123") { publicId status subTotal shippingTotal discountTotal taxTotal total created place updated customer { merchantUserId firstName lastName email phoneNumber } shippingAddress { publicId firstName lastName address address2 city stateProvinceCode zipPostalCode countryCode phone } payment { publicId ccType ccNumberEnding ccExpDate ccHolder paymentMethod } items { nodes { publicId quantity price totalPrice product { name externalProductId sku every everyPeriod } subscription { publicId every everyPeriod } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { order(publicId: "abc123") { publicId status subTotal shippingTotal discountTotal taxTotal total created place updated customer { merchantUserId firstName lastName email phoneNumber } shippingAddress { publicId firstName lastName address address2 city stateProvinceCode zipPostalCode countryCode phone } payment { publicId ccType ccNumberEnding ccExpDate ccHolder paymentMethod } items { nodes { publicId quantity price totalPrice product { name externalProductId sku every everyPeriod } subscription { publicId every everyPeriod } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
Get order with applied discountsorder
Show query
Order totals and line items with applied coupons and incentives
query { order(publicId: "abc123") { publicId status subTotal discountTotal taxTotal total place oneTimeIncentives { publicId externalCode description onetimeCouponType stackingType appliedAt expires } items { nodes { publicId quantity price totalPrice product { name externalProductId sku } oneTimeIncentives { publicId externalCode description onetimeCouponType stackingType appliedAt } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { order(publicId: \"abc123\") { publicId status subTotal discountTotal taxTotal total place oneTimeIncentives { publicId externalCode description onetimeCouponType stackingType appliedAt expires } items { nodes { publicId quantity price totalPrice product { name externalProductId sku } oneTimeIncentives { publicId externalCode description onetimeCouponType stackingType appliedAt } } } } }"}'const query = ` query { order(publicId: "abc123") { publicId status subTotal discountTotal taxTotal total place oneTimeIncentives { publicId externalCode description onetimeCouponType stackingType appliedAt expires } items { nodes { publicId quantity price totalPrice product { name externalProductId sku } oneTimeIncentives { publicId externalCode description onetimeCouponType stackingType appliedAt } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { order(publicId: "abc123") { publicId status subTotal discountTotal taxTotal total place oneTimeIncentives { publicId externalCode description onetimeCouponType stackingType appliedAt expires } items { nodes { publicId quantity price totalPrice product { name externalProductId sku } oneTimeIncentives { publicId externalCode description onetimeCouponType stackingType appliedAt } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
Get prepaid subscription status by orderorder
Show query
Check prepaid subscription progress for each line item
query { order(publicId: "abc123") { publicId status subTotal total place items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod prepaidSubscriptionContext { prepaidOrdersRemaining prepaidOrdersPerBilling renewalBehavior lastRenewalRevenue prepaidOriginMerchantOrderId } } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { order(publicId: \"abc123\") { publicId status subTotal total place items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod prepaidSubscriptionContext { prepaidOrdersRemaining prepaidOrdersPerBilling renewalBehavior lastRenewalRevenue prepaidOriginMerchantOrderId } } } } } }"}'const query = ` query { order(publicId: "abc123") { publicId status subTotal total place items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod prepaidSubscriptionContext { prepaidOrdersRemaining prepaidOrdersPerBilling renewalBehavior lastRenewalRevenue prepaidOriginMerchantOrderId } } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { order(publicId: "abc123") { publicId status subTotal total place items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod prepaidSubscriptionContext { prepaidOrdersRemaining prepaidOrdersPerBilling renewalBehavior lastRenewalRevenue prepaidOriginMerchantOrderId } } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
List recent orders for a customerorders
Show query
Retrieve a customer's order history with basic info
query { orders(customer: "cust123", first: 10) { edges { node { publicId status subTotal total place created items { nodes { quantity product { name externalProductId } } } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { orders(customer: \"cust123\", first: 10) { edges { node { publicId status subTotal total place created items { nodes { quantity product { name externalProductId } } } } } } }"}'const query = ` query { orders(customer: "cust123", first: 10) { edges { node { publicId status subTotal total place created items { nodes { quantity product { name externalProductId } } } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { orders(customer: "cust123", first: 10) { edges { node { publicId status subTotal total place created items { nodes { quantity product { name externalProductId } } } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
Get subscription details by customerorders
Show query
Detailed orders by customer
query { orders(customer: "cust123", first: 25) { edges { node { publicId status subTotal total place items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod } } } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { orders(customer: \"cust123\", first: 25) { edges { node { publicId status subTotal total place items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod } } } } } } }"}'const query = ` query { orders(customer: "cust123", first: 25) { edges { node { publicId status subTotal total place items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod } } } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { orders(customer: "cust123", first: 25) { edges { node { publicId status subTotal total place items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod } } } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
Get subscription details by subscriptionorders
Show query
Retrieve orders for a specific subscription with line item details
query { orders(subscription: "sub123", first: 25) { edges { node { publicId status subTotal total place created items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod } } } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { orders(subscription: \"sub123\", first: 25) { edges { node { publicId status subTotal total place created items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod } } } } } } }"}'const query = ` query { orders(subscription: "sub123", first: 25) { edges { node { publicId status subTotal total place created items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod } } } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { orders(subscription: "sub123", first: 25) { edges { node { publicId status subTotal total place created items { nodes { publicId quantity price totalPrice product { name externalProductId sku } subscription { publicId every everyPeriod } } } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
Get subscription overviewsubscription
Show query
Basic subscription info with product details
query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live startDate created product { name externalProductId sku imageUrl } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { subscription(publicId: \"sub123\") { publicId every everyPeriod quantity price live startDate created product { name externalProductId sku imageUrl } } }"}'const query = ` query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live startDate created product { name externalProductId sku imageUrl } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live startDate created product { name externalProductId sku imageUrl } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
Get subscription for account managementsubscription
Show query
Full subscription details for editing customer, shipping, and payment
query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live cancelled cancelReason startDate currencyCode customer { merchantUserId firstName lastName email phoneNumber } shippingAddress { publicId firstName lastName address address2 city stateProvinceCode zipPostalCode countryCode phone } payment { publicId ccType ccNumberEnding ccExpDate ccHolder paymentMethod } product { name externalProductId sku price imageUrl } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { subscription(publicId: \"sub123\") { publicId every everyPeriod quantity price live cancelled cancelReason startDate currencyCode customer { merchantUserId firstName lastName email phoneNumber } shippingAddress { publicId firstName lastName address address2 city stateProvinceCode zipPostalCode countryCode phone } payment { publicId ccType ccNumberEnding ccExpDate ccHolder paymentMethod } product { name externalProductId sku price imageUrl } } }"}'const query = ` query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live cancelled cancelReason startDate currencyCode customer { merchantUserId firstName lastName email phoneNumber } shippingAddress { publicId firstName lastName address address2 city stateProvinceCode zipPostalCode countryCode phone } payment { publicId ccType ccNumberEnding ccExpDate ccHolder paymentMethod } product { name externalProductId sku price imageUrl } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live cancelled cancelReason startDate currencyCode customer { merchantUserId firstName lastName email phoneNumber } shippingAddress { publicId firstName lastName address address2 city stateProvinceCode zipPostalCode countryCode phone } payment { publicId ccType ccNumberEnding ccExpDate ccHolder paymentMethod } product { name externalProductId sku price imageUrl } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
Get bundle subscription componentssubscription
Show query
Retrieve a subscription's bundle components with product details
query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live product { name externalProductId } components { publicId quantity product { name externalProductId sku price } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { subscription(publicId: \"sub123\") { publicId every everyPeriod quantity price live product { name externalProductId } components { publicId quantity product { name externalProductId sku price } } } }"}'const query = ` query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live product { name externalProductId } components { publicId quantity product { name externalProductId sku price } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { subscription(publicId: "sub123") { publicId every everyPeriod quantity price live product { name externalProductId } components { publicId quantity product { name externalProductId sku price } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
List customer subscriptionssubscriptions
Show query
Retrieve all subscriptions for a customer with product info
query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live startDate product { name externalProductId sku imageUrl } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { subscriptions(customer: \"cust123\", first: 25) { edges { node { publicId every everyPeriod quantity price live startDate product { name externalProductId sku imageUrl } } } } }"}'const query = ` query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live startDate product { name externalProductId sku imageUrl } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live startDate product { name externalProductId sku imageUrl } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
List subscriptions with delivery detailssubscriptions
Show query
Subscriptions with shipping address and payment info
query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live cancelled shippingAddress { firstName lastName address city stateProvinceCode zipPostalCode } payment { ccType ccNumberEnding paymentMethod } product { name externalProductId sku } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { subscriptions(customer: \"cust123\", first: 25) { edges { node { publicId every everyPeriod quantity price live cancelled shippingAddress { firstName lastName address city stateProvinceCode zipPostalCode } payment { ccType ccNumberEnding paymentMethod } product { name externalProductId sku } } } } }"}'const query = ` query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live cancelled shippingAddress { firstName lastName address city stateProvinceCode zipPostalCode } payment { ccType ccNumberEnding paymentMethod } product { name externalProductId sku } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live cancelled shippingAddress { firstName lastName address city stateProvinceCode zipPostalCode } payment { ccType ccNumberEnding paymentMethod } product { name externalProductId sku } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json() -
List subscriptions with prepaid statussubscriptions
Show query
Subscriptions with prepaid context for tracking remaining orders
query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live product { name externalProductId sku } prepaidSubscriptionContext { prepaidOrdersRemaining prepaidOrdersPerBilling renewalBehavior lastRenewalRevenue prepaidOriginMerchantOrderId } } } } }curl -X POST https://restapi.ordergroove.com/graphql/2026-01/ \ -H "X-API-KEY: <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"query": "query { subscriptions(customer: \"cust123\", first: 25) { edges { node { publicId every everyPeriod quantity price live product { name externalProductId sku } prepaidSubscriptionContext { prepaidOrdersRemaining prepaidOrdersPerBilling renewalBehavior lastRenewalRevenue prepaidOriginMerchantOrderId } } } } }"}'const query = ` query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live product { name externalProductId sku } prepaidSubscriptionContext { prepaidOrdersRemaining prepaidOrdersPerBilling renewalBehavior lastRenewalRevenue prepaidOriginMerchantOrderId } } } } } `; const response = await fetch( "https://restapi.ordergroove.com/graphql/2026-01/", { method: "POST", headers: { "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, body: JSON.stringify({ query }), } ); const data = await response.json();import requests query = """ query { subscriptions(customer: "cust123", first: 25) { edges { node { publicId every everyPeriod quantity price live product { name externalProductId sku } prepaidSubscriptionContext { prepaidOrdersRemaining prepaidOrdersPerBilling renewalBehavior lastRenewalRevenue prepaidOriginMerchantOrderId } } } } } """ response = requests.post( "https://restapi.ordergroove.com/graphql/2026-01/", headers={ "X-API-KEY: <your-api-key>", "Content-Type": "application/json", }, json={"query": query}, ) data = response.json()
