All pages
Powered by GitBook
1 of 9

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Multi-Link Posts (Facebook Carousels)

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.

Request Body

{
  "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"
          }
        ]
      }
    ]
  }
}

Parameters

networks.facebook

Field
Type
Description

type

string

Must be "carousel".

text

string

Caption shown above the carousel cards.

sublinks[]

array

List of carousel items (max 10).

sublinks[] Object

Field
Type
Description

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.

Key Notes & Limitations

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

Workflow

  1. Select Page Choose a Facebook Page account in the accounts array.

  2. Define Sublinks Provide url, title, description, and images for each card.

  3. Arrange Order Order sublinks as they should appear (array index defines order).

  4. Schedule or Publish

    • For scheduled: set scheduled_at under accounts.

    • For immediate: omit scheduled_at and use /posts/schedule/publish.

Best Practices

  • 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.

Related Topics

  • Platform-Specific Formats

  • Publishing Methods

  • Content Types

Platform-Specific Formats

Each social network offers unique post formats. Publer’s API supports these specialized types—click a format to dive into its implementation details:

  • Text Posts with Background

  • Multi-Link Posts (Facebook Carousels)

  • Polls

  • LinkedIn PDF Carousels

  • Pinterest Pins with a Link URL

  • Google Events, Offers, and Photos

  • Reels, Shorts, or Stories

Best Practices

  • 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.

Related Topics

  • Media Handling

  • Publishing Methods

  • Content Types

Twitter/X Community Posts

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.

Overview

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.

How It Works

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

Example Request

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"
          }
        ]
      }
    ]
  }
}
Field
Type
Description

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)

How to Find the Community ID

  1. Go to the Community on X.

  2. Look at the URL: https://x.com/i/communities/1492410432069451776

  3. The number at the end is your COMMUNITY_ID.

Important Notes

  • 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.

Best Practices

  • 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.

Related Topics

  • Twitter/X Long-Form Posts

  • Content Types Overview

Twitter/X Long-Form Posts

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.

Overview

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.

How It Works

  • 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.

Key Differences

  • 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.

Request Example

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"
          }
        ]
      }
    ]
  }
}
Field
Type
Description

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)

Important Notes

  • 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.

Best Practices

  • 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.

Related Topics

  • Content Types Overview

  • Publishing Methods

Facebook Text Posts with Background

Create and schedule Facebook status updates with vibrant backgrounds to boost engagement and visual appeal.

Request Body

Include text_format_preset_id in details under the facebook network:

Parameters

Field
Type
Description

Background Presets

Use one of these text_format_preset_id values to select a background:

Key Notes & Limitations

  • 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.

Best Practices

  • 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.

Related Topics

{
  "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

Platform-Specific Formats
Publishing Methods
Content Types

Pinterest Pins With a Link URL

Share visually engaging Pins with an external link URL to drive traffic from Pinterest boards.

Overview

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.

Key Features

  • 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

Supported Features & Limits

Feature
Details

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

Request Structure

{
  "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"
          }
        ]
      }
    ]
  }
}

Parameters

Field
Type
Description

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

Workflow

  1. Select Account & Board Add your Pinterest account.id and target album_id.

  2. Upload/Reference Media Upload up to 5 photos or 1 video to Publer, then reference each with its id.

  3. Compose Pin

    • Set type: "photo".

    • Provide text, title, and url.

    • Optionally add alt_text.

  4. Schedule or Publish

    • To schedule, include scheduled_at.

    • To publish now, call /posts/schedule/publish or omit scheduled_at.

Best Practices

  • 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.

Related Topics

  • Platform-Specific Formats

  • Publishing Methods

  • Content Types

LinkedIn PDF Carousels

Turn multiple images or documents into a scrollable PDF carousel in a single LinkedIn post. Perfect for presentations, portfolios, and multi-page documents.

Overview

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.

Request Structure

Parameters

Field
Type
Description

Supported Features & Limitations

Feature
Details

Workflow

  1. Upload Media Use the to upload images or documents and collect their IDs.

  2. Compose Post

    • Set type: "photo", add media IDs.

    • Under details, set "type": "document".

    • Provide a title.

  3. Schedule or Publish

    • Add scheduled_at under accounts to schedule.

    • Omit scheduled_at to publish immediately.

Best Practices

  • 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.

Related Topics

{
  "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

Media Upload API
Platform-Specific Formats
Publishing Methods
Content Types

Google Business Profiles: Updates, Photos, Events & Offers

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.

Request Examples

1. Update Post

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"
          }
        ]
      }
    ]
  }
}

2. Photo Post

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"
          }
        ]
      }
    ]
  }
}

3. Event Post

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"
          }
        ]
      }
    ]
  }
}

4. Offer Post

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"
          }
        ]
      }
    ]
  }
}

Parameters

Field
Type
Description

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

Supported Features & Limits

Feature
Details

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

Workflow

  1. Select Profile Choose the Google Business Profile in accounts[].id.

  2. 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.

  3. Add Media Upload or reference one photo via the Media Upload API.

  4. Compose & Schedule Build your JSON, set state and scheduled_at, then POST to /posts/schedule.

Best Practices

  • 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.

Related Topics

  • Platform-Specific Formats

  • Publishing Methods

  • Content Types

Reels, Shorts & Stories

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.

Supported Formats & Specs

Format
Platform
Max Duration
Aspect Ratio
Max Size
Notes

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

Request Structure

Send to the scheduling endpoint or use /posts/schedule/publish for immediate posting:

1. Instagram/Facebook Reel

{
  "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"
      }]
    }]
  }
}

2. YouTube Short

{
  "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"
      }]
    }]
  }
}

3. Instagram/Facebook Story

{
  "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"
      }]
    }]
  }
}

Common Parameters

Field
Type
Description

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)

Workflow

Reels

  1. Upload: Use Media API to upload vertical video (9:16).

  2. Compose: Set "details.type": "reel", optional audio and feed flags.

  3. Schedule: Provide scheduled_at or publish immediately.

  4. Verify: Monitor job status and preview in dashboard.

Shorts

  1. Upload: Upload video ≤ 60 sec, 9:16 ratio.

  2. Configure: Set "details.type": "short" and privacy.

  3. Add Title/Text: Populate title and text.

  4. Publish: Schedule or publish immediately.

Stories

  1. Upload: Add photo or video ≤ 15 sec.

  2. Tag as Story: Use "details.type": "story".

  3. Caption: Add text overlay.

  4. Schedule: Set scheduled_at or publish now.

Best Practices

  • Use high-quality, platform-compliant media (9:16 ratio).

  • Rename Reel audio to match branding.

  • Schedule according to audience peak times.

Related Topics

  • Platform-Specific Formats

  • Publishing Methods

  • Content Types