--- title: Blog - Storefront API description: > A blog container for [`Article`](/docs/api/storefront/unstable/objects/Article) objects. Stores can have multiple blogs, for example to organize content by topic or purpose. Each blog provides access to its articles, contributing [`ArticleAuthor`](/docs/api/storefront/unstable/objects/ArticleAuthor) objects, and [`SEO`](/docs/api/storefront/unstable/objects/SEO) information. You can retrieve articles individually [by handle](/docs/api/storefront/unstable/objects/Blog#field-Blog.fields.articleByHandle) or as a [paginated list](/docs/api/storefront/unstable/objects/Blog#field-Blog.fields.articles). api_version: unstable api_name: storefront source_url: html: 'https://shopify.dev/docs/api/storefront/unstable/objects/Blog' md: 'https://shopify.dev/docs/api/storefront/unstable/objects/Blog.md' --- # Blog object Requires `unauthenticated_read_content` access scope. A blog container for [`Article`](https://shopify.dev/docs/api/storefront/unstable/objects/Article) objects. Stores can have multiple blogs, for example to organize content by topic or purpose. Each blog provides access to its articles, contributing [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/unstable/objects/ArticleAuthor) objects, and [`SEO`](https://shopify.dev/docs/api/storefront/unstable/objects/SEO) information. You can retrieve articles individually [by handle](https://shopify.dev/docs/api/storefront/unstable/objects/Blog#field-Blog.fields.articleByHandle) or as a [paginated list](https://shopify.dev/docs/api/storefront/unstable/objects/Blog#field-Blog.fields.articles). ## Fields * article​By​Handle [Article](https://shopify.dev/docs/api/storefront/unstable/objects/Article) Find an article by its handle. * handle [String!](https://shopify.dev/docs/api/storefront/unstable/scalars/String) required ### Arguments The handle of the article. *** * articles [Article​Connection!](https://shopify.dev/docs/api/storefront/unstable/connections/ArticleConnection) non-null List of the blog's articles. * first [Int](https://shopify.dev/docs/api/storefront/unstable/scalars/Int) ### Arguments Returns up to the first `n` elements from the list. * after [String](https://shopify.dev/docs/api/storefront/unstable/scalars/String) Returns the elements that come after the specified cursor. * last [Int](https://shopify.dev/docs/api/storefront/unstable/scalars/Int) Returns up to the last `n` elements from the list. * before [String](https://shopify.dev/docs/api/storefront/unstable/scalars/String) Returns the elements that come before the specified cursor. * reverse [Boolean](https://shopify.dev/docs/api/storefront/unstable/scalars/Boolean) Default:false Reverse the order of the underlying list. * sort​Key [Article​Sort​Keys](https://shopify.dev/docs/api/storefront/unstable/enums/ArticleSortKeys) Default:ID Sort the underlying list by the given key. * query [String](https://shopify.dev/docs/api/storefront/unstable/scalars/String) Apply one or multiple filters to the query. Refer to the detailed [search syntax](https://shopify.dev/api/usage/search-syntax) for more information about using filters. * author * blog\_title * created\_at * tag * tag\_not * updated\_at *** * authors [\[Article​Author!\]!](https://shopify.dev/docs/api/storefront/unstable/objects/ArticleAuthor) non-null The authors who have contributed to the blog. * handle [String!](https://shopify.dev/docs/api/storefront/unstable/scalars/String) non-null A human-friendly unique string for the Blog automatically generated from its title. * id [ID!](https://shopify.dev/docs/api/storefront/unstable/scalars/ID) non-null A globally-unique ID. * metafield [Metafield](https://shopify.dev/docs/api/storefront/unstable/objects/Metafield) Token access required 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. * namespace [String](https://shopify.dev/docs/api/storefront/unstable/scalars/String) ### Arguments The container the metafield belongs to. If omitted, the app-reserved namespace will be used. * key [String!](https://shopify.dev/docs/api/storefront/unstable/scalars/String) required The identifier for the metafield. *** * metafields [\[Metafield\]!](https://shopify.dev/docs/api/storefront/unstable/objects/Metafield) non-null Token access required A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. * identifiers [\[Has​Metafields​Identifier!\]!](https://shopify.dev/docs/api/storefront/unstable/input-objects/HasMetafieldsIdentifier) required ### Arguments The list of metafields to retrieve by namespace and key. The input must not contain more than `250` values. *** * online​Store​Url [URL](https://shopify.dev/docs/api/storefront/unstable/scalars/URL) The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. * seo [SEO](https://shopify.dev/docs/api/storefront/unstable/objects/SEO) The blog's SEO information. * title [String!](https://shopify.dev/docs/api/storefront/unstable/scalars/String) non-null The blogs’s title. *** ## Map ### Fields and connections with this object * [Article.blog](https://shopify.dev/docs/api/storefront/unstable/objects/Article#field-Article.fields.blog) * [BlogConnection.nodes](https://shopify.dev/docs/api/storefront/unstable/connections/BlogConnection#returns-nodes) * [BlogEdge.node](https://shopify.dev/docs/api/storefront/unstable/objects/BlogEdge#field-BlogEdge.fields.node) ### Possible type in * [Menu​Item​Resource](https://shopify.dev/docs/api/storefront/unstable/unions/MenuItemResource) * [Metafield​Parent​Resource](https://shopify.dev/docs/api/storefront/unstable/unions/MetafieldParentResource) *** ## Queries * [blog](https://shopify.dev/docs/api/storefront/unstable/queries/blog) query Retrieves a [`Blog`](https://shopify.dev/docs/api/storefront/unstable/objects/Blog) by its handle or ID. A blog organizes [`Article`](https://shopify.dev/docs/api/storefront/unstable/objects/Article) objects for the online store and includes author information, [`SEO`](https://shopify.dev/docs/api/storefront/unstable/objects/SEO) settings, and custom [`Metafield`](https://shopify.dev/docs/api/storefront/unstable/objects/Metafield) objects. * handle [String](https://shopify.dev/docs/api/storefront/unstable/scalars/String) ### Arguments The handle of the `Blog`. * id [ID](https://shopify.dev/docs/api/storefront/unstable/scalars/ID) The ID of the `Blog`. *** * [blogs](https://shopify.dev/docs/api/storefront/unstable/queries/blogs) query Returns a paginated list of the shop's [`Blog`](https://shopify.dev/docs/api/storefront/unstable/objects/Blog) objects. Each blog serves as a container for [`Article`](https://shopify.dev/docs/api/storefront/unstable/objects/Article) objects. * first [Int](https://shopify.dev/docs/api/storefront/unstable/scalars/Int) ### Arguments Returns up to the first `n` elements from the list. * after [String](https://shopify.dev/docs/api/storefront/unstable/scalars/String) Returns the elements that come after the specified cursor. * last [Int](https://shopify.dev/docs/api/storefront/unstable/scalars/Int) Returns up to the last `n` elements from the list. * before [String](https://shopify.dev/docs/api/storefront/unstable/scalars/String) Returns the elements that come before the specified cursor. * reverse [Boolean](https://shopify.dev/docs/api/storefront/unstable/scalars/Boolean) Default:false Reverse the order of the underlying list. * sort​Key [Blog​Sort​Keys](https://shopify.dev/docs/api/storefront/unstable/enums/BlogSortKeys) Default:ID Sort the underlying list by the given key. * query [String](https://shopify.dev/docs/api/storefront/unstable/scalars/String) Apply one or multiple filters to the query. Refer to the detailed [search syntax](https://shopify.dev/api/usage/search-syntax) for more information about using filters. * created\_at * handle * title * updated\_at *** * [blog​By​Handle](https://shopify.dev/docs/api/storefront/unstable/queries/blogByHandle) query Deprecated * handle [String!](https://shopify.dev/docs/api/storefront/unstable/scalars/String) required ### Arguments The handle of the blog. *** *** ## Blog Queries ### Queried by * [blog](https://shopify.dev/docs/api/storefront/unstable/queries/blog) * [blogs](https://shopify.dev/docs/api/storefront/unstable/queries/blogs) *** ## Interfaces * * [Has​Metafields](https://shopify.dev/docs/api/storefront/unstable/interfaces/HasMetafields) interface * [Node](https://shopify.dev/docs/api/storefront/unstable/interfaces/Node) interface * [Online​Store​Publishable](https://shopify.dev/docs/api/storefront/unstable/interfaces/OnlineStorePublishable) interface *** ## Blog Implements ### Implements * [Has​Metafields](https://shopify.dev/docs/api/storefront/unstable/interfaces/HasMetafields) * [Node](https://shopify.dev/docs/api/storefront/unstable/interfaces/Node) * [Online​Store​Publishable](https://shopify.dev/docs/api/storefront/unstable/interfaces/OnlineStorePublishable)