BobaBoard's API documentation. (0.0.1)
Fetches the top-level realm metadata by slug.
Authorizations:
path Parameters
realm_slug required | string Examples:
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
- 200
{- "id": "0d91d28f-182c-4684-aa6c-9159059a5b49",
- "slug": "v0",
- "settings": {
- "root": {
- "cursor": { }
}, - "index_page": [ ],
- "board_page": [ ],
- "thread_page": [ ]
}, - "homepage": {
- "blocks": [
- {
- "id": "f8cf1796-c5b4-49c9-9773-eb1a245e222c",
- "index": 0,
- "title": "A description block",
- "type": "text",
- "description": "Welcome to the Realm"
}, - {
- "id": "d829b5fb-6343-4700-bf7c-7626950f2c8d",
- "index": 1,
- "title": "A rules block",
- "type": "rules",
- "rules": [
- {
- "index": 0,
- "title": "Be nice to each other",
- "description": "What it says up there",
- "pinned": true
}, - {
- "index": 1,
- "title": "This is a hidden rule",
- "description": "Congratulations! Here's a cookie",
- "pinned": false
}
]
}
]
}, - "realm_permissions": [
- "create_realm_invite",
- "post_on_realm",
- "comment_on_realm",
- "create_thread_on_realm",
- "access_locked_boards_on_realm"
], - "boards": [
- {
- "id": "2fb151eb-c600-4fe4-a542-4662487e5496",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "main_street",
- "tagline": "For BobaBoard-related discussions.",
- "avatar_url": "/villains.png",
- "accent_color": "#ff5252",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "c6d3d10e-8e49-4d73-b28a-9d652b41beec",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "gore",
- "tagline": "Blood! Blood! Blood!",
- "avatar_url": "/gore.png",
- "accent_color": "#f96680",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "4b30fb7c-2aca-4333-aa56-ae8623a92b65",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "anime",
- "tagline": "I wish I had a funny one for this.",
- "avatar_url": "/anime.png",
- "accent_color": "#24d282",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "db8dc5b3-5b4a-4bfe-a303-e176c9b00b83",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "long",
- "tagline": "A board to test with many posts.",
- "avatar_url": "/onceler-board.png",
- "accent_color": "#00b8ff",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "0e0d1ee6-f996-4415-89c1-c9dc1fe991dc",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "memes",
- "tagline": "A board to test collections view.",
- "avatar_url": "/kink-meme.png",
- "accent_color": "#7b00ff",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "2bdce2fa-12e0-461b-b0fb-1a2e67227434",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "muted",
- "tagline": "A board to test for muting.",
- "accent_color": "#9b433b",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "76ebaab0-6c3e-4d7b-900f-f450625a5ed3",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "restricted",
- "tagline": "A board to test for logged-in only view",
- "accent_color": "#234a69",
- "delisted": false,
- "logged_in_only": true
}
]
}
Fetches latest activity summary for the realm.
Authorizations:
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
- 200
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "boards": {
- "property1": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "last_post_at": "2019-08-24T14:15:22Z",
- "last_comment_at": "2019-08-24T14:15:22Z",
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visit_at": "2019-08-24T14:15:22Z"
}, - "property2": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "last_post_at": "2019-08-24T14:15:22Z",
- "last_comment_at": "2019-08-24T14:15:22Z",
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visit_at": "2019-08-24T14:15:22Z"
}
}
}
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:
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
Responses
Response Schema: application/json
Array of objects (InviteWithDetails) | |||||||||||||||
Array
|
Response samples
- 200
- 401
- 403
- 404
{- "invites": [
- {
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "invitee_email": "ms.boba@bobaboard.com",
- "own": false,
- "issued_at": "2021-06-09T04:20:00Z",
- "expires_at": "2021-06-09T16:20:00Z",
- "label": "This is a test invite."
}
]
}
Create invite for the realm.
Authorizations:
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
Request Body schema: application/json
The invite data.
string <email> | |
label | string |
Responses
Response Schema: application/json
realm_id required | string <uuid> |
invite_url required | string <uri-reference> |
Request samples
- Payload
{- "email": "ms.boba@bobaboard.com"
}
Response samples
- 200
- 401
- 403
- 404
{- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
}
Get an invite's realm and status.
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
nonce required | string Examples:
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
- 200
- 404
{- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "realm_slug": "twisted-minds",
- "invite_status": "pending",
- "requires_email": true
}
Accept invite for the realm.
Authorizations:
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
nonce required | string Examples:
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
- Payload
{- "email": "ms.boba@bobaboard.com",
- "password": "how_bad_can_i_be"
}
Response samples
- 200
- 400
- 403
- 404
- 409
{- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "realm_slug": "twisted-minds"
}
Fetches latest roles summary for the realm.
Authorizations:
path Parameters
realm_id required | string <uuid> The id of the realm. |
Responses
Response Schema: application/json
Array of objects | |||||||||||
Array
|
Response samples
- 200
- 401
- 403
- 404
{- "invites": [
- {
- "user_firebase_id": "a90b0809-2c57-4ff1-be7c-4b7ab1b7edcc",
- "username": "bobatan",
- "role_string_id": "3df1d417-c36a-43dd-aaba-9590316ffc32",
- "role_name": "The Owner",
- "label": "Look ma, a label"
}
]
}
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
- 200
{- "cursor": {
- "next": "string"
}, - "activity": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "parent_board_slug": "string",
- "parent_board_id": "string",
- "parent_realm_slug": "string",
- "parent_realm_id": "string",
- "starter": {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}, - "default_view": "thread",
- "new": true,
- "muted": true,
- "hidden": true,
- "starred": true,
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 0,
- "total_posts_amount": 0,
- "direct_threads_amount": 0,
- "last_activity_at": "2019-08-24T14:15:22Z"
}
]
}
Get the feed for the given boards' activity.
path Parameters
board_id required | string Examples:
The id of the board to fetch the activity of. |
query Parameters
cursor | string Examples:
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
- 200
{- "cursor": {
- "next": null
}, - "activity": [
- {
- "starter": {
- "id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "parent_thread_id": "8b2646af-2778-487e-8e44-7ae530c2549c",
- "parent_post_id": null,
- "secret_identity": {
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "created_at": "2020-09-25T05:42:00.00Z",
- "content": "[{\"insert\":\"Remember to be excellent to each other and only be mean to fictional characters!\"}]",
- "tags": {
- "whisper_tags": [
- "An announcement from your headmaster!"
], - "index_tags": [ ],
- "category_tags": [ ],
- "content_warnings": [ ]
}, - "total_comments_amount": 2,
- "new_comments_amount": 0,
- "new": false,
- "own": false
}, - "default_view": "thread",
- "id": "8b2646af-2778-487e-8e44-7ae530c2549c",
- "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",
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 2,
- "total_posts_amount": 1,
- "last_activity_at": "2020-10-04T05:44:00.00Z",
- "direct_threads_amount": 0,
- "muted": false,
- "hidden": false,
- "starred": false,
- "new": false
}, - {
- "starter": {
- "id": "11b85dac-e122-40e0-b09a-8829c5e0250e",
- "parent_thread_id": "29d1b2da-3289-454a-9089-2ed47db4967b",
- "parent_post_id": null,
- "secret_identity": {
- "name": "DragonFucker",
- "color": null,
}, - "user_identity": null,
- "friend": false,
- "created_at": "2020-04-30T03:23:00.00Z",
- "content": "[{\"insert\":\"Favorite character to maim?\"}]",
- "tags": {
- "whisper_tags": [ ],
- "index_tags": [
- "evil",
- "bobapost"
], - "category_tags": [
- "bruises"
], - "content_warnings": [ ]
}, - "total_comments_amount": 2,
- "new_comments_amount": 0,
- "new": false,
- "own": false
}, - "default_view": "thread",
- "id": "29d1b2da-3289-454a-9089-2ed47db4967b",
- "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",
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 2,
- "total_posts_amount": 3,
- "last_activity_at": "2020-05-23T05:52:00.00Z",
- "direct_threads_amount": 2,
- "muted": false,
- "hidden": false,
- "starred": false,
- "new": false
}, - {
- "starter": {
- "id": "3db477e0-57ed-491d-ba11-b3a0110b59b0",
- "parent_thread_id": "a5c903df-35e8-43b2-a41a-208c43154671",
- "parent_post_id": null,
- "secret_identity": {
- "name": "DragonFucker",
- "color": null,
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "created_at": "2020-04-24T05:42:00.00Z",
- "content": "[{\"insert\":\"Favorite murder scene in videogames?\"}]",
- "tags": {
- "whisper_tags": [
- "mwehehehehe"
], - "index_tags": [ ],
- "category_tags": [
- "blood",
- "bruises"
], - "content_warnings": [ ]
}, - "total_comments_amount": 0,
- "new_comments_amount": 0,
- "new": false,
- "own": false
}, - "default_view": "thread",
- "id": "a5c903df-35e8-43b2-a41a-208c43154671",
- "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",
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 0,
- "total_posts_amount": 3,
- "last_activity_at": "2020-05-03T09:47:00.00Z",
- "direct_threads_amount": 2,
- "muted": false,
- "hidden": false,
- "starred": false,
- "new": false
}
]
}
Get the feed for the current user activity activity.
Authorizations:
query Parameters
cursor | string Examples:
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
- 200
{- "cursor": {
- "next": "string"
}, - "activity": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "parent_board_slug": "string",
- "parent_board_id": "string",
- "parent_realm_slug": "string",
- "parent_realm_id": "string",
- "starter": {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}, - "default_view": "thread",
- "new": true,
- "muted": true,
- "hidden": true,
- "starred": true,
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 0,
- "total_posts_amount": 0,
- "direct_threads_amount": 0,
- "last_activity_at": "2019-08-24T14:15:22Z"
}
]
}
Get current users Star Feed.
Authorizations:
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
- 200
{- "cursor": {
- "next": "string"
}, - "activity": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "parent_board_slug": "string",
- "parent_board_id": "string",
- "parent_realm_slug": "string",
- "parent_realm_id": "string",
- "starter": {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}, - "default_view": "thread",
- "new": true,
- "muted": true,
- "hidden": true,
- "starred": true,
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 0,
- "total_posts_amount": 0,
- "direct_threads_amount": 0,
- "last_activity_at": "2019-08-24T14:15:22Z"
}
]
}
Fetches board metadata.
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The external id of the board to retrieve metadata for. |
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 |
required | Array of any (Description) |
Response samples
- 200
- 401
- 403
- 404
{- "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": [
- {
- "id": "f377afb3-5c62-40cc-8f07-1f4749a780eb",
- "type": "category_filter",
- "index": 2,
- "title": "Gore Categories",
- "categories": [
- "blood",
- "bruises"
], - "description": null
}, - {
- "id": "f377afb3-5c62-40cc-8f07-1f4749a780eb",
- "type": "text",
- "index": 1,
- "title": "Gore description",
- "categories": null,
- "description": "[{\"insert\": \"pls b nice\"}]"
}
]
}
Create a new thread.
Creates a new thread in the specified board.
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The id for the board in which the thread will be created. |
Request Body schema: application/jsonrequired
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
- Payload
{- "content": "[{\"insert\":\"Gore. Gore? Gore!\"}]",
- "forceAnonymous": false,
- "defaultView": "thread",
- "whisper_tags": [
- "whisper"
], - "index_tags": [
- "search"
], - "content_warnings": [
- "content notice"
], - "category_tags": [
- "filter"
]
}
Response samples
- 200
- 401
- 403
- 404
{- "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": {
- "id": "30f7b263-2406-495a-8ab7-4bd559738510",
- "parent_thread_id": "60634506-6ab1-4083-9867-905cef85cef6",
- "parent_post_id": null,
- "created_at": "2021-11-15T13:32:26.00Z",
- "content": "[{\"insert\":\"Gore. Gore? Gore!\"}]",
- "secret_identity": {
- "name": "Him Free",
- "color": null,
- "accessory": null
}, - "user_identity": {
- "name": "bobatan",
- "avatar": "/bobatan.png"
}, - "friend": false,
- "own": true,
- "new": false,
- "tags": {
- "whisper_tags": [
- "whisper"
], - "index_tags": [
- "search"
], - "category_tags": [
- "filter"
], - "content_warnings": [
- "content notice"
]
}, - "total_comments_amount": 0,
- "new_comments_amount": 0
}, - "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": [
- {
- "id": "30f7b263-2406-495a-8ab7-4bd559738510",
- "parent_thread_id": "60634506-6ab1-4083-9867-905cef85cef6",
- "parent_post_id": null,
- "created_at": "2021-11-15T13:32:26.00Z",
- "content": "[{\"insert\":\"Gore. Gore? Gore!\"}]",
- "secret_identity": {
- "name": "Him Free",
- "color": null,
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": true,
- "new": false,
- "tags": {
- "whisper_tags": [
- "whisper"
], - "index_tags": [
- "search"
], - "category_tags": [
- "filter"
], - "content_warnings": [
- "content notice"
]
}, - "total_comments_amount": 0,
- "new_comments_amount": 0
}
], - "comments": {
- "30f7b263-2406-495a-8ab7-4bd559738510": [ ]
}
}
Update board metadata
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The external id of the board to update metadata for. |
Request Body schema: application/jsonoptional
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
- Payload
{- "descriptions": [
- {
- "id": "680ca4ba-87b5-479c-8b1f-3b674900331a",
- "type": "text",
- "index": 1,
- "title": "gore description",
- "description": "[{\"insert\": \"pls b nice\"}]"
}, - {
- "id": "1f256747-3bd5-41c0-b9a2-760241bd7928",
- "type": "category_filter",
- "index": 2,
- "title": "gore Categories",
- "categories": [
- "blood",
- "bruises"
], - "description": null
}, - {
- "id": "68f77b6b-3ac9-40f2-8507-7fed90c0da82",
- "index": 3,
- "title": "test2",
- "type": "text",
- "description": "[{\"insert\":\"test\\n\"}]"
}
], - "accentColor": "#f68298",
- "tagline": "Blood! Blood! BLOOD."
}
Response samples
- 200
- 401
- 403
- 404
{- "id": "c6d3d10e-8e49-4d73-b28a-9d652b41beec",
- "realm_id": "f377afb3-5c62-40cc-8f07-1f4749a780eb",
- "slug": "gore",
- "accent_color": "#f68298",
- "tagline": "Blood! Blood! BLOOD.",
- "avatar_url": "/gore.png",
- "delisted": false,
- "logged_in_only": false,
- "muted": false,
- "pinned": false,
- "descriptions": [
- {
- "id": "68f77b6b-3ac9-40f2-8507-7fed90c0da82",
- "type": "text",
- "index": 3,
- "title": "test2",
- "description": "[{\"insert\":\"test\\n\"}]"
}, - {
- "id": "680ca4ba-87b5-479c-8b1f-3b674900331a",
- "type": "category_filter",
- "index": 2,
- "title": "gore Categories",
- "categories": [
- "blood",
- "bruises"
], - "description": null
}, - {
- "id": "68f77b6b-3ac9-40f2-8507-7fed90c0da82",
- "type": "text",
- "index": 1,
- "title": "gore description",
- "description": "[{\"insert\": \"pls b nice\"}]"
}
], - "permissions": {
- "board_permissions": [
- "edit_board_details"
], - "post_permissions": [
- "edit_category_tags",
- "edit_content_notices"
], - "thread_permissions": [
- "move_thread"
]
}, - "posting_identities": [
- {
- "id": "3df1d417-c36a-43dd-aaba-9590316ffc32",
- "name": "The Owner",
- "color": "pink",
}, - {
- "id": "e5f86f53-6dcd-4f15-b6ea-6ca1f088e62d",
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null,
}
], - "accessories": [
- {
- "id": "7071e443-4168-4afa-9454-871c48e59701",
- "name": "Rolling",
- "accessory": "/420accessories/weed_hands.png"
}, - {
- "id": "e495f6cc-f313-4cc4-9882-f8ac89e8c2e4",
- "name": "Joint",
- "accessory": "/420accessories/joint.png"
}
]
}
Mutes a board.
Mutes the specified board for the current user.
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The external id of the board to mute. |
Responses
Response samples
- 401
- 403
- 404
- 500
{- "message": "No authenticated user found."
}
Dismiss all notifications for board
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The external id of the board to dismiss notifications for. |
Responses
Response samples
- 401
- 403
- 404
- 500
Unauthorized
Fetches latest roles summary for the board.
Authorizations:
path Parameters
board_id required | string <uuid> The id of the board. |
Responses
Response Schema: application/json
Array of objects | |||||||||||
Array
|
Response samples
- 200
- 401
- 403
- 404
{- "roles": [
- {
- "user_firebase_id": "a90b0809-2c57-4ff1-be7c-4b7ab1b7edcc",
- "username": "bobatan",
- "role_string_id": "3df1d417-c36a-43dd-aaba-9590316ffc32",
- "role_name": "The Owner",
- "label": "Look ma, a label"
}
]
}
Fetches thread data.
Fetches data for the specified thread.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
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
- 200
- 401
- 403
- 404
{- "id": "8b2646af-2778-487e-8e44-7ae530c2549c",
- "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": {
- "id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "parent_thread_id": "8b2646af-2778-487e-8e44-7ae530c2549c",
- "parent_post_id": null,
- "created_at": "2020-09-25T05:42:00.00Z",
- "content": "[{\"insert\":\"Remember to be excellent to each other and only be mean to fictional characters!\"}]",
- "secret_identity": {
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": false,
- "new": false,
- "tags": {
- "whisper_tags": [
- "An announcement from your headmaster!"
], - "index_tags": [ ],
- "category_tags": [ ],
- "content_warnings": [ ]
}, - "total_comments_amount": 2,
- "new_comments_amount": 0
}, - "posts": [
- {
- "id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "parent_thread_id": "8b2646af-2778-487e-8e44-7ae530c2549c",
- "parent_post_id": null,
- "created_at": "2020-09-25T05:42:00.00Z",
- "content": "[{\"insert\":\"Remember to be excellent to each other and only be mean to fictional characters!\"}]",
- "secret_identity": {
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": false,
- "new": false,
- "tags": {
- "whisper_tags": [
- "An announcement from your headmaster!"
], - "index_tags": [ ],
- "category_tags": [ ],
- "content_warnings": [ ]
}, - "total_comments_amount": 2,
- "new_comments_amount": 0
}
], - "comments": {
- "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb": [
- {
- "id": "d3c21e0c-7ab9-4cb6-b1ed-1b7e558ba375",
- "parent_comment_id": null,
- "chain_parent_id": null,
- "parent_post_id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "created_at": "2020-10-02T05:43:00.00Z",
- "content": "[{\"insert\":\"But can we be mean to you?\"}]",
- "secret_identity": {
- "name": "DragonFucker",
- "color": null,
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": false,
- "new": false
}, - {
- "id": "146d4087-e11e-4912-9d67-93065b9a0c78",
- "parent_comment_id": "d3c21e0c-7ab9-4cb6-b1ed-1b7e558ba375",
- "chain_parent_id": null,
- "parent_post_id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "created_at": "2020-10-04T05:44:00.00Z",
- "content": "[{\"insert\":\"BobaNitro users can be mean to the webmaster once a month.\"}]",
- "secret_identity": {
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": false,
- "new": false
}
]
}, - "default_view": "thread",
- "muted": false,
- "hidden": false,
- "starred": false,
- "new": false,
- "last_activity_at": "2020-10-04T05:44:00.00Z",
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 2,
- "total_posts_amount": 1,
- "direct_threads_amount": 0
}
Update thread properties.
Updates the default view that the thread uses or the parent board of the thread.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread whose properties should be updated. |
Request Body schema: application/jsonrequired
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
Request samples
- Payload
{- "defaultView": "gallery"
}
Response samples
- 200
- 401
- 403
- 404
OK
Mutes a thread.
Mutes the specified thread for the current user.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread to mute. |
Responses
Response samples
- 401
- 403
- 404
{- "message": "No authenticated user found."
}
Unmutes a thread.
Unmutes a specified thread.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread to unmute. |
Responses
Response samples
- 401
- 403
- 404
{- "message": "No authenticated user found."
}
Hides a thread.
Hides the specified thread for the current user.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread to unhide. |
Responses
Response samples
- 401
- 403
- 404
{- "message": "No authenticated user found."
}
Unhides a thread.
Unhides the specified thread for the current user.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread to unhide. |
Responses
Response samples
- 401
- 403
- 404
{- "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:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread that is being visited. |
Responses
Response samples
- 401
- 403
- 404
{- "message": "No authenticated user found."
}
Replies to a contribution with another contribution.
Posts a contribution replying to the one with id {postId}.
Authorizations:
path Parameters
post_id required | string <uuid> The uuid of the contribution to reply to. |
Request Body schema: application/jsonrequired
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. | |||||||||||||||||||||||||||
|
Request samples
- Payload
{- "content": "string",
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
], - "accessory_id": "a8efa488-3dd5-4296-8cd8-a2cec20ea35c",
- "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
- "forceAnonymous": true
}
Response samples
- 200
{- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}
}
Edits a contribution.
Edits a contribution (for now just its tags).
Authorizations:
path Parameters
post_id required | string <uuid> The uuid of the contribution to edit. |
Request Body schema: application/jsonrequired
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. | |||||||||||||||||||||||||||
|
Request samples
- Payload
{- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
Response samples
- 200
{- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}
}
Add comments to a contribution, optionally nested under another comment.
Creates a comment nested under the contribution with id {post_id}.
Authorizations:
path Parameters
post_id required | string <uuid> The uuid of the contribution to reply to. |
Request Body schema: application/jsonrequired
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
|
Request samples
- Payload
{- "contents": [
- "string"
], - "accessory_id": "a8efa488-3dd5-4296-8cd8-a2cec20ea35c",
- "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
- "forceAnonymous": true
}
Response samples
- 200
{- "comments": [
- {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "created_at": "2019-08-24T14:15:22Z",
- "own": true,
- "new": true,
- "friend": true
}
]
}
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:
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 |
required | object A map from board id to its NotiicationStatus for each pinned board. |
Response samples
- 200
{- "has_notifications": true,
- "is_outdated_notifications": true,
- "realm_id": "string",
- "realm_boards": {
- "property1": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "has_updates": true,
- "is_outdated": true,
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visited_at": "2019-08-24T14:15:22Z"
}, - "property2": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "has_updates": true,
- "is_outdated": true,
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visited_at": "2019-08-24T14:15:22Z"
}
}, - "pinned_boards": {
- "property1": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "has_updates": true,
- "is_outdated": true,
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visited_at": "2019-08-24T14:15:22Z"
}, - "property2": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "has_updates": true,
- "is_outdated": true,
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visited_at": "2019-08-24T14:15:22Z"
}
}
}
Update data for the current user.
Authorizations:
Request Body schema: application/jsonrequired
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
- Payload
{- "username": "string",
}
Response samples
- 200
{- "username": "string",
}
Gets pinned boards for the current user on the current realm.
Authorizations:
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
Responses
Response Schema: application/json
required | object A map from board id to its LoggedInSummary for each pinned board. | ||||||||||||||||||||||||||
|
Response samples
- 200
{- "pinned_boards": {
- "property1": {
- "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,
- "index": 0
}, - "property2": {
- "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,
- "index": 0
}
}
}
Gets bobadex data for the current user.
Authorizations:
Responses
Response Schema: application/json
required | Array of objects (BobaDexSeason) | ||||||||||
Array
|
Response samples
- 200
{- "seasons": [
- {
- "id": "8d64d742-48d5-43e8-9378-bd73c7bfa871",
- "realm_id": "v0",
- "name": "Default",
- "identities_count": 3,
- "caught_identities": [
- {
- "index": 1,
- "identity": {
- "id": "3f0d24b8-decc-4413-8f9d-eace821116a8",
- "name": "Old Time-y Anon",
}
}, - {
- "index": 3,
- "identity": {
- "id": "02be1cb0-e685-4dcb-a05c-adc1054e6fb2",
- "name": "Outdated Meme",
}
}
]
}
]
}
Gets settings data for the current user.
Authorizations:
Responses
Response Schema: application/json
Array of any (Setting) | |||||||
Array
|
Response samples
- 200
{- "decorations": [
- {
- "name": "FESTIVE_BACKGROUND_FEED",
- "type": "BOOLEAN",
- "value": true
}, - {
- "name": "FESTIVE_BACKGROUND_SIDEBAR",
- "type": "BOOLEAN",
- "value": true
}, - {
- "name": "FESTIVE_CURSOR",
- "type": "BOOLEAN",
- "value": false
}
]
}
Updates settings data for the current user.
Authorizations:
Request Body schema: application/json
request body
name required | string |
required | string or boolean |
Responses
Response Schema: application/json
Array of any (Setting) | |||||||
Array
|
Request samples
- Payload
{- "name": "FESTIVE_BACKGROUND_FEED",
- "value": false
}
Response samples
- 200
{- "decorations": [
- {
- "name": "FESTIVE_BACKGROUND_FEED",
- "type": "BOOLEAN",
- "value": true
}, - {
- "name": "FESTIVE_BACKGROUND_SIDEBAR",
- "type": "BOOLEAN",
- "value": true
}, - {
- "name": "FESTIVE_CURSOR",
- "type": "BOOLEAN",
- "value": false
}
]
}
Gets data for the given subscription. Currently returns only the last update.
Authorizations:
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
- 200
{- "cursor": {
- "next": "string"
}, - "subscription": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "last_activity_at": "2019-08-24T14:15:22Z"
}, - "activity": [
- {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}
]
}
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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}
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": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "created_at": "2019-08-24T14:15:22Z",
- "own": true,
- "new": true,
- "friend": true
}
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
}
id required | string <uuid> |
index required | number |
title required | string |
type required | string |
description required | string |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "index": 0,
- "title": "string",
- "type": "text",
- "description": "string"
}
Create a new thread.
Creates a new thread in the specified board.
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The id for the board in which the thread will be created. |
Request Body schema: application/jsonrequired
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
- Payload
{- "content": "[{\"insert\":\"Gore. Gore? Gore!\"}]",
- "forceAnonymous": false,
- "defaultView": "thread",
- "whisper_tags": [
- "whisper"
], - "index_tags": [
- "search"
], - "content_warnings": [
- "content notice"
], - "category_tags": [
- "filter"
]
}
Response samples
- 200
- 401
- 403
- 404
{- "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": {
- "id": "30f7b263-2406-495a-8ab7-4bd559738510",
- "parent_thread_id": "60634506-6ab1-4083-9867-905cef85cef6",
- "parent_post_id": null,
- "created_at": "2021-11-15T13:32:26.00Z",
- "content": "[{\"insert\":\"Gore. Gore? Gore!\"}]",
- "secret_identity": {
- "name": "Him Free",
- "color": null,
- "accessory": null
}, - "user_identity": {
- "name": "bobatan",
- "avatar": "/bobatan.png"
}, - "friend": false,
- "own": true,
- "new": false,
- "tags": {
- "whisper_tags": [
- "whisper"
], - "index_tags": [
- "search"
], - "category_tags": [
- "filter"
], - "content_warnings": [
- "content notice"
]
}, - "total_comments_amount": 0,
- "new_comments_amount": 0
}, - "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": [
- {
- "id": "30f7b263-2406-495a-8ab7-4bd559738510",
- "parent_thread_id": "60634506-6ab1-4083-9867-905cef85cef6",
- "parent_post_id": null,
- "created_at": "2021-11-15T13:32:26.00Z",
- "content": "[{\"insert\":\"Gore. Gore? Gore!\"}]",
- "secret_identity": {
- "name": "Him Free",
- "color": null,
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": true,
- "new": false,
- "tags": {
- "whisper_tags": [
- "whisper"
], - "index_tags": [
- "search"
], - "category_tags": [
- "filter"
], - "content_warnings": [
- "content notice"
]
}, - "total_comments_amount": 0,
- "new_comments_amount": 0
}
], - "comments": {
- "30f7b263-2406-495a-8ab7-4bd559738510": [ ]
}
}
Update board metadata
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The external id of the board to update metadata for. |
Request Body schema: application/jsonoptional
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
- Payload
{- "descriptions": [
- {
- "id": "680ca4ba-87b5-479c-8b1f-3b674900331a",
- "type": "text",
- "index": 1,
- "title": "gore description",
- "description": "[{\"insert\": \"pls b nice\"}]"
}, - {
- "id": "1f256747-3bd5-41c0-b9a2-760241bd7928",
- "type": "category_filter",
- "index": 2,
- "title": "gore Categories",
- "categories": [
- "blood",
- "bruises"
], - "description": null
}, - {
- "id": "68f77b6b-3ac9-40f2-8507-7fed90c0da82",
- "index": 3,
- "title": "test2",
- "type": "text",
- "description": "[{\"insert\":\"test\\n\"}]"
}
], - "accentColor": "#f68298",
- "tagline": "Blood! Blood! BLOOD."
}
Response samples
- 200
- 401
- 403
- 404
{- "id": "c6d3d10e-8e49-4d73-b28a-9d652b41beec",
- "realm_id": "f377afb3-5c62-40cc-8f07-1f4749a780eb",
- "slug": "gore",
- "accent_color": "#f68298",
- "tagline": "Blood! Blood! BLOOD.",
- "avatar_url": "/gore.png",
- "delisted": false,
- "logged_in_only": false,
- "muted": false,
- "pinned": false,
- "descriptions": [
- {
- "id": "68f77b6b-3ac9-40f2-8507-7fed90c0da82",
- "type": "text",
- "index": 3,
- "title": "test2",
- "description": "[{\"insert\":\"test\\n\"}]"
}, - {
- "id": "680ca4ba-87b5-479c-8b1f-3b674900331a",
- "type": "category_filter",
- "index": 2,
- "title": "gore Categories",
- "categories": [
- "blood",
- "bruises"
], - "description": null
}, - {
- "id": "68f77b6b-3ac9-40f2-8507-7fed90c0da82",
- "type": "text",
- "index": 1,
- "title": "gore description",
- "description": "[{\"insert\": \"pls b nice\"}]"
}
], - "permissions": {
- "board_permissions": [
- "edit_board_details"
], - "post_permissions": [
- "edit_category_tags",
- "edit_content_notices"
], - "thread_permissions": [
- "move_thread"
]
}, - "posting_identities": [
- {
- "id": "3df1d417-c36a-43dd-aaba-9590316ffc32",
- "name": "The Owner",
- "color": "pink",
}, - {
- "id": "e5f86f53-6dcd-4f15-b6ea-6ca1f088e62d",
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null,
}
], - "accessories": [
- {
- "id": "7071e443-4168-4afa-9454-871c48e59701",
- "name": "Rolling",
- "accessory": "/420accessories/weed_hands.png"
}, - {
- "id": "e495f6cc-f313-4cc4-9882-f8ac89e8c2e4",
- "name": "Joint",
- "accessory": "/420accessories/joint.png"
}
]
}
Mutes a board.
Mutes the specified board for the current user.
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The external id of the board to mute. |
Responses
Response samples
- 401
- 403
- 404
- 500
{- "message": "No authenticated user found."
}
Dismiss all notifications for board
Authorizations:
path Parameters
board_id required | string <uuid> Examples:
The external id of the board to dismiss notifications for. |
Responses
Response samples
- 401
- 403
- 404
- 500
Unauthorized
Get the feed for the current user activity activity.
Authorizations:
query Parameters
cursor | string Examples:
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
- 200
{- "cursor": {
- "next": "string"
}, - "activity": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "parent_board_slug": "string",
- "parent_board_id": "string",
- "parent_realm_slug": "string",
- "parent_realm_id": "string",
- "starter": {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}, - "default_view": "thread",
- "new": true,
- "muted": true,
- "hidden": true,
- "starred": true,
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 0,
- "total_posts_amount": 0,
- "direct_threads_amount": 0,
- "last_activity_at": "2019-08-24T14:15:22Z"
}
]
}
Get current users Star Feed.
Authorizations:
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
- 200
{- "cursor": {
- "next": "string"
}, - "activity": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "parent_board_slug": "string",
- "parent_board_id": "string",
- "parent_realm_slug": "string",
- "parent_realm_id": "string",
- "starter": {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}, - "default_view": "thread",
- "new": true,
- "muted": true,
- "hidden": true,
- "starred": true,
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 0,
- "total_posts_amount": 0,
- "direct_threads_amount": 0,
- "last_activity_at": "2019-08-24T14:15:22Z"
}
]
}
Replies to a contribution with another contribution.
Posts a contribution replying to the one with id {postId}.
Authorizations:
path Parameters
post_id required | string <uuid> The uuid of the contribution to reply to. |
Request Body schema: application/jsonrequired
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. | |||||||||||||||||||||||||||
|
Request samples
- Payload
{- "content": "string",
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
], - "accessory_id": "a8efa488-3dd5-4296-8cd8-a2cec20ea35c",
- "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
- "forceAnonymous": true
}
Response samples
- 200
{- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}
}
Edits a contribution.
Edits a contribution (for now just its tags).
Authorizations:
path Parameters
post_id required | string <uuid> The uuid of the contribution to edit. |
Request Body schema: application/jsonrequired
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. | |||||||||||||||||||||||||||
|
Request samples
- Payload
{- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
Response samples
- 200
{- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}
}
Add comments to a contribution, optionally nested under another comment.
Creates a comment nested under the contribution with id {post_id}.
Authorizations:
path Parameters
post_id required | string <uuid> The uuid of the contribution to reply to. |
Request Body schema: application/jsonrequired
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
|
Request samples
- Payload
{- "contents": [
- "string"
], - "accessory_id": "a8efa488-3dd5-4296-8cd8-a2cec20ea35c",
- "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
- "forceAnonymous": true
}
Response samples
- 200
{- "comments": [
- {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "created_at": "2019-08-24T14:15:22Z",
- "own": true,
- "new": true,
- "friend": true
}
]
}
Fetches the top-level realm metadata by slug.
Authorizations:
path Parameters
realm_slug required | string Examples:
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
- 200
{- "id": "0d91d28f-182c-4684-aa6c-9159059a5b49",
- "slug": "v0",
- "settings": {
- "root": {
- "cursor": { }
}, - "index_page": [ ],
- "board_page": [ ],
- "thread_page": [ ]
}, - "homepage": {
- "blocks": [
- {
- "id": "f8cf1796-c5b4-49c9-9773-eb1a245e222c",
- "index": 0,
- "title": "A description block",
- "type": "text",
- "description": "Welcome to the Realm"
}, - {
- "id": "d829b5fb-6343-4700-bf7c-7626950f2c8d",
- "index": 1,
- "title": "A rules block",
- "type": "rules",
- "rules": [
- {
- "index": 0,
- "title": "Be nice to each other",
- "description": "What it says up there",
- "pinned": true
}, - {
- "index": 1,
- "title": "This is a hidden rule",
- "description": "Congratulations! Here's a cookie",
- "pinned": false
}
]
}
]
}, - "realm_permissions": [
- "create_realm_invite",
- "post_on_realm",
- "comment_on_realm",
- "create_thread_on_realm",
- "access_locked_boards_on_realm"
], - "boards": [
- {
- "id": "2fb151eb-c600-4fe4-a542-4662487e5496",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "main_street",
- "tagline": "For BobaBoard-related discussions.",
- "avatar_url": "/villains.png",
- "accent_color": "#ff5252",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "c6d3d10e-8e49-4d73-b28a-9d652b41beec",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "gore",
- "tagline": "Blood! Blood! Blood!",
- "avatar_url": "/gore.png",
- "accent_color": "#f96680",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "4b30fb7c-2aca-4333-aa56-ae8623a92b65",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "anime",
- "tagline": "I wish I had a funny one for this.",
- "avatar_url": "/anime.png",
- "accent_color": "#24d282",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "db8dc5b3-5b4a-4bfe-a303-e176c9b00b83",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "long",
- "tagline": "A board to test with many posts.",
- "avatar_url": "/onceler-board.png",
- "accent_color": "#00b8ff",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "0e0d1ee6-f996-4415-89c1-c9dc1fe991dc",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "memes",
- "tagline": "A board to test collections view.",
- "avatar_url": "/kink-meme.png",
- "accent_color": "#7b00ff",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "2bdce2fa-12e0-461b-b0fb-1a2e67227434",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "muted",
- "tagline": "A board to test for muting.",
- "accent_color": "#9b433b",
- "delisted": false,
- "logged_in_only": false
}, - {
- "id": "76ebaab0-6c3e-4d7b-900f-f450625a5ed3",
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "slug": "restricted",
- "tagline": "A board to test for logged-in only view",
- "accent_color": "#234a69",
- "delisted": false,
- "logged_in_only": true
}
]
}
Fetches latest activity summary for the realm.
Authorizations:
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
- 200
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "boards": {
- "property1": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "last_post_at": "2019-08-24T14:15:22Z",
- "last_comment_at": "2019-08-24T14:15:22Z",
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visit_at": "2019-08-24T14:15:22Z"
}, - "property2": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "last_post_at": "2019-08-24T14:15:22Z",
- "last_comment_at": "2019-08-24T14:15:22Z",
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visit_at": "2019-08-24T14:15:22Z"
}
}
}
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:
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 |
required | object A map from board id to its NotiicationStatus for each pinned board. |
Response samples
- 200
{- "has_notifications": true,
- "is_outdated_notifications": true,
- "realm_id": "string",
- "realm_boards": {
- "property1": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "has_updates": true,
- "is_outdated": true,
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visited_at": "2019-08-24T14:15:22Z"
}, - "property2": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "has_updates": true,
- "is_outdated": true,
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visited_at": "2019-08-24T14:15:22Z"
}
}, - "pinned_boards": {
- "property1": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "has_updates": true,
- "is_outdated": true,
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visited_at": "2019-08-24T14:15:22Z"
}, - "property2": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "has_updates": true,
- "is_outdated": true,
- "last_activity_at": "2019-08-24T14:15:22Z",
- "last_activity_from_others_at": "2019-08-24T14:15:22Z",
- "last_visited_at": "2019-08-24T14:15:22Z"
}
}
}
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:
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
Responses
Response Schema: application/json
Array of objects (InviteWithDetails) | |||||||||||||||
Array
|
Response samples
- 200
- 401
- 403
- 404
{- "invites": [
- {
- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "invitee_email": "ms.boba@bobaboard.com",
- "own": false,
- "issued_at": "2021-06-09T04:20:00Z",
- "expires_at": "2021-06-09T16:20:00Z",
- "label": "This is a test invite."
}
]
}
Create invite for the realm.
Authorizations:
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
Request Body schema: application/json
The invite data.
string <email> | |
label | string |
Responses
Response Schema: application/json
realm_id required | string <uuid> |
invite_url required | string <uri-reference> |
Request samples
- Payload
{- "email": "ms.boba@bobaboard.com"
}
Response samples
- 200
- 401
- 403
- 404
{- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
}
Get an invite's realm and status.
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
nonce required | string Examples:
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
- 200
- 404
{- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "realm_slug": "twisted-minds",
- "invite_status": "pending",
- "requires_email": true
}
Accept invite for the realm.
Authorizations:
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
nonce required | string Examples:
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
- Payload
{- "email": "ms.boba@bobaboard.com",
- "password": "how_bad_can_i_be"
}
Response samples
- 200
- 400
- 403
- 404
- 409
{- "realm_id": "76ef4cc3-1603-4278-95d7-99c59f481d2e",
- "realm_slug": "twisted-minds"
}
Gets data for the given subscription. Currently returns only the last update.
Authorizations:
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
- 200
{- "cursor": {
- "next": "string"
}, - "subscription": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "last_activity_at": "2019-08-24T14:15:22Z"
}, - "activity": [
- {
- "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": {
- "name": "string",
- "avatar": "../dictionary",
- "color": "string",
- "accessory": "../dictionary"
}, - "user_identity": {
- "name": "string",
- "avatar": "../dictionary"
}, - "new": true,
- "own": true,
- "friend": true,
- "total_comments_amount": 0,
- "new_comments_amount": 0,
- "tags": {
- "whisper_tags": [
- "string"
], - "index_tags": [
- "string"
], - "category_tags": [
- "string"
], - "content_warnings": [
- "string"
]
}
}
]
}
Fetches thread data.
Fetches data for the specified thread.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
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
- 200
- 401
- 403
- 404
{- "id": "8b2646af-2778-487e-8e44-7ae530c2549c",
- "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": {
- "id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "parent_thread_id": "8b2646af-2778-487e-8e44-7ae530c2549c",
- "parent_post_id": null,
- "created_at": "2020-09-25T05:42:00.00Z",
- "content": "[{\"insert\":\"Remember to be excellent to each other and only be mean to fictional characters!\"}]",
- "secret_identity": {
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": false,
- "new": false,
- "tags": {
- "whisper_tags": [
- "An announcement from your headmaster!"
], - "index_tags": [ ],
- "category_tags": [ ],
- "content_warnings": [ ]
}, - "total_comments_amount": 2,
- "new_comments_amount": 0
}, - "posts": [
- {
- "id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "parent_thread_id": "8b2646af-2778-487e-8e44-7ae530c2549c",
- "parent_post_id": null,
- "created_at": "2020-09-25T05:42:00.00Z",
- "content": "[{\"insert\":\"Remember to be excellent to each other and only be mean to fictional characters!\"}]",
- "secret_identity": {
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": false,
- "new": false,
- "tags": {
- "whisper_tags": [
- "An announcement from your headmaster!"
], - "index_tags": [ ],
- "category_tags": [ ],
- "content_warnings": [ ]
}, - "total_comments_amount": 2,
- "new_comments_amount": 0
}
], - "comments": {
- "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb": [
- {
- "id": "d3c21e0c-7ab9-4cb6-b1ed-1b7e558ba375",
- "parent_comment_id": null,
- "chain_parent_id": null,
- "parent_post_id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "created_at": "2020-10-02T05:43:00.00Z",
- "content": "[{\"insert\":\"But can we be mean to you?\"}]",
- "secret_identity": {
- "name": "DragonFucker",
- "color": null,
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": false,
- "new": false
}, - {
- "id": "146d4087-e11e-4912-9d67-93065b9a0c78",
- "parent_comment_id": "d3c21e0c-7ab9-4cb6-b1ed-1b7e558ba375",
- "chain_parent_id": null,
- "parent_post_id": "ff9f2ae2-a254-4069-9791-3ac5e6dff5bb",
- "created_at": "2020-10-04T05:44:00.00Z",
- "content": "[{\"insert\":\"BobaNitro users can be mean to the webmaster once a month.\"}]",
- "secret_identity": {
- "name": "GoreMaster5000",
- "color": "red",
- "accessory": null
}, - "user_identity": null,
- "friend": false,
- "own": false,
- "new": false
}
]
}, - "default_view": "thread",
- "muted": false,
- "hidden": false,
- "starred": false,
- "new": false,
- "last_activity_at": "2020-10-04T05:44:00.00Z",
- "new_posts_amount": 0,
- "new_comments_amount": 0,
- "total_comments_amount": 2,
- "total_posts_amount": 1,
- "direct_threads_amount": 0
}
Update thread properties.
Updates the default view that the thread uses or the parent board of the thread.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread whose properties should be updated. |
Request Body schema: application/jsonrequired
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
Request samples
- Payload
{- "defaultView": "gallery"
}
Response samples
- 200
- 401
- 403
- 404
OK
Mutes a thread.
Mutes the specified thread for the current user.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread to mute. |
Responses
Response samples
- 401
- 403
- 404
{- "message": "No authenticated user found."
}
Unmutes a thread.
Unmutes a specified thread.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread to unmute. |
Responses
Response samples
- 401
- 403
- 404
{- "message": "No authenticated user found."
}
Hides a thread.
Hides the specified thread for the current user.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread to unhide. |
Responses
Response samples
- 401
- 403
- 404
{- "message": "No authenticated user found."
}
Unhides a thread.
Unhides the specified thread for the current user.
Authorizations:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread to unhide. |
Responses
Response samples
- 401
- 403
- 404
{- "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:
path Parameters
thread_id required | string <uuid> Examples:
The id of the thread that is being visited. |
Responses
Response samples
- 401
- 403
- 404
{- "message": "No authenticated user found."
}
Update data for the current user.
Authorizations:
Request Body schema: application/jsonrequired
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
- Payload
{- "username": "string",
}
Response samples
- 200
{- "username": "string",
}
Gets pinned boards for the current user on the current realm.
Authorizations:
path Parameters
realm_id required | string <uuid> Examples:
The id of the realm. |
Responses
Response Schema: application/json
required | object A map from board id to its LoggedInSummary for each pinned board. | ||||||||||||||||||||||||||
|
Response samples
- 200
{- "pinned_boards": {
- "property1": {
- "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,
- "index": 0
}, - "property2": {
- "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,
- "index": 0
}
}
}
Gets bobadex data for the current user.
Authorizations:
Responses
Response Schema: application/json
required | Array of objects (BobaDexSeason) | ||||||||||
Array
|
Response samples
- 200
{- "seasons": [
- {
- "id": "8d64d742-48d5-43e8-9378-bd73c7bfa871",
- "realm_id": "v0",
- "name": "Default",
- "identities_count": 3,
- "caught_identities": [
- {
- "index": 1,
- "identity": {
- "id": "3f0d24b8-decc-4413-8f9d-eace821116a8",
- "name": "Old Time-y Anon",
}
}, - {
- "index": 3,
- "identity": {
- "id": "02be1cb0-e685-4dcb-a05c-adc1054e6fb2",
- "name": "Outdated Meme",
}
}
]
}
]
}
Gets settings data for the current user.
Authorizations:
Responses
Response Schema: application/json
Array of any (Setting) | |||||||
Array
|
Response samples
- 200
{- "decorations": [
- {
- "name": "FESTIVE_BACKGROUND_FEED",
- "type": "BOOLEAN",
- "value": true
}, - {
- "name": "FESTIVE_BACKGROUND_SIDEBAR",
- "type": "BOOLEAN",
- "value": true
}, - {
- "name": "FESTIVE_CURSOR",
- "type": "BOOLEAN",
- "value": false
}
]
}
Updates settings data for the current user.
Authorizations:
Request Body schema: application/json
request body
name required | string |
required | string or boolean |
Responses
Response Schema: application/json
Array of any (Setting) | |||||||
Array
|
Request samples
- Payload
{- "name": "FESTIVE_BACKGROUND_FEED",
- "value": false
}
Response samples
- 200
{- "decorations": [
- {
- "name": "FESTIVE_BACKGROUND_FEED",
- "type": "BOOLEAN",
- "value": true
}, - {
- "name": "FESTIVE_BACKGROUND_SIDEBAR",
- "type": "BOOLEAN",
- "value": true
}, - {
- "name": "FESTIVE_CURSOR",
- "type": "BOOLEAN",
- "value": false
}
]
}