Engagement
Endpoints in the Engagement group. All paths are relative to https://rmhstudios.com.
/api/v1/posts/{id}/likewrite:likesidempotentLike a post. Idempotent — liking an already-liked post is a no-op.
Parameters
id(path, required) — The post id.
Example response
{
"liked": true,
"likeCount": 4
}/api/v1/posts/{id}/likewrite:likesidempotentRemove your like from a post.
Parameters
id(path, required) — The post id.
Example response
{
"liked": false,
"likeCount": 3
}/api/v1/posts/{id}/commentsread:feedTop-level comments on a post, newest first.
Parameters
id(path, required) — The post id.limit(query) — Page size, 1–50 (default 20).cursor(query) — Opaque cursor from a previous `nextCursor` to fetch the next page.
Example response
{
"data": [
{
"id": "ck_c1",
"content": "nice",
"createdAt": "2026-06-30T10:01:00.000Z",
"author": {
"id": "ck_user123",
"name": "Ada",
"handle": "ada",
"image": "https://…"
}
}
],
"nextCursor": null
}/api/v1/posts/{id}/commentswrite:commentsidempotentAdd a comment (or threaded reply) to a post.
Parameters
id(path, required) — The post id.
Body
content(string, required) — 1–280 characters.parent_id(string) — Comment id to reply to (optional).
Example request
{
"content": "Great post!"
}Example response (201)
{
"id": "ck_c1",
"content": "Great post!",
"createdAt": "2026-06-30T10:01:00.000Z",
"author": {
"id": "ck_user123",
"name": "Ada",
"handle": "ada",
"image": "https://…"
}
}/api/v1/posts/{id}/bookmarkwrite:bookmarksidempotentAdd a post to your bookmarks.
Parameters
id(path, required) — The post id.
Example response
{
"bookmarked": true
}/api/v1/posts/{id}/bookmarkwrite:bookmarksidempotentRemove a post from your bookmarks.
Parameters
id(path, required) — The post id.
Example response
{
"bookmarked": false
}