--- title: Blog - GraphQL Admin description: |- A blog for publishing articles in the online store. Stores can have multiple blogs to organize content by topic or purpose. Each blog contains articles with their associated comments, tags, and metadata. The comment policy controls whether readers can post comments and whether moderation is required. Blogs use customizable URL handles and can apply alternate templates for specialized layouts. api_version: 2025-10 api_name: admin type: object api_type: graphql source_url: html: https://shopify.dev/docs/api/admin-graphql/latest/objects/blog md: https://shopify.dev/docs/api/admin-graphql/latest/objects/blog.md --- # Blog object Requires `read_content` access scope or `read_online_store_pages` access scope. A blog for publishing articles in the online store. Stores can have multiple blogs to organize content by topic or purpose. Each blog contains articles with their associated comments, tags, and metadata. The comment policy controls whether readers can post comments and whether moderation is required. Blogs use customizable URL handles and can apply alternate templates for specialized layouts. ## Fields * articles [Article​Connection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/ArticleConnection) non-null List of the blog's articles. * articles​Count [Count](https://shopify.dev/docs/api/admin-graphql/latest/objects/Count) Count of articles. Limited to a maximum of 10000 by default. * comment​Policy [Comment​Policy!](https://shopify.dev/docs/api/admin-graphql/latest/enums/CommentPolicy) non-null Indicates whether readers can post comments to the blog and if comments are moderated or not. * created​At [Date​Time!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime) non-null The date and time when the blog was created. * events [Event​Connection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/EventConnection) non-null The paginated list of events associated with the host subject. * feed [Blog​Feed](https://shopify.dev/docs/api/admin-graphql/latest/objects/BlogFeed) FeedBurner provider details. Any blogs that aren't already integrated with FeedBurner can't use the service. * handle [String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String) non-null A unique, human-friendly string for the blog. If no handle is specified, a handle will be generated automatically from the blog title. The handle is customizable and is used by the Liquid templating language to refer to the blog. * id [ID!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/ID) non-null A globally-unique ID. * metafield [Metafield](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. * metafields [Metafield​Connection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/MetafieldConnection) non-null A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. * tags [\[String!\]!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String) non-null A list of tags associated with the 200 most recent blog articles. * template​Suffix [String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String) The name of the template a blog is using if it's using an alternate template. Returns `null` if a blog is using the default blog.liquid template. * title [String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String) non-null The title of the blog. * translations [\[Translation!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/Translation) non-null The published translations associated with the resource. * updated​At [Date​Time](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime) The date and time when the blog was update. * metafield​Definitions [Metafield​Definition​Connection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/MetafieldDefinitionConnection) non-nullDeprecated *** ## Map ### Fields and connections with this object * {}[Article.blog](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article#field-Article.fields.blog) * <->[BlogConnection.nodes](https://shopify.dev/docs/api/admin-graphql/latest/connections/BlogConnection#returns-nodes) * {}[BlogEdge.node](https://shopify.dev/docs/api/admin-graphql/latest/objects/BlogEdge#field-BlogEdge.fields.node) ### Possible type in * [Metafield​Referencer](https://shopify.dev/docs/api/admin-graphql/latest/unions/MetafieldReferencer) *** ## Queries * [blog](https://shopify.dev/docs/api/admin-graphql/latest/queries/blog) query Returns a `Blog` resource by ID. * [blogs](https://shopify.dev/docs/api/admin-graphql/latest/queries/blogs) query Returns a paginated list of the shop's [`Blog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Blog) objects. Blogs serve as containers for [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article) objects and provide content management capabilities for the store's editorial content. Supports [cursor-based pagination](https://shopify.dev/docs/api/usage/pagination-graphql) to control the number of blogs returned and their order. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/blogs#arguments-query) argument to filter results by specific criteria. *** ## \Blog Queries ### Queried by * \[blog](https://shopify.dev/docs/api/admin-graphql/latest/queries/blog) * \[blogs](https://shopify.dev/docs/api/admin-graphql/latest/queries/blogs) *** ## Mutations * [blog​Create](https://shopify.dev/docs/api/admin-graphql/latest/mutations/blogCreate) mutation Creates a new blog within a shop, establishing a container for organizing articles. For example, a fitness equipment retailer launching a wellness blog would use this mutation to create the blog, enabling them to publish workout guides and nutrition tips. Use the `blogCreate` mutation to: * Launch new content marketing initiatives * Create separate blogs for different content themes * Establish spaces for article organization The mutation validates blog settings and establishes the structure for article publishing. * [blog​Update](https://shopify.dev/docs/api/admin-graphql/latest/mutations/blogUpdate) mutation Updates an existing blog's configuration and settings. This mutation allows merchants to modify blog properties to keep their content strategy current. For example, a merchant might update their blog's title from "Company News" to "Sustainability Stories" when shifting their content focus, or modify the handle to improve URL structure. Use the `blogUpdate` mutation to: * Change blog titles for rebranding * Modify blog handles for better URLs * Adjust comment settings and moderation preferences The mutation returns the updated blog with any validation errors. *** ## <\~> Blog Mutations ### Mutated by * <\~>[blog​Create](https://shopify.dev/docs/api/admin-graphql/latest/mutations/blogCreate) * <\~>[blog​Update](https://shopify.dev/docs/api/admin-graphql/latest/mutations/blogUpdate) *** ## Interfaces * * [Has​Events](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasEvents) interface * [Has​Metafield​Definitions](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasMetafieldDefinitions) interface * [Has​Metafields](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasMetafields) interface * [Has​Published​Translations](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasPublishedTranslations) interface * [Node](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Node) interface *** ## ||-Blog Implements ### Implements * ||-[Has​Events](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasEvents) * ||-[Has​Metafield​Definitions](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasMetafieldDefinitions) * ||-[Has​Metafields](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasMetafields) * ||-[Has​Published​Translations](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasPublishedTranslations) * ||-[Node](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Node)