--- title: Publication - GraphQL Admin description: |- A group of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) that are published to an app. Each publication manages which products and collections display on its associated [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). Merchants can automatically publish products when they're created if [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication#field-Publication.fields.autoPublish) is enabled, or manually control publication through publication records. Publications support scheduled publishing through future publish dates for online store channels, allowing merchants to coordinate product launches and promotional campaigns. The [`catalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication#field-Publication.fields.catalog) field links to pricing and availability rules specific to that publication's context. api_version: 2025-07 api_name: admin type: object api_type: graphql source_url: html: https://shopify.dev/docs/api/admin-graphql/2025-07/objects/publication md: https://shopify.dev/docs/api/admin-graphql/2025-07/objects/publication.md --- # Publication object A group of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) that are published to an app. Each publication manages which products and collections display on its associated [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). Merchants can automatically publish products when they're created if [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication#field-Publication.fields.autoPublish) is enabled, or manually control publication through publication records. Publications support scheduled publishing through future publish dates for online store channels, allowing merchants to coordinate product launches and promotional campaigns. The [`catalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication#field-Publication.fields.catalog) field links to pricing and availability rules specific to that publication's context. ## Fields * auto​Publish [Boolean!](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) non-null Whether new products are automatically published to this publication. * catalog [Catalog](https://shopify.dev/docs/api/admin-graphql/2025-07/interfaces/Catalog) The catalog associated with the publication. * collection​Publications​V3 [Resource​Publication​Connection!](https://shopify.dev/docs/api/admin-graphql/2025-07/connections/ResourcePublicationConnection) non-null The list of collection publication records, each representing the publication status and details for a collection published to this publication (typically channel). * first [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) ### Arguments The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * after [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * last [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * before [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * reverse [Boolean](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) Default:false Reverse the order of the underlying list. *** * collections [Collection​Connection!](https://shopify.dev/docs/api/admin-graphql/2025-07/connections/CollectionConnection) non-null The list of collections published to the publication. * first [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) ### Arguments The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * after [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * last [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * before [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * reverse [Boolean](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) Default:false Reverse the order of the underlying list. *** * has​Collection [Boolean!](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) non-null Whether the collection is available to the publication. * id [ID!](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/ID) required ### Arguments Collection ID to check. *** * id [ID!](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/ID) non-null A globally-unique ID. * included​Products [Product​Connection!](https://shopify.dev/docs/api/admin-graphql/2025-07/connections/ProductConnection) non-null The list of products included, but not necessarily published, in the publication. * first [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) ### Arguments The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * after [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * last [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * before [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * reverse [Boolean](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) Default:false Reverse the order of the underlying list. *** * operation [Publication​Operation](https://shopify.dev/docs/api/admin-graphql/2025-07/unions/PublicationOperation) A background operation associated with this publication. * product​Publications​V3 [Resource​Publication​Connection!](https://shopify.dev/docs/api/admin-graphql/2025-07/connections/ResourcePublicationConnection) non-null The product publications for the list of products published to the publication. * first [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) ### Arguments The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * after [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * last [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * before [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * reverse [Boolean](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) Default:false Reverse the order of the underlying list. *** * products [Product​Connection!](https://shopify.dev/docs/api/admin-graphql/2025-07/connections/ProductConnection) non-null The list of products published to the publication. * first [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) ### Arguments The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * after [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * last [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * before [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * reverse [Boolean](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) Default:false Reverse the order of the underlying list. *** * supports​Future​Publishing [Boolean!](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) non-null Whether the publication supports future publishing. ### Deprecated fields * app [App!](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/App) non-nullDeprecated * name [String!](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) non-nullDeprecated *** ## Map ### Fields and connections with this object * [AppCatalog.publication](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/AppCatalog#field-AppCatalog.fields.publication) * [Catalog.publication](https://shopify.dev/docs/api/admin-graphql/2025-07/interfaces/Catalog#fields-publication) * [Collection.unpublishedPublications](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/Collection#field-Collection.fields.unpublishedPublications) * [CollectionPublication.publication](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/CollectionPublication#field-CollectionPublication.fields.publication) * [CompanyLocationCatalog.publication](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/CompanyLocationCatalog#field-CompanyLocationCatalog.fields.publication) * [MarketCatalog.publication](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/MarketCatalog#field-MarketCatalog.fields.publication) * [Order.publication](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/Order#field-Order.fields.publication) * [Product.unpublishedPublications](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/Product#field-Product.fields.unpublishedPublications) * [PublicationConnection.nodes](https://shopify.dev/docs/api/admin-graphql/2025-07/connections/PublicationConnection#returns-nodes) * [PublicationEdge.node](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/PublicationEdge#field-PublicationEdge.fields.node) * [Publishable.unpublishedPublications](https://shopify.dev/docs/api/admin-graphql/2025-07/interfaces/Publishable#fields-unpublishedPublications) * [ResourcePublication.publication](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/ResourcePublication#field-ResourcePublication.fields.publication) * [ResourcePublicationV2.publication](https://shopify.dev/docs/api/admin-graphql/2025-07/objects/ResourcePublicationV2#field-ResourcePublicationV2.fields.publication) *** ## Queries * [publication](https://shopify.dev/docs/api/admin-graphql/2025-07/queries/publication) query Retrieves a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) by [`ID`](https://shopify.dev/docs/api/usage/gids). Returns `null` if the publication doesn't exist. * id [ID!](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/ID) required ### Arguments The ID of the Publication to return. *** * [publications](https://shopify.dev/docs/api/admin-graphql/2025-07/queries/publications) query Returns a paginated list of [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). Filter publications by [`CatalogType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/CatalogType). * catalog​Type [Catalog​Type](https://shopify.dev/docs/api/admin-graphql/2025-07/enums/CatalogType) ### Arguments Filter publications by catalog type. * first [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * after [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * last [Int](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Int) The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * before [String](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/String) The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * reverse [Boolean](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/Boolean) Default:false Reverse the order of the underlying list. *** *** ## Publication Queries ### Queried by * [publication](https://shopify.dev/docs/api/admin-graphql/2025-07/queries/publication) * [publications](https://shopify.dev/docs/api/admin-graphql/2025-07/queries/publications) *** ## Mutations * [publication​Create](https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/publicationCreate) mutation Creates a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that controls which [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) customers can access through a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog). ### When to create a publication Publications are **optional** for catalogs. Only create a publication if you need to control which products are visible in a specific catalog context. When a publication isn't associated with a catalog, product availability is determined by the sales channel. **Create a publication if you need to:** * Restrict product visibility to a subset of your inventory for a specific market or company location * Publish different product selections to different contexts **Do NOT create a publication if:** * You want product availability determined by the sales channel * You only need custom pricing (use a price list on the catalog instead) ### Configuration options You can create an empty publication and add products later, or prepopulate it with all existing products. The [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publicationCreate#arguments-input.fields.autoPublish) field determines whether the publication automatically adds newly created products. * input [Publication​Create​Input!](https://shopify.dev/docs/api/admin-graphql/2025-07/input-objects/PublicationCreateInput) required ### Arguments The input fields to use when creating the publication. *** * [publication​Update](https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/publicationUpdate) mutation Updates a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). You can add or remove [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) from the publication, with a maximum of 50 items per operation. The [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publicationUpdate#arguments-input.fields.autoPublish) field determines whether new products automatically display in this publication. * id [ID!](https://shopify.dev/docs/api/admin-graphql/2025-07/scalars/ID) required ### Arguments The ID of the publication to update. * input [Publication​Update​Input!](https://shopify.dev/docs/api/admin-graphql/2025-07/input-objects/PublicationUpdateInput) required The input fields to use when updating the publication. *** *** ## Publication Mutations ### Mutated by * [publication​Create](https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/publicationCreate) * [publication​Update](https://shopify.dev/docs/api/admin-graphql/2025-07/mutations/publicationUpdate) *** ## Interfaces * [Node](https://shopify.dev/docs/api/admin-graphql/2025-07/interfaces/Node) interface *** ## Publication Implements ### Implements * [Node](https://shopify.dev/docs/api/admin-graphql/2025-07/interfaces/Node)