Skio
Authentication Type: API Key Description: Shopify subscription management platform for searching active and historical subscriptions, looking up subscription orders, and cancelling subscriptions.
Authentication
To authenticate, you'll need a Skio API token from your Skio dashboard.
Note: Skio runs Hasura under the hood and returns GraphQL errors with HTTP 200. A bad or expired token surfaces as a terminal error (e.g. "Invalid response from authorization hook") rather than an HTTP 401 — if you see this, check that you have copied the correct token from the Skio dashboard.
Rate limit: 3 requests/second across all plans (Skio API limits: query depth 4, 100 nodes per request, 2000 requests/minute per token).
Subscriptions
Search and manage Shopify subscription contracts tracked by Skio.
Search Subscriptions
Search for Skio subscriptions by customer name or email, with optional status filtering and result limit. Returns subscriptions ordered newest first.
Operation Type: Query (Read)
Parameters:
- name
string(nullable): Customer name to search for (case-insensitive; every word must appear in the customer's first or last name) - email
string(nullable): Customer email address (case-insensitive exact match) - status
string(nullable): Subscription status filter (e.g.ACTIVE,PAUSED,CANCELLED; omit to return all statuses) - limit
number(nullable): Maximum number of results to return (default: 10, max: 20)
At least one of name or email must be provided; omitting both returns a bad-request error.
Returns:
- subscriptions
array of objects: Matching subscriptions, newest first- id
string: Skio subscription UUID (use this ID with the Cancel Subscription tool) - platformId
string: Shopify SubscriptionContract GID - status
string: Subscription status (e.g.ACTIVE,PAUSED,CANCELLED) - statusContext
string(nullable): Additional status detail (e.g.CHURNED,PERMANENTLY_CANCELLED) - createdAt
string: Subscription creation timestamp - cancelledAt
string(nullable): Cancellation timestamp, if cancelled - nextBillingDate
string(nullable): Next scheduled billing date - currencyCode
string: ISO 4217 currency code for the subscription - customer
object(nullable): Customer linked to this subscription- id
string: Skio customer ID - platformId
string: Shopify Customer GID - email
string: Customer email address - firstName
string(nullable): Customer first name - lastName
string(nullable): Customer last name - phoneNumber
string(nullable): Customer phone number
- id
- lines
array of objects: Current subscription line items (removed lines are excluded)- id
string: Line item ID - quantity
number(nullable): Quantity for this line - priceWithoutDiscount
number(nullable): Unit price before any discount - productTitle
string: Product title - variantTitle
string(nullable): Variant title (e.g. size or colour) - sku
string(nullable): Product SKU
- id
- id
Example Usage:
{
"name": "Jane Smith",
"status": "ACTIVE",
"limit": 10
}
Cancel Subscription
Cancel a Skio subscription by its Skio UUID. Also cancels the linked Shopify SubscriptionContract. Prepaid subscriptions will finish their remaining prepaid shipments before ending.
Operation Type: Mutation (Write)
Parameters:
- subscriptionId
string(required): Skio subscription UUID as returned by the Search Subscriptions tool. Must be a valid UUID — Shopify GIDs and non-UUID values are rejected before Skio is called. - shouldSendNotif
boolean(nullable): Whether Skio sends the customer a cancellation notification email. Omit to use the store's default notification setting. - permanentlyCancel
boolean(nullable): Set totrueto permanently cancel the subscription so it cannot be reactivated. Omit for a normal cancellation that can be reactivated later.
Returns:
- subscriptionId
string: ID of the cancelled subscription - cancelled
boolean:truewhen Skio confirmed the cancellation
Behavior Notes:
- Always use the Skio UUID from Search Subscriptions, not the Shopify SubscriptionContract GID.
- Omitting
shouldSendNotiforpermanentlyCancelfalls back to the store's configured defaults. - A permanent cancellation (
permanentlyCancel: true) cannot be undone. - Prepaid subscriptions fulfil remaining prepaid shipments before the subscription ends.
- Skio returns
ok: falseon failure; the tool surfaces this as a bad-request error.
Example Usage:
{
"subscriptionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"shouldSendNotif": true,
"permanentlyCancel": false
}
Orders
Search for Shopify orders that originated from or were billed by a Skio subscription.
Search Orders
Search for orders by Shopify order number, customer email, or Skio subscription ID. Returns orders newest first. Deleted orders are excluded.
Operation Type: Query (Read)
Parameters:
- orderNumber
string(nullable): Shopify order number or name (e.g."#1001"or"1001"; matched with or without the#prefix) - email
string(nullable): Customer email address (case-insensitive exact match) - subscriptionId
string(nullable): Skio subscription UUID; non-UUID values are rejected with a bad-request error - limit
number(nullable): Maximum number of results to return (default: 5, max: 20)
At least one filter must be provided; omitting all filters returns a bad-request error.
Returns:
- orders
array of objects: Matching orders, newest first- id
string: Skio order ID - name
string: Shopify order name (e.g.#1001) - platformId
string: Shopify Order GID - createdAt
string: Order creation timestamp - cancelledAt
string(nullable): Cancellation timestamp, if the order was cancelled - totalPrice
number(nullable): Order total in the store's currency - customer
object(nullable): Customer who placed the order (same shape as in subscriptions)- id
string: Skio customer ID - platformId
string: Shopify Customer GID - email
string: Customer email address - firstName
string(nullable): Customer first name - lastName
string(nullable): Customer last name - phoneNumber
string(nullable): Customer phone number
- id
- subscriptionIds
array of strings: Skio subscription IDs associated with this order (includes checkout-origin subscriptions and renewal line subscription IDs; empty for one-off orders) - lineItems
array of objects: Order line items- quantity
number(nullable): Quantity ordered - priceWithoutDiscount
number(nullable): Unit price before discounts - productTitle
string: Product title - variantTitle
string(nullable): Variant title - sku
string(nullable): Product SKU - subscriptionId
string(nullable): Skio subscription ID that billed this line, if it is a subscription line
- quantity
- id
Behavior Notes:
subscriptionIdscombines checkout-origin subscriptions with renewal line subscription IDs. An order may be linked to more than one subscription — confirm which subscription an order came from before cancelling.- Use
subscriptionIdto retrieve all orders billed against a specific subscription.
Example Usage:
{
"orderNumber": "#1042",
"limit": 5
}
Common Use Cases
Subscription Support:
- Look up a customer's active subscriptions by email before handling a cancellation request
- Search by customer name to find subscriptions when only partial information is available
- Check
statusContextto distinguish churned or permanently cancelled subscriptions from standard cancellations
Order Lookup:
- Find the subscription that billed a specific order number to understand renewal history
- Retrieve all orders for a subscription ID to audit billing activity
- Look up a customer's recent orders by email to resolve delivery or billing queries
Subscription Management:
- Cancel a subscription by Skio UUID after confirming it with Search Subscriptions
- Use
permanentlyCancel: truefor fraud or policy cases where reactivation must be prevented - Set
shouldSendNotif: falseto suppress the cancellation email when handling a cancellation internally