Users¶
6 endpoints. Paths are relative to https://rmhstudios.com.
Endpoint |
Scope |
Summary |
|---|---|---|
|
|
Get a public profile |
|
|
List a user’s public posts |
|
|
List a user’s followers |
|
|
List who a user follows |
|
|
Follow a user |
|
|
Unfollow a user |
Reference¶
GET /api/v1/users/{handle}¶
A public user profile by handle.
Scope: read:users · Success: 200 · Operation id: getUser
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
path |
string |
yes |
The user’s handle (without @). |
Example response (200)
{
"id": "ck_user123",
"name": "Ada",
"handle": "ada",
"image": "https://…",
"bio": "builder",
"createdAt": "2026-01-02T03:04:05.000Z",
"stats": {
"followers": 12,
"following": 30,
"posts": 88,
"level": 7
}
}
GET /api/v1/users/{handle}/posts¶
A user’s public posts, newest first.
Scope: read:users · Success: 200 · Paginated: keyset — see Pagination · Operation id: listUserPosts
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
path |
string |
yes |
The user’s handle. |
|
query |
integer |
no |
Page size, 1–50 (default 20). |
|
query |
string |
no |
Opaque cursor from a previous |
Example response (200)
{
"data": [
{
"id": "ck_post123",
"content": "hello world",
"audience": "PUBLIC",
"createdAt": "2026-06-30T10:00:00.000Z",
"metrics": {
"likes": 3,
"comments": 1,
"reposts": 0,
"views": 42
},
"author": {
"id": "ck_user123",
"name": "Ada",
"handle": "ada",
"image": "https://…"
}
}
],
"nextCursor": null
}
GET /api/v1/users/{handle}/followers¶
Users who follow this user.
Scope: read:users · Success: 200 · Paginated: keyset — see Pagination · Operation id: listUserFollowers
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
path |
string |
yes |
The user’s handle. |
|
query |
integer |
no |
Page size, 1–50 (default 20). |
|
query |
string |
no |
Opaque cursor from a previous |
Example response (200)
{
"data": [
{
"id": "ck_user123",
"name": "Ada",
"handle": "ada",
"image": "https://…"
}
],
"nextCursor": null
}
GET /api/v1/users/{handle}/following¶
Users this user follows.
Scope: read:users · Success: 200 · Paginated: keyset — see Pagination · Operation id: listUserFollowing
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
path |
string |
yes |
The user’s handle. |
|
query |
integer |
no |
Page size, 1–50 (default 20). |
|
query |
string |
no |
Opaque cursor from a previous |
Example response (200)
{
"data": [
{
"id": "ck_user123",
"name": "Ada",
"handle": "ada",
"image": "https://…"
}
],
"nextCursor": null
}
POST /api/v1/users/{handle}/follow¶
Follow a user. Idempotent.
Scope: write:follows · Success: 200 · Idempotent: accepts Idempotency-Key · Operation id: followUser
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
path |
string |
yes |
The user’s handle. |
Example response (200)
{
"following": true
}
DELETE /api/v1/users/{handle}/follow¶
Stop following a user.
Scope: write:follows · Success: 200 · Idempotent: accepts Idempotency-Key · Operation id: unfollowUser
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
path |
string |
yes |
The user’s handle. |
Example response (200)
{
"following": false
}