Skip to main content

BobaBoard's API documentation. (0.0.1)

Intro

Welcome to the BobaBoard's backend API. This is still a WIP.

Example Section

This is just to test that sections work. It will be written better later.

/realms/

APIs related to the /realms/ endpoints.

Fetches the top-level realm metadata by slug.

Authorizations:
Nonefirebase
path Parameters
realm_slug
required
string
Examples:
  • v0 - the v0 realm

The slug of the realm.

Responses

Response Schema: application/json
id
required
string <uuid>
slug
required
string
icon
required
string <uri>
required
object (RealmSettings)

Cosmetic settings active for the Realm, merged with users' own preferences.

required
object

Settings for the Realm homepage.

realm_permissions
required
Array of strings (RealmPermissions)
Items Enum: "create_realm_invite" "post_on_realm" "comment_on_realm" "create_thread_on_realm" "access_locked_boards_on_realm" "view_roles_on_realm"
required
Array of objects (BoardSummary)

Response samples

Content type
application/json
{
  • "id": "0d91d28f-182c-4684-aa6c-9159059a5b49",
  • "slug": "v0",
  • "settings": {
    },
  • "homepage": {
    },
  • "realm_permissions": [
    ],
  • "boards": [
    ]
}

Fetches latest activity summary for the realm.

Authorizations:
Nonefirebase
path Parameters
realm_id
required
string <uuid>

The id of the realm.

Responses

Response Schema: application/json
id
string <uuid>

The Realm id.

object

The activity summary for each board in the realm. | Keys are the uuid of each board.

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "boards": {
    }
}

List all pending invites for the realm

See https://github.com/essential-randomness/bobaserver/issues/56 for future design intentions to return all invites.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

Responses

Response Schema: application/json
Array of objects (InviteWithDetails)
Array
realm_id
required
string <uuid>
invite_url
required
string <uri-reference>
own
required
boolean
issued_at
required
string <date-time>
expires_at
required
string <date-time>
invitee_email
string <email>
label
string

Response samples

Content type
application/json
{
  • "invites": []
}

Create invite for the realm.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

Request Body schema: application/json

The invite data.

email
string <email>
label
string

Responses

Response Schema: application/json
realm_id
required
string <uuid>
invite_url
required
string <uri-reference>

Request samples

Content type
application/json
{
  • "email": "ms.boba@bobaboard.com"
}

Response samples

Content type
application/json
{}

Get an invite's realm and status.

path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

nonce
required
string
Examples:
  • 123invite_code456 - the invite code.

The invite code.

Responses

Response Schema: application/json
realm_id
required
string <uuid>
realm_slug
required
string
invite_status
required
string
Enum: "pending" "used" "expired"
requires_email
required
boolean

Response samples

Content type
application/json
{
  • "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
  • "realm_slug": "twisted-minds",
  • "invite_status": "pending",
  • "requires_email": true
}

Accept invite for the realm.

Authorizations:
firebaseNone
path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

nonce
required
string
Examples:
  • 123invite_code456 - the invite code.

The invite code.

Request Body schema: application/json

The user data for the invite. Only required if the user does not already have an account.

email
required
string <email>
password
required
string

Responses

Response Schema: application/json
realm_id
required
string <uuid>
realm_slug
required
string

Request samples

Content type
application/json
{
  • "email": "ms.boba@bobaboard.com",
  • "password": "how_bad_can_i_be"
}

Response samples

Content type
application/json
{
  • "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
  • "realm_slug": "twisted-minds"
}

Fetches latest roles summary for the realm.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>

The id of the realm.

Responses

Response Schema: application/json
Array of objects
Array
username
required
string

Username.

role_string_id
required
string <uuid>

String id of role.

role_name
required
string

Name of role.

label
required
string

Label associated with role assignment

user_id
string <uuid>

Response samples

Content type
application/json
{
  • "invites": [
    ]
}

/feeds/

Get latest activity on entire realm

path Parameters
realm_id
required
string

The external id of the realm to fetch the activity of.

query Parameters
cursor
string

The cursor to start feeding the activity of the board from.

Responses

Response Schema: application/json
required
object (Cursor)
required
Array of objects (ThreadSummary)

Response samples

Content type
application/json
{
  • "cursor": {
    },
  • "activity": [
    ]
}

Get the feed for the given boards' activity.

path Parameters
board_id
required
string
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - The feed for the gore board.
  • db8dc5b3-5b4a-4bfe-a303-e176c9b00b83 - The feed for a board with a cursor (!long).

The id of the board to fetch the activity of.

query Parameters
cursor
string
Examples:
  • cursor= - The feed for the gore board.
  • cursor=eyJsYXN0X2FjdGl2aXR5X2N1cnNvciI6IjIwMjAtMDQtMTVUMDU6NDI6MDAuMDAwMDAwIiwicGFnZV9zaXplIjoxMH0= - The feed for a board with a cursor.

The cursor to start feeding the activity of the board from.

categoryFilter
string

A category to filter the feed by.

Responses

Response Schema: application/json
required
object (Cursor)
required
Array of objects (ThreadSummary)

Response samples

Content type
application/json
Example
{
  • "cursor": {
    },
  • "activity": [
    ]
}

Get the feed for the current user activity activity.

Authorizations:
firebase
query Parameters
cursor
string
Examples:
  • cursor= - The feed for the gore board.
  • cursor=eyJsYXN0X2FjdGl2aXR5X2N1cnNvciI6IjIwMjAtMDQtMTVUMDU6NDI6MDAuMDAwMDAwIiwicGFnZV9zaXplIjoxMH0= - The feed for a board with a cursor.

The cursor to start feeding the activity of the board from.

showRead
boolean

Whether to show read threads.

ownOnly
boolean

Whether to only show threads started by the user.

realmId
string

The realm id to filter by.

Responses

Response Schema: application/json
required
object (Cursor)
required
Array of objects (ThreadSummary)

Response samples

Content type
application/json
{
  • "cursor": {
    },
  • "activity": [
    ]
}

Get current users Star Feed.

Authorizations:
firebase
query Parameters
cursor
string

The cursor to start feeding the activity of the user star feed from.

Responses

Response Schema: application/json
required
object (Cursor)
required
Array of objects (ThreadSummary)

Response samples

Content type
application/json
{
  • "cursor": {
    },
  • "activity": [
    ]
}

/boards/

APIs related to the /boards/ endpoints.

Fetches board metadata.

Authorizations:
firebaseNone
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - An existing board
  • 76ebaab0-6c3e-4d7b-900f-f450625a5ed3 - A board for logged in users only

The external id of the board to retrieve metadata for.

Responses

Response Schema: application/json
One of
id
required
string <uuid>
realm_id
required
string
slug
required
string
avatar_url
required
string <uri-reference>
tagline
required
string
accent_color
required
string
logged_in_only
required
boolean
delisted
required
boolean
required
Array of any (Description)

Response samples

Content type
application/json
Example
{
  • "id": "c6d3d10e-8e49-4d73-b28a-9d652b41beec",
  • "realm_id": "f377afb3-5c62-40cc-8f07-1f4749a780eb",
  • "slug": "gore",
  • "tagline": "Blood! Blood! Blood!",
  • "avatar_url": "/gore.png",
  • "accent_color": "#f96680",
  • "delisted": false,
  • "logged_in_only": false,
  • "descriptions": [
    ]
}

Create a new thread.

Creates a new thread in the specified board.

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - The id for the gore board.

The id for the board in which the thread will be created.

Request Body schema: application/json
required

request body

content
required
string <quill-delta>

The content of the first post in the thread.

boolean or null
Deprecated

Force anonymity even among friends.

defaultView
string
Enum: "thread" "gallery" "timeline"

The default view that the thread will display as.

identityId
string <uuid>

The identity the original poster will use to create the thread.

accessoryId
string <uuid>

The accessory that the original poster will use in the thread.

whisper_tags
Array of strings

The whisper tags associated with the thread.

index_tags
Array of strings

The searchable tags associated with the thread.

content_warnings
Array of strings

The content warnings associated with the thread.

category_tags
Array of strings

The categories associated with the thread.

Responses

Response Schema: application/json
required
Array of objects (Contribution)
required
object

A map from post_id to its comments.

id
required
string <uuid>
parent_board_slug
required
string
parent_board_id
required
string
parent_realm_slug
required
string
parent_realm_id
required
string
required
object (Contribution)

The contribution that starts the thread.

default_view
required
string
Enum: "thread" "gallery" "timeline"
new
required
boolean

Whether the thread is new. False when the user is logged out.

muted
required
boolean

Whether the thread is muted. False when the user is logged out.

hidden
required
boolean

Whether the thread is hidden. False when the user is logged out.

starred
required
boolean

Whether the thread is starred.

new_posts_amount
required
number
new_comments_amount
required
number
total_comments_amount
required
number
total_posts_amount
required
number
direct_threads_amount
required
number
last_activity_at
required
string <date-time>

Request samples

Content type
application/json
{
  • "content": "[{\"insert\":\"Gore. Gore? Gore!\"}]",
  • "forceAnonymous": false,
  • "defaultView": "thread",
  • "whisper_tags": [
    ],
  • "index_tags": [
    ],
  • "content_warnings": [
    ],
  • "category_tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "60634506-6ab1-4083-9867-905cef85cef6",
  • "parent_board_slug": "gore",
  • "parent_board_id": "c6d3d10e-8e49-4d73-b28a-9d652b41beec",
  • "parent_realm_slug": "twisted-minds",
  • "parent_realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
  • "starter": {},
  • "default_view": "thread",
  • "muted": false,
  • "hidden": false,
  • "starred": false,
  • "new": false,
  • "new_posts_amount": 0,
  • "new_comments_amount": 0,
  • "total_comments_amount": 0,
  • "total_posts_amount": 1,
  • "last_activity_at": "2021-11-15T13:32:26.00Z",
  • "direct_threads_amount": 0,
  • "posts": [],
  • "comments": {
    }
}

Update board metadata

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - An existing board (gore)

The external id of the board to update metadata for.

Request Body schema: application/json
optional

request body

Array of any (Description)

Array of updated description objects.

accentColor
string

Board accent color.

tagline
string

Board tagline.

Responses

Response Schema: application/json
id
required
string <uuid>
realm_id
required
string
slug
required
string
avatar_url
required
string <uri-reference>
tagline
required
string
accent_color
required
string
logged_in_only
required
boolean
delisted
required
boolean
muted
required
boolean
pinned
required
boolean
required
Array of any (Description)
required
Array of objects (Accessory)
required
object (Permissions)
required
Array of objects (PostingIdentity)

Request samples

Content type
application/json
{
  • "descriptions": [
    ],
  • "accentColor": "#f68298",
  • "tagline": "Blood! Blood! BLOOD."
}

Response samples

Content type
application/json
{}

Sets last visited time for board

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>

The external id of the board to mark as visited.

Responses

Response samples

Content type
application/json
{
  • "message": "This board is unavailable to logged out users."
}

Mutes a board.

Mutes the specified board for the current user.

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - An existing board

The external id of the board to mute.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Unmutes a board.

Unmutes the specified board for the current user.

Authorizations:
firebase
path Parameters
board_id
required
string

The name of the board to unmute.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Pins a board.

Pins the specified board for the current user.

Authorizations:
firebase
path Parameters
board_id
required
string

The name of the board to pin.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Unpins a board.

Unpins the specified board for the current user.

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>

The name of the board to unpin.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Dismiss all notifications for board

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - An existing board

The external id of the board to dismiss notifications for.

Responses

Response samples

Content type
text/plain
Unauthorized

Fetches latest roles summary for the board.

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>

The id of the board.

Responses

Response Schema: application/json
Array of objects
Array
username
required
string

Username.

role_string_id
required
string <uuid>

String id of role.

role_name
required
string

Name of role.

label
required
string

Label associated with role assignment

user_id
string <uuid>

Response samples

Content type
application/json
{
  • "roles": [
    ]
}

/threads/

APIs related to the /threads/ endpoints.

Fetches thread data.

Fetches data for the specified thread.

Authorizations:
firebaseNone
path Parameters
thread_id
required
string <uuid>
Examples:
  • 8b2646af-2778-487e-8e44-7ae530c2549c - A thread with a comments thread.

The id of the thread to fetch.

Responses

Response Schema: application/json
required
Array of objects (Contribution)
required
object

A map from post_id to its comments.

id
required
string <uuid>
parent_board_slug
required
string
parent_board_id
required
string
parent_realm_slug
required
string
parent_realm_id
required
string
required
object (Contribution)

The contribution that starts the thread.

default_view
required
string
Enum: "thread" "gallery" "timeline"
new
required
boolean

Whether the thread is new. False when the user is logged out.

muted
required
boolean

Whether the thread is muted. False when the user is logged out.

hidden
required
boolean

Whether the thread is hidden. False when the user is logged out.

starred
required
boolean

Whether the thread is starred.

new_posts_amount
required
number
new_comments_amount
required
number
total_comments_amount
required
number
total_posts_amount
required
number
direct_threads_amount
required
number
last_activity_at
required
string <date-time>

Response samples

Content type
application/json
{}

Update thread properties.

Updates the default view that the thread uses or the parent board of the thread.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread whose properties should be updated.

Request Body schema: application/json
required

request body

defaultView
string
Enum: "thread" "gallery" "timeline"

The default view that the thread should use.

parentBoardId
string <uuid>

The id of the board that the thread should be moved to.

Responses

Response Schema: text/plain
string

Request samples

Content type
application/json
Example
{
  • "defaultView": "gallery"
}

Response samples

Content type
text/plain
OK

Mutes a thread.

Mutes the specified thread for the current user.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread to mute.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Unmutes a thread.

Unmutes a specified thread.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread to unmute.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Hides a thread.

Hides the specified thread for the current user.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread to unhide.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Unhides a thread.

Unhides the specified thread for the current user.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread to unhide.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Records a visit to a thread by the current user.

Records a visit to a thread by the current user.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread that is being visited.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Adds thread to Star Feed

Adds selected thread to current user Star Feed.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>

The id of the thread to star.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Removes thread from Star Feed

Deletes selected thread from current user Star Feed.

Authorizations:
firebase
path Parameters
thread_id
required
string

The id of the thread to fetch.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

/posts/

APIs related to the /posts/ endpoints.

Replies to a contribution with another contribution.

Posts a contribution replying to the one with id {postId}.

Authorizations:
firebase
path Parameters
post_id
required
string <uuid>

The uuid of the contribution to reply to.

Request Body schema: application/json
required

The details of the contribution to post.

content
required
string <quill-delta>
whisper_tags
required
Array of strings
index_tags
required
Array of strings
category_tags
required
Array of strings
content_warnings
required
Array of strings
string or null

The accessory to associate with the attached entity.

string or null

The identity to associate with the attached entity, if fixed.

boolean or null
Deprecated

Force anonymity even among friends.

Responses

Response Schema: application/json
object (Contribution)

Finalized details of the contributions just posted.

id
required
string <uuid>
required
string or null
parent_thread_id
required
string <uuid>
content
required
string <quill-delta>
created_at
required
string <date-time>
required
object (SecretIdentity)

The public-facing identity associated with the contribution.

required
Identity (object) or null

The identity of the original poster, if visible to the requester.

friend
required
boolean
own
required
boolean
new
required
boolean
total_comments_amount
required
number
new_comments_amount
required
number
required
object (Tags)

Types of tags associated to a contribution.

Request samples

Content type
application/json
{
  • "content": "string",
  • "whisper_tags": [
    ],
  • "index_tags": [
    ],
  • "category_tags": [
    ],
  • "content_warnings": [
    ],
  • "accessory_id": "a8efa488-3dd5-4296-8cd8-a2cec20ea35c",
  • "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
  • "forceAnonymous": true
}

Response samples

Content type
application/json
{
  • "contribution": {
    }
}

Edits a contribution.

Edits a contribution (for now just its tags).

Authorizations:
firebase
path Parameters
post_id
required
string <uuid>

The uuid of the contribution to edit.

Request Body schema: application/json
required

The details of the contribution to edit.

whisper_tags
required
Array of strings
index_tags
required
Array of strings
category_tags
required
Array of strings
content_warnings
required
Array of strings

Responses

Response Schema: application/json
object (Contribution)

Finalized details of the contributions just edited.

id
required
string <uuid>
required
string or null
parent_thread_id
required
string <uuid>
content
required
string <quill-delta>
created_at
required
string <date-time>
required
object (SecretIdentity)

The public-facing identity associated with the contribution.

required
Identity (object) or null

The identity of the original poster, if visible to the requester.

friend
required
boolean
own
required
boolean
new
required
boolean
total_comments_amount
required
number
new_comments_amount
required
number
required
object (Tags)

Types of tags associated to a contribution.

Request samples

Content type
application/json
{
  • "whisper_tags": [
    ],
  • "index_tags": [
    ],
  • "category_tags": [
    ],
  • "content_warnings": [
    ]
}

Response samples

Content type
application/json
{
  • "contribution": {
    }
}

Add comments to a contribution, optionally nested under another comment.

Creates a comment nested under the contribution with id {post_id}.

Authorizations:
firebase
path Parameters
post_id
required
string <uuid>

The uuid of the contribution to reply to.

Request Body schema: application/json
required

The details of the comment to post.

contents
required
Array of strings <quill-delta>
string or null

The accessory to associate with the attached entity.

string or null

The identity to associate with the attached entity, if fixed.

boolean or null
Deprecated

Force anonymity even among friends.

Responses

Response Schema: application/json
Array of objects (Comment)

Finalized details of the comments just posted.

Array
id
required
string <uuid>
parent_post_id
required
string <uuid>
required
string or null
required
string or null
content
required
string <quill-delta>
required
object (SecretIdentity)

The public-facing identity associated with the comment.

required
Identity (object) or null

The identity of the original poster, if visible to the requester.

created_at
required
string <date-time>
new
required
boolean
own
required
boolean
friend
required
boolean

Request samples

Content type
application/json
{
  • "contents": [
    ],
  • "accessory_id": "a8efa488-3dd5-4296-8cd8-a2cec20ea35c",
  • "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
  • "forceAnonymous": true
}

Response samples

Content type
application/json
{
  • "comments": [
    ]
}

/users/

APIs related to the /users/ endpoints.

Gets notifications data for the current user.

Gets notifications data for the current user, including pinned boards. If realm_id is present, also fetch notification data for the current realm.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>

The id of the realm.

Responses

Response Schema: application/json
has_notifications
required
boolean
is_outdated_notifications
required
boolean
realm_id
required
string
required
object

A map from board id to its NotificationStatus for each realm board. If realm_id is not present in the params, it will be empty.

required
object

A map from board id to its NotiicationStatus for each pinned board.

Response samples

Content type
application/json
{
  • "has_notifications": true,
  • "is_outdated_notifications": true,
  • "realm_id": "string",
  • "realm_boards": {
    },
  • "pinned_boards": {
    }
}

Dismisses user notifications.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>

The id of the realm.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Gets data for the current user.

Authorizations:
firebase

Responses

Response Schema: application/json
username
string
avatar_url
string <uri>

Response samples

Content type
application/json
{}

Update data for the current user.

Authorizations:
firebase
Request Body schema: application/json
required

request body

username
required
string

The username of the user.

avatarUrl
required
string <uri>

The avatar url of the user.

Responses

Response Schema: application/json
username
required
string
avatar_url
required
string <uri>

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Gets pinned boards for the current user on the current realm.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

Responses

Response Schema: application/json
required
object

A map from board id to its LoggedInSummary for each pinned board.

additional property
object (LoggedInBoardSummary)
id
required
string <uuid>
realm_id
required
string
slug
required
string
avatar_url
required
string <uri-reference>
tagline
required
string
accent_color
required
string
logged_in_only
required
boolean
delisted
required
boolean
muted
required
boolean
pinned
required
boolean
index
required
number

Response samples

Content type
application/json
{
  • "pinned_boards": {
    }
}

Gets bobadex data for the current user.

Authorizations:
firebase

Responses

Response Schema: application/json
required
Array of objects (BobaDexSeason)
Array
id
required
string <uuid>
realm_id
required
string
name
required
string
identities_count
required
number

How many identities are in this season. Note that just the array of identities isn't enough, cause it doesn't tell us how many identities are in total in the BobaDex season.

required
Array of objects

Response samples

Content type
application/json
{}

Gets settings data for the current user.

Authorizations:
firebase

Responses

Response Schema: application/json
Array of any (Setting)
Array
name
required
string
type
required
string
value
required
boolean

Response samples

Content type
application/json
{
  • "decorations": [
    ]
}

Updates settings data for the current user.

Authorizations:
firebase
Request Body schema: application/json

request body

name
required
string
required
string or boolean

Responses

Response Schema: application/json
Array of any (Setting)
Array
name
required
string
type
required
string
value
required
boolean

Request samples

Content type
application/json
{
  • "name": "FESTIVE_BACKGROUND_FEED",
  • "value": false
}

Response samples

Content type
application/json
{
  • "decorations": [
    ]
}

/subscriptions/

Gets data for the given subscription. Currently returns only the last update.

Authorizations:
Nonefirebase
path Parameters
subscription_id
required
string <uuid>

The external id of the subscription.

Responses

Response Schema: application/json
required
object (Subscription)
required
Array of objects (Contribution)
object (Cursor)

Response samples

Content type
application/json
{
  • "cursor": {
    },
  • "subscription": {
    },
  • "activity": [
    ]
}

Models

Contribution

id
required
string <uuid>
required
string or null
parent_thread_id
required
string <uuid>
content
required
string <quill-delta>
created_at
required
string <date-time>
required
object (SecretIdentity)

The public-facing identity associated with the contribution.

required
Identity (object) or null

The identity of the original poster, if visible to the requester.

friend
required
boolean
own
required
boolean
new
required
boolean
total_comments_amount
required
number
new_comments_amount
required
number
required
object (Tags)

Types of tags associated to a contribution.

{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "parent_thread_id": "590a41bd-c5b8-4e7a-ba6d-7f3ed9012b7b",
  • "parent_post_id": "c04e4fe7-9f20-4031-9e9f-23611db80d2f",
  • "content": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "secret_identity": {
    },
  • "user_identity": {
    },
  • "new": true,
  • "own": true,
  • "friend": true,
  • "total_comments_amount": 0,
  • "new_comments_amount": 0,
  • "tags": {
    }
}

Tags

whisper_tags
required
Array of strings
index_tags
required
Array of strings
category_tags
required
Array of strings
content_warnings
required
Array of strings
{
  • "whisper_tags": [
    ],
  • "index_tags": [
    ],
  • "category_tags": [
    ],
  • "content_warnings": [
    ]
}

Comment

id
required
string <uuid>
parent_post_id
required
string <uuid>
required
string or null
required
string or null
content
required
string <quill-delta>
required
object (SecretIdentity)

The public-facing identity associated with the comment.

required
Identity (object) or null

The identity of the original poster, if visible to the requester.

created_at
required
string <date-time>
new
required
boolean
own
required
boolean
friend
required
boolean
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "parent_post_id": "c04e4fe7-9f20-4031-9e9f-23611db80d2f",
  • "parent_comment_id": "42e5891d-0323-4706-8826-2064102ce531",
  • "chain_parent_id": "43c9a7d4-8b94-478d-b194-3fe3cf801a39",
  • "content": "string",
  • "secret_identity": {
    },
  • "user_identity": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "own": true,
  • "new": true,
  • "friend": true
}

Board Summary (logged in)

id
required
string <uuid>
realm_id
required
string
slug
required
string
avatar_url
required
string <uri-reference>
tagline
required
string
accent_color
required
string
logged_in_only
required
boolean
delisted
required
boolean
muted
required
boolean
pinned
required
boolean
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "realm_id": "string",
  • "slug": "string",
  • "avatar_url": "../dictionary",
  • "tagline": "string",
  • "accent_color": "string",
  • "logged_in_only": true,
  • "delisted": true,
  • "muted": true,
  • "pinned": true
}

Descriptions

id
required
string <uuid>
index
required
number
title
required
string
type
required
string
description
required
string
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "index": 0,
  • "title": "string",
  • "type": "text",
  • "description": "string"
}

unzodded

Create a new thread.

Creates a new thread in the specified board.

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - The id for the gore board.

The id for the board in which the thread will be created.

Request Body schema: application/json
required

request body

content
required
string <quill-delta>

The content of the first post in the thread.

boolean or null
Deprecated

Force anonymity even among friends.

defaultView
string
Enum: "thread" "gallery" "timeline"

The default view that the thread will display as.

identityId
string <uuid>

The identity the original poster will use to create the thread.

accessoryId
string <uuid>

The accessory that the original poster will use in the thread.

whisper_tags
Array of strings

The whisper tags associated with the thread.

index_tags
Array of strings

The searchable tags associated with the thread.

content_warnings
Array of strings

The content warnings associated with the thread.

category_tags
Array of strings

The categories associated with the thread.

Responses

Response Schema: application/json
required
Array of objects (Contribution)
required
object

A map from post_id to its comments.

id
required
string <uuid>
parent_board_slug
required
string
parent_board_id
required
string
parent_realm_slug
required
string
parent_realm_id
required
string
required
object (Contribution)

The contribution that starts the thread.

default_view
required
string
Enum: "thread" "gallery" "timeline"
new
required
boolean

Whether the thread is new. False when the user is logged out.

muted
required
boolean

Whether the thread is muted. False when the user is logged out.

hidden
required
boolean

Whether the thread is hidden. False when the user is logged out.

starred
required
boolean

Whether the thread is starred.

new_posts_amount
required
number
new_comments_amount
required
number
total_comments_amount
required
number
total_posts_amount
required
number
direct_threads_amount
required
number
last_activity_at
required
string <date-time>

Request samples

Content type
application/json
{
  • "content": "[{\"insert\":\"Gore. Gore? Gore!\"}]",
  • "forceAnonymous": false,
  • "defaultView": "thread",
  • "whisper_tags": [
    ],
  • "index_tags": [
    ],
  • "content_warnings": [
    ],
  • "category_tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "60634506-6ab1-4083-9867-905cef85cef6",
  • "parent_board_slug": "gore",
  • "parent_board_id": "c6d3d10e-8e49-4d73-b28a-9d652b41beec",
  • "parent_realm_slug": "twisted-minds",
  • "parent_realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
  • "starter": {},
  • "default_view": "thread",
  • "muted": false,
  • "hidden": false,
  • "starred": false,
  • "new": false,
  • "new_posts_amount": 0,
  • "new_comments_amount": 0,
  • "total_comments_amount": 0,
  • "total_posts_amount": 1,
  • "last_activity_at": "2021-11-15T13:32:26.00Z",
  • "direct_threads_amount": 0,
  • "posts": [],
  • "comments": {
    }
}

Update board metadata

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - An existing board (gore)

The external id of the board to update metadata for.

Request Body schema: application/json
optional

request body

Array of any (Description)

Array of updated description objects.

accentColor
string

Board accent color.

tagline
string

Board tagline.

Responses

Response Schema: application/json
id
required
string <uuid>
realm_id
required
string
slug
required
string
avatar_url
required
string <uri-reference>
tagline
required
string
accent_color
required
string
logged_in_only
required
boolean
delisted
required
boolean
muted
required
boolean
pinned
required
boolean
required
Array of any (Description)
required
Array of objects (Accessory)
required
object (Permissions)
required
Array of objects (PostingIdentity)

Request samples

Content type
application/json
{
  • "descriptions": [
    ],
  • "accentColor": "#f68298",
  • "tagline": "Blood! Blood! BLOOD."
}

Response samples

Content type
application/json
{}

Sets last visited time for board

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>

The external id of the board to mark as visited.

Responses

Response samples

Content type
application/json
{
  • "message": "This board is unavailable to logged out users."
}

Mutes a board.

Mutes the specified board for the current user.

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - An existing board

The external id of the board to mute.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Unmutes a board.

Unmutes the specified board for the current user.

Authorizations:
firebase
path Parameters
board_id
required
string

The name of the board to unmute.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Pins a board.

Pins the specified board for the current user.

Authorizations:
firebase
path Parameters
board_id
required
string

The name of the board to pin.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Unpins a board.

Unpins the specified board for the current user.

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>

The name of the board to unpin.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Dismiss all notifications for board

Authorizations:
firebase
path Parameters
board_id
required
string <uuid>
Examples:
  • c6d3d10e-8e49-4d73-b28a-9d652b41beec - An existing board

The external id of the board to dismiss notifications for.

Responses

Response samples

Content type
text/plain
Unauthorized

Get the feed for the current user activity activity.

Authorizations:
firebase
query Parameters
cursor
string
Examples:
  • cursor= - The feed for the gore board.
  • cursor=eyJsYXN0X2FjdGl2aXR5X2N1cnNvciI6IjIwMjAtMDQtMTVUMDU6NDI6MDAuMDAwMDAwIiwicGFnZV9zaXplIjoxMH0= - The feed for a board with a cursor.

The cursor to start feeding the activity of the board from.

showRead
boolean

Whether to show read threads.

ownOnly
boolean

Whether to only show threads started by the user.

realmId
string

The realm id to filter by.

Responses

Response Schema: application/json
required
object (Cursor)
required
Array of objects (ThreadSummary)

Response samples

Content type
application/json
{
  • "cursor": {
    },
  • "activity": [
    ]
}

Get current users Star Feed.

Authorizations:
firebase
query Parameters
cursor
string

The cursor to start feeding the activity of the user star feed from.

Responses

Response Schema: application/json
required
object (Cursor)
required
Array of objects (ThreadSummary)

Response samples

Content type
application/json
{
  • "cursor": {
    },
  • "activity": [
    ]
}

Replies to a contribution with another contribution.

Posts a contribution replying to the one with id {postId}.

Authorizations:
firebase
path Parameters
post_id
required
string <uuid>

The uuid of the contribution to reply to.

Request Body schema: application/json
required

The details of the contribution to post.

content
required
string <quill-delta>
whisper_tags
required
Array of strings
index_tags
required
Array of strings
category_tags
required
Array of strings
content_warnings
required
Array of strings
string or null

The accessory to associate with the attached entity.

string or null

The identity to associate with the attached entity, if fixed.

boolean or null
Deprecated

Force anonymity even among friends.

Responses

Response Schema: application/json
object (Contribution)

Finalized details of the contributions just posted.

id
required
string <uuid>
required
string or null
parent_thread_id
required
string <uuid>
content
required
string <quill-delta>
created_at
required
string <date-time>
required
object (SecretIdentity)

The public-facing identity associated with the contribution.

required
Identity (object) or null

The identity of the original poster, if visible to the requester.

friend
required
boolean
own
required
boolean
new
required
boolean
total_comments_amount
required
number
new_comments_amount
required
number
required
object (Tags)

Types of tags associated to a contribution.

Request samples

Content type
application/json
{
  • "content": "string",
  • "whisper_tags": [
    ],
  • "index_tags": [
    ],
  • "category_tags": [
    ],
  • "content_warnings": [
    ],
  • "accessory_id": "a8efa488-3dd5-4296-8cd8-a2cec20ea35c",
  • "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
  • "forceAnonymous": true
}

Response samples

Content type
application/json
{
  • "contribution": {
    }
}

Edits a contribution.

Edits a contribution (for now just its tags).

Authorizations:
firebase
path Parameters
post_id
required
string <uuid>

The uuid of the contribution to edit.

Request Body schema: application/json
required

The details of the contribution to edit.

whisper_tags
required
Array of strings
index_tags
required
Array of strings
category_tags
required
Array of strings
content_warnings
required
Array of strings

Responses

Response Schema: application/json
object (Contribution)

Finalized details of the contributions just edited.

id
required
string <uuid>
required
string or null
parent_thread_id
required
string <uuid>
content
required
string <quill-delta>
created_at
required
string <date-time>
required
object (SecretIdentity)

The public-facing identity associated with the contribution.

required
Identity (object) or null

The identity of the original poster, if visible to the requester.

friend
required
boolean
own
required
boolean
new
required
boolean
total_comments_amount
required
number
new_comments_amount
required
number
required
object (Tags)

Types of tags associated to a contribution.

Request samples

Content type
application/json
{
  • "whisper_tags": [
    ],
  • "index_tags": [
    ],
  • "category_tags": [
    ],
  • "content_warnings": [
    ]
}

Response samples

Content type
application/json
{
  • "contribution": {
    }
}

Add comments to a contribution, optionally nested under another comment.

Creates a comment nested under the contribution with id {post_id}.

Authorizations:
firebase
path Parameters
post_id
required
string <uuid>

The uuid of the contribution to reply to.

Request Body schema: application/json
required

The details of the comment to post.

contents
required
Array of strings <quill-delta>
string or null

The accessory to associate with the attached entity.

string or null

The identity to associate with the attached entity, if fixed.

boolean or null
Deprecated

Force anonymity even among friends.

Responses

Response Schema: application/json
Array of objects (Comment)

Finalized details of the comments just posted.

Array
id
required
string <uuid>
parent_post_id
required
string <uuid>
required
string or null
required
string or null
content
required
string <quill-delta>
required
object (SecretIdentity)

The public-facing identity associated with the comment.

required
Identity (object) or null

The identity of the original poster, if visible to the requester.

created_at
required
string <date-time>
new
required
boolean
own
required
boolean
friend
required
boolean

Request samples

Content type
application/json
{
  • "contents": [
    ],
  • "accessory_id": "a8efa488-3dd5-4296-8cd8-a2cec20ea35c",
  • "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
  • "forceAnonymous": true
}

Response samples

Content type
application/json
{
  • "comments": [
    ]
}

Fetches the top-level realm metadata by slug.

Authorizations:
Nonefirebase
path Parameters
realm_slug
required
string
Examples:
  • v0 - the v0 realm

The slug of the realm.

Responses

Response Schema: application/json
id
required
string <uuid>
slug
required
string
icon
required
string <uri>
required
object (RealmSettings)

Cosmetic settings active for the Realm, merged with users' own preferences.

required
object

Settings for the Realm homepage.

realm_permissions
required
Array of strings (RealmPermissions)
Items Enum: "create_realm_invite" "post_on_realm" "comment_on_realm" "create_thread_on_realm" "access_locked_boards_on_realm" "view_roles_on_realm"
required
Array of objects (BoardSummary)

Response samples

Content type
application/json
{
  • "id": "0d91d28f-182c-4684-aa6c-9159059a5b49",
  • "slug": "v0",
  • "settings": {
    },
  • "homepage": {
    },
  • "realm_permissions": [
    ],
  • "boards": [
    ]
}

Fetches latest activity summary for the realm.

Authorizations:
Nonefirebase
path Parameters
realm_id
required
string <uuid>

The id of the realm.

Responses

Response Schema: application/json
id
string <uuid>

The Realm id.

object

The activity summary for each board in the realm. | Keys are the uuid of each board.

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "boards": {
    }
}

Gets notifications data for the current user.

Gets notifications data for the current user, including pinned boards. If realm_id is present, also fetch notification data for the current realm.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>

The id of the realm.

Responses

Response Schema: application/json
has_notifications
required
boolean
is_outdated_notifications
required
boolean
realm_id
required
string
required
object

A map from board id to its NotificationStatus for each realm board. If realm_id is not present in the params, it will be empty.

required
object

A map from board id to its NotiicationStatus for each pinned board.

Response samples

Content type
application/json
{
  • "has_notifications": true,
  • "is_outdated_notifications": true,
  • "realm_id": "string",
  • "realm_boards": {
    },
  • "pinned_boards": {
    }
}

Dismisses user notifications.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>

The id of the realm.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

List all pending invites for the realm

See https://github.com/essential-randomness/bobaserver/issues/56 for future design intentions to return all invites.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

Responses

Response Schema: application/json
Array of objects (InviteWithDetails)
Array
realm_id
required
string <uuid>
invite_url
required
string <uri-reference>
own
required
boolean
issued_at
required
string <date-time>
expires_at
required
string <date-time>
invitee_email
string <email>
label
string

Response samples

Content type
application/json
{
  • "invites": []
}

Create invite for the realm.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

Request Body schema: application/json

The invite data.

email
string <email>
label
string

Responses

Response Schema: application/json
realm_id
required
string <uuid>
invite_url
required
string <uri-reference>

Request samples

Content type
application/json
{
  • "email": "ms.boba@bobaboard.com"
}

Response samples

Content type
application/json
{}

Get an invite's realm and status.

path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

nonce
required
string
Examples:
  • 123invite_code456 - the invite code.

The invite code.

Responses

Response Schema: application/json
realm_id
required
string <uuid>
realm_slug
required
string
invite_status
required
string
Enum: "pending" "used" "expired"
requires_email
required
boolean

Response samples

Content type
application/json
{
  • "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
  • "realm_slug": "twisted-minds",
  • "invite_status": "pending",
  • "requires_email": true
}

Accept invite for the realm.

Authorizations:
firebaseNone
path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

nonce
required
string
Examples:
  • 123invite_code456 - the invite code.

The invite code.

Request Body schema: application/json

The user data for the invite. Only required if the user does not already have an account.

email
required
string <email>
password
required
string

Responses

Response Schema: application/json
realm_id
required
string <uuid>
realm_slug
required
string

Request samples

Content type
application/json
{
  • "email": "ms.boba@bobaboard.com",
  • "password": "how_bad_can_i_be"
}

Response samples

Content type
application/json
{
  • "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
  • "realm_slug": "twisted-minds"
}

Gets data for the given subscription. Currently returns only the last update.

Authorizations:
Nonefirebase
path Parameters
subscription_id
required
string <uuid>

The external id of the subscription.

Responses

Response Schema: application/json
required
object (Subscription)
required
Array of objects (Contribution)
object (Cursor)

Response samples

Content type
application/json
{
  • "cursor": {
    },
  • "subscription": {
    },
  • "activity": [
    ]
}

Fetches thread data.

Fetches data for the specified thread.

Authorizations:
firebaseNone
path Parameters
thread_id
required
string <uuid>
Examples:
  • 8b2646af-2778-487e-8e44-7ae530c2549c - A thread with a comments thread.

The id of the thread to fetch.

Responses

Response Schema: application/json
required
Array of objects (Contribution)
required
object

A map from post_id to its comments.

id
required
string <uuid>
parent_board_slug
required
string
parent_board_id
required
string
parent_realm_slug
required
string
parent_realm_id
required
string
required
object (Contribution)

The contribution that starts the thread.

default_view
required
string
Enum: "thread" "gallery" "timeline"
new
required
boolean

Whether the thread is new. False when the user is logged out.

muted
required
boolean

Whether the thread is muted. False when the user is logged out.

hidden
required
boolean

Whether the thread is hidden. False when the user is logged out.

starred
required
boolean

Whether the thread is starred.

new_posts_amount
required
number
new_comments_amount
required
number
total_comments_amount
required
number
total_posts_amount
required
number
direct_threads_amount
required
number
last_activity_at
required
string <date-time>

Response samples

Content type
application/json
{}

Update thread properties.

Updates the default view that the thread uses or the parent board of the thread.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread whose properties should be updated.

Request Body schema: application/json
required

request body

defaultView
string
Enum: "thread" "gallery" "timeline"

The default view that the thread should use.

parentBoardId
string <uuid>

The id of the board that the thread should be moved to.

Responses

Response Schema: text/plain
string

Request samples

Content type
application/json
Example
{
  • "defaultView": "gallery"
}

Response samples

Content type
text/plain
OK

Mutes a thread.

Mutes the specified thread for the current user.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread to mute.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Unmutes a thread.

Unmutes a specified thread.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread to unmute.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Hides a thread.

Hides the specified thread for the current user.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread to unhide.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Unhides a thread.

Unhides the specified thread for the current user.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread to unhide.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Records a visit to a thread by the current user.

Records a visit to a thread by the current user.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>
Examples:
  • 29d1b2da-3289-454a-9089-2ed47db4967b - A thread from the gore board.

The id of the thread that is being visited.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Adds thread to Star Feed

Adds selected thread to current user Star Feed.

Authorizations:
firebase
path Parameters
thread_id
required
string <uuid>

The id of the thread to star.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Removes thread from Star Feed

Deletes selected thread from current user Star Feed.

Authorizations:
firebase
path Parameters
thread_id
required
string

The id of the thread to fetch.

Responses

Response samples

Content type
application/json
Example
{
  • "message": "No authenticated user found."
}

Gets data for the current user.

Authorizations:
firebase

Responses

Response Schema: application/json
username
string
avatar_url
string <uri>

Response samples

Content type
application/json
{}

Update data for the current user.

Authorizations:
firebase
Request Body schema: application/json
required

request body

username
required
string

The username of the user.

avatarUrl
required
string <uri>

The avatar url of the user.

Responses

Response Schema: application/json
username
required
string
avatar_url
required
string <uri>

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Gets pinned boards for the current user on the current realm.

Authorizations:
firebase
path Parameters
realm_id
required
string <uuid>
Examples:
  • 76ef4cc3-1603-4278-95d7-99c59f481d2e - the twisted-minds realm id

The id of the realm.

Responses

Response Schema: application/json
required
object

A map from board id to its LoggedInSummary for each pinned board.

additional property
object (LoggedInBoardSummary)
id
required
string <uuid>
realm_id
required
string
slug
required
string
avatar_url
required
string <uri-reference>
tagline
required
string
accent_color
required
string
logged_in_only
required
boolean
delisted
required
boolean
muted
required
boolean
pinned
required
boolean
index
required
number

Response samples

Content type
application/json
{
  • "pinned_boards": {
    }
}

Gets bobadex data for the current user.

Authorizations:
firebase

Responses

Response Schema: application/json
required
Array of objects (BobaDexSeason)
Array
id
required
string <uuid>
realm_id
required
string
name
required
string
identities_count
required
number

How many identities are in this season. Note that just the array of identities isn't enough, cause it doesn't tell us how many identities are in total in the BobaDex season.

required
Array of objects

Response samples

Content type
application/json
{}

Gets settings data for the current user.

Authorizations:
firebase

Responses

Response Schema: application/json
Array of any (Setting)
Array
name
required
string
type
required
string
value
required
boolean

Response samples

Content type
application/json
{
  • "decorations": [
    ]
}

Updates settings data for the current user.

Authorizations:
firebase
Request Body schema: application/json

request body

name
required
string
required
string or boolean

Responses

Response Schema: application/json
Array of any (Setting)
Array
name
required
string
type
required
string
value
required
boolean

Request samples

Content type
application/json
{
  • "name": "FESTIVE_BACKGROUND_FEED",
  • "value": false
}

Response samples

Content type
application/json
{
  • "decorations": [
    ]
}