HighLevel: Edit post
HighLevel socialPlanner.editPost: arguments, response, policy and SDK examples.
← Social planner operations · Get started
Operation gohighlevel.edit_post
Provider route: PUT /social-media-posting/{locationId}/posts/{id}. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/gohighlevel with npm, or alter-sdk-gohighlevel with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { HighLevelIntegration } from "@alter-ai/gohighlevel";
async function execute(input: Parameters<HighLevelIntegration["socialPlanner"]["editPost"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new HighLevelIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.socialPlanner.editPost(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_gohighlevel import HighLevelIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = HighLevelIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.social_planner.edit_post(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.locationId | string | Required within parent | |
path.id | string | Required within parent | |
body | Model | Required within parent | Expand Edit post — request body — body |
Referenced models: Edit post — request body — body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Edit post — response body |
Referenced models: Edit post — response body
Schemas
Section titled “Schemas”13 more schemas are linked from the tables above, on the schema pages.
Edit post — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
message | string | Required within parent | Message |
statusCode | JSON | Required within parent | |
statusCode (anyOf 1) | number | Alternative | Status Code |
statusCode (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
success | boolean | Required within parent | Success or Failure |
Edit post — request body — body / facebookPostDetails / type: post, story, reel
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
textFormatPresetId | string | Optional | Facebook background preset ID for text-only feed posts. **Facebook `post` only** — not `story` or `reel`. Ignored when media is attached; `metaLink` is omitted on publish. **Validations** — request returns `400` if violated: - Must be a valid preset ID from the [Facebook text background preset reference](https://help.leadconnectorhq.com/support/solutions/articles/155000008005-facebook-text-background-posts-preset-reference). Empty strings, whitespace-only values, and `null` are rejected. - When set, `summary` must be 130 characters or fewer. |
type | string | Required within parent | Facebook post format type. **Available Types:** - `post` - Standard feed post (images, videos, text) - `story` - 24-hour temporary story - `reel` - Short-form vertical video **Restrictions:** - Reels: Require exactly 1 video, not supported on Groups - Stories: Captions not supported One of: post, story, reel |
Edit post — request body — body / gmbPostDetails / actionType: none, order, book, shop, learn more, call, sign up, gmb Event Type: STANDARD, EVENT, OFFER
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
actionType | string | Optional | Call-to-action button type for the post. **Available Actions:** - `none` - No action button - `order` - Order online - `book` - Book appointment - `shop` - Shop now - `learn_more` - Learn more - `call` - Call now (no URL required) - `sign_up` - Sign up **Note:** All actions except `none` and `call` require a `url`. One of: none, order, book, shop, learn_more, call, sign_up |
couponCode | string | Optional | Promotional coupon code. Required for OFFER posts. |
endDate | JSON | Optional | End date and time for EVENT or OFFER posts. **Required:** When `gmbEventType` is `EVENT` or `OFFER`. **Validation:** Must be after `startDate`. **Structure:** - `endDate`: { year, month, day } - `endTime`: { hours, minutes, seconds } |
endDate (allOf 1) | Model | All variants apply | Expand Edit post — request body — body / gmbPostDetails / actionType: none, order, book, shop, learn more, call, sign up, gmb Event Type: STANDARD, EVENT, OFFER end Date end Date, end Time |
gmbEventType | string | Required within parent | Google My Business post type. **Available Types:** - `STANDARD` - Regular update post (What's New) - `EVENT` - Event announcement with dates and title - `OFFER` - Promotional offer with coupon and redemption details **Required fields by type:** - STANDARD: None additional - EVENT: `title`, `startDate`, `endDate` - OFFER: `offerTitle`, `startDate`, `endDate`, `termsConditions`, `couponCode`, `redeemOnlineUrl` One of: STANDARD, EVENT, OFFER |
offerTitle | string | Optional | Offer title. Required when `gmbEventType` is `OFFER`. |
redeemOnlineUrl | string | Optional | URL where customers can redeem the offer online. Required for OFFER posts. |
startDate | JSON | Optional | Start date and time for EVENT or OFFER posts. **Required:** When `gmbEventType` is `EVENT` or `OFFER`. **Structure:** - `startDate`: { year, month, day } - `startTime`: { hours, minutes, seconds } |
startDate (allOf 1) | Model | All variants apply | Expand Edit post — request body — body / gmbPostDetails / actionType: none, order, book, shop, learn more, call, sign up, gmb Event Type: STANDARD, EVENT, OFFER start Date start Date, start Time |
termsConditions | string | Optional | URL to terms and conditions page. Required for OFFER posts. |
title | string | Optional | Event title. Required when `gmbEventType` is `EVENT`. **Max length:** 58 characters |
url | string | Optional | Call-to-action URL. Required when `actionType` is set (except `none` and `call`). **Required for:** STANDARD and EVENT posts with actionType other than `none` or `call`. |
Referenced models: Edit post — request body — body / gmbPostDetails / actionType: none, order, book, shop, learn more, call, sign up, gmb Event Type: STANDARD, EVENT, OFFER end Date end Date, end Time, Edit post — request body — body / gmbPostDetails / actionType: none, order, book, shop, learn more, call, sign up, gmb Event Type: STANDARD, EVENT, OFFER start Date start Date, start Time
Edit post — request body — body / instagramPostDetails / type: post, story, reel
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
collaborators | object | Optional | Object mapping account IDs to arrays of associated usernames for collaboration. Only allowed for type "post" and "reels" |
publishViaPushNotification | boolean | Optional | Send Instagram Story via Push Notification instead of direct posting. Only applicable for Story type. |
publisherNote | string | Optional | Note to the publisher for manual posting guidance. Only used when publishViaPushNotification is true. |
showOnFeed | boolean | Optional | Show Reel on profile grid/feed. **✅ Applies to:** Reels only - `true` - Reel appears on your profile grid - `false` - Reel only appears in Reels tab |
type | string | Required within parent | Instagram post format type. **Available Types:** - `post` - Standard feed post (images, videos, carousels) - `story` - 24-hour temporary story - `reel` - Short-form vertical video (up to 90 seconds) **Restrictions:** - Media is REQUIRED for all Instagram posts - Reels: Require exactly 1 video - Stories: Captions not supported, JPEG only for images One of: post, story, reel |
Edit post — request body — body linkedin Post Details pdf Title, poll, post As Pdf
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
pdfTitle | string | Required within parent | Title for the PDF document carousel. Displayed as the document name on LinkedIn. **Max length:** 100 characters **Tip:** Use a descriptive title that explains the document content. |
poll | JSON | Optional | Publish a LinkedIn poll post. **Required fields when `poll` is supplied:** - `question` (max 140 characters) - `options`: 2 to 4 entries, each `text` ≤ 30 characters; option texts must be unique - `settings.duration`: one of `ONE_DAY`, `THREE_DAYS`, `SEVEN_DAYS`, `FOURTEEN_DAYS` **LinkedIn restrictions:** - Polls cannot be edited after publishing. - A poll post cannot include `media` or a meta-link preview. |
poll (allOf 1) | Model | All variants apply | Expand Edit post — request body — body linkedin Post Details pdf Title, poll, post As Pdf poll options, question, settings |
postAsPdf | boolean | Required within parent | Post images as a PDF document carousel. **Limits:** - Max 300 pages/images - Max PDF size: 100 MB |
Referenced models: Edit post — request body — body linkedin Post Details pdf Title, poll, post As Pdf poll options, question, settings
Edit post — request body — body og Tags Details meta Image, meta Link, og Description, og Title
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
metaImage | string | Optional | Preview image URL for the shared link. **Best Practices:** - Use high-quality images (1200x630px recommended) - Ensure the image is publicly accessible **Auto-fetch:** Use the Get Metatags API to fetch OG data from a URL. |
metaLink | string | Optional | URL of the webpage being shared. This is the destination when users click the link preview. |
ogDescription | string | Optional | Custom description for the link preview. Overrides the page's og:description meta tag. **Tip:** Keep descriptions under 155 characters for optimal display. |
ogTitle | string | Optional | Custom title for the link preview. Overrides the page's og:title meta tag. **Tip:** Keep titles concise (50-60 characters) for best display across platforms. |
Edit post — request body — body pinterest Post Details board Ids, link, pinterest Boards, shortened Links, title
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
boardIds | object | Optional | **DEPRECATED — use `pinterestBoards` instead.** Will be removed on July 31, 2026. Legacy mapping of Pinterest account OAuth IDs to a single board ID: `{ accountOAuthId: "boardId" }` For multi-board posting, use `pinterestBoards`. Additional keys: see wildcard field |
boardIds.* | string | Additional keys | |
link | string | Optional | Destination URL for the pin. Users clicking the pin will be directed to this URL. **Max length:** 2048 characters **Best Practices:** - Use direct links to relevant content - Track with UTM parameters for analytics |
pinterestBoards | array | Optional | Per-account Pinterest board selection. Each entry binds one connected Pinterest account to a list of boards on that account. Each board produces an independent child post tracked separately for success/failure. Capped at 25 boards per account. When supplied, this field takes precedence over the deprecated `boardIds` field. |
pinterestBoards[] | Model | Each item | Expand Edit post — request body — body pinterest Post Details board Ids, link, pinterest Boards, shortened Links, title pinterest Boards item |
shortenedLinks | array | Optional | Shortened links for the post (auto-generated). |
shortenedLinks[] | string | Each item | |
title | string | Optional | Pin title displayed on Pinterest. **Max length:** 100 characters **Best Practices:** - Include relevant keywords - Be descriptive and engaging |
Referenced models: Edit post — request body — body pinterest Post Details board Ids, link, pinterest Boards, shortened Links, title pinterest Boards item
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: gohighlevel.edit_post. Catalog operation: edit-post. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Required provider scopes: ["socialplanner/post.write"]
Pinned headers: {"Version": "v3"}