REST API
Replies and insights
Read the thread under a post, answer it, hide what you do not want, and read the numbers.
Replies live under a publish, not under a workspace. Every call here takes the publish id you got from POST /v1/posts.
GET/v1/posts/{id}/replies
The reply thread under a published post.
POST/v1/posts/{id}/replies
Reply to the post, or to a reply under it.
| Name | Type | Description |
|---|---|---|
contentRequired | string | Reply text. |
replyTo | string | A reply id from the thread. Omit to answer the post itself. |
wait | boolean | Hold the response until the reply is out, up to 10 seconds. Answers 200 with the post when it settles, otherwise 202 with next. |
Nested replies
Leave replyTo out and you answer the post. Pass a reply id and you answer that reply, one level deeper. There is no separate endpoint for it. The same call does both.
# answer the post
curl -X POST https://api.uplika.com/v1/posts/post_01H.../replies \
-H "authorization: Bearer $UPLIKA_KEY" \
-H "content-type: application/json" \
-d '{"content":"Thanks for reading"}'
# answer a reply — one level deeper
curl -X POST https://api.uplika.com/v1/posts/post_01H.../replies \
-H "authorization: Bearer $UPLIKA_KEY" \
-H "content-type: application/json" \
-d '{"content":"Good question","replyTo":"17901234567890123"}'Acting on other people's posts
Replies, likes and following are how a blog grows, and most of that happens on other people's posts. These three calls take the target as ownerHandle plus externalId (for Naver, the blog id and the logNo from the link), or postId for your own post. You always act as the connected account; ownerHandle is who you act on. Naver Blog is the only channel that supports them today, and the extension does the work in your browser like it does for publishing. Liking is a toggle on Naver, so we read the state first and never turn a like off. Naver silently ignores liking your own post, which comes back as naver_not_allowed.
POST/v1/engagement/like
Like a post, or a reply under it. Idempotent; there is no unlike.
| Name | Type | Description |
|---|---|---|
postId | string | Your own publish. Or pass ownerHandle and externalId instead. |
ownerHandle | string | Who owns the post. Naver Blog: the blog id. |
externalId | string | The post's id on the channel. Naver Blog: the logNo from the link. |
replyId | string | A reply id from the thread to like that reply instead of the post. |
accountId | string | Which connected account acts. Only needed with more than one account on that channel. |
POST/v1/engagement/reply
Reply to a post that is not yours (Naver Blog). No publish record is created.
| Name | Type | Description |
|---|---|---|
ownerHandleRequired | string | Who owns the post. |
externalIdRequired | string | The post's id on the channel. |
contentRequired | string | Reply text. |
replyId | string | Reply under this reply instead of under the post. |
secret | boolean | Naver Blog: a secret comment only the blog owner can read. |
POST/v1/engagement/follow
Follow an account (Naver Blog: add as neighbor). mutual sends a request the other side accepts.
| Name | Type | Description |
|---|---|---|
ownerHandleRequired | string | The account to follow. Naver Blog: the blog id. |
mutual | boolean | Naver Blog: send a mutual-neighbor request instead. Comes back pending until accepted. |
message | string | Sent with a mutual request. Up to 500 characters. |
accountId | string | Which connected account acts. |
POST/v1/replies/{replyId}/hide
Hide a reply on the channel, or show it again.
| Name | Type | Description |
|---|---|---|
postIdRequired | string | The publish the reply sits under. |
hide | boolean | true hides it, false shows it again. Default true. |
DELETE/v1/replies/{replyId}
Delete a comment for good. Unlike hide, this cannot be undone, and which channels have it at all is in features on GET /v1/platforms.
| Name | Type | Description |
|---|---|---|
postIdRequired | string | The publish the reply sits under. |
GET/v1/posts/{id}/insights
Views, likes, replies, reposts, quotes and shares.
{
"views": 1240,
"likes": 38,
"replies": 6,
"reposts": 2,
"quotes": 1,
"shares": null
}Common questions
How do I reply to my own post?
Call reply with the publish id and leave replyTo out. That answers the post itself, which is how a thread starts.
How do I nest a reply under another reply?
Pass the reply's id as replyTo on the same call. There is no separate endpoint; one call does both depths.
Which numbers can I read?
Views, likes, replies, reposts, quotes and shares. Some come back null while the platform is still counting, and null means unknown, not zero.