Skip to content

HighLevel: Create a comment or reply

HighLevel socialPlanner.createComment: arguments, response, policy and SDK examples.

← Social planner operations · Get started

Operation gohighlevel.create_comment

Provider route: POST /social-media-posting/comments/{platform}. Alter supplies the connection’s credentials and routing.

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"]["createComment"]>[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.createComment(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from 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.create_comment(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.platformstringRequired within parentOne of: facebook, instagram, linkedin, community, tiktok, bluesky, youtube, threads
queryobjectRequired within parentAdditional keys: not allowed
query.locationIdstringRequired within parent
bodyModelRequired within parentExpand Create a comment or reply — request body — body

Referenced models: Create a comment or reply — request body — body

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Create a comment or reply — response body

Referenced models: Create a comment or reply — response body

2 more schemas are linked from the tables above, on the schema pages.

Create a comment or reply — request body — body
FieldTypePresenceDescription and constraints
$objectRoot
attachmentsarrayOptionalAttachments for the comment (max 1 image). **Supported on:** Facebook only. **Not supported on:** Instagram, LinkedIn, TikTok, Bluesky, Community — the field is accepted by the API but the attachment will not appear on the comment. (Community processes the field server-side, but external URLs are not rendered due to its bucket restriction.)
attachments[]ModelEach itemExpand Create a comment or reply — request body — body attachments item
contentstringRequired within parentContent of the comment. Per-platform max length: Facebook 8000, Instagram 2200, Linkedin 3000, Community 8000, Tiktok 150, Bluesky 300, Youtube 10000, Threads 500.
isParentThreadbooleanRequired within parentSet `true` to create a top-level comment on a post (parentId = post ID). Set `false` to create a reply to an existing comment (parentId = comment ID).
mentionsarrayOptionalMentions for the comment. **Supported on:** Facebook, LinkedIn, Community. **Ignored on:** Instagram, TikTok, Bluesky — the field is accepted but mentions are not rendered on these platforms.
mentions[]ModelEach itemExpand Create a comment or reply — request body — body mentions item
notifyAllGroupMembersbooleanOptionalWhen `true`, all members of the Community group receive a push/in-app notification about this comment — equivalent to an `@everyone` broadcast.

**Supported on:** Community only. Ignored on all other platforms (the field is accepted but no notification is sent).

**Independent of the `mentions` array** — you do not need to add an `@everyone` entry to `mentions` for this to take effect. Conversely, putting the literal text `@everyone` in `content` does **not** by itself trigger notifications; only this flag does.

Defaults to `false` (no broadcast notification). Use `true` only when the comment is genuinely intended for every member of the group — overuse may cause members to mute the group.
parentIdstringRequired within parentFor top-level comments (`isParentThread: true`): pass the post ID returned by the posts API. For replies (`isParentThread: false`): pass the parent comment ID returned by the list-comments API. In both cases this must be a valid 24-character Highlevel ID — not the native platform ID.

Referenced models: Create a comment or reply — request body — body attachments item, Create a comment or reply — request body — body mentions item

Create a comment or reply — response body
FieldTypePresenceDescription and constraints
$objectRoot
messagestringRequired within parentMessage
resultsJSONRequired within parentThe created comment
results (allOf 1)ModelAll variants applyExpand Create a comment or reply — response body — results id, attachments, author, content, created At, is Deleted, is Edited, is Parent Thread, is Post, is Read, level, like Count, origin Id, platform, platform Comment Id, platform Parent Id, platform Post Id, post Id, preview Link, published At, quote Count, reaction Count, reply Count, repost Count, share Count, updated At
statusCodeJSONRequired within parent
statusCode (anyOf 1)numberAlternativeStatus Code
statusCode (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
successbooleanRequired within parentSuccess or Failure

Referenced models: Create a comment or reply — response body — results id, attachments, author, content, created At, is Deleted, is Edited, is Parent Thread, is Post, is Read, level, like Count, origin Id, platform, platform Comment Id, platform Parent Id, platform Post Id, post Id, preview Link, published At, quote Count, reaction Count, reply Count, repost Count, share Count, updated At

Create a comment or reply — request body — body attachments item
FieldTypePresenceDescription and constraints
$objectRoot
typestringRequired within parentType of the attachment
One of: image
urlstringRequired within parentURL of the attachment
Create a comment or reply — request body — body mentions item
FieldTypePresenceDescription and constraints
$objectRoot
idstringRequired within parentMention ID
lengthnumberRequired within parentMention length
namestringRequired within parentMention name
offsetnumberRequired within parentMention offset
slugstringOptionalMention slug for community profile link
Create a comment or reply — response body — results id, attachments, author, content, created At, is Deleted, is Edited, is Parent Thread, is Post, is Read, level, like Count, origin Id, platform, platform Comment Id, platform Parent Id, platform Post Id, post Id, preview Link, published At, quote Count, reaction Count, reply Count, repost Count, share Count, updated At
FieldTypePresenceDescription and constraints
$objectRoot
_idstringRequired within parentHighlevel comment ID
attachmentsarrayOptionalAttachments on the comment
attachments[]ModelEach itemExpand Create a comment or reply — response body — results id, attachments, author, content, created At, is Deleted, is Edited, is Parent Thread, is Post, is Read, level, like Count, origin Id, platform, platform Comment Id, platform Parent Id, platform Post Id, post Id, preview Link, published At, quote Count, reaction Count, reply Count, repost Count, share Count, updated At attachments item
authorJSONOptionalAuthor of the comment. May be partial or missing for some sync paths.
author (allOf 1)ModelAll variants applyExpand Create a comment or reply — response body — results id, attachments, author, content, created At, is Deleted, is Edited, is Parent Thread, is Post, is Read, level, like Count, origin Id, platform, platform Comment Id, platform Parent Id, platform Post Id, post Id, preview Link, published At, quote Count, reaction Count, reply Count, repost Count, share Count, updated At author id, name, profile Pic
contentstringOptionalComment content. May be empty or missing for attachment-only comments.
createdAtstringOptionalTime the comment record was created in Highlevel
Format: date-time
isDeletedbooleanRequired within parentWhether the comment was deleted
isEditedbooleanRequired within parentWhether the comment was edited
isParentThreadbooleanOptionalTrue if this comment is a top-level comment on the post; false if it is a reply to another comment
isPostbooleanRequired within parentTrue if this record represents the root post (not a comment)
isReadbooleanRequired within parentWhether the comment has been read
levelJSONOptional
level (anyOf 1)numberAlternativeComment depth (0 = post, 1 = comment, 2 = reply)
level (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
likeCountJSONRequired within parent
likeCount (anyOf 1)numberAlternativeNumber of likes on the comment
likeCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
originIdstringRequired within parentConnected account / page ID on the native platform
platformstringRequired within parentPlatform the comment was posted on
platformCommentIdstringOptionalNative platform comment ID
platformParentIdstringOptionalNative platform parent ID (the post or comment this is a reply to)
platformPostIdstringOptionalNative platform post ID
postIdstringRequired within parentHighlevel post ID
previewLinkstringOptionalDirect link to view the comment on the native platform
publishedAtstringOptionalTime the comment was published on the native platform. May be missing for legacy or webhook-synced records.
Format: date-time
quoteCountJSONRequired within parent
quoteCount (anyOf 1)numberAlternativeNumber of quote posts (platform-specific)
quoteCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
reactionCountJSONRequired within parent
reactionCount (anyOf 1)numberAlternativeNumber of reactions on the comment
reactionCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
replyCountJSONRequired within parent
replyCount (anyOf 1)numberAlternativeNumber of replies to the comment
replyCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
repostCountJSONRequired within parent
repostCount (anyOf 1)numberAlternativeNumber of reposts of the comment (platform-specific)
repostCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
shareCountJSONRequired within parent
shareCount (anyOf 1)numberAlternativeNumber of shares of the comment
shareCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
updatedAtstringOptionalTime the comment record was last updated in Highlevel
Format: date-time

Referenced models: Create a comment or reply — response body — results id, attachments, author, content, created At, is Deleted, is Edited, is Parent Thread, is Post, is Read, level, like Count, origin Id, platform, platform Comment Id, platform Parent Id, platform Post Id, post Id, preview Link, published At, quote Count, reaction Count, reply Count, repost Count, share Count, updated At attachments item, Create a comment or reply — response body — results id, attachments, author, content, created At, is Deleted, is Edited, is Parent Thread, is Post, is Read, level, like Count, origin Id, platform, platform Comment Id, platform Parent Id, platform Post Id, post Id, preview Link, published At, quote Count, reaction Count, reply Count, repost Count, share Count, updated At author id, name, profile Pic

SDK function policy ID: gohighlevel.create_comment. Catalog operation: create-comment. 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.

Pinned headers: {"Version": "v3"}

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.