Add Channels Query, Revamp Descriptions, Update Filters

10/17/2025, 12:00:54 AM

New allChannels query lists all active sales channels and supports pagination and reverse ordering. Description of appInstallation and appInstallations query now explicitly outlines usage for access scopes, subscriptions, billing, and installation state, including the availability of read_apps scope for custom and public apps. The automaticDiscount query continues to be deprecated but its description now clarifies that it returns a DiscountAutomatic union rather than an old generic resource. The customerSegmentMembersCount query now explains real‑time segment size calculations using provided criteria. Operators can now use more detailed filter syntax for customers, orders, and giftCards queries; giftCards’ default search now includes code matching; orders’ discount code filter now limits to the first code used. The mutation appRevokeAccessScopes has been rewritten to explain that it will remove specific permissions while keeping other app functionality and returns granular success or error information. WebhookSubscriptions’ description was expanded to detail the returned data, pagination, and how app‑scoped versus shop‑scoped subscriptions are distinguished.

Query Changes

➕ Added Queries (1)

allChannels

List of all the active sales channels on this shop.

🔄 Modified Queries (14)

appInstallation

Look up an app installation by ID or return the app installation for the currently authenticated app.

Use the appInstallation query to:

  • Fetch current access scope permissions for your app
  • Retrieve active subscription details and billing status
  • Validate installation state during app initialization
  • Display installation-specific information in your app interface

Learn more about app installation.

appInstallations

A list of app installations. To use this query, your app needs the read_apps access scope, which can only be requested after you're granted approval from Shopify Support. This scope can be granted to custom and public apps.

Returns a paginated connection of AppInstallation objects across multiple stores.

Learn more about app installation.

automaticDiscount

Returns a DiscountAutomatic resource by ID.

customerSegmentMembersCount

Returns the total number of customers who match the criteria defined in a customer segment. This count provides real-time visibility into segment size for targeting and analysis purposes.

For example, check the size of a "High-Value Customers" segment before launching a VIP program.

The count reflects current segment membership based on the segment's filter criteria, updating as customer data changes and new customers meet or no longer meet the segment conditions.

customers

Returns a list of customers in your Shopify store, including key information such as name, email, location, and purchase history.
Use this query to segment your audience, personalize marketing campaigns, or analyze customer behavior by applying filters based on location, order history, marketing preferences and tags.
The customers query supports pagination and sorting.

~ Modified argument: query
giftCards

Returns a list of gift cards.

~ Modified argument: query
giftCardsCount

The total number of gift cards issued for the shop. Limited to a maximum of 10000 by default.

~ Modified argument: query
orderEditSession

Returns a OrderEditSession resource by ID.

orders

Returns a list of orders placed in the store, including data such as order status, customer, and line item details.
Use the orders query to build reports, analyze sales performance, or automate fulfillment workflows. The orders query supports pagination,
sorting, and filtering.

~ Modified argument: query
ordersCount

Returns the count of orders for the given shop. Limited to a maximum of 10000 by default.

~ Modified argument: query
returnableFulfillment

Returns a ReturnableFulfillment resource by ID.

subscriptionBillingAttempt

Returns a SubscriptionBillingAttempt resource by ID.

urlRedirectImport

Returns a UrlRedirectImport resource by ID.

webhookSubscriptions

Retrieves a paginated list of shop-scoped webhook subscriptions configured for the current app. This query returns webhook subscriptions created via the API for this shop, not including app-scoped subscriptions configured via TOML files.

For example, an app dashboard might use this query to display all configured webhooks, showing which events trigger notifications and their delivery endpoints for troubleshooting integration issues.

Use the webhookSubscriptions query to:

  • Audit all active shop-scoped webhook configurations
  • View and manage webhook subscription configurations
  • Display subscription details in app dashboards
  • Retrieve existing webhook configurations for dynamic integration setups
  • Check which subscriptions already exist before creating new ones

The query returns comprehensive subscription data including event topics, endpoint configurations, filtering rules, API versions, and metafield namespace permissions. Each subscription includes creation and modification timestamps for tracking configuration changes.

Results support standard GraphQL pagination patterns with cursor-based navigation, allowing efficient retrieval of large webhook subscription lists. The response includes detailed endpoint information varying by type - HTTP callback URLs, EventBridge ARNs, or Pub/Sub project and topic specifications.

Advanced subscription features like event filtering using Shopify search syntax, field inclusion rules, and metafield namespace access are fully exposed, providing complete visibility into webhook configuration.

Learn more about webhook subscription queries.

Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your shopify.app.toml may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read About managing webhook subscriptions.

Mutation Changes

🔄 Modified Mutations (11)

appRevokeAccessScopes

Revokes previously granted access scopes from an app installation, allowing merchants to reduce an app's permissions without completely uninstalling it. This provides granular control over what data and functionality apps can access.

For example, if a merchant no longer wants an app to access customer information but still wants to use its inventory features, they can revoke the customer-related scopes while keeping inventory permissions active.

Use the appRevokeAccessScopes mutation to:

  • Remove specific permissions from installed apps
  • Maintain app functionality while minimizing data exposure

The mutation returns details about which scopes were successfully revoked and any errors that prevented certain permissions from being removed.

Learn more about managing app permissions.

appUninstall

Uninstalls an app from a shop.

This mutation can only be used by apps to uninstall themselves. Apps with the apps access scope can uninstall other apps by providing the app ID in the input parameter.

Use the appUninstall mutation to programmatically remove apps from shops.

The mutation returns the uninstalled app and any errors that occurred during the uninstallation process.

Learn more about app lifecycle management.

catalogCreate

Creates a new catalog. For a complete explanation of a Catalog's behaviour, and how you can use it with Publications and PriceLists, see here.

fulfillmentOrderOpen

Marks a scheduled fulfillment order as open.

From API version 2026-01, this will also mark a fulfillment order as open when it is assigned to a merchant managed location and has had progress reported.

fulfillmentServiceCreate

Creates a fulfillment service.

Fulfillment service location

When creating a fulfillment service, a new location will be automatically created on the shop
and will be associated with this fulfillment service.
This location will be named after the fulfillment service and inherit the shop's address.

If you are using API version 2023-10 or later, and you need to specify custom attributes for the fulfillment service location
(for example, to change its address to a country different from the shop's country),
use the
LocationEdit
mutation after creating the fulfillment service.

~ Modified argument: callbackUrl
~ Modified argument: trackingSupport
~ Modified argument: inventoryManagement
fulfillmentServiceUpdate

Updates a fulfillment service.

If you need to update the location managed by the fulfillment service (for example, to change the address of a fulfillment service), use the LocationEdit mutation.

~ Modified argument: callbackUrl
~ Modified argument: trackingSupport
~ Modified argument: inventoryManagement
productBundleCreate

Creates a new product bundle or componentized product.

~ Modified argument: input
productBundleUpdate

Updates a product bundle or componentized product.

~ Modified argument: input
webhookSubscriptionCreate

Set up webhook subscriptions so your app gets notified instantly when things happen in a merchant's store. Instead of constantly checking for changes, webhooks push updates to your app the moment they occur, making integrations faster and more efficient.

For example, an inventory management app might create subscriptions for orders/paid and inventory_levels/update events to automatically adjust stock levels and trigger fulfillment processes when customers complete purchases.

Use webhookSubscriptionCreate to:

  • Set up real-time event notifications for your app
  • Configure specific topics like order creation, product updates, or customer changes
  • Define endpoint destinations (HTTPS, EventBridge, or Pub/Sub)
  • Filter events using Shopify search syntax to receive notifications only for relevant events
  • Configure field inclusion to control which data fields are included in webhook payloads

The mutation supports multiple endpoint types and advanced filtering options, allowing you to create precisely targeted webhook subscriptions that match your app's integration needs. The API version is inherited from the app configuration and cannot be specified per subscription. Filters use Shopify search syntax to determine which events trigger notifications.

Successful creation returns the webhook subscription fields that you request in your query. The mutation validates topic availability, filter syntax, and endpoint configuration.

Learn more about creating webhook subscriptions.

Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your shopify.app.toml may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read About managing webhook subscriptions.

webhookSubscriptionDelete

Removes an existing webhook subscription, stopping all future event notifications for that subscription. This mutation provides a clean way to deactivate webhooks when they're no longer needed.

For example, when an app feature is disabled or when you need to change webhook configurations, you can delete
the old webhook subscription to prevent unnecessary event delivery and potential errors. Alternatively, for
endpoint changes, you might consider updating the existing subscription instead of deleting and recreating it.

Use webhookSubscriptionDelete to:

  • Clean up unused webhook subscriptions
  • Stop event delivery to deprecated endpoints
  • Remove subscriptions during app uninstallation
  • Reduce unnecessary resource usage by removing unused subscriptions

The mutation returns the deleted subscription's ID for confirmation when successful. Validation errors are included in the response if you request them in your query, as with all GraphQL mutations.

Learn more about managing webhook subscriptions.

Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your shopify.app.toml may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read About managing webhook subscriptions.

webhookSubscriptionUpdate

Updates an existing webhook subscription's configuration, allowing you to modify endpoints, topics, filters, and other subscription settings without recreating the entire subscription. This mutation provides flexible webhook management for evolving app requirements.

For example, when migrating from HTTP endpoints to EventBridge, you can update the subscription's endpoint configuration while preserving the same topic subscriptions and filters, ensuring continuity of event delivery during infrastructure changes.

Use webhookSubscriptionUpdate to:

  • Change webhook endpoint URLs or destination types
  • Modify event filtering criteria to refine event relevance
  • Adjust field inclusion settings to optimize payload sizes
  • Configure metafield namespace access for extended data

The mutation supports comprehensive configuration changes including endpoint type switching (HTTP to Pub/Sub, for instance), topic modifications, and advanced filtering updates. The API version is inherited from the app configuration and cannot be changed per subscription.

Updates are applied atomically, ensuring that webhook delivery continues uninterrupted during configuration changes. The response includes the updated subscription fields that you request in your query, and validation errors if requested.

Learn more about updating webhook configurations.

Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your shopify.app.toml may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read About managing webhook subscriptions.

Type Changes

➕ Added Types (1)

🏗️ThirdPartyAppSubscriptionOverrideType➕ AddedOBJECT

Third-party app subscription overrides for a shop.

Fields: facebookInstagram, googleYoutube, instafeed, judgeMe, pagefly ... +1 more

🔄 Modified Types (23)

🏗️Channel🔄 Modified
🔄 Field modified: productsCount
🏗️CheckoutAndAccountsAppConfiguration🔄 Modified
Field removed: apiClientId
Field removed: brandingConfiguration
Field removed: featureConfiguration
Field removed: shopId
Field added: feature

The feature configuration for checkout and accounts app.

🏗️Company🔄 Modified
🔄 Field modified: orders
🏗️Customer🔄 Modified
🔄 Field modified: orders
🏗️DisputeStatus🔄 Modified
Enum value added: PREVENTED
🏗️InventoryShipmentAddItemsUserErrorCode🔄 Modified
Enum value removed: LOCATION_NOT_FOUND
🏗️InventoryShipmentReceiveUserErrorCode🔄 Modified
Enum value removed: LOCATION_NOT_FOUND
🏗️InventoryShipmentRemoveItemsUserErrorCode🔄 Modified
Enum value removed: LOCATION_NOT_FOUND
🏗️InventoryShipmentUpdateItemQuantitiesUserErrorCode🔄 Modified
Enum value removed: LOCATION_NOT_FOUND
🏗️MarketUserErrorCode🔄 Modified
Enum value added: CANNOT_DELETE_PROVINCE_MARKET
Enum value added: INVALID_CUSTOMIZATION_FOR_PROVINCE_CONDITION
🏗️MetafieldDefinitionCreateUserErrorCode🔄 Modified
Enum value added: RESOURCE_TYPE_LIMIT_EXCEEDED_BY_APP
🏗️MetafieldDefinitionDeleteUserErrorCode🔄 Modified
Enum value added: STANDARD_METAFIELD_DEFINITION_DEPENDENT_ON_APP
🏗️MetafieldDefinitionUpdateUserErrorCode🔄 Modified
Enum value added: INVALID
🏗️MetaobjectUserErrorCode🔄 Modified
Enum value added: STANDARD_METAOBJECT_DEFINITION_DEPENDENT_ON_APP
🏗️Order🔄 Modified
Field removed: sharedCheckout
Field added: productNetwork

Whether the customer also purchased items from other stores in the network.

🏗️PriceRuleCustomerSelection🔄 Modified
🔄 Field modified: customers
🏗️ProductBundleCreatePayload🔄 Modified
🔄 Field modified: productBundleOperation
🏗️ProductBundleUpdatePayload🔄 Modified
🔄 Field modified: productBundleOperation
🏗️ProductVariant🔄 Modified
🔄 Field modified: image
🏗️Shop🔄 Modified
Field removed: draftOrders
Field added: appTrialEligible

Whether the shop is eligible for app trials offered by third-party apps.

🔄 Field modified: customers
🔄 Field modified: orders
Field added: thirdPartyAppSubscriptionOverride

All third party app subscription overrides for the shop.

🏗️ShopifyPaymentsDisputeEvidenceFileType🔄 Modified
Enum value added: RESPONSE_SUMMARY_FILE
🏗️ShopifyPaymentsTransactionType🔄 Modified
Enum value added: ADS_PUBLISHER_CREDIT
Enum value added: ADS_PUBLISHER_CREDIT_REVERSAL
Enum value added: INSTALLMENTS_BALANCE_RECOVERY_DEBIT
Enum value added: INSTALLMENTS_BALANCE_RECOVERY_DEBIT_REVERSAL
Enum value added: MANAGED_MARKETS_DUTIES_AND_TAXES_ADJUSTMENT_PLATFORM_DEBIT
Enum value added: MANAGED_MARKETS_DUTIES_AND_TAXES_ADJUSTMENT_PLATFORM_CREDIT
Enum value added: MANAGED_MARKETS_DUTIES_AND_TAXES_ADJUSTMENT_PLATFORM_DEBIT_REVERSAL
Enum value added: MANAGED_MARKETS_DUTIES_AND_TAXES_ADJUSTMENT_PLATFORM_CREDIT_REVERSAL
Enum value added: MANAGED_MARKETS_MERCHANT_OF_RECORD_ACCOUNT_NETTING_CREDIT
Enum value added: MANAGED_MARKETS_MERCHANT_OF_RECORD_ACCOUNT_NETTING_CREDIT_REVERSAL
Enum value added: MANAGED_MARKETS_MERCHANT_OF_RECORD_ACCOUNT_NETTING_DEBIT
Enum value added: MANAGED_MARKETS_MERCHANT_OF_RECORD_ACCOUNT_NETTING_DEBIT_REVERSAL
🏗️SubscriptionBillingAttemptErrorCode🔄 Modified
Enum value removed: CURRENCY_NOT_ENABLED