# Publication - admin - OBJECT
Version: 2025-01

## Description
A publication is a group of products and collections that is published to an app.

### Access Scopes



## Fields
* [app](/docs/api/admin/2025-01/objects/App): App! - The app associated with the publication.
* [autoPublish](/docs/api/admin/2025-01/scalars/Boolean): Boolean! - Whether new products are automatically published to this publication.
* [catalog](/docs/api/admin/2025-01/interfaces/Catalog): Catalog - The catalog associated with the publication.
* [hasCollection](/docs/api/admin/2025-01/scalars/Boolean): Boolean! - Whether the collection is available to the publication.
* [id](/docs/api/admin/2025-01/scalars/ID): ID! - A globally-unique ID.
* [name](/docs/api/admin/2025-01/scalars/String): String! - Name of the publication.
* [operation](/docs/api/admin/2025-01/unions/PublicationOperation): PublicationOperation - A background operation associated with this publication.
* [supportsFuturePublishing](/docs/api/admin/2025-01/scalars/Boolean): Boolean! - Whether the publication supports future publishing.

## Connections
* [collectionPublicationsV3](/docs/api/admin/2025-01/connections/ResourcePublicationConnection): ResourcePublicationConnection!
* [collections](/docs/api/admin/2025-01/connections/CollectionConnection): CollectionConnection!
* [productPublicationsV3](/docs/api/admin/2025-01/connections/ResourcePublicationConnection): ResourcePublicationConnection!
* [products](/docs/api/admin/2025-01/connections/ProductConnection): ProductConnection!



## Related queries
* [publication](/docs/api/admin/2025-01/queries/publication) Lookup a publication by ID.
* [publications](/docs/api/admin/2025-01/queries/publications) List of publications.

## Related mutations
* [publicationCreate](/docs/api/admin/2025-01/mutations/publicationCreate) Creates a publication.
* [publicationUpdate](/docs/api/admin/2025-01/mutations/publicationUpdate) Updates a publication.

## Related Unions

## Examples
### Retrieve a publication that doesn't exist
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query publication($id: ID!) { publication(id: $id) { name collections(first: 5) { edges { node { id title updatedAt } } } } }\",\n \"variables\": {\n    \"id\": \"gid://shopify/Publication/-1\"\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `query publication($id: ID!) {\n      publication(id: $id) {\n        name\n        collections(first: 5) {\n          edges {\n            node {\n              id\n              title\n              updatedAt\n            }\n          }\n        }\n      }\n    }`,\n    \"variables\": {\n      \"id\": \"gid://shopify/Publication/-1\"\n    },\n  },\n});\n"
Ruby example: "session = ShopifyAPI::Auth::Session.new(\n  shop: \"your-development-store.myshopify.com\",\n  access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n  session: session\n)\n\nquery = <<~QUERY\n  query publication($id: ID!) {\n    publication(id: $id) {\n      name\n      collections(first: 5) {\n        edges {\n          node {\n            id\n            title\n            updatedAt\n          }\n        }\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"id\": \"gid://shopify/Publication/-1\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" 
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n  `#graphql\n  query publication($id: ID!) {\n    publication(id: $id) {\n      name\n      collections(first: 5) {\n        edges {\n          node {\n            id\n            title\n            updatedAt\n          }\n        }\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"id\": \"gid://shopify/Publication/-1\"\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "query publication($id: ID!) {\n  publication(id: $id) {\n    name\n    collections(first: 5) {\n      edges {\n        node {\n          id\n          title\n          updatedAt\n        }\n      }\n    }\n  }\n}"
#### Graphql Input
{
  "id": "gid://shopify/Publication/-1"
}
#### Graphql Response
{
  "data": {
    "publication": null
  }
}

### Retrieve an existing publication
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query publication($id: ID!) { publication(id: $id) { name collections(first: 5) { edges { node { id title updatedAt } } } } }\",\n \"variables\": {\n    \"id\": \"gid://shopify/Publication/244171671\"\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `query publication($id: ID!) {\n      publication(id: $id) {\n        name\n        collections(first: 5) {\n          edges {\n            node {\n              id\n              title\n              updatedAt\n            }\n          }\n        }\n      }\n    }`,\n    \"variables\": {\n      \"id\": \"gid://shopify/Publication/244171671\"\n    },\n  },\n});\n"
Ruby example: "session = ShopifyAPI::Auth::Session.new(\n  shop: \"your-development-store.myshopify.com\",\n  access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n  session: session\n)\n\nquery = <<~QUERY\n  query publication($id: ID!) {\n    publication(id: $id) {\n      name\n      collections(first: 5) {\n        edges {\n          node {\n            id\n            title\n            updatedAt\n          }\n        }\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"id\": \"gid://shopify/Publication/244171671\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" 
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n  `#graphql\n  query publication($id: ID!) {\n    publication(id: $id) {\n      name\n      collections(first: 5) {\n        edges {\n          node {\n            id\n            title\n            updatedAt\n          }\n        }\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"id\": \"gid://shopify/Publication/244171671\"\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "query publication($id: ID!) {\n  publication(id: $id) {\n    name\n    collections(first: 5) {\n      edges {\n        node {\n          id\n          title\n          updatedAt\n        }\n      }\n    }\n  }\n}"
#### Graphql Input
{
  "id": "gid://shopify/Publication/244171671"
}
#### Graphql Response
{
  "data": {
    "publication": {
      "name": "Online Store",
      "collections": {
        "edges": [
          {
            "node": {
              "id": "gid://shopify/Collection/79210309",
              "title": "Custom Other Items",
              "updatedAt": "2008-10-10T00:00:00Z"
            }
          },
          {
            "node": {
              "id": "gid://shopify/Collection/94229130",
              "title": "All products more expensive than free",
              "updatedAt": "2006-02-02T00:00:00Z"
            }
          },
          {
            "node": {
              "id": "gid://shopify/Collection/142458073",
              "title": "All snowboards",
              "updatedAt": "2006-02-02T00:00:00Z"
            }
          },
          {
            "node": {
              "id": "gid://shopify/Collection/411960790",
              "title": "Bold snowboards",
              "updatedAt": "2006-02-02T00:00:00Z"
            }
          },
          {
            "node": {
              "id": "gid://shopify/Collection/431528632",
              "title": "All arbor products tagged deepsnow",
              "updatedAt": "2006-02-02T00:00:00Z"
            }
          }
        ]
      }
    }
  }
}