This article presents possible use cases and corresponding sample flows that you can support. It provides a useful starting point as you plan your implementation.
A site owner wants to connect a new social channel so they can publish to it, without leaving your app for the dashboard.
To connect a channel:
channelName to retrieve the channel's OAuth authorization URL.channelName until the status is VALID, which confirms the channel is connected.channelName.A site owner wants to connect a channel, generate a post caption and image with AI, and publish it, all in one flow.
To connect a channel and publish an AI-generated post:
channelName to check whether the channel is already connected.VALID, connect the channel: call Get Connect Url with the channelName, surface the returned OAuth authorization URL to the site owner to authorize in their browser (the OAuth redirect completes the connection server-side), then poll Get Long Lived Token Status until the status is VALID.executionId until the status is READY to get the image's imageUrl and fileId.id.id to publish it immediately, or include a scheduledDate to schedule it.A site owner wants to publish a post to one of their connected social channels.
Prerequisite: The site owner must connect the channel in the site's dashboard before you can publish to it. See Connecting to your social media accounts.
To create and publish a post:
id.PUBLISH_POST to confirm the site can publish and has remaining quota.type, and content. The type and content must match a combination the channel supports. The response includes the draft's id.id to publish it immediately. The published post appears on the site's Social Media Marketing page in the dashboard.A site owner wants to prepare a post now and have it published automatically at a later time.
To schedule a post:
type, and content. The response includes the draft's id.id and a scheduledDate. The post is published at that date with a status of SCHEDULED.A site owner wants to change the publish date of a scheduled post, or stop it from being published.
To reschedule or cancel a scheduled post:
id from the results.id and the new scheduledDate. To stop it from being published, call Cancel Scheduled Item with the id.A site owner wants to create a post from one of their site's assets, such as a product, without writing the content themselves.
To generate post content and publish it:
STORES_PRODUCT, or Query Posts for a BLOG_POST.id and type), a free-text userInput, or both, and optionally the channels to generate for. Supported asset types are STORES_PRODUCT, STORES_CATEGORY, STORES_COUPON, BLOG_POST, EVENT, and BOOKINGS_SERVICE. Only one asset is supported per call. The response returns ready-to-use content for each requested channel: image posts for Instagram, Facebook, LinkedIn, Pinterest, Google Business Profile, and TikTok. It doesn't return YouTube content or story and video formats.id.id to publish it, or include a scheduledDate to schedule it.A site owner wants to create a caption with AI to use in a post, rather than generate a full post.
To generate content and publish a post with it:
id.id to publish it, or include a scheduledDate to schedule it.A site owner wants to see what's queued to go out, so they can confirm a post was scheduled before moving on.
To find a site's scheduled posts:
filter set to {"status": "SCHEDULED"}. To narrow the results to one channel, add channel, and to narrow them to one format, add type.schedulingInfo.scheduledDate.status of the returned items before treating the result as the site's schedule. An unsupported filter field is ignored rather than rejected, so a filter that names the wrong field returns every item instead of an error.A site owner has a story draft made up of several images and wants to publish every frame.
To publish a multi-frame story:
id from the results. A multi-frame story is an item whose type is STORY and whose media list holds more than one media item.id, or include schedulingInfo.scheduledDate to schedule the sequence. Each frame is published as its own story item, in media order.results in the response. Each entry reports one frame. If any frame failed, the draft is kept so you can fix the problem and call the method again. Frames that already published are skipped on the retry.Last updated: 6 September 2026