Skip to main content

Comments (all platforms)

List, create, and delete comments on your posts across multiple social networks with a single, consistent API. These endpoints call each platform's native API in real-time using the connection stored for the given profile.

Platform support

PlatformListCreateDeleteNotes
InstagramCreating a comment requires comment_id (you can only reply to an existing comment).
FacebookWorks on comments on your Page posts.
YouTubeThe connected account must be authorized with the youtube.force-ssl scope (see below).
LinkedInOrganization (company page) posts. Use the post URN as post_id.
TikTokNot supported — TikTok has no public comments API.

YouTube scope requirement: Reading, creating, and deleting comments requires the youtube.force-ssl OAuth scope. Accounts connected before this scope was added must reconnect their YouTube account in Upload-Post to grant it. Older connections will fail with a permission error until reconnected.

LinkedIn post identifier: For LinkedIn, post_id (and post_url) is the post URN, e.g. urn:li:ugcPost:1234567890. This same URN is used to list, create, and delete comments.

YouTube post identifier: For YouTube, post_id is the video ID (e.g. dQw4w9WgXcQ).


List Comments

Retrieve comments on one of your posts. Returns the comments as provided by the target platform.

Endpoint

GET /api/uploadposts/comments

Headers

NameValueDescription
AuthorizationApikey your-api-key-hereYour API key for authentication

Query Parameters

NameTypeRequiredDescription
platformStringNoOne of instagram, facebook, youtube, linkedin. Defaults to instagram. TikTok is not supported.
userStringYesProfile username (as configured in Upload-Post).
post_idStringYes*Post identifier. YouTube = the video ID; LinkedIn = the post URN (urn:li:ugcPost:...); Instagram = numeric media ID. Use post_id or post_url.
post_urlStringYes*Full post URL. Alternative to post_id.
limitIntegerNoMaximum comments to return per page.
afterStringNoPagination cursor returned in the previous response. Pass it back to fetch the next page.

* Provide either post_id or post_url (one is required).

Example Requests

Instagram:

curl 'https://api.upload-post.com/api/uploadposts/comments?platform=instagram&user=my-profile&post_id=17890455123456789&limit=50' \
-H 'Authorization: Apikey your-api-key-here'

YouTube (post_id is the video ID):

curl 'https://api.upload-post.com/api/uploadposts/comments?platform=youtube&user=my-profile&post_id=dQw4w9WgXcQ' \
-H 'Authorization: Apikey your-api-key-here'

LinkedIn (post_id is the post URN):

curl 'https://api.upload-post.com/api/uploadposts/comments?platform=linkedin&user=my-profile&post_id=urn:li:ugcPost:1234567890' \
-H 'Authorization: Apikey your-api-key-here'

Successful Response (200 OK)

{
"success": true,
"comments": [
{
"id": "17858893269123456",
"text": "Great post!",
"timestamp": "2025-06-15T10:30:00+0000",
"user": {
"id": "17841400123456789",
"username": "commenter_user"
}
}
],
"pagination": {
"next_cursor": "QVFIUm9TbGd...",
"has_next": true
}
}

The exact comment fields vary by platform (each network returns its own shape). Pagination fields are present when the platform supports cursor-based paging.

Error Responses

  • 400 Bad Request — missing parameters, invalid post identifier, or an unsupported platform (e.g. tiktok).
  • 403 Forbidden — the connected account lacks the required scope (e.g. YouTube not connected with youtube.force-ssl).
  • 500 Internal Server Error

Create Comment

Post a comment or a reply. Provide exactly one of comment_id, post_id, or post_url to identify the target:

  • comment_id → reply to that comment.
  • post_id / post_url → top-level comment on that post.

Instagram: only replies are supported — you must provide comment_id. Instagram does not allow creating a top-level comment via the API.

Endpoint

POST /api/uploadposts/comments/create

Headers

NameValueDescription
AuthorizationApikey your-api-key-hereYour API key for authentication
Content-Typeapplication/jsonRequest body format

Body Parameters (JSON)

NameTypeRequiredDescription
platformStringYesOne of instagram, facebook, youtube, linkedin. TikTok is not supported.
userStringYesProfile username (as configured in Upload-Post).
messageStringYesThe comment text.
comment_idStringYes*Reply to this comment. Required for Instagram.
post_idStringYes*Top-level comment on this post. LinkedIn = the post URN (urn:li:ugcPost:...); YouTube = the video ID.
post_urlStringYes*Top-level comment on this post (by URL). Alternative to post_id.

* Provide exactly one of comment_id, post_id, or post_url.

Example Requests

Reply to a comment (Instagram):

curl -X POST https://api.upload-post.com/api/uploadposts/comments/create \
-H 'Authorization: Apikey your-api-key-here' \
-H 'Content-Type: application/json' \
-d '{
"platform": "instagram",
"user": "my-profile",
"comment_id": "17858893269123456",
"message": "Thanks for your comment!"
}'

Top-level comment on a LinkedIn post (post_id is the URN):

curl -X POST https://api.upload-post.com/api/uploadposts/comments/create \
-H 'Authorization: Apikey your-api-key-here' \
-H 'Content-Type: application/json' \
-d '{
"platform": "linkedin",
"user": "my-profile",
"post_id": "urn:li:ugcPost:1234567890",
"message": "Great update!"
}'

Successful Response (200 OK)

{
"success": true,
"id": "17858893269654321",
"message": "Comment created successfully"
}

Error Responses

  • 400 Bad Request — missing fields, more than one target provided, Instagram without comment_id, or an unsupported platform.
  • 403 Forbidden — the connected account lacks the required scope.
  • 500 Internal Server Error

Delete Comment

Delete a comment you own (or that is on your post). Accepts DELETE or POST.

Endpoint

DELETE /api/uploadposts/comments/delete

This endpoint also accepts POST with the same body, for clients that cannot send a body with DELETE.

Headers

NameValueDescription
AuthorizationApikey your-api-key-hereYour API key for authentication
Content-Typeapplication/jsonRequest body format

Body Parameters (JSON)

NameTypeRequiredDescription
platformStringYesOne of instagram, facebook, youtube, linkedin. TikTok is not supported.
userStringYesProfile username (as configured in Upload-Post).
comment_idStringYesThe ID of the comment to delete.
post_idStringYes*Required for LinkedIn only — the post URN (urn:li:ugcPost:...) the comment belongs to.

* post_id is required for LinkedIn; ignored for the other platforms.

Example Requests

Delete a Facebook comment:

curl -X DELETE https://api.upload-post.com/api/uploadposts/comments/delete \
-H 'Authorization: Apikey your-api-key-here' \
-H 'Content-Type: application/json' \
-d '{
"platform": "facebook",
"user": "my-profile",
"comment_id": "17858893269123456"
}'

Delete a LinkedIn comment (post_id required):

curl -X DELETE https://api.upload-post.com/api/uploadposts/comments/delete \
-H 'Authorization: Apikey your-api-key-here' \
-H 'Content-Type: application/json' \
-d '{
"platform": "linkedin",
"user": "my-profile",
"comment_id": "urn:li:comment:(urn:li:ugcPost:1234567890,9876543210)",
"post_id": "urn:li:ugcPost:1234567890"
}'

Successful Response (200 OK)

{
"success": true,
"message": "Comment deleted successfully"
}

Error Responses

  • 400 Bad Request — missing fields, LinkedIn without post_id, or an unsupported platform.
  • 403 Forbidden — the connected account lacks the required scope, or you do not own the comment.
  • 500 Internal Server Error