Channel
A connection between a Shopify shop and an external selling platform that supports product syndication and optionally order ingestion. Each channel binds a merchant's account on a specific platform — such as Amazon, eBay, Google, or a point-of-sale system — to the shop, establishing the publishing destination for product feeds.
Sales Channel applications use
to establish channels after merchant authentication, and can manage multiple
channel connections per app. Each channel is bound to a channel specification
that declares the platform's regional coverage, capabilities, and requirements.
Use channels to manage where catalog items are syndicated, track publication
status across platforms, and control
Product
visibility for different selling destinations.
Anchor to FieldsFields
- accountId (String)
- accountName (String)
- app (App!)
- collectionPublicationsV3 (ResourcePublicationConnection!)
- collections (CollectionConnection!)
- handle (String!)
- hasCollection (Boolean!)
- id (ID!)
- name (String!)
- productPublicationsV3 (ResourcePublicationConnection!)
- products (ProductConnection!)
- productsCount (Count)
- resourceFeedback (AppFeedback)
- specificationHandle (String)
- supportsFuturePublishing (Boolean!)
- Anchor to accountIdaccount•String
Id The unique account ID for the merchant on the external platform. This value is opaque to Shopify — its format is determined by the channel, such as an Amazon Seller ID or Google Merchant Center ID.
- Anchor to accountNameaccount•String
Name The merchant-facing name for the external account. Displayed in Shopify Admin wherever the channel connection is referenced, such as in Markets and order attribution.
- •App!non-null
The underlying app used by the channel.
- Anchor to collectionPublicationsV3collection•Resource
Publications V3 Publication Connection! non-null The list of collection publications. Each record represents information about the publication of a collection.
- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- Anchor to collectionscollections•Collection
Connection! non-null The list of collections published to the channel.
- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- Anchor to handlehandle•String!non-null
- Anchor to hasCollectionhas•Boolean!
Collection non-null Whether the collection is available to the channel.
- •ID!required
The collection ID to check.
Arguments
- •ID!
- •ID!non-null
A globally-unique ID.
- Anchor to namename•String!non-null
The name of the channel.
- Anchor to productPublicationsV3product•Resource
Publications V3 Publication Connection! non-null The list of product publication records for products published to this channel.
- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- Anchor to productsproducts•Product
Connection! non-null The list of products published to the channel.
- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- Anchor to productsCountproducts•Count
Count Retrieves the total count of
productspublished to a specific sales channel. Limited to a maximum of 10000 by default.- Anchor to limitlimit•IntDefault:10000
The upper bound on count value before returning a result. Use
nullto have no limit.- Anchor to queryquery•String
A filter made up of terms, connectives, modifiers, and comparators.
name type description acceptable_values default_value example_use default string Filter by a case-insensitive search of multiple fields in a document. - query=Bob Norman
-query=title:green hoodiebarcode string Filter by the product variant barcodefield. - bundles boolean Filter by a [product bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). A product bundle is a set of two or more related products, which are commonly offered at a discount. - bundles:truecategory_id string Filter by the product category ID ( product.category.id). A product category is the category of a productfrom Shopify's Standard Product Taxonomy. - collection_id id Filter by the collection idfield. - combined_listing_role string Filter by the role of the product in a combined listing. - parent
-child
-- created_at time Filter by the date and time when the product was created. -
-
-delivery_profile_id id Filter by the delivery profile idfield. - error_feedback string Filter by products with publishing errors. gift_card boolean Filter by the product field. - handle string Filter by a comma-separated list of product handles. - handle:the-minimal-snowboardhas_only_composites boolean Filter by products that have only composite variants. - has_only_default_variant boolean Filter by products that have only a default variant. A default variant is the only variant if no other variants are specified. - has_variant_with_components boolean Filter by products that have variants with associated components. - id id Filter by idrange.- id:1234
-id:>=1234
-id:<=1234inventory_total integer Filter by inventory count. -
-
-is_price_reduced boolean Filter by products that have a reduced price. For more information, refer to the object. - metafields.{namespace}.{key} mixed Filters resources by metafield value. Format: metafields.{namespace}.{key}:{value}. Learn more aboutquerying by metafield value. -
-out_of_stock_somewhere boolean Filter by products that are out of stock in at least one location. - price bigdecimal Filter by the product variant pricefield. - price:100.57product_configuration_owner string Filter by the app idfield. - product_publication_status string Filter by channel approval process status of the resource on a channel, such as the online store. The value is a composite of the channel appID( Channel.app.id) and one of the valid values. For simple visibility checks, use published_statusinstead. -
- `*{channel_app_id}-rejected * {channel_app_id}-needs_action`
-
- `*{channel_app_id}-published * {channel_app_id}-demoted*{channel_app_id}-scheduled *{channel_app_id}-provisionally_published` - product_type string Filter by a comma-separated list of [product types](https://help.shopify.com/manual/products/details/product-type). | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | -| | publishable_status | string | Deprecated: This parameter is deprecated as of 2025-12 and will be removed in a future API version. Use published_status for visibility checks. Filter by the publishable status of the resource on a channel. The value is a composite of the channelappID (Channel.app.id) and one of the valid status values. | -
-
-
-| | -
-| | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | -
-
-| | published_status | string | Filter resources by their visibility and publication state on a channel. Online store channel filtering: -: Returns all resources in the online store channel, regardless of publication status. -published/visible: Returns resources that are published to the online store. -unpublished: Returns resources that are not published to the online store. Channel-specific filtering using a channel ID, channel handle, channelappID (Channel.app.id), or app handle with suffixes: -: Returns resources published to the specified channel. -: Same as(kept for backwards compatibility). -: Returns resources added to the channel but not yet published. -: Returns resources not added to the channel or not published. Other: -unavailable: Returns resources not published to any channel. | -
-published
-visibleunpublished
-
-
-
-
-
-
-
-
-unavailable| | -
-
-
-
-| | sku | string | Filter by the product variantskufield. Learn more about SKUs. | | | -| | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with anstatus in online stores, sales channels, and apps. | -active
-archived
-draft|active| -status:active,draft| | tag | string | Filter objects by thetagfield. | | | -| | tag_not | string | Filter by objects that don’t have the specified tag. | | | -| | title | string | Filter by the producttitlefield. | | | -title:The Minimal Snowboard| | tracks_inventory | boolean | Filter by products that have inventory tracking enabled. | | | -| | updated_at | time | Filter by the date and time when the product was last updated. | | | -
-
-| | variant_id | id | Filter by the product variantidfield. | | | -| | variant_title | string | Filter by the product varianttitlefield. | | | -| | vendor | string | Filter by the origin or source of the product. Learn more about vendors and managing vendor information. | | | -vendor:Snowdevil
-| You can apply one or more filters to a query. Learn more about Shopify API search syntax.
Arguments
- Anchor to resourceFeedbackresource•App
Feedback Feedback The resource feedback for the channel. Returns
nullwhen no active feedback exists—for example, afteris called with, which clears the feedback signal. Anullresult is expected and means the channel has no outstanding feedback.- Anchor to specificationHandlespecification•String
Handle The handle of the channel specification bound to this channel. The specification declares the channel's regional coverage, capabilities, and requirements, and is deployed by the Sales Channel application via
shopify app deploy.- Anchor to supportsFuturePublishingsupports•Boolean!
Future Publishing non-null Whether the channel supports future publishing.
Deprecated fields
- navigationItems ([NavigationItem!]!): deprecated
- overviewPath (URL): deprecated
- productPublications (ProductPublicationConnection!): deprecated
- •[Navigation
Item!]! non-nullDeprecated - Anchor to overviewPathoverview•URL
Path Deprecated - Anchor to productPublicationsproduct•Product
Publications Publication Connection! non-nullDeprecated - Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
Anchor to QueriesQueries
- channel (Channel)
- channelByHandle (Channel)
- channels (ChannelConnection!)
- •query
Returns a
Channelby ID. The channel must belong to the calling application.- •query
Returns a
Channelby its unique string handle. The handle is either set explicitly duringor auto-generated from the specification handle and account ID. The channel must belong to the calling application.- Anchor to handlehandle•String!required
The unique handle of the
Channelto return.
Arguments
- •query
The list of
Channelobjects on the shop. When the calling application supports multi-channel, only channels established by the calling application are returned. Each channel represents an authenticated connection to an external selling platform such as a marketplace, social media platform, online store, or point-of-sale system.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
Anchor to MutationsMutations
- channelCreate (ChannelCreatePayload)
- channelUpdate (ChannelUpdatePayload)
- •mutation
Creates a
Channelrepresenting a connection between the shop and an external selling platform account. Use this mutation after a merchant authenticates with an external platform to establish the publishing destination for product syndication and, for order-generating channels, order import.The platform resolves the channel specification identified by
, determines its country coverage, intersects with the shop's available region markets, and establishes product feeds for all matching regions. Product feeds immediately begin emitting events to the application's webhook or event subscription.If the specification sets
and no matching region markets exist, the mutation returns an error. If the specification doesn't require online store parity and no matching region markets exist, a channel subordinate to shop defaults is created automatically.- Anchor to inputinput•Channel
Create Input! required The input fields for creating the channel.
Arguments
- •mutation
Updates the properties of an existing
Channel. Use this mutation to update account information — such as the display name shown in Shopify Admin — or to bind the channel to a different channel specification.Updating the
triggers re-evaluation of the specification's country coverage against the shop's region markets, reconciling product feeds accordingly. This is also the mechanism for migrating legacy channel records to the multi-channel model by assigning a specification handle.- Anchor to inputinput•Channel
Update Input! required The input fields for updating the channel.
Arguments