pluggzyDocs

Posts & scheduling

Publish and schedule on any channel that posts. A publishing channel’s own page shows only the fields it reads.

Publish7
create_postPublish or schedule a post · PostsPosts · 3/dayWrite

Publish a post on one connected account, right away or at publish_at (then it's scheduled: returns a scheduled_post_id for list_scheduled_posts and cancel_scheduled_post). LinkedIn: text ≤3000, one image (optional); link is appended to the text and previewed when there's no image; Instagram (logged in): one photo (required), caption ≤2200; Facebook: text ≤10000, one image (optional); as_page posts as one of the account's Pages, share_post_id shares a post (now only). Threads: text ≤500, up to 10 images or 1 video; TikTok: text ≤2200, up to 35 images or 1 video (required); YouTube: text ≤5000, 1 video (required), a title ≤100; Pinterest: text ≤800, 1 image or 1 video (required), optional title ≤100; Google Business Profile: text ≤1500, 1 image; WordPress: text ≤100000, 1 image, a title ≤200; Instagram Business: text ≤2200, up to 20 images or 1 video (required). TikTok needs privacy_level, allow_comment (and allow_duet, allow_stitch for a video) and user_confirmed: true, meaning the user saw the final caption and media and agreed to publish (TikTok's legal requirement). YouTube needs a video and a title. Pinterest pins to board_id, else the board picked at connect. WordPress: text is the article's HTML. Instagram Business: one image (a feed post), several (a carousel), one video (a Reel), or with story: true a Story. Call post_options first for an account you haven't posted to in this conversation. Media: media_ids from upload_media (files the user has, or one you made), or public https links (image_urls, video_url); for a scheduled post, links must keep working until publish_at, uploads are kept with the post. Public and irreversible: confirm the account, final text, media, audience and time (with the user's time zone) with the user first.

Permission Send messages & postsLimit Posts · 3/dayPaced 45–75 sPublic and irreversible: confirm text and media first
Input36 params · 0 required
account
string
account_id of the account to post from (list_accounts). Needed only when several accounts that can post are connected.
text
string
The post's text (Instagram: the caption; YouTube and Pinterest: the description; WordPress: the article's HTML)
default ""max 100,000 chars
title
string
YouTube video, Pinterest pin or WordPress article title; other networks have none
media_ids
string[]
media_id values from upload_media, in order (images, or one video). Instead of image_urls and video_url
1–35
image_urls
string[]
Public https links to the images, in order
max 35 items
video_url
string
Public https link to one video
link
string
LinkedIn: a link appended to the text. Pinterest: the https link the pin opens
https://
visibility
enum
LinkedIn: anyone (default) or relations_only (connections). Facebook: anyone (default: everyone) or relations_only (friends; not as a Page). YouTube: public (default), private or unlisted
anyonerelations_onlypublicprivateunlisted
as_page
string
Facebook: publish as this Page (page_id from facebook_list_pages) instead of the personal account
share_post_id
string
Facebook: post_id of a post to share (text optional, no image; not schedulable)
publish_at
string
Schedule it: ISO 8601 date and time with a UTC offset, like 2026-11-03T09:30:00+01:00, at least a minute ahead, at most a year. Leave it out to publish now.
tags
string[]
YouTube: video tags (each ≤100 characters, ≤500 in all). WordPress: the article's tags (≤100)
max 500 items
made_for_kids
boolean
YouTube: the video is made for children (default false; true turns comments off for good)
thumbnail_url
string
YouTube: public https link to a custom thumbnail (JPEG or PNG, ≤2 MB). Pinterest: cover image of a video pin. Instagram Business: cover of a Reel
https://
privacy_level
enum
TikTok, required: who can watch; one of the levels post_options lists for the account
PUBLIC_TO_EVERYONEMUTUAL_FOLLOW_FRIENDSFOLLOWER_OF_CREATORSELF_ONLY
allow_comment
boolean
TikTok, required: allow comments
allow_duet
boolean
TikTok, required with a video: allow duets
allow_stitch
boolean
TikTok, required with a video: allow stitches
user_confirmed
boolean
TikTok, required: true only once the user has seen the final caption and media and agreed to publish them (TikTok's legal requirement)
board_id
string
Pinterest: the board to pin to (post_options lists them); default: the board picked when the account was connected
cta_type
enum
Google Business Profile: call-to-action button
LEARN_MOREBOOKORDERSHOPSIGN_UPCALL
cta_url
string
Google Business Profile: https link of the button (not needed for CALL)
https://
event_title
string
Google Business Profile: event (or offer) title; makes it an event post with event_start and event_end
event_start
string
Google Business Profile: first day of the event or offer, ISO 8601 (2027-05-15)
event_end
string
Google Business Profile: last day of the event or offer, ISO 8601 (2027-05-16)
coupon_code
string
Google Business Profile: offer coupon code (makes it an offer post, which needs event_title and dates)
offer_url
string
Google Business Profile: https link to redeem the offer online
https://
offer_terms
string
Google Business Profile: offer terms and conditions
excerpt
string
WordPress: short summary shown in blog listings
slug
string
WordPress: the article's URL slug (default: from the title)
story
boolean
Instagram Business: publish as a Story (one image, or one video ≤60 s) instead of a feed post or Reel. Facebook Pages: a Page Story (one image or one video ≤120 s; the text isn't shown)
share_to_feed
boolean
Instagram Business, Reels: also show the Reel in the feed (default true)
first_comment
string
Instagram Business and Facebook Pages: posted as the first comment right after publishing (the place for links; not for Stories)
max 2,200 chars
collaborators
string[]
Instagram Business: up to 3 usernames of public Business or Creator accounts invited as collaborators (not for Stories)
max 3 items
reel
boolean
Facebook Pages: publish the one video as a Reel (vertical, 3 to 60 s) instead of a feed video
preview
boolean
true: post nothing, show the user the post as a card to check (they can schedule it there)
OutputstructuredContent
{
  "url": "https://www.threads.net/@ada.martin/post/DQ3kF8sDk2L",
  "post_id": "18063215523019873",
  "published": true
}
While the network is still processing
{
  "published": false,
  "status": "publishing",
  "post_id": "6914b2c8e4a1f0d3c2b5a7e9"
}
Text content starts with “Post published.”
Can refuse withgaplimitcooldownpermission
post_optionsPost options for an account · ReadsReads · 3,000/dayRead

What create_post accepts on one connected account: the network's limits (characters, title, media) and fields, and the account's own choices: TikTok privacy levels and which interactions the creator allows, Pinterest boards and the default one, the WordPress site, YouTube visibilities, Google Business Profile buttons. Call it before composing a post for an account you haven't posted to in this conversation.

Permission Read your messagesLimit Reads · 3,000/day
Input1 param · 0 required
account
string
account_id from list_accounts. Needed only when several accounts that can post are connected.
OutputstructuredContent
{
  "account_id": "a4c6e8f0-2b4d-4f6a-9c1e-3d5f7b9a1c72",
  "provider": "pinterest",
  "network": "Pinterest",
  "limits": {
    "max_chars": 800,
    "title_max": 100,
    "title_required": false,
    "media": "required",
    "max_images": 1,
    "video": true
  },
  "fields": [
    "board_id",
    "link",
    "thumbnail_url"
  ],
  "boards": [
    {
      "id": "987654321098765432",
      "name": "Ceramics",
      "privacy": "PUBLIC"
    },
    {
      "id": "987654321098765433",
      "name": "Studio life",
      "privacy": "PUBLIC"
    }
  ],
  "default_board": {
    "id": "987654321098765432",
    "name": "Ceramics"
  }
}
Text content starts with “Pinterest: text ≤800, 1 image or 1 video (required), optional title ≤100.”
Can refuse withgaplimitcooldownpermission
list_postsList posts · ReadsReads · 3,000/dayRead

Posts of an account, most recent first, with post_id for list_comments, comment and instagrambusiness_get_insights: caption or text, link, date, likes and comments. Instagram (logged in): the account's own, or anyone's by user_id. Facebook: the account's own, one of its Pages (page_id) or anyone's (id or vanity name); at most 3 a page, follow next_cursor. Instagram Business: the account's own posts, at most the 25 most recent (made outside Pluggzy too).

Permission View profilesLimit Reads · 3,000/day
Input4 params · 0 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
user_id
string
Whose posts: Instagram user id or username; Facebook id, vanity name or page_id. Default: the account's own
limit
integer
default 101–50
cursor
string
next_cursor from a previous call
OutputstructuredContent
{
  "items": [
    {
      "post_id": "3489012345678901234",
      "text": "New mugs are in the shop today ☕️",
      "url": "https://www.instagram.com/p/DQ3kF8sDk2L/",
      "at": "2026-11-06T17:30:00.000Z",
      "media": [
        "img"
      ],
      "likes": 412,
      "comments": 23
    }
  ],
  "next_cursor": "QVFIUnE4bW1Gd2hYc2Z4X0JfZ1",
  "has_more": true
}
Text content starts with “1 post(s).”
Can refuse withgaplimitcooldownpermission
list_commentsList comments on a post · ReadsReads · 3,000/dayRead

Comments on a post (post_id from list_posts), most recent first, or with comment_id the replies to that comment, each with its comment_id for comment (reply_to), moderate_comment and private_reply. Facebook: at most 10 a page. Instagram Business: on the account's own posts; hidden comments show hidden: true, new ones can take 10 minutes to show.

Permission View profilesLimit Reads · 3,000/day
Input5 params · 1 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
post_idrequired
string
comment_id
string
List the replies to this comment instead
limit
integer
default 251–50
cursor
string
next_cursor from a previous call
OutputstructuredContent
{
  "post_id": "100089123456789_122134567890123456",
  "items": [
    {
      "comment_id": "122134567890123456_987654321098765",
      "text": "Still available? What size is the frame?",
      "at": "2026-11-04T14:02:11.000Z",
      "author": "Inès Garcia",
      "author_id": "100072345678901",
      "likes": 1,
      "replies": 1
    }
  ],
  "next_cursor": null,
  "has_more": false,
  "total": 1
}
Text content starts with “1 comment(s).”
Can refuse withgaplimitcooldownpermission
commentComment on a post · MessagesMessages · 75/dayWrite

Comment on a post (post_id from list_posts), or reply to one of its comments with reply_to (comment_id from list_comments). Facebook: as the personal account or one of its Pages (as_page), text and optionally one image (image_url, or media_id from upload_media); mention someone with @ and their id or vanity name. Instagram Business: on the account's own posts, as the account, text only; to answer a commenter privately use private_reply. Public: show the user the exact text first.

Permission Send messages & postsLimit Messages · 75/dayPaced 45–75 sConfirm with the user first
Input7 params · 1 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
post_idrequired
string
text
string
default ""max 8,000 chars
reply_to
string
comment_id to reply to (from list_comments)
image_url
string
https link to a JPEG, PNG or WebP image (at most 8 MB) that is already online. Optional. For an image the user attached in the chat or has on their device, use media_id instead.
https://
media_id
string
An image the user uploaded: call upload_media, then pass its media_id here once the image is uploaded (the user says so, or your own upload_command answered ok).
as_page
string
Facebook personal account: comment as this Page (page_id from facebook_list_pages)
OutputstructuredContent
{
  "post_id": "100089123456789_122134567890123456",
  "comment_id": "122134567890123456_987654321098799",
  "sent": true
}
Text content starts with “Comment posted.”
Can refuse withgaplimitcooldownpermission
moderate_commentHide or delete a comment · DeletionsDeletionsWrite

Moderate a comment on one of the Instagram Business account's posts (post_id and comment_id from list_comments). hide: only its author (and on Facebook their friends) and the account still see it, and the author isn't told; unhide: show it again; delete: remove it for good (anyone's comment, or the account's own). Hiding is the gentler choice. Confirm the exact comment and action with the user first: delete is irreversible.

Permission Send messages & postsLimit DeletionsConfirm with the user first
Input4 params · 3 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
post_idrequired
string
post_id from list_posts
comment_idrequired
string
comment_id from list_comments
actionrequired
enum
hideunhidedelete
OutputstructuredContent
{
  "post_id": "18063215523019873",
  "comment_id": "17912345678901234",
  "hidden": true
}
Text content starts with “Comment hidden.”
Can refuse withgaplimitcooldownpermission
private_replyReply privately to a commenter · MessagesMessages · 75/dayWrite

Send a direct message from the Instagram Business account to the author of a comment on one of its posts (the way to answer a commenter who never messaged the account). One per comment, within 7 days of the comment, and a failed try can use it up: show the user the exact text first and don't retry on your own. Their answers arrive in list_chats.

Permission Send messages & postsLimit Messages · 75/dayPaced 45–75 sConfirm with the user first
Input4 params · 3 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
post_idrequired
string
post_id from list_posts
comment_idrequired
string
comment_id from list_comments
textrequired
string
max 2,000 chars
OutputstructuredContent
{
  "post_id": "18063215523019873",
  "comment_id": "17912345678901234",
  "message_id": "aWdfZAG1faXRlbToxOklHTWVzc2FnZAUlEOjE3ODQ0",
  "sent": true
}
Text content starts with “Private reply sent.”
Can refuse withgaplimitcooldownpermission
Scheduled posts2
list_scheduled_postsList scheduled posts · No callNo callRead

Posts scheduled with create_post (publish_at) or on the Pluggzy dashboard's calendar, on the accounts this connection can use: when, where, status, the text (and title, options and media links), and once published the post's URL. Posts scheduled before the calendar existed have no text here, only its length (chars).

Input3 params · 0 required
status
enum
scheduled (default, soonest first), publishing, published, failed, cancelled, or all (latest first)
default "scheduled"scheduledpublishingpublishedfailedcancelleddraftall
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
limit
integer
default 201–100
OutputstructuredContent
{
  "items": [
    {
      "scheduled_post_id": "7c1e9a3f-5b2d-4e8a-9f0c-6d4b2a8e1c35",
      "account_id": "3f2b8c1e-7a4d-4e9b-9c21-5d8e6f0a1b2c",
      "provider": "linkedin",
      "publish_at": "2026-11-12T08:30:00.000Z",
      "status": "scheduled",
      "chars": 212,
      "text": "Three things we learned building a partner program from scratch 🧵"
    },
    {
      "scheduled_post_id": "2a4c6e8f-0b1d-4f3a-8c5e-7d9b1f3a5c84",
      "account_id": "0d2f4b6a-8c1e-4a3d-b5f7-9e1c3a5d7f60",
      "provider": "threads",
      "publish_at": "2026-11-12T16:00:00.000Z",
      "status": "scheduled",
      "chars": 64,
      "text": "New glazes drop Friday. Which one goes in the shop first?",
      "media_kind": "image",
      "media": [
        {
          "url": "https://cdn.northwind.example/glazes.jpg",
          "type": "image"
        }
      ]
    }
  ]
}
Text content starts with “2 scheduled post(s).”
cancel_scheduled_postCancel a scheduled post · No callNo callWrite

Cancel a scheduled post (scheduled_post_id from create_post or list_scheduled_posts) that hasn't gone out yet, or a draft saved on the calendar. To change a post, cancel it and schedule the new version, or the user can edit it on the calendar in the Pluggzy dashboard.

Input1 param · 1 required
scheduled_post_idrequired
string
OutputstructuredContent
{
  "scheduled_post_id": "7c1e9a3f-5b2d-4e8a-9f0c-6d4b2a8e1c35",
  "status": "cancelled"
}
Text content starts with “Scheduled post cancelled.”
Generated from pluggzy.com/api/docs · 38 toolsSomething unclear? Write to support · Status