Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Create and schedule multi‐link carousel posts on Facebook Pages. Carousels let you showcase up to 10 clickable cards—each with its own image, title, description, and call-to-action—in a single organic post.
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"facebook": {
"type": "carousel",
"text": "Explore our top features!",
"sublinks": [
{
"url": "https://publer.com",
"title": "Publer Dashboard",
"description": "Manage all your social accounts in one place.",
"images": [
"https://cdn.publer.com/images/dashboard1.jpg",
"https://cdn.publer.com/images/dashboard2.jpg"
],
"default_image": 0,
"call_to_action": "LEARN_MORE"
},
{
"url": "https://publer.com/pricing",
"title": "Pricing Plans",
"description": "Find the right plan for your team.",
"images": [
"https://cdn.publer.com/images/pricing.jpg"
],
"default_image": 0,
"call_to_action": "SIGN_UP"
}
]
}
},
"accounts": [
{
"id": "63c675b54e299e9cf2b667ea",
"scheduled_at": "2025-07-06T23:18:00Z"
}
]
}
]
}
}
type
string
Must be "carousel"
.
text
string
Caption shown above the carousel cards.
sublinks[]
array
List of carousel items (max 10).
url
string
Target link for this card.
provider_display
string
(Optional) Display domain or provider name.
title
string
Card title (overrides fetched metadata).
description
string
Card description (overrides fetched metadata).
images
string[]
Array of image URLs for this card.
default_image
integer
Index (0-based) of the default image in images
.
call_to_action
string
CTA button type: NO_BUTTON
, LEARN_MORE
, SIGN_UP
, etc.
phone_number
string
(Optional) Phone number for call-to-action cards.
customized
boolean
(Optional) true
if overriding the link’s default thumbnail or metadata.
Pages Only: Supported on Facebook Pages. Group posts will include only the first sublink.
Max Sublinks: Up to 10 cards per carousel.
No Cost: Carousel posts are organic (no ad spend).
Syncing: Published carousel posts can only sync back as regular link posts (no carousel structure).
Select Page
Choose a Facebook Page account in the accounts
array.
Define Sublinks
Provide url
, title
, description
, and images
for each card.
Arrange Order Order sublinks as they should appear (array index defines order).
Schedule or Publish
For scheduled: set scheduled_at
under accounts
.
For immediate: omit scheduled_at
and use /posts/schedule/publish
.
Engaging Thumbnails Use high-quality images that clearly represent each link.
Clear Titles & Descriptions Keep text concise and action-oriented to drive clicks.
Focused Carousels Limit to 5–7 cards to avoid overwhelming users.
A/B Test CTAs
Experiment with LEARN_MORE
, SIGN_UP
, and other button types.
Each social network offers unique post formats. Publer’s API supports these specialized types—click a format to dive into its implementation details:
Choose the Right Format Select the layout that matches your content goal and platform norms.
Follow Platform Guidelines Observe character limits, aspect ratios, and file-size rules.
Enhance Engagement Interactive formats (polls, carousels) tend to drive higher user interaction.
Test & Iterate Experiment across formats to discover what resonates best with your audience.
Publish posts directly to Twitter/X Communities using the Publer API. This feature enables you to reach targeted audiences and participate in focused discussions within X Communities—right from your own app or workflow.
Twitter/X Communities are spaces for people to connect, share, and discuss specific topics. Posts made in a Community are visible to anyone on X, but only Community members can engage (like, reply, etc.) with them.
You can only post to Communities you have joined.
Community posts help foster deeper engagement on niche topics or interests.
To publish a post inside a Twitter/X Community via the API, you need:
The Community ID (found in the X Community URL: https://x.com/i/communities/{COMMUNITY_ID}
)
The Community Name (for reference and clarity)
Whether to share the post with followers or not
Set the community
object inside the details
for the twitter
network configuration:
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"twitter": {
"type": "status",
"details": {
"community": {
"id": "1508851391443484686",
"share_with_followers": true,
"name": "ALBANIANS"
}
},
"text": "Post to X communities"
}
},
"accounts": [
{
"id": "66e011b94e299eb49376c715",
"scheduled_at": "2025-07-03T10:28+02:00"
}
]
}
]
}
}
networks.twitter.details.community.id
string
Community ID (from the Community URL)
networks.twitter.details.community.name
string
Name of the Community (optional, for clarity in requests/logs)
networks.twitter.details.community.share_with_followers
boolean
Whether to share the post with followers or not (defaulted to true)
Go to the Community on X.
Look at the URL:
https://x.com/i/communities/1492410432069451776
The number at the end is your COMMUNITY_ID
.
Membership Required: You must be a member of the Community to post.
Engagement: Only members can engage with Community posts, but all users can view them.
Visibility: Community posts are public, but participation is limited to members.
Scheduling: You can schedule Community posts just like any other X post using Publer.
Join Relevant Communities: Ensure your X account has joined the Communities you wish to post in.
Use for Focused Engagement: Target posts to specific Communities for more relevant discussions.
Check Community Guidelines: Each Community may have its own moderation and content rules.
Unlock the ability to schedule and publish long-form posts (up to 25,000 characters) to Twitter/X using the Publer API—exclusively for accounts with an X Premium subscription.
Twitter/X supports long-form posts (sometimes called "long posts" or "extended tweets") for users with an X Premium (formerly Twitter Blue) subscription, even at the Basic tier. These posts can contain up to 25,000 characters, far exceeding the standard 280-character limit.
With Publer, you can programmatically schedule and publish long-form posts via the API. Publer automatically detects your account’s eligibility and switches to the appropriate post type.
Accounts with X Premium: You can create and schedule long-form posts up to 25,000 characters.
Accounts without X Premium: Your post text will be truncated to the standard 280-character limit, and the long-form post type will be disabled.
Tip: Validate the post length in your integration to avoid surprises when publishing.
Long-form posts are not the same as Twitter threads. Threads are multiple connected posts; long-form posts are a single post with expanded character count.
Scheduling long-form posts is not possible directly on X/Twitter—use Publer’s API or platform to achieve this functionality.
To schedule a Twitter/X long-form post, set the network type to "long_post"
inside the details
object for the "twitter"
network:
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"twitter": {
"type": "status",
"details": {
"type": "long_post"
},
"text": "This is a twitter long post"
}
},
"accounts": [
{
"id": "66e011b94e299eb49376c715",
"scheduled_at": "2025-09-24T14:16+02:00"
}
]
}
]
}
}
networks.twitter.details.type
string
Must be "long_post"
for long-form posts
networks.twitter.text
string
Content of your long-form post (max 25,000 characters with X Premium)
X Premium Required: Only X Premium accounts can publish long-form posts. For other accounts, posts will be truncated to 280 characters.
Not for Threads: Use this format for single extended posts, not for multi-part threads.
API Detection: Publer automatically detects account eligibility for long-form posting.
Scheduling Limitation: Twitter/X doesn’t natively support scheduling long-form posts; this is enabled via Publer’s platform and API.
Check your account’s X Premium status before relying on long-form functionality.
Always validate post length to ensure your content is not unintentionally truncated.
Use long-form posts for in-depth announcements, articles, or detailed updates—threads remain better for sequential storytelling.
Create and schedule Facebook status updates with vibrant backgrounds to boost engagement and visual appeal.
Include text_format_preset_id
in details
under the facebook
network:
Use one of these text_format_preset_id
values to select a background:
No Other Media: Background posts cannot include images or videos.
Facebook Pages Only: Not supported on personal profiles or groups.
Links as Plain Text: URLs in your text appear without link previews.
Editing: You may change—but not remove—a background on published posts.
Character Limit: Publer allows unlimited text; Facebook enforces a 130-character cap on background posts.
Syncing: Background posts sync back as plain text, not background posts.
Select Complementary Backgrounds: Match your brand palette and message.
Keep Copy Concise: Short, punchy text reads best over busy backgrounds.
Preview Before Posting: Verify legibility and overall visual balance.
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"facebook": {
"type": "status",
"details": {
"text_format_preset_id": "1868855943417360"
},
"text": "Status update with background color\n\npubler.com"
}
},
"accounts": [
{
"id": "63c675b54e299e9cf2b667ea",
"scheduled_at": "2025-06-21T23:18:00+02:00"
}
]
}
]
}
}
networks.facebook.type
string
Must be "status"
.
networks.facebook.details
object
Facebook-specific settings.
networks.facebook.details.text_format_preset_id
string
ID of the background preset (see list below).
networks.facebook.text
string
Your post copy.
ID
Background Description
106018623298955
Solid purple, background
365653833956649
Pink tropical plants, background image
618093735238824
Brown illustration, background image
191761991491375
3D hearts, background image
2193627793985415
3D heart eyes emojis, background image
200521337465306
3D flame emojis, background image
1821844087883360
Walking Yellow illustration, background image
177465482945164
Light purple 3D cube pattern, background image
160419724814650
Orange with Pink illustration, background image
248623902401250
3D smiling emoji background, background image
240401816771706
3D rose emojis, background image
1868855943417360
3D crying laughter emoji, background image
255989551804163
Eye Pink illustration, background image
1792915444087912
1792915444087912 illustration, background image
1654916007940525
Light grey illustration, background image
1679248482160767
Light blue illustration, background image
518948401838663
Pink heart pattern on pink background, background image
423339708139719
Illustration, background image
204187940028597
Solid red, background
621731364695726
Solid red, background
518596398537417
Red illustration, background image
134273813910336
Tree Red illustration, background image
217321755510854
Pink and purple hearts on a pink background, background image
323371698179784
Sunset Red illustration, background image
901751159967576
Gradient, dark orange red, background
552118025129095
Brown illustration, background image
263789377694911
Apple Red illustration, background image
606643333067842
Tulip Light orange illustration, background image
458988134561491
Cat Dark orange illustration, background image
548109108916650
Unicorn Red illustration, background image
175493843120364
Pink and yellow gradient, background image
338976169966519
Stairs Beige illustration, background image
206513879997925
Spiral Beige illustration, background image
168373304017982
Cube Beige illustration, background image
1271157196337260
Solid red, background
174496469882866
Lemon Yellow illustration, background image
862667370603267
Egg Light yellow illustration, background image
127541261450947
Ball Green illustration, background image
218067308976029
218067308976029 Light grey illustration, background image
688479024672716
Gradient, teal light green, background
238863426886624
Cat Light blue illustration, background image
301029513638534
Solid teal, background
154977255088164
Solid teal, background
1941912679424590
Gradient, grey dark grey, background
396343990807392
Flower Teal illustration, background image
143093446467972
Blue clouds on a dark blue background, background image
161409924510923
Rocket ship makes a heart in the sky, background image
145893972683590
Solid dark purple, background
217761075370932
Solid blue, background
931584293685988
Wave Blue illustration, background image
148862695775447
Pink and purple hearts on a purple background, background image
100114277230063
Deep Sea Blue illustration, background image
558836317844129
Spiral purple illustration, background image
172497526576609
Watermelon Light purple illustration, background image
433967226963128
Solid purple, background
197865920864520
Donut Light purple illustration, background image
643122496026756
Pink illustration, background image
762009070855346
Ballon Light grey illustration, background image
228164237768720
Grey heart pattern on a black background, background image
146487026137131
Rain Black illustration, background image
221828835275596
Glasses Light grey illustration, background image
1903718606535395
Solid red, background
1881421442117417
Solid black, background
249307305544279
Gradient, red blue, background
1777259169190672
Gradient, purple magenta, background
303063890126415
Yellow and orange and pink gradient, background image
122708641613922
Gradient, dark grey black, background
319468561816672
Dark blue illustration, background image
121945541697934
121945541697934 Pink illustration, background image
288211338285858
Blue illustration, background image
446330032368780
Gradient, red, background
219266485227663
Solid magenta, background
1289741387813798
Solid dark red, background
1365883126823705
Solid blue, background
Share visually engaging Pins with an external link URL to drive traffic from Pinterest boards.
Create or schedule a Pinterest Pin by setting type: "photo"
, adding your media, specifying url
for the external link, and the album_id
to select the destination board.
Single API call to schedule or publish…
Supports up to 5 photos or 1 video per Pin
Clickable external URL
Specify the target board with album_id
Optional alt text for accessibility
Max Media
1 video or up to 5 photos
Supported Formats
JPEG, PNG, GIF, MP4
Link URL
External links only (use url
field)
Alt Text
Optional (media[].alt_text
)
Board Selection
Use accounts[].album_id
to pick a Pinterest board
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"pinterest": {
"type": "photo",
"text": "Check out our new blog post!",
"media": [
{
"id": "external-0",
"type": "photo",
"path": "https://cdn.example.com/images/post1.jpg",
"thumbnail": "https://cdn.example.com/images/post1-thumb.jpg",
"alt_text": "Screenshot of our blog homepage"
}
],
"title": "Our Latest Blog Article",
"url": "https://publer.com/blog"
}
},
"accounts": [
{
"id": "YOUR_PINTEREST_ACCOUNT_ID",
"scheduled_at": "2025-07-05T14:16:00+02:00",
"album_id": "934145216398624390"
}
]
}
]
}
}
networks.pinterest.type
string
Must be "photo"
.
networks.pinterest.text
string
Caption or description for the Pin.
networks.pinterest.media
array
List of media objects (1 video or up to 5 photos).
networks.pinterest.media[].id
string
"external-X"
or media ID from Publer.
networks.pinterest.media[].path
string
URL to the full-size image or video.
networks.pinterest.media[].thumbnail
string
URL to the thumbnail image.
networks.pinterest.media[].type
string
Must be "photo"
or "video"
.
networks.pinterest.media[].alt_text
string
Accessible description of the image (optional).
networks.pinterest.title
string
Pin title displayed on hover.
networks.pinterest.url
string
Clickable external link URL.
accounts[].id
string
Pinterest account identifier.
accounts[].album_id
string
Board ID where the Pin will be posted.
accounts[].scheduled_at
string
ISO 8601 timestamp for scheduling (omit to publish immediately).
Select Account & Board
Add your Pinterest account.id
and target album_id
.
Upload/Reference Media
Upload up to 5 photos or 1 video to Publer, then reference each with its id
.
Compose Pin
Set type: "photo"
.
Provide text
, title
, and url
.
Optionally add alt_text
.
Schedule or Publish
To schedule, include scheduled_at
.
To publish now, call /posts/schedule/publish
or omit scheduled_at
.
Use high-resolution images or video for best display.
Keep the title and text concise to encourage clicks.
Ensure the URL is valid and leads to valuable content.
Organize Pins into relevant Boards for better discoverability.
Add alt text for accessibility and SEO benefits.
Turn multiple images or documents into a scrollable PDF carousel in a single LinkedIn post. Perfect for presentations, portfolios, and multi-page documents.
Include type: "photo"
and set details.type: "document"
to bundle your media into a PDF carousel. You may upload images, PDFs, Word, or PowerPoint files up to 100 pages/photos.
Upload Media Use the to upload images or documents and collect their IDs.
Compose Post
Set type: "photo"
, add media
IDs.
Under details
, set "type": "document"
.
Provide a title
.
Schedule or Publish
Add scheduled_at
under accounts
to schedule.
Omit scheduled_at
to publish immediately.
Use high-resolution images or properly formatted documents for clarity.
Craft a concise title that accurately represents the carousel content.
Organize slides in logical order to guide viewers.
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"linkedin": {
"type": "photo",
"text": "Description",
"media": [
{
"id": "680fa5cc48487c4ccbf8c146",
"name": "",
"caption": "Photo by KaLisa Veer on Unsplash:\n\nhttps://unsplash.com/photos/the-chrysler-building-is-framed-by-other-buildings-sdU2K71G8TI",
"path": "https://publer-dev.s3.amazonaws.com/uploads/photos/680fa5cc48487c4ccbf8c146.jpg",
"type": "photo",
"thumbnail": "https://publer-dev.s3.amazonaws.com/uploads/photos/thumb_680fa5cc48487c4ccbf8c146.jpg"
},
{
"id": "66f54e664e299e991eaafaeb",
"name": "pexels-christian-heitz-285904-842711.jpg",
"caption": null,
"path": "https://publer-dev.s3.amazonaws.com/uploads/photos/66f54e664e299e991eaafaeb.jpg",
"type": "photo",
"thumbnail": "https://publer-dev.s3.amazonaws.com/uploads/photos/thumb_66f54e664e299e991eaafaeb.jpg"
},
{
"id": "66f122324e299eb6bcc9af55",
"name": "",
"caption": "Photo by David Villasana on Unsplash:\n\nhttps://unsplash.com/photos/a-black-car-parked-in-front-of-a-white-building-Pf9KhOIylaM",
"path": "https://publer-dev.s3.amazonaws.com/uploads/photos/66f122324e299eb6bcc9af55.jpg",
"type": "photo",
"thumbnail": "https://publer-dev.s3.amazonaws.com/uploads/photos/thumb_66f122324e299eb6bcc9af55.jpg"
},
{
"id": "66df7c954e299e47dae172ac",
"name": "Cabin life",
"caption": "Photo by Karsten Winegeart on Unsplash:\n\nhttps://unsplash.com/photos/a-house-sitting-on-top-of-a-lush-green-hillside-xUyOWyCjJ_I",
"path": "https://publer-dev.s3.amazonaws.com/uploads/photos/66df7c954e299e47dae172ac.jpg",
"type": "photo",
"thumbnail": "https://publer-dev.s3.amazonaws.com/uploads/photos/thumb_66df7c954e299e47dae172ac.jpg"
},
{
"id": "66df7c8d4e299e47dae172ab",
"name": "",
"caption": "Photo by Edgar.infocus on Unsplash:\n\nhttps://unsplash.com/photos/a-car-driving-on-a-foggy-road-AwRcfU8T4dg",
"path": "https://publer-dev.s3.amazonaws.com/uploads/photos/66df7c8d4e299e47dae172ab.jpg",
"type": "photo",
"thumbnail": "https://publer-dev.s3.amazonaws.com/uploads/photos/thumb_66df7c8d4e299e47dae172ab.jpg"
},
{
"id": "66d04c6d4e299e51d9e1f747",
"name": "5574042b224543ecaf6989f6725dd555.jpeg",
"caption": null,
"path": "https://publer-dev.s3.amazonaws.com/uploads/photos/66d04c6d4e299e51d9e1f747.jpeg",
"type": "photo",
"thumbnail": "https://publer-dev.s3.amazonaws.com/uploads/photos/thumb_66d04c6d4e299e51d9e1f747.jpeg"
}
],
"details": {
"type": "document"
},
"title": "Title of the document"
}
},
"accounts": [
{
"id": "64c90c0d4e299e38dc86a284",
"scheduled_at": "2025-06-21T14:16+02:00"
}
]
}
]
}
}
networks.linkedin.type
string
Must be "photo"
networks.linkedin.text
string
Post caption (optional)
networks.linkedin.media[]
array
Up to 100 items; each with "id"
from Media Upload
networks.linkedin.details.type
string
Must be "document"
to enable PDF carousel
networks.linkedin.title
string
Document title (required)
accounts[].id
string
LinkedIn profile or page account ID
accounts[].scheduled_at
string
ISO 8601 timestamp for scheduling (omit to publish immediately)
Max Items
100 photos/pages
Supported Formats
JPEG, PNG, PDF, DOCX, PPTX
Media Mix
No GIFs or videos—photos/documents only
Title Requirement
title
field is mandatory
File Size
No explicit size limit for photos; follows Media API rules
Editing
Cannot change media type after scheduling
Share updates, photos, events, and special offers on your Google Business Profile via the Publer API. Each post type has its own fields—use the right payload to drive engagement and conversions.
General news or announcement with an image and a CTA button.
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"google": {
"type": "photo",
"text": "Our new feature is live!\npubler.com",
"title": "LEARN_MORE",
"media": [
{
"id": "68133d70f09cb4aa6377d2dc",
"path": "https://cdn.publer.com/uploads/photos/68133d70f09cb4aa6377d2dc.png",
"thumbnail": "https://cdn.publer.com/uploads/photos/thumb_68133d70f09cb4aa6377d2dc.png",
"type": "photo"
}
]
}
},
"accounts": [
{
"id": "GOOGLE_ACCOUNT_ID",
"scheduled_at": "2025-05-24T08:46:00-04:00"
}
]
}
]
}
}
Standalone photo update (no special details).
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"google": {
"type": "photo",
"details": { "type": "photo" },
"text": "Our office view today!",
"title": "PROFILE",
"media": [
{
"id": "68133d70f09cb4aa6377d2dc",
"path": "https://cdn.publer.com/uploads/photos/68133d70f09cb4aa6377d2dc.png",
"thumbnail": "https://cdn.publer.com/uploads/photos/thumb_68133d70f09cb4aa6377d2dc.png",
"type": "photo"
}
]
}
},
"accounts": [
{
"id": "GOOGLE_ACCOUNT_ID",
"scheduled_at": "2025-05-24T08:50:00-04:00"
}
]
}
]
}
}
Promote an upcoming event with start/end times and an optional link.
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"google": {
"type": "photo",
"details": {
"type": "event",
"title": "Summer Workshop",
"start": "2025-06-07T12:50:00Z",
"end": "2025-08-03T12:50:00Z"
},
"text": "Join our Summer Workshop series!",
"title": "LEARN_MORE",
"url": "https://publer.com/events",
"media": [
{
"id": "68133d70f09cb4aa6377d2dc",
"path": "https://cdn.publer.com/uploads/photos/68133d70f09cb4aa6377d2dc.png",
"thumbnail": "https://cdn.publer.com/uploads/photos/thumb_68133d70f09cb4aa6377d2dc.png",
"type": "photo"
}
]
}
},
"accounts": [
{
"id": "GOOGLE_ACCOUNT_ID",
"scheduled_at": "2025-06-07T08:50:00-04:00"
}
]
}
]
}
}
Advertise discounts or promotions with coupon codes and terms.
{
"bulk": {
"state": "scheduled",
"posts": [
{
"networks": {
"google": {
"type": "photo",
"details": {
"type": "offer",
"title": "Spring Sale",
"start": "2025-05-28T12:50:00Z",
"end": "2025-10-02T12:50:00Z",
"coupon": "30%OFF",
"terms": "https://publer.com/terms"
},
"text": "Enjoy 30% off sitewide!",
"url": "https://publer.com/sale",
"media": [
{
"id": "68133d70f09cb4aa6377d2dc",
"path": "https://cdn.publer.com/uploads/photos/68133d70f09cb4aa6377d2dc.png",
"thumbnail": "https://cdn.publer.com/uploads/photos/thumb_68133d70f09cb4aa6377d2dc.png",
"type": "photo"
}
]
}
},
"accounts": [
{
"id": "GOOGLE_ACCOUNT_ID",
"scheduled_at": "2025-06-14T08:50:00-04:00"
}
]
}
]
}
}
networks.google.type
string
"photo"
networks.google.text
string
Main caption or description.
networks.google.title
string
CTA button label (LEARN_MORE
, PROFILE
, etc.).
networks.google.url
string
External URL (for events/offers).
networks.google.media[]
array
Array of 1 media object with keys: id
, path
, thumbnail
, and type: "photo"
.
networks.google.details.type
string
One of: "photo"
, "event"
, "offer"
.
networks.google.details.title
string
Event or offer title (required for event
/offer
).
networks.google.details.start
string
ISO 8601 start date/time (for events/offers).
networks.google.details.end
string
ISO 8601 end date/time (for events/offers).
networks.google.details.coupon
string
Coupon code (offers only).
networks.google.details.terms
string
URL to terms & conditions (offers only).
accounts[].id
string
Google Business Profile account ID.
accounts[].scheduled_at
string
ISO 8601 timestamp for scheduling (omit for immediate publish).
Post Types
Updates, Photos, Events, Offers
Max Photo Size
5 MB
Min Photo Resolution
250 × 250 pixels
Call-to-Action Buttons
Supported (LEARN_MORE
, PROFILE
, etc.)
Events
Requires start
and end
fields
Offers
Supports coupon
and terms
Video Support
Not supported
Select Profile
Choose the Google Business Profile in accounts[].id
.
Choose Post Type
Update: general news with image & CTA.
Photo: standalone image.
Event: include details.type = "event"
, dates, and optional link.
Offer: include details.type = "offer"
, dates, coupon, and terms URL.
Add Media Upload or reference one photo via the Media Upload API.
Compose & Schedule
Build your JSON, set state
and scheduled_at
, then POST to /posts/schedule
.
Use high-resolution images (≥250×250 pixels).
Craft clear CTAs to direct user action.
Include complete offer details (coupon & terms).
Set accurate event dates for reliable reminders.
Short-form, immersive content formats for deep engagement. Use Publer’s API to schedule or publish Reels (Instagram & Facebook), Shorts (YouTube), and Stories (Instagram & Facebook) with a single JSON payload.
Reels
Instagram, Facebook
3–90 seconds
9:16
1 GB
Optional audio rename, feed toggle
Shorts
YouTube
≤ 60 seconds
9:16
2 GB
privacy
: public
/private
/unlisted
Stories
Instagram, Facebook
≤ 15 seconds
9:16
1 GB
Photo or video, link stickers on IG
Send to the scheduling endpoint or use /posts/schedule/publish
for immediate posting:
{
"bulk": {
"state": "scheduled",
"posts": [{
"networks": {
"instagram": {
"type": "video",
"text": "Our summer Reel!",
"media": [{
"id": "67c9630bedeb539dd87dd23c",
"path": "https://cdn.publer.com/videos/67c9630b.mp4",
"type": "video",
"default_thumbnail": 1
}],
"details": {
"type": "reel",
"audio": "Custom audio name",
"feed": false
}
}
},
"accounts": [{
"id": "67d1f5f13d9895bab04393ec",
"scheduled_at": "2025-07-27T14:16:00+02:00"
}]
}]
}
}
{
"bulk": {
"state": "scheduled",
"posts": [{
"networks": {
"youtube": {
"type": "video",
"title": "Our Latest Short",
"text": "Quick highlights!",
"media": [{
"id": "67c9630bedeb539dd87dd23c",
"path": "https://cdn.publer.com/videos/67c9630b.mp4",
"type": "video"
}],
"details": {
"type": "short",
"privacy": "public"
}
}
},
"accounts": [{
"id": "64abc34d4e299e662bfd6389",
"scheduled_at": "2025-08-01T14:16:00+02:00"
}]
}]
}
}
{
"bulk": {
"state": "scheduled",
"posts": [{
"networks": {
"instagram": {
"type": "photo",
"text": "Behind the scenes!",
"media": [{
"id": "680fa5cc48487c4ccbf8c146",
"path": "https://cdn.publer.com/photos/680fa5cc.jpg",
"type": "photo"
}],
"details": {
"type": "story"
}
}
},
"accounts": [{
"id": "67d1f5f13d9895bab04393ec",
"scheduled_at": "2025-08-24T14:16:00+02:00"
}]
}]
}
}
networks.{provider}.type
string
"video"
for Reels/Shorts, "photo"
for Stories
networks.{provider}.text
string
Caption or overlay text
networks.youtube.title
string
Title for YouTube Shorts
networks.{provider}.media[]
array
Media array (IDs from Media API)
media[].id
string
Publer media identifier
media[].path
string
URL to the video or image
media[].type
string
"video"
or "photo"
media[].default_thumbnail
integer
Index of the thumbnail image (Reels only)
networks.{provider}.details
object
Format-specific settings
details.type
string
"reel"
, "short"
, or "story"
details.audio
string
Custom audio name for Reels (optional)
details.feed
boolean
true
to also post Reel in Feed tab (Instagram only)
details.privacy
string
"public"
, "private"
, or "unlisted"
(Shorts only)
accounts[].id
string
Target account identifier
accounts[].scheduled_at
string
ISO 8601 timestamp for scheduling (omit for immediate publishing)
Upload: Use Media API to upload vertical video (9:16).
Compose: Set "details.type": "reel"
, optional audio
and feed
flags.
Schedule: Provide scheduled_at
or publish immediately.
Verify: Monitor job status and preview in dashboard.
Upload: Upload video ≤ 60 sec, 9:16 ratio.
Configure: Set "details.type": "short"
and privacy
.
Add Title/Text: Populate title
and text
.
Publish: Schedule or publish immediately.
Upload: Add photo or video ≤ 15 sec.
Tag as Story: Use "details.type": "story"
.
Caption: Add text
overlay.
Schedule: Set scheduled_at
or publish now.
Use high-quality, platform-compliant media (9:16 ratio).
Rename Reel audio to match branding.
Schedule according to audience peak times.