---
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)
