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
| Platform | List | Create | Delete | Notes |
|---|---|---|---|---|
| ✅ | ✅ | ✅ | Creating a comment requires comment_id (you can only reply to an existing comment). | |
| ✅ | ✅ | ✅ | Works on comments on your Page posts. | |
| YouTube | ✅ | ✅ | ✅ | The connected account must be authorized with the youtube.force-ssl scope (see below). |
| ✅ | ✅ | ✅ | Organization (company page) posts. Use the post URN as post_id. | |
| TikTok | ❌ | ❌ | ❌ | Not supported — TikTok has no public comments API. |
YouTube scope requirement: Reading, creating, and deleting comments requires the
youtube.force-sslOAuth 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(andpost_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_idis 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
| Name | Value | Description |
|---|---|---|
| Authorization | Apikey your-api-key-here | Your API key for authentication |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
platform | String | No | One of instagram, facebook, youtube, linkedin. Defaults to instagram. TikTok is not supported. |
user | String | Yes | Profile username (as configured in Upload-Post). |
post_id | String | Yes* | Post identifier. YouTube = the video ID; LinkedIn = the post URN (urn:li:ugcPost:...); Instagram = numeric media ID. Use post_id or post_url. |
post_url | String | Yes* | Full post URL. Alternative to post_id. |
limit | Integer | No | Maximum comments to return per page. |
after | String | No | Pagination 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
| Name | Value | Description |
|---|---|---|
| Authorization | Apikey your-api-key-here | Your API key for authentication |
| Content-Type | application/json | Request body format |
Body Parameters (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
platform | String | Yes | One of instagram, facebook, youtube, linkedin. TikTok is not supported. |
user | String | Yes | Profile username (as configured in Upload-Post). |
message | String | Yes | The comment text. |
comment_id | String | Yes* | Reply to this comment. Required for Instagram. |
post_id | String | Yes* | Top-level comment on this post. LinkedIn = the post URN (urn:li:ugcPost:...); YouTube = the video ID. |
post_url | String | Yes* | 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
POSTwith the same body, for clients that cannot send a body withDELETE.
Headers
| Name | Value | Description |
|---|---|---|
| Authorization | Apikey your-api-key-here | Your API key for authentication |
| Content-Type | application/json | Request body format |
Body Parameters (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
platform | String | Yes | One of instagram, facebook, youtube, linkedin. TikTok is not supported. |
user | String | Yes | Profile username (as configured in Upload-Post). |
comment_id | String | Yes | The ID of the comment to delete. |
post_id | String | Yes* | 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
Related
- Instagram private & public replies — Instagram-specific private-reply DMs and public replies.
- Direct Messages — send DMs to a commenter using their user ID.