Skip to content
Platforms

Shopify: posting rules and settings

What a Shopify channel accepts in Postemi: media, limits, required fields, and the fields of the settings object for the API.

Beta

New in Postemi and not yet tested with many stores. You connect through an app you create in Shopify, which takes about five minutes.

Basics

Platform
Shopify
Character limit
The platform does not specify a general limit.
Media
The article image is the image setting or the first picture. Other pictures follow the text in the body; a video is added as a link.
settings.__type
shopify
Required fields
blog, title

Rules

  • You connect with your store's myshopify.com address and an app you create in Shopify's Dev Dashboard (dev.shopify.com) with the scopes write_content and read_content, installed on the store: its client ID and secret. An older custom app made in the admin works too: leave the client ID empty and give its Admin API access token (shpat_...) as the secret.
  • The article goes to the chosen blog. With status "published" it is visible at the scheduled time; with "draft" it is saved hidden.
  • The author is the author setting, or else the name of the shop.
  • Beta: not yet tested with many stores.

Settings fields

These fields go into the post's settings object, alongside the __type field. In the UI, you fill in the same ones in the channel's settings section.

FieldTypeRequiredWhat it does
blogstring (gid://shopify/Blog/...)yesThe blog to post to (the blogs function lists them).
titlestringyesThe article title, up to 255 characters.
status"published" | "draft"noDefaults to "published". "draft" saves the article hidden.
tagsstringnoTags separated by commas.
authorstringnoUp to 100 characters. Empty: the shop's name.
summarystringnoThe excerpt shown on the blog page, up to 1000 characters.
image{ id: string; path: string }noThe article image. Empty: the first picture of the post.

Examples

Each example is one item in the POST /public/v1/posts request's posts array. The envelope around it is always this:

{
  "type": "schedule",
  "date": "2026-09-15T09:00:00.000Z",
  "shortLink": false,
  "posts": [ /* the item below */ ]
}
{
  "integration": { "id": "<channel-id>" },
  "value": [{ "content": "<p>The text of the post.</p>", "image": [] }],
  "settings": { "__type": "shopify" }
}

The channel ID comes from the channel list, and the path values for images and videos from media upload. The exact schema for the connected account comes from the settings schema endpoint. From the command line, the same thing is the --settings flag. See the CLI examples.

Is something missing from this page? Email [email protected] or use the form on the Help page.