Skip to main content
object

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 channelCreate 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.

String

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.

String

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 collectionPublicationsV3collectionPublicationsV3
ResourcePublicationConnection!
non-null

The list of collection publications. Each record represents information about the publication of a collection.

Arguments

String

The elements that come after the specified cursor.

String

The elements that come before the specified cursor.

Int

The first n elements from the paginated list.

Int

The last n elements from the paginated list.

Boolean
Default:false

Reverse the order of the underlying list.


CollectionConnection!
non-null

The list of collections published to the channel.

Arguments

String

The elements that come after the specified cursor.

String

The elements that come before the specified cursor.

Int

The first n elements from the paginated list.

Int

The last n elements from the paginated list.

Boolean
Default:false

Reverse the order of the underlying list.


String!
non-null

A unique, human-readable identifier for the channel within the shop. Set during channelCreate or auto-generated from the specification handle and account ID. Use with channelByHandle for lookups.

Boolean!
non-null

Whether the collection is available to the channel.

Arguments

ID!
required

The collection ID to check.


ID!
non-null

A globally-unique ID.

String!
non-null

The name of the channel.

Anchor to productPublicationsV3productPublicationsV3
ResourcePublicationConnection!
non-null

The list of product publication records for products published to this channel.

Arguments

String

The elements that come after the specified cursor.

String

The elements that come before the specified cursor.

Int

The first n elements from the paginated list.

Int

The last n elements from the paginated list.

Boolean
Default:false

Reverse the order of the underlying list.


ProductConnection!
non-null

The list of products published to the channel.

Arguments

String

The elements that come after the specified cursor.

String

The elements that come before the specified cursor.

Int

The first n elements from the paginated list.

Int

The last n elements from the paginated list.

Boolean
Default:false

Reverse the order of the underlying list.


Count

Retrieves the total count of products published to a specific sales channel. Limited to a maximum of 10000 by default.

Arguments

Int
Default:10000

The upper bound on count value before returning a result. Use null to have no limit.

String

A filter made up of terms, connectives, modifiers, and comparators.

nametypedescriptionacceptable_valuesdefault_valueexample_use
defaultstringFilter by a case-insensitive search of multiple fields
in a document.- query=Bob Norman
- query=title:green hoodie
barcodestringFilter by the product variant barcode
field.- barcode:ABC-abc-1234
bundlesbooleanFilter 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:true
category_idstringFilter by the product category ID
(product.category.id). A product category is the category of a product
from Shopify's Standard Product Taxonomy.
- category_id:sg-4-17-2-17
collection_ididFilter by the collection id
field.- collection_id:108179161409
combined_listing_rolestringFilter by the role of the product in a combined listing.
- parent
- child
- no_role
-
combined_listing_role:parent
created_attimeFilter by the date and time when the product was
created.- created_at:>'2020-10-21T23:39:20Z'
-
created_at:<now
- created_at:<='2024'
delivery_profile_ididFilter by the delivery profile id
field.- delivery_profile_id:108179161409
error_feedbackstringFilter by products with publishing errors.
gift_cardbooleanFilter by the product isGiftCard
field.- gift_card:true
handlestringFilter by a comma-separated list of product handles.
- handle:the-minimal-snowboard
has_only_compositesbooleanFilter by products that have only
composite variants.- has_only_composites:true
has_only_default_variantbooleanFilter by products that have only a
default variant. A default variant is the only variant if no other variants
are specified.- has_only_default_variant:true
has_variant_with_componentsbooleanFilter by products that have
variants with associated components.-
has_variant_with_components:true
ididFilter by id range.- id:1234
- id:>=1234
- id:<=1234
inventory_totalintegerFilter by inventory count.-
inventory_total:0
- inventory_total:>150
-
inventory_total:>=200
is_price_reducedbooleanFilter by products that have a reduced price.
For more information, refer to the CollectionRule
object.- is_price_reduced:true
metafields.{namespace}.{key}mixedFilters resources by metafield
value. Format: metafields.{namespace}.{key}:{value}. Learn more about
querying by metafield value.
- metafields.custom.on_sale:true
-
metafields.product.material:"gid://shopify/Metaobject/43458085"
out_of_stock_somewherebooleanFilter by products that are out of
stock in at least one location.- out_of_stock_somewhere:true
pricebigdecimalFilter by the product variant price
field.- price:100.57
product_configuration_ownerstringFilter by the app
id
field.- product_configuration_owner:10001
product_publication_statusstringFilter by channel approval process
status of the resource on a channel, such as the online store. The value is
a composite of the channel app ID
(Channel.app.id) and one of the valid values. For simple visibility checks, use published_status
instead.- * {channel_app_id}-approved
- `*
{channel_app_id}-rejected<br/> - * {channel_app_id}-needs_action`
-
* {channel_app_id}-awaiting_review
- `*
{channel_app_id}-published<br/> - * {channel_app_id}-demoted<br/> - *
{channel_app_id}-scheduled<br/> - *
{channel_app_id}-provisionally_published`-
product_publication_status:189769876-approved
product_typestringFilter by a comma-separated list of [product
types](https://help.shopify.com/manual/products/details/product-type).
  • product_type:snowboard | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | - publication_ids:184111530305,184111694145 | | 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 channel app ID (Channel.app.id) and one of the valid status values. | - * {channel_app_id}-unset
    - * {channel_app_id}-pending
    - * {channel_app_id}-approved
    - * {channel_app_id}-not_approved | | - publishable_status:580111-unset
    - publishable_status:580111-pending | | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | - published_at:>2020-10-21T23:39:20Z
    - published_at:<now
    - published_at:<=2024 | | published_status | string | Filter resources by their visibility and publication state on a channel. Online store channel filtering: - online_store_channel: 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, channel app ID (Channel.app.id), or app handle with suffixes: - {id_or_handle}-published: Returns resources published to the specified channel. - {id_or_handle}-visible: Same as {id_or_handle}-published (kept for backwards compatibility). - {id_or_handle}-intended: Returns resources added to the channel but not yet published. - {id_or_handle}-hidden: Returns resources not added to the channel or not published. Other: - unavailable: Returns resources not published to any channel. | - online_store_channel
    - published
    - visible
  • unpublished
    - * {channel_id_or_handle}-published
    - * {channel_id_or_handle}-visible
    - * {channel_id_or_handle}-intended
    - * {channel_id_or_handle}-hidden
    - * {channel_app_id_or_handle}-published
    - * {channel_app_id_or_handle}-visible
    - * {channel_app_id_or_handle}-intended
    - * {channel_app_id_or_handle}-hidden
    - unavailable | | - published_status:online_store_channel
    - published_status:published
    - published_status:580111-published
  • published_status:580111-hidden
    - published_status:my-channel-handle-published
    - published_status:unavailable | | sku | string | Filter by the product variant sku field. Learn more about SKUs. | | | - sku:XYZ-12345 | | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an ACTIVE status in online stores, sales channels, and apps. | - active
    - archived
    - draft | active | - status:active,draft | | tag | string | Filter objects by the tag field. | | | - tag:my_tag | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - tag_not:my_tag | | title | string | Filter by the product title field. | | | - title:The Minimal Snowboard | | tracks_inventory | boolean | Filter by products that have inventory tracking enabled. | | | - tracks_inventory:true | | updated_at | time | Filter by the date and time when the product was last updated. | | | - updated_at:>'2020-10-21T23:39:20Z'
    - updated_at:<now
    - updated_at:<='2024' | | variant_id | id | Filter by the product variant id field. | | | - variant_id:45779434701121 | | variant_title | string | Filter by the product variant title field. | | | - variant_title:'Special ski wax' | | vendor | string | Filter by the origin or source of the product. Learn more about vendors and managing vendor information. | | | - vendor:Snowdevil
    - vendor:Snowdevil OR vendor:Icedevil | You can apply one or more filters to a query. Learn more about Shopify API search syntax.

AppFeedback

The resource feedback for the channel. Returns null when no active feedback exists—for example, after shopResourceFeedbackCreate is called with state: ACCEPTED, which clears the feedback signal. A null result is expected and means the channel has no outstanding feedback.

String

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 supportsFuturePublishingsupportsFuturePublishing
Boolean!
non-null

Whether the channel supports future publishing.

Deprecated fields

[NavigationItem!]!
non-nullDeprecated
URL
Deprecated
ProductPublicationConnection!
non-nullDeprecated

Arguments

String

The elements that come after the specified cursor.

String

The elements that come before the specified cursor.

Int

The first n elements from the paginated list.

Int

The last n elements from the paginated list.

Boolean
Default:false

Reverse the order of the underlying list.



Was this section helpful?

query

Returns a Channel by ID. The channel must belong to the calling application.

Arguments

ID!
required

The ID of the Channel to return.


query

Returns a Channel by its unique string handle. The handle is either set explicitly during channelCreate or auto-generated from the specification handle and account ID. The channel must belong to the calling application.

Arguments

String!
required

The unique handle of the Channel to return.


query

The list of Channel objects 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.

Arguments

String

The elements that come after the specified cursor.

String

The elements that come before the specified cursor.

Int

The first n elements from the paginated list.

Int

The last n elements from the paginated list.

Boolean
Default:false

Reverse the order of the underlying list.



Was this section helpful?

mutation

Creates a Channel representing 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 specificationHandle, 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 expects_online_store_parity 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.

Arguments

ChannelCreateInput!
required

The input fields for creating the channel.


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 specificationHandle 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.

Arguments

ID!
required

The ID of the Channel to update.

ChannelUpdateInput!
required

The input fields for updating the channel.



Was this section helpful?

interface

Was this section helpful?