HighLevel: Get posts
HighLevel socialPlanner.getPosts: arguments, response, policy and SDK examples.
← Social planner operations · Get started
Operation gohighlevel.get_posts
Provider route: POST /social-media-posting/{locationId}/posts/list. 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"]["getPosts"]>[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.getPosts(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.get_posts(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 | |
body | Model | Required within parent | Expand Get posts — request body — body |
Referenced models: Get posts — 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 Get posts — response body |
Referenced models: Get posts — response body
Schemas
Section titled “Schemas”16 more schemas are linked from the tables above, on the schema pages.
Get posts — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
message | string | Required within parent | Message |
results | JSON | Optional | Requested Results |
results (allOf 1) | Model | All variants apply | Expand Get posts — response body — results count, posts |
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 |
Referenced models: Get posts — response body — results count, posts
Get posts — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
accounts | string | Optional | List of account Ids separated by comma as a string |
fromDate | string | Required within parent | From Date |
includeUsers | string | Required within parent | Include User Data |
limit | string | Required within parent | Maximum number of records to return Default: 10 |
postType | object | Optional | Post Type must be one of the following values: - post, story, reel |
skip | string | Required within parent | Number of records to skip for pagination Default: 0 |
toDate | string | Required within parent | To Date |
type | string | Optional | type must be one of the following values: recent, all, scheduled, draft, failed, in_review, published, in_progress, pending and deleted Default: all |
Get posts — response body — results count, posts
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
count | JSON | Optional | |
count (anyOf 1) | number | Alternative | Total count of posts |
count (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
posts | array | Optional | Post Data |
posts[] | Model | Each item | Expand Get posts — response body — results count, posts posts item |
Referenced models: Get posts — response body — results count, posts posts item
Get posts — response body — results count, posts posts item bluesky Post Details external Link, external Link Description, external Link Title, language, quote Post, reply To, shortened Links
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
externalLink | string | Optional | External URL to embed as a link card in the post. |
externalLinkDescription | string | Optional | Description for the external link card. Brief summary displayed below the title. |
externalLinkTitle | string | Optional | Title for the external link card. Displayed prominently in the embed. |
language | string | Optional | ISO 639-1 language code for the post content. **Examples:** `en` (English), `es` (Spanish), `fr` (French), `de` (German) |
quotePost | string | Optional | Bluesky AT Protocol URI of a post to quote. **Format:** `at://did:plc:{user-id}/app.bsky.feed.post/{post-id}` **Use Case:** Quote-post another user's post with your commentary. |
replyTo | string | Optional | Bluesky AT Protocol URI of a post to reply to. **Format:** `at://did:plc:{user-id}/app.bsky.feed.post/{post-id}` **Use Case:** Create a reply thread to an existing Bluesky post. |
shortenedLinks | array | Optional | Shortened links for the post (auto-generated). |
shortenedLinks[] | string | Each item |
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. |
Get posts — response body — results / count, posts / posts / item / 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 Known values: post, story, reel |
Get posts — response body — results / count, posts / posts / item / postApprovalDetails / approvalStatus: pending, approved, rejected, not required
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
approvalStatus | string | Optional | Current approval status of the post. **Available Values:** - `pending` - Awaiting approver review - `approved` - Approved and ready for publishing - `rejected` - Rejected by approver (needs revision) - `not_required` - No approval workflow needed Known values: pending, approved, rejected, not_required |
approver | string | Optional | User ID of the designated approver. **Note:** The approver will receive a notification when a post is submitted for review. |
approverNote | string | Optional | Note from the approver to the post creator with feedback or approval comments. |
approverUser | JSON | Optional | Approver User Details |
approverUser (allOf 1) | Model | All variants apply | Expand Get posts — response body — results count, posts posts item user email, first Name, id, last Name, phone, profile Photo, title |
requesterNote | string | Optional | Note from the post creator to the approver explaining the post or requesting specific feedback. |
Referenced models: Get posts — response body — results count, posts posts item user email, first Name, id, last Name, phone, profile Photo, title
Get posts — response body — results / count, posts / posts / item / 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 Known values: post, story, reel |
Get posts — response body — results count, posts posts item 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 Get posts — response body — results count, posts posts item 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: Get posts — response body — results count, posts posts item linkedin Post Details pdf Title, poll, post As Pdf poll options, question, settings
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: gohighlevel.get_posts. Catalog operation: get-posts. 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.readonly"]
Pinned headers: {"Version": "v3"}