# API Reference

Overview of Epochtalk API


# Ads

# Ad Analytics

Back to top

Returns analytics for the current ad round

GET /ads/analytics/:round

# Success response

# Success response - Success 200

Name Type Description
round object

Object containing data about the round

round.viewing number

The round of ads that analytics are being displayed for

round.current number

The round of ads that are currentlying running

round.previous number

The previous round

round.next number

The next round

round.start_time timestamp

The timestamp of when the round started

round.end_time timestamp

The timestamp of when the round ended

analytics object[]

Object containing analytics data about each ad in the round, index of ad corresponds the ad number

analytics.total_impressions number

The total number of impressions for this ad

analytics.total_authed_impressions number

The total number of impressions for this ad from authorized users (not unique)

analytics.total_unique_ip_impressions number

The total number of impressions for this ad from unique ip addresses

analytics.total_unique_authed_users_impressions number

The total number of impressions for this ad from authorized users (unique)

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error viewing the analytics for ads

# Create Ad

Back to top

Used to create a new ad within a round

POST /ads

# Parameters - Payload

Name Type Description
round number

The number of the round to create ad for

html string

The html source of the ad

css string optional

The css backing the html source

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the created ad

round number

The round in which the ad was created

html string

The html source for the ad

css string

The css source for the ad

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error creating the ad

# Create Ad Round

Back to top

Used to create a new ad round

POST /ads/rounds

# Success response

# Success response - Success 200

Name Type Description
round number

The number of the round which was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error creating the ad round

# Create Factoid

Back to top

Used to create a new factoid

POST /ads/factoids

# Parameters - Payload

Name Type Description
text string

The factoid text

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the created factoid

text string

The factoid text

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error creating the factoid

# Disable Factoid

Back to top

Used to disable factoids

PUT /ads/factoids/:id/disable

# Parameters - Parameter

Name Type Description
id string

The unique id of the factoid to disable, pass 'all' in to disable all factoids

# Success response

# Success response - Success 200

Name Type Description
Sucess Object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error disabling the factoid

# Duplicate Ad

Back to top

Used to duplicate an ad within a round

POST /ads/:id/duplicate

# Parameters - Parameter

Name Type Description
id string

The unique id of the ad to duplicate

# Success response

# Success response - Success 200

Name Type Description
id id

The id of the duplicated ad

round string

The round in which the ad was created

html string

The html source for the ad

css string

The css source for the ad

created_at timestamp

The created at timestamp for the ad

updated_at timestamp

The updated at timestamp for the ad

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error duplicating the ad

# Enable Factoid

Back to top

Used to enable factoids

PUT /ads/factoids/:id/enable

# Parameters - Parameter

Name Type Description
id string

The unique id of the factoid to enable, pass 'all' in to enable all factoids

# Success response

# Success response - Success 200

Name Type Description
Sucess Object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error enabling the factoid

# Remove Ad

Back to top

Used to remove an ad

DELETE /ads/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the ad to remove

# Success response

# Success response - Success 200

Name Type Description
HTTP object

Code STATUS 200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error removing the ad

# Remove Factoid

Back to top

Used to remove a factoid

DELETE /ads/factoids/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the factoid to remove

# Success response

# Success response - Success 200

Name Type Description
HTTP object

Code STATUS 200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error removing the factoid

# Rotate Ad Round

Back to top

Used to put a round of ads into rotation

POST /ads/rounds/rotate

# Parameters - Payload

Name Type Description
round number

The round of ads to rotate to

# Success response

# Success response - Success 200

Name Type Description
round number

The integer value of the round

current boolean

Boolean indicating if this is the current round

start_time timestamp

Start of the round timestamp

end_time timestamp

End of the round timestamp

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error rotating the ad round

# Save Ad View Text

Back to top

Used to save ad info and disclaimer text to be displayed in Ad related views

POST /ads/text

# Parameters - Payload

Name Type Description
disclaimer string

The disclaimer text html source for ads

info string

The information text html source for ads

# Success response

# Success response - Success 200

Name Type Description
disclaimer string

The disclaimer text html source for ads

info string

The information text html source for ads

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error saving the ad view text

# Update Ad

Back to top

Used to update an ad

PUT /ads/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the ad to update

# Parameters - Payload

Name Type Description
html string

The updated html source

css string

The updated css source

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the ad to update

html string

The updated html source

css string

The updated css source

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the ad

# Update Factoid

Back to top

Used to update a factoid

PUT /ads/factoids/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the factoid to update

# Parameters - Payload

Name Type Description
text string

The updated factoid text

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the factoid which was update

text string

The updated factoid text

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the factoid

# View Ad

Back to top

Returns a random ad out of the round of circulated ads

GET /ads/

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the ad

round string

The round in which the ad is running

html string

The html source for the ad

css string

The css source for the ad

created_at timestamp

The created at timestamp for the ad

updated_at timestamp

The updated at timestamp for the ad

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error viewing the ad

# View Ad Round

Back to top

Returns ads, factoids, and data for specified round

GET /ads/rounds/:roundNumber

# Parameters - Parameter

Name Type Description
roundNumber string

The round number to view, or "current" to view current round

# Parameters - Query

Name Type Description
type string optional

What html source text to bring back with the data

Allowed values: "disclaimer","info","both"

# Success response

# Success response - Success 200

Name Type Description
ads object[]

An array of ads in the specified round

ads.id string

The id of the ad

ads.round number

The round number of the ad

ads.html string

The html source for the ad

ads.css string

The css source for the ad

ads.display_html string

The compiled display html

ads.display_css string

The compiled display css

ads.created_at timestamp

The created at timestamp for the ad

ads.updated_at timestamp

The updated at timestamp for the ad

factoids object[]

An array of factoids in circulation

factoids.id string

The id of the factoid

factoids.text string

The factoid text

factoids.enabled boolean

Boolean indicating if factoid is enabled

factoids.created_at timestamp

The created at timestamp for the factoid

factoids.updated_at timestamp

The updated at timestamp for the factoid

text object

Object which contains ad disclaimers and informations

text.info string

HTML source for ad info to be displayed

text.disclaimer string

HTML source for ads disclaimer to be displayed

round object

Object containing data about the round

round.viewing number

The round of ads that analytics are being displayed for

round.current number

The round of ads that are currentlying running

round.previous number

The previous round

round.next number

The next round

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error viewing the round

# View Round Information

Back to top

Returns information about the current ad round

GET /ads/rounds/info

# Success response

# Success response - Success 200

Name Type Description
ads object[]

An array of ads in the current round

ads.id string

The id of the ad

ads.round number

The round number of the ad

ads.html string

The html source for the ad

ads.css string

The css source for the ad

ads.display_html string

The compiled display html

ads.display_css string

The compiled display css

ads.created_at timestamp

The created at timestamp for the ad

ads.updated_at timestamp

The updated at timestamp for the ad

factoids object[]

An array of factoids in circulation

factoids.id string

The id of the factoid

factoids.text string

The factoid text

factoids.enabled boolean

Boolean indicating if factoid is enabled

factoids.created_at timestamp

The created at timestamp for the factoid

factoids.updated_at timestamp

The updated at timestamp for the factoid

text object

Object which contains info to be displayed on the /ads/info view

text.info string

HTML source to be displayed on the /ads/info view

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error viewing the round information

# Auth

# Authenticate User

Back to top

Used to check the logged in user's authentication.

GET /authenticate

# Success response

# Success response - Success 200

Name Type Description
token string

User's unique session token

id string

User's unique id

username string

User's username

avatar string

User's avatar url

roles string[]

Array of user's roles lookup strings

moderating string[]

Array of user's moderatered board ids

permissions object

Object containing user's permissions

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

returned when user is not authenticated

# Confirm Account

Back to top

Used to confirm a newly registered account when account verification is enabled in the admin panel.

POST /confirm

# Parameters - Payload

Name Type Description
username string

User's unique username.

token string

User's confirmation token.

# Success response

# Success response - Success 200

Name Type Description
token string

User's unique session token

id string

User's unique id

username string

User's username

avatar string

User's avatar url

roles string[]

Array of user's roles lookup strings

moderating string[]

Array of user's moderatered board ids

permissions object

Object containing user's permissions

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Account was not found or confirmation token doesn't match

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue confirming the user account

# Email Availability

Back to top

Used to check if an email is available when registering a new account.

GET /register/email/:email

# Parameters - Parameter

Name Type Description
email string

The email to check

# Success response

# Success response - Success 200

Name Type Description
found boolean

true if email exists false if not

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue checking email availability

# Login

Back to top

Used to log a user into their account.

POST /login

# Parameters - Payload

Name Type Description
username string

User's unique username

password string

User's password

# Success response

# Success response - Success 200

Name Type Description
token string

User's authentication token

id string

User's unique id

username string

The user account username

avatar string

User's avatar url

permissions object

Object containing user's permissions

moderating string[]

Array of user's moderated board ids

roles string[]

Array of user's roles

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Invalid credentials were provided or the account hasn't been confirmed

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue logging in

# Logout

Back to top

Used to log a user out of their account.

DELETE /logout

# Success response

# Success response - Success 200

Name Type Description
success object

200 OK

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

Occurs when logging out on a view that requires special permissions

# Error response - Error 400

Name Type Description
BadRequest

No user is currently logged in

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleteing user's web token

# Recover Account

Back to top

Used to recover an account by username or email. Sends an email with a URL to visit to reset the user's account password.

POST /recover/

# Parameters - Payload

Name Type Description
query string

The email or username to attempt to recover

recaptcha string

The recaptcha token

# Success response

# Success response - Success 200

Name Type Description
success object

200 OK

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Recaptcha not submitted

# Error response - Error 500

Name Type Description
InternalServerError

There was an error recovering the user's account

# Register (via invitation)

Back to top

Used to register a new account via invitation.

POST /join

# Parameters - Payload

Name Type Description
hash string

User's Invitation Hash.

username string

User's unique username.

email string

The email address to send the invite to.

password string

User's password

confirmation string

User's confirmed password

# Success response

# Success response - Success 200

Name Type Description
token string

User's authentication token

id string

User's unique id

username string

The user account username

avatar string

User's avatar url

permissions object

Object containing user's permissions

moderating string[]

Array of user's moderated board ids

roles string[]

Array of user's roles

# Error response

# Error response - Error 400

Name Type Description
BadRequest

There was an error creating the user via invitation.

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue registering user

# Register (w/ account verification)

Back to top

Used to register a new account with account verification enabled in admin settings. This will send an email to the user with the account verification link.

POST /register

# Parameters - Payload

Name Type Description
username string

User's unique username.

email string

User's email address.

password string

User's password

confirmation string

User's confirmed password

# Success response

# Success response - Success 200

Name Type Description
message string

Account creation success message

username string

Created user's username

confirm_token string

Created user's account confirmation token

avatar string

User's avatar url

# Error response

# Error response - Error 400

Name Type Description
BadRequest

There was an error registering the user

# Register (w/o account verification)

Back to top

Used to register a new account with account verification disabled in admin settings.

POST /register

# Parameters - Payload

Name Type Description
username string

User's unique username.

email string

User's email address.

password string

User's password

confirmation string

User's confirmed password

# Success response

# Success response - Success 200

Name Type Description
token string

User's authentication token

id string

User's unique id

username string

The user account username

avatar string

User's avatar url

permissions object

Object containing user's permissions

roles string[]

Array of user's roles

# Error response

# Error response - Error 4xx

Name Type Description
BadRequest

There was an error creating the user

# Reset Account Password

Back to top

Used to reset an account password after recovering an account.

POST /reset

# Parameters - Payload

Name Type Description
username string

The username of the user whose password is being reset

password string

The new account password

query string

The new account password confirmation

token string

The token for resetting the account password

# Success response

# Success response - Success 200

Name Type Description
message string

Password Successfully Reset

# Error response

# Error response - Error 400

Name Type Description
BadRequest

The user account could not be found or the reset token is invalid

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the user account's reset token information

# Username Availability

Back to top

Used to check if a username is available when registering a new account.

GET /register/username/:username

# Parameters - Parameter

Name Type Description
username string

The username to check

# Success response

# Success response - Success 200

Name Type Description
found boolean

true if username exists false if not

# Validate Account Reset Token

Back to top

Used to check the validity of the reset token. Verifys that the reset token is for the correct user and that it is not expired.

GET /reset/:username/:token/validate

# Parameters - Parameter

Name Type Description
username string

The username of the user whose reset token is to be checked

token string

The token for resetting the account password

# Success response

# Success response - Success 200

Name Type Description
token_valid boolean

true if the token is valid false if it is not

token_expired boolean

true if token is expired false if not. Undefined if token is invalid

# Error response

# Error response - Error 400

Name Type Description
BadRequest

The user account could not be found

# AutoModeration

# Add Rule

Back to top

Used to create a new auto moderation rule

POST /automoderation/rules

# Parameters - Payload

Name Type Description
name string

The name of the auto moderation rule

description string

The description of what the rule does

message string

The error message which is returned to the user

conditions object[]

What conditions trigger the rule

conditions.params string

The parameter that triggers the rule

Allowed values: "body","thread_id","user_id","title"
conditions.regex object

A regex used to capture user input and trigger rule

conditions.regex.pattern string

The regex pattern

conditions.regex.flags string

The regex flags

actions string[]

Array containing what action is taken when the rule is matched

Allowed values: "reject","ban","edit","delete"
options object

Contains settings related to the action that is taken

options.ban_interval number

How many days to ban the user for, leave blank for permanent ban

options.edit object

Contains information for replacing matched rule text

options.edit.replace object

Contains info for what text to replace

options.edit.replace.regex object

Regex to match text to replace

options.edit.replace.regex.pattern string

The regex pattern

options.edit.replace.regex.flags string

The regex flags

options.edit.replace.text string

The text to replaced the matched text with

options.edit.template string

Allows message to be replaced, prepended, or appended to

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the auto moderation rule

name string

The name of the auto moderation rule

description string

The description of what the rule does

message string

The error message which is returned to the user

conditions object[]

What conditions trigger the rule

conditions.params string

The parameter that triggers the rule

Allowed values: "body","thread_id","user_id","title"
conditions.regex object

A regex used to capture user input and trigger rule

conditions.regex.pattern string

The regex pattern

conditions.regex.flags string

The regex flags

actions string[]

Array containing what action is taken when the rule is matched

Allowed values: "reject","ban","edit","delete"
options object

Contains settings related to the action that is taken

options.ban_interval number

How many days to ban the user for, leave blank for permanent ban

options.edit object

Contains information for replacing matched rule text

options.edit.replace object

Contains info for what text to replace

options.edit.replace.regex object

Regex to match text to replace

options.edit.replace.regex.pattern string

The regex pattern

options.edit.replace.regex.flags string

The regex flags

options.edit.replace.text string

The text to replaced the matched text with

options.edit.template string

Allows message to be replaced, prepended, or appended to

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error creating the auto moderation rule

# Edit Rule

Back to top

Used to edit an existing auto moderation rule

PUT /automoderation/rules

# Parameters - Parameter

Name Type Description
id string

The id of the auto moderation rule

# Parameters - Payload

Name Type Description
name string

The name of the auto moderation rule

description string

The description of what the rule does

message string

The error message which is returned to the user

conditions object[]

What conditions trigger the rule

conditions.params string

The parameter that triggers the rule

Allowed values: "body","thread_id","user_id","title"
conditions.regex object

A regex used to capture user input and trigger rule

conditions.regex.pattern string

The regex pattern

conditions.regex.flags string

The regex flags

actions string[]

Array containing what action is taken when the rule is matched

Allowed values: "reject","ban","edit","delete"
options object

Contains settings related to the action that is taken

options.ban_interval number

How many days to ban the user for, leave blank for permanent ban

options.edit object

Contains information for replacing matched rule text

options.edit.replace object

Contains info for what text to replace

options.edit.replace.regex object

Regex to match text to replace

options.edit.replace.regex.pattern string

The regex pattern

options.edit.replace.regex.flags string

The regex flags

options.edit.replace.text string

The text to replaced the matched text with

options.edit.template string

Allows message to be replaced, prepended, or appended to

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the auto moderation rule

name string

The name of the auto moderation rule

description string

The description of what the rule does

message string

The error message which is returned to the user

conditions object[]

What conditions trigger the rule

conditions.params string

The parameter that triggers the rule

Allowed values: "body","thread_id","user_id","title"
conditions.regex object

A regex used to capture user input and trigger rule

conditions.regex.pattern string

The regex pattern

conditions.regex.flags string

The regex flags

actions string[]

Array containing what action is taken when the rule is matched

Allowed values: "reject","ban","edit","delete"
options object

Contains settings related to the action that is taken

options.ban_interval number

How many days to ban the user for, leave blank for permanent ban

options.edit object

Contains information for replacing matched rule text

options.edit.replace object

Contains info for what text to replace

options.edit.replace.regex object

Regex to match text to replace

options.edit.replace.regex.pattern string

The regex pattern

options.edit.replace.regex.flags string

The regex flags

options.edit.replace.text string

The text to replaced the matched text with

options.edit.template string

Allows message to be replaced, prepended, or appended to

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error editing the auto moderation rule

# Remove Rule

Back to top

Used to remove an existing auto moderation rule

DELETE /automoderation/rules/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the rule to remove

# Success response

# Success response - Success 200

Name Type Description
HTTP object

Code STATUS 200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error removing the auto moderation rule

# View Rules

Back to top

Returns auto moderation rules

GET /automoderation/rules

# Success response

# Success response - Success 200

Name Type Description
rules object[]

An array of auto moderation rules

rules.id string

The id of the auto moderation rule

rules.name string

The name of the auto moderation rule

rules.description string

The description of what the rule does

rules.message string

The error message which is returned to the user

rules.conditions object[]

What conditions trigger the rule

rules.conditions.params string

The parameter that triggers the rule

Allowed values: "body","thread_id","user_id","title"
rules.conditions.regex object

A regex used to capture user input and trigger rule

rules.conditions.regex.pattern string

The regex pattern

rules.conditions.regex.flags string

The regex flags

rules.actions string[]

Array containing what action is taken when the rule is matched

Allowed values: "reject","ban","edit","delete"
rules.options object

Contains settings related to the action that is taken

rules.options.ban_interval number

How many days to ban the user for, leave blank for permanent ban

rules.options.edit object

Contains information for replacing matched rule text

rules.options.edit.replace object

Contains info for what text to replace

rules.options.edit.replace.regex object

Regex to match text to replace

rules.options.edit.replace.regex.pattern string

The regex pattern

rules.options.edit.replace.regex.flags string

The regex flags

rules.options.edit.replace.text string

The text to replaced the matched text with

rules.options.edit.template string

Allows message to be replaced, prepended, or appended to

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error viewing the auto moderation rules

# Bans

# (Admin) Add Ban Addresses

Back to top

This allows Administrators to ban hostnames and addresses. When a user registers from a banned address, their account is automatically banned

POST /ban/addresses

# Parameters - Payload

Name Type Description
data object[]

An array of addresses to ban

data.hostname string

The hostname to ban. If hostname is present IP should not be

data.ip string

The IP address to ban. If IP is present hostname should not be

data.decay boolean

Boolean indicating if the weight decays or not

data.weight number

The weight of the address

# Success response

# Success response - Success 200

Name Type Description
data object[]

An array of banned addresses

data.hostname string

The banned hostname

data.ip string

The banned IP address

data.decay boolean

Boolean indicating if the weight decays or not

data.weight number

The weight of the address

data.created_at string

The created_at date of the banned address

data.updates string[]

An array of dates when the banned address was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error banning the addresses

# (Admin) Ban

Back to top

This allows Administrators and Moderators to ban users.

PUT /users/ban

# Parameters - Payload

Name Type Description
user_id string

The unique id of the user to ban

expiration timestamp optional

The expiration date for the ban, when not defined ban is considered permanent

ip_ban boolean optional

Boolean indicating that the user should be ip banned as well, this will make it so they cannot register from any of their known ips for a new account

Default value: false
Allowed values: false

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the row in users.bans

user_id string

The unique id of the user being banned

roles object[]

Array containing users roles

expiration timestamp

Timestamp of when the user's ban expires

created_at timestamp

Timestamp of when the ban was created

updated_at timestamp

Timestamp of when the ban was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error banning the user

# (Admin) Ban From Boards

Back to top

This allows Administrators and Moderators to ban users from boards.

PUT /users/ban/board

# Parameters - Payload

Name Type Description
user_id string

The unique id of the user to ban from boards

board_ids string[]

Array of board ids to ban the user from

# Success response

# Success response - Success 200

Name Type Description
user_id string

The unique id of the user being banned from boards

board_ids string[]

Array of board ids to ban the user from

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error banning the user from Boards

# Error response - Error 403

Name Type Description
Forbidden

User tried to ban from a board they do not moderate, or tried to ban a user with higher permissions than themselves

# (Admin) Delete Ban Address

Back to top

This allows Administrators to delete banned hostnames and addresses.

DELETE /ban/addresses

# Parameters - Query

Name Type Description
hostname string

The hostname to delete. If hostname is present IP should not be.

ip string

The IP address to delete. If IP is present hostname should not be.

# Success response

# Success response - Success 200

Name Type Description
hostname string

The deleted banned hostname

ip string

The deleted banned IP address

decay boolean

The deleted boolean indicating if the weight decays or not

weight number

The deleted weight of the address

created_at string

The created_at date of the deleted banned address

updates string[]

An array of dates when the deleted banned address was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error deleting the banned address

# (Admin) Edit Ban Address

Back to top

This allows Administrators to edit banned hostnames and addresses.

PUT /ban/addresses

# Parameters - Payload

Name Type Description
hostname string

The hostname to update. If hostname is present IP should not be.

ip string

The IP address to update. If IP is present hostname should not be.

decay boolean

The updated boolean indicating if the weight decays or not.

weight number

The updated weight of the address

# Success response

# Success response - Success 200

Name Type Description
hostname string

The updated banned hostname

ip string

The updated banned IP address

decay boolean

The updated boolean indicating if the weight decays or not

weight number

The updated weight of the address

created_at string

The created_at date of the banned address

updates string[]

An array of dates when the banned address was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the banned address

# (Admin) Get User's Banned Boards

Back to top

This allows Administrators and Moderators to retrieve a list of boards that a user has been banned from.

GET /users/:username/bannedboards

# Parameters - Parameter

Name Type Description
username string

The username of the user to get banned boards for

# Success response

# Success response - Success 200

Name Type Description
banned_boards object[]

An array of boards that the user is banned from

banned_boards.id string

The id of the board the user is banned from

banned_boards.name string

The name of the board the user is banned from

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the user's banned boards

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permission to query for user's banned boards

# (Admin) Page by Banned Addresses

Back to top

This allows Administrators to page through banned addresses.

GET /ban/addresses

# Parameters - Query

Name Type Description
page number optional

The page of results to return

Default value: 1
Size range: 1..n
limit number optional

The number of results per page to return

Default value: 25
Size range: 1..100
search string optional

hostname or IP address to search for

desc boolean optional

boolean indicating whether or not to sort results in descending order

field string optional

sorts results by specified field

Allowed values: "created_at","updates","decay","weight","update_count"

# Success response

# Success response - Success 200

Name Type Description
page number

The current page of results that is being returned

limit number

The current number of results that is being returned per page

next boolean

boolean indicating if there is a next page

prev boolean

boolean indicating if there is a previous page

search string

The search text that the results are being filtered by

desc boolean

boolean indicating if the results are in descending order

field string

field results are being sorted by

data object[]

An array of banned addresses

data.hostname string

The banned hostname

data.ip string

The banned IP address

data.decay boolean

Boolean indicating if the weight decays or not

data.weight number

The weight of the address

data.created_at string

The created_at date of the banned address

data.updated_at string

The most reason updated date of the banned address

data.updates string[]

An array of dates when the banned address was updated

data.update_count number

The number of times the banned address has been updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error paging banned addresses

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permission to query banned addresses

# (Admin) Page by Banned Boards

Back to top

This allows Administrators and Moderators to page through users who have been banned from boards.

GET /users/banned

# Parameters - Query

Name Type Description
page number optional

The page of results to return

Default value: 1
Size range: 1..n
limit number optional

The number of results per page to return

Default value: 25
Size range: 1..100
search string optional

username, email, or user id to filter results by

board string optional

board id to filter results by

modded boolean optional

booolean which indicates to only retun users who were banned from boards in which the logged in user moderates

# Success response

# Success response - Success 200

Name Type Description
page number

The current page of results that is being returned

limit number

The current number of results that is being returned per page

next boolean

boolean indicating if there is a next page

prev boolean

boolean indicating if there is a previous page

search string

The search text that the results are being filtered by

board string

The board id that the results are being filtered by

modded boolean

boolean indicating that the results being returned are within the users moderated boards

data object[]

An array of board banned users and board data

data.username string

The username of the board banned user

data.user_id string

The id of the board banned user

data.email string

The email of the board banned user

data.created_at string

The created_at date of the board banned user's account

data.board_ids string[]

An array of the board ids this user is banned from

data.board_names string[]

An array of the board names this user is banned from

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error paging board banned users

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permission to query board banned users

# (Admin) Unban

Back to top

This allows Administrators and Moderators to unban users. Ban expiration is set to current timestamp, expiring it immediately

PUT /users/unban

# Parameters - Payload

Name Type Description
user_id string

The unique id of the user to unban

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the row in users.bans

user_id string

The unique id of the user being unbanned

roles object[]

Array containing users roles

expiration timestamp

Timestamp of when the user's ban expires (current timestamp)

created_at timestamp

Timestamp of when the ban was created

updated_at timestamp

Timestamp of when the ban was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error unbanning the user

# (Admin) Unban From Boards

Back to top

This allows Administrators and Moderators to unban users from boards.

PUT /users/unban/board

# Parameters - Payload

Name Type Description
user_id string

The unique id of the user to unban from boards

board_ids string[]

Array of board ids to unban the user from

# Success response

# Success response - Success 200

Name Type Description
user_id string

The unique id of the user being unbanned from boards

board_ids string[]

Array of board ids to unban the user from

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error unbanning the user from Boards

# Error response - Error 403

Name Type Description
Forbidden

User tried to unban from a board they do not moderate, or tried to unban a user with higher permissions than themselves

# Boards

# All Boards

Back to top

Used to find all boards.

GET /boards/uncategorized

# Success response

# Success response - Success 200

Name Type Description
boards object[]

Array containing all of the forums boards

boards.id string

The board's unique id

boards.name string

The board's name

boards.description string

The board's description

boards.viewable_by number

Minimum priority a user must have to view the board, null if no restriction

boards.postable_by number

Minimum priority a user must have to post in the board, null if no restriction

boards.created_at timestamp

Created at date for board

boards.updated_at timestamp

Last time the board was updated

boards.imported_at timestamp

If the board was imported at, the

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue finding all boards

# Create

Back to top

Used to create a new board

POST /boards

# Parameters - Payload

Name Type Description
boards object[]

Array containing the boards to create

name string

The name for the board

Size range: 1..255
description string optional

The description text for the board

Size range: 0..255
viewable_by number optional

The minimum priority required to view the board, null for no restriction

postable_by number optional

The minimum priority required to post in the board, null for no restriction

# Success response

# Success response - Success 200

Name Type Description
id string

The board's unique id

name string

The board's name

description string

The boards description

viewable_by number

The minimum priority required to view the board, null for no restriction

postable_by number

The minimum priority required to post in the board, null for no restriction

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue creating the board

# Delete

Back to top

Used to delete an existing board from the forum.

DELETE /boards/:id

# Parameters - Payload

Name Type Description
board_ids string[]

An array of board ids to delete

# Success response

# Success response - Success 200

Name Type Description
boards object[]

An array of the deleted boards

id string

The id of the deleted board

name string

The name of the deleted board

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the boards

# Find Board

Back to top

Used to lookup a board

GET /boards/:id

# Parameters - Parameter

Name Type Description
id string

The id of the board to lookup

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the board

name string

The name of the board

parent_id string

The id of the parent board if applicable

viewable_by number

The minimum priority to be able to view the board, null for no restriction

postable_by number

The minimum priority to be able to post to the board, null for no restriction

description string

The board description text

thread_count number

The number of threads within the board

post_count number

The number of posts within the board

children object[]

An array containing child boards if applicable

moderators object[]

Array containing data about the moderators of the board

moderators.id string

The id of the moderator

moderators.username string

The username of the moderator

created_at timestamp

The created at timestamp of the board

updated_at timestamp

The updated at timestamp of the board

imported_at timestamp

The imported at timestamp of the board

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue finding the board

# Move Boards

Back to top

Used to find all possible boards to move a thread to.

GET /boards/move

# Success response

# Success response - Success 200

Name Type Description
boards object[]

Array containing all of the forums boards

boards.parent_id string

The board's parent board or category id

boards.parent_name string

The board's parent board or category name

boards.id string

The board's unique id

boards.name string

The board's name

boards.view_order number

The view order of the board

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue finding all boards

# Update

Back to top

Used to update an existing information for boards

POST /boards/:id

# Parameters - Payload

Name Type Description
boards object[]

Array containing the boards to create

id string

The board id

name string

The name for the board

Size range: 1..255
description string

The description text for the board

Size range: 0..255
viewable_by number

The minimum priority required to view the board, null for no restriction

postable_by number

The minimum priority required to post in the board, null for no restriction

# Success response

# Success response - Success 200

Name Type Description
id string

The board's unique id

name string

The board's name

description string

The boards description

viewable_by number

The minimum priority required to view the board, null for no restriction

postable_by number

The minimum priority required to post in the board, null for no restriction

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue updating the boards

# Update All Boards Categorized

Back to top

Used to update all boards within their categories.

POST /boards/all

# Parameters - Payload

Name Type Description
boardMapping object[]

Array containing mapping of boards and categories

boardMapping.id string

The id of the category or board

boardMapping.name string

The name of the category or board

boardMapping.type string

The type of the mapping object

Allowed values: "board","category","uncategorized"
boardMapping.view_order number

The view order of the board or category

boardMapping.category_id string optional

If type is "board" the id of the category the board belongs to

boardMapping.parent_id string optional

If type is "board" and the board is a child board, the id of the parent board

# Success response

# Success response - Success 200

Name Type Description
operations array

Array containing all of the operations performed while updating categories

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue updating categories/boards

# Breadcrumbs

# Find

Back to top

Used to get the breadcrumbs from board, thread, category or post id

GET /breadcrumbs

# Parameters - Query

Name Type Description
id string

The unique id of the board, thread, category or post to retrieve breadcrumbs for

type string

The type of the id being provided (board, category, thread, or post)

# Success response

# Success response - Success 200

Name Type Description
breadcrumbs object[]

Array containing breadcrumb objects

breadcrumbs.label string

Label for the breadcrumb link

breadcrumbs.state string

State for backing the label

breadcrumbs.opts object

State options to pass to ui-sref, can include id or hash

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the breadcrumbs

# Categories

# All Categories (Filters Private)

Back to top

Used to retrieve all boards within their respective categories.

GET /boards

# Parameters - Query

Name Type Description
page number optional

The page of threads to bring back for recent threads

Default value: 1
limit number optional

The number of threads to bring back per page for recent threads

Default value: 25
Size range: 1..100
stripped boolean optional

If true brings back boards with no additional metadata

# Success response

# Success response - Success 200

Name Type Description
data object

Object containing boards and recent thread data

data.boards object[]

contains boards in their respective categories

data.boards.id string

The id of the category

data.boards.name string

The name of the category

data.boards.view_order number

The view order of the category

data.boards.viewable_by number

The minimum priority to be able to view category, null for no restriction

data.boards.postable_by number

The minimum priority to be able to post in category, null for no restriction

data.boards.imported_at timestamp

If the category was imported, the import timestamp

data.boards.boards object[]

Array containing boards nested within category

data.boards.boards.id string

The id of the board

data.boards.boards.name string

The name of the board

data.boards.boards.category_id string

The id of the category containing the board

data.boards.boards.parent_id string

The id of the parent board if applicable

data.boards.boards.view_order number

The view order of the board

data.boards.boards.viewable_by number

The minimum priority to be able to view the board, null for no restriction

data.boards.boards.postable_by number

The minimum priority to be able to post to the board, null for no restriction (stripped=false)

data.boards.boards.description string

The board description text(stripped=false)

data.boards.boards.thread_count number

The number of threads within the board (stripped=false)

data.boards.boards.post_count number

The number of posts within the board(stripped=false)

data.boards.boards.last_thread_id string

The id of the last posted in thread (stripped=false)

data.boards.boards.last_thread_title string

The title of the last posted in thread (stripped=false)

data.boards.boards.post_deleted boolean

Boolean indicating if the last post in the board was deleted (stripped=false)

data.boards.boards.last_post_postion number

The position of the last post within a thread in the board (stripped=false)

data.boards.boards.last_post_created_at timestamp

The created at timestamp of the most recent post (stripped=false)

data.boards.boards.last_post_username string

The username of the user who created the most recent post (stripped=false)

data.boards.boards.last_post_avatar string

The avatar of the user who created the most recent post (stripped=false)

data.boards.boards.user_id string

The id of the user who created the most recent post (stripped=false)

data.boards.boards.user_deleted boolean

Boolean indicating if the user who created the most recent post has had their account deleted (stripped=false)

data.boards.boards.children object[]

An array containing child boards if applicable

data.boards.boards.moderators object[]

Array containing data about the moderators of the board (stripped=false)

data.boards.boards.moderators.id string

The id of the moderator

data.boards.boards.moderators.username string

The username of the moderator

data.boards.boards.created_at timestamp

The created at timestamp of the board(stripped=false)

data.boards.boards.updated_at timestamp

The updated at timestamp of the board(stripped=false)

data.boards.boards.imported_at timestamp

The imported at timestamp of the board(stripped=false)

data.threads object[]

contains threads with most recent posts (stripped=false)

data.threads.id string

The id of the thread

data.threads.locked boolean

Boolean indicating if the thread is locked

data.threads.sticky boolean

Boolean indicating if the thread is stickied

data.threads.moderated boolean

Boolean indicating if the thread is self moderated

data.threads.poll boolean

Boolean indicating if the thread has a poll

data.threads.updated_at timestamp

updated at timestamp of the thread

data.threads.view_count number

View count of the thread

data.threads.title string

The title of the thread

data.threads.board object

The board the thread is in

data.threads.board.id string

The id of the board

data.threads.board.name string

The name of the board

data.threads.post object

The post object for the thread

data.threads.post.id string

The id of the post

data.threads.post.position number

The position of the last post

data.threads.post.created_at timestamp

The created at timestamp of the post

data.threads.post.deleted boolean

Boolean indicating if the post was deleted

data.threads.user object

The user who created the post

data.threads.user.id string

The id of the user who created the last post

data.threads.user.username string

The username of the user who created the last post

data.threads.user.deleted boolean

Boolean indicating if the user who created the last post had their account deleted

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving boards

# All Categories (Includes Private)

Back to top

Used to retrieve all boards within their respective categories not filtering private boards.

GET /boards/unfiltered

# Success response

# Success response - Success 200

Name Type Description
categories object[]

An array containing categories and all their boards

categories.id string

The categories unique id

categories.name string

The categories name

categories.view_order number

The categories view order

categories.imported_at timestamp

If the category was imported, the import date

categories.viewable_by number

Minimum priority a user must have to view the category, null if no restriction

categories.postable_by number

Minimum priority a user must have to post in boards within this category, null if no restriction

categories.boards object[]

Array of boards within this category

categories.boards.id string

The board's unique id

categories.boards.name string

The board's name

categories.boards.description string

The board's description

categories.boards.viewable_by number

Minimum priority a user must have to view the board, null if no restriction

categories.boards.postable_by number

Minimum priority a user must have to post in the board, null if no restriction

categories.boards.thread_count number

Number of threads in the board

categories.boards.post_count number

Number of posts in the board

categories.boards.created_at timestamp

Created at date for board

categories.boards.updated_at timestamp

Last time the board was updated

categories.boards.imported_at timestamp

If the board was imported at, the time it was imported

categories.boards.last_thread_id string

The id of the thread last posted in

categories.boards.parent_id string

If the board is a child board the parent board's id

categories.boards.category_id string

The id of the board's parent category

categories.boards.view_order number

The view order of the board

categories.boards.last_thread_title string

The title of the thread last posted in

categories.boards.post_deleted boolean

Indicates if the last post in the board was deleted

categories.boards.last_post_created_at timestamp

Timestamp of the last post in the board's created date

categories.boards.last_post_position number

The position of the last post within the thread

categories.boards.last_post_username string

The username of the author of the last post within the board

categories.boards.last_post_avatar string

The avatar of the author of the last post within the board

categories.boards.user_id string

The id of the author of the last post within the board

categories.boards.user_deleted boolean

Boolean which indicates if the last user to post within the board has had their account deleted

categories.boards.moderators object[]

Array of boards moderators

categories.boards.moderators.id string

The id of the moderator

categories.boards.moderators.username string

The username of the moderator

categories.boards.children object[]

Array of child boards of this board

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving categories

# Create Categories

Back to top

Used to create categories

POST /categories

# Parameters - Payload

Name Type Description
categories string[]

Array of category names

# Success response

# Success response - Success 200

Name Type Description
categories object[]

Array of created category

categories.id string

The id of the newly created category

categories.name string

The name of the newly created category

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue creating the categories

# Delete Categories

Back to top

Used to delete categories

POST /categories/delete

# Parameters - Payload

Name Type Description
category_ids string[]

Array of category ids to delete

# Success response

# Success response - Success 200

Name Type Description
category_ids string[]

Array of deleted category ids

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the categories

# Conversations

# Create

Back to top

Used to create a new conversation and the first message of the conversation.

POST /conversations

# Parameters - Payload

Name Type Description
receiver_ids string

The id of the users receiving the message/conversation

content object

The contents of this message

content.body string

The raw contents of this message

content.body_html string

The html contents of this message

content.subject string

The subject of this message

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the message

conversation_id string

The unique id of the conversation this message belongs to

sender_id string

The unique id of the user that sent this message

receiver_ids string

The unique ids of the users that will receive this message

content object

The contents of this message

content.body string

The raw contents of this message

content.body_html string

The html contents of this message

content.subject string

The subject of this message

created_at timestamp

Timestamp of when the conversation was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue creating the conversation

# Delete

Back to top

Used to delete a conversation.

DELETE /conversations/:id

# Parameters - Parameter

Name Type Description
id string

The Id of the conversation to delete

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the conversation being deleted

sender_id string

The unique id of the sender

receiver_ids string

The unique ids of the receivers

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the conversation

# Messages in Conversation

Back to top

Used to get messages for this conversation.

GET /conversations/:id

# Parameters - Parameter

Name Type Description
id string

The id of the conversation to get

# Parameters - Query

Name Type Description
timestamp timestamp optional

The timestamp to look for messages before

message_id string optional

The id of the last message

limit number optional

How many messages to return per page

Default value: 15

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the conversation

has_next boolean

Boolean indicating if there are more messages

last_message_timestamp timestamp

timestamp of the last message

last_message_id timestamp

timestamp of the last message

subject string

The subject of the conversation

messages object[]

An array of messages in this conversation

messages.id string

The unique id of the message

messages.conversation_id string

The unique id of the conversation this message belongs to

messages.sender_id string

The unique id of the user that sent this message

messages.receiver_id string

The unique id of the user that sent this message

messages.body string

The contents of this message

messages.viewed boolean

The flag showing if the receiver viewed this message

messages.created_at timestamp

Timestamp of when the conversation was created

messages.sender_username string

The username of the sender

messages.sender_deleted boolean

Boolean indicating if the sender's account is deleted

messages.sender_avatar string

The avatar of the sender

messages.receiver_username string

The username of the receiver

messages.receiver_deleted boolean

Boolean indicating if the receiver's account is deleted

messages.receiver_avatar string

The avatar of the receiver

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue getting messages for this conversation

# Legal

Back to top

Used to reset legal text to default text

POST /api/legal/reset

# Success response

# Success response - Success 200

Name Type Description
tos string

The source html for the terms of service page

privacy string

The source html for the privacy page

disclaimer string

The source html for the disclaimer page

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the ToS, privacy policy and disclaimer.

# (Admin) Text

Back to top

Used to fetch the ToS, privacy policy and disclaimer to be updated by the user.

GET /api/legal

# Success response

# Success response - Success 200

Name Type Description
tos string

The source html for the terms of service page

privacy string

The source html for the privacy page

disclaimer string

The source html for the disclaimer page

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the ToS, privacy policy and disclaimer.

# (Admin) Update

Back to top

Used to update all legal text: ToS, privacy policy, disclaimers.

PUT /api/legal

# Parameters - Payload

Name Type Description
tos string optional

The updated Terms of Service.

privacy string optional

The updated privacy policy.

disclaimer string optional

The updated disclaimer.

# Success response

# Success response - Success 200

Name Type Description
success object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the ToS, privacy policy and disclaimer.

# Mentions

# Delete Mentions

Back to top

Used to delete a user's mentions

DELETE /mentions

# Parameters - Query

Name Type Description
id string

The id of the mention to delete

# Success response

# Success response - Success 200

Name Type Description
deleted boolean

True if the mention was deleted

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the mention

# Get Mention Settings

Back to top

Used to retreive the user's mention settings

GET /mentions/settings

# Success response

# Success response - Success 200

Name Type Description
email_mentions boolean

Boolean indicating if the user is receiving emails when mentioned

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an getting mention settings

# Ignore User's Mentions

Back to top

Used to ignore mentions from a specific user's

POST /mentions/ignore

# Parameters - Payload

Name Type Description
username string

The name of the user to ignore mentions from

# Success response

# Success response - Success 200

Name Type Description
success boolean

True if the user was ignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue ignoring mentions

# Page Ignored Users

Back to top

Used to page through user's whos mentions are being ignored

GET /mentions/ignored

# Parameters - Query

Name Type Description
page number optional

The page of ignored users to return

limit number optional

The number ignored users to return per page

# Success response

# Success response - Success 200

Name Type Description
page number

The page of ignored users being returned

limit number

The number ignored users being returned per page

prev boolean

Boolean indicating if there is a previous page

next boolean

Boolean indicating if there is a next page

data object[]

Array containing ignored users

data.username string

The name of the user being ignored

data.id string

The id of the user being ignored

data.avatar string

The avatar of the user being ignored

data.ignored boolean

Boolean indicating if the user's mentions are being ignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error paging ignored users

# Remove Thread Subscriptions

Back to top

Used to delete a user's thread subscriptions

DELETE /threadnotifications

# Success response

# Success response - Success 200

Name Type Description
deleted boolean

True if the user's thread subscriptions were deleted

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the user's thread subscriptions

# Toggle Mention Emails

Back to top

Used to toggle email notifications when mentioned

PUT /mentions/settings

# Parameters - Payload

Name Type Description
enabled boolean optional

Boolean indicating if mention emails are enabled or not

Default value: true

# Success response

# Success response - Success 200

Name Type Description
enabled boolean

Boolean indicating if the mention emails were enabled or not

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an enabling mention emails

# Unignore User's Mentions

Back to top

Used to unignore mentions from a specific user's

POST /mentions/unignore

# Parameters - Payload

Name Type Description
username string

The name of the user to unignore mentions from

# Success response

# Success response - Success 200

Name Type Description
success boolean

True if the user was unignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue unignoring mentions

# View Mentions

Back to top

Used to view a user's mentions

GET /mentions

# Parameters - Query

Name Type Description
page number optional

The page of mentions to return

limit number optional

The number mentions to return per page

extended boolean optional

Brings back extra data such as parts of the post body, board name, board id, etc...

# Success response

# Success response - Success 200

Name Type Description
page number

The page of mentions being returned

limit number

The number mentions being returned per page

prev boolean

Boolean indicating if there is a previous page

next boolean

Boolean indicating if there is a next page

extended boolean

Boolean indicating if extra metadata should be returned

data object[]

Array containing mention objects

data.id string

The id of the mention

data.thread_id string

The id of the thread the mention is in

data.title string

The title of the thread the mention is in

data.post_id string

The id of the post the mention is in

data.post_start number

The start position of the post in the thread

data.mentioner string

The username of the mentioner

data.mentioner_avatar string

The avatar of the mentioner

data.notification_id string

The id of the notification (for websockets)

data.viewed boolean

Boolean indicating if the mention has been viewed

data.created_at timestamp

Timestamp of when the mention was created

data.board_id string

The id of the board the mention is in (If extended=true)

data.board_name string

The name of the board the mentions is in(If extended=true)

data.body_html string

The body of the post the mention is in (If extended=true)

data.body string

The unprocess body of the post the mention is in (If extended=true)

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error paging user mentions

# Messages

# Create

Back to top

Used to create a new message.

POST /messages

# Parameters - Payload

Name Type Description
conversation_id string

The id of the conversation the message should be created in

receiver_ids string

The ids of the users receiving the message/conversation

content object

The contents of this message

content.body string

The raw contents of this message

content.body_html string

The html contents of this message

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the message

conversation_id string

The unique id of the conversation this message belongs to

sender_id string

The unique id of the user that sent this message

receiver_ids string

The unique ids of the users that will receive this message

content object

The contents of this message

content.body string

The raw contents of this message

content.body_html string

The html contents of this message

content.subject string

The subject of this message

created_at timestamp

Timestamp of when the conversation was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue creating the message

# Delete

Back to top

Used to delete a message.

DELETE /messages/:id

# Parameters - Parameter

Name Type Description
id string

The Id of the message to delete

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the message being deleted

sender_id string

The unique id of the user that sent this message

receiver_ids string

The unique ids of the users that were sent this message

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the message

# Get Message Draft

Back to top

Used to find a user's message draft.

GET /messages/drafts

# Success response

# Success response - Success 200

Name Type Description
user_id string

The id of the user

draft string

The user's latest draft

updated_at timestamp

The updated at timestamp of the draft

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue finding the message draft

# Get Messages Settings

Back to top

Used to retreive the user's message settings

GET /messages/settings

# Success response

# Success response - Success 200

Name Type Description
email_messages boolean

Boolean indicating if the user is receiving emails when messaged

ignore_newbies boolean

Boolean indicating if the user allows newbies to send them messages

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an getting message settings

# Get Recent Messages

Back to top

Get the latest messages for this user.

GET /messages

# Parameters - Query

Name Type Description
page number optional

The page of messages to return

limit number optional

The number of messages per page

# Success response

# Success response - Success 200

Name Type Description
updated_at timestamp

Timestamp of the last message received

sender_username string

The username of the sender

sender_deleted boolean

Boolean indicating if the sender's account is deleted

sender_avatar string

The avatar of the sender

receiver_username string

The username of the receiver

receiver_deleted boolean

Boolean indicating if the receiver's account is deleted

receiver_avatar string

The avatar of the receiver

id string

The unique id of the message

conversation_id string

The unique id of the conversation this message belongs to

sender_id string

The unique id of the user that sent this message

receiver_ids string

The unique ids of the users that will receive this message

content object

The contents of this message

content.body string

The raw contents of this message

content.body_html string

The html contents of this message

content.subject string

The subject of this message

created_at timestamp

Timestamp of when the conversation was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue getting the messages

# Ignore User's Messages

Back to top

Used to ignore messages from a specific user

POST /messages/ignore

# Parameters - Payload

Name Type Description
username string

The name of the user to ignore messages from

# Success response

# Success response - Success 200

Name Type Description
success boolean

True if the user was ignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue ignoring messages

# Page Ignored Users

Back to top

Used to page through user's whos messages are being ignored

GET /messages/ignored

# Parameters - Query

Name Type Description
page number optional

The page of ignored users to return

limit number optional

The number ignored users to return per page

# Success response

# Success response - Success 200

Name Type Description
page number

The page of ignored users being returned

limit number

The number ignored users being returned per page

prev boolean

Boolean indicating if there is a previous page

next boolean

Boolean indicating if there is a next page

data object[]

Array containing ignored users

data.username string

The name of the user being ignored

data.id string

The id of the user being ignored

data.avatar string

The avatar of the user being ignored

data.ignored boolean

Boolean indicating if the user's messages are being ignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error paging ignored users

# Save Message Draft

Back to top

Used to save a user's message draft.

PUT /messages/drafts

# Success response

# Success response - Success 200

Name Type Description
user_id string

The id of the user

draft string

The user's message draft

updated_at timestamp

The updated at timestamp of the draft

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue saving the message draft

# Toggle Message Emails

Back to top

Used to toggle email notifications when messaged

PUT /messages/settings

# Parameters - Payload

Name Type Description
enabled boolean optional

Boolean indicating if message emails are enabled or not

Default value: true

# Success response

# Success response - Success 200

Name Type Description
enabled boolean

Boolean indicating if the message emails were enabled or not

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an enabling message emails

# Toggle Newbie Messages

Back to top

Used to toggle setting allowing messages from users with the newbie role

PUT /messages/settings/newbie

# Parameters - Payload

Name Type Description
enabled boolean optional

Boolean indicating if message emails are enabled or not

Default value: true

# Success response

# Success response - Success 200

Name Type Description
enabled boolean

Boolean indicating if the newbie messages are enabled or not

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error toggling newbie message settings

# Unignore User's Messages

Back to top

Used to unignore messages from a specific user's

POST /messages/unignore

# Parameters - Payload

Name Type Description
username string

The name of the user to unignore messages from

# Success response

# Success response - Success 200

Name Type Description
success boolean

True if the user was unignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue unignoring messages

# Moderation

# (Admin) Page Moderation Log

Back to top

This allows Administrators to page through all actions performed by moderators.

GET /admin/modlog

# Parameters - Query

Name Type Description
page number optional

The page of moderation logs to retrieve

Default value: 1
Size range: 1..n
limit number optional

The number of logs to retrieve per page

Default value: 25
Size range: 1..n
mod string optional

The username of the moderator to search logs for

action action optional

The action to search for, follows route permission conventions (e.g. posts.create, posts.update, etc...)

keyword string optional

Keywords to search log for

bdate timestamp optional

Used to search for logs before specific date

adate timestamp optional

Used to search for logs after specific date

sdate timestamp optional

Used to search for logs between specific date (start)

edate timestamp optional

Used to search for logs between specific date (end)

# Success response

# Success response - Success 200

Name Type Description
page number

The current page of moderation logs being returned

limit number

The number of logs being returned per page

next number

The page number of the next page

prev number

The page number of the previous page

data object[]

Array containing moderation logs

mod_username string

The username of the mod who performed the action

mod_id string

The id of the mod who performed the action

mod_ip string

The ip address of the mod who performed the action

action_api_url string

The route that the moderator used to perform action

action_api_method string

The route method type (e.g. PUT, GET, etc..)

action_api_obj object

Metadata which was saved to the log when the action was performed

action_taken_at timestamp

Timestamp of when the action was performed

action_type string

The type of action that was performed, follows route permission conventions (e.g. posts.create, posts.update, etc...)

action_display_text string

Text describing what action was taken

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the moderation logs

# Moderators

# Add Moderator

Back to top

Add a moderator to a board.

POST /admin/moderators

# Parameters - Payload

Name Type Description
usernames string[]

Array of usernames to add as a moderator.

board_id string

The id of the board to add the moderator to.

# Success response

# Success response - Success 200

Name Type Description
moderators object[]

Array of users who were added as moderators

moderators.id string

The unique id of the moderator

moderators.username string

The username of the moderator

moderators.roles object[]

Array of the users roles, including new moderator role

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue adding the moderator.

# Remove Moderator

Back to top

Remove a moderator from a board.

POST /admin/moderators/remove

# Parameters - Payload

Name Type Description
username string[]

Array of user ids of the user to remove from being a moderator.

board_id string

The id of the board to remove the moderator from.

# Success response

# Success response - Success 200

Name Type Description
moderators object[]

Array of users who were removed from list of moderators

moderators.id string

The unique id of the moderator

moderators.username string

The username of the moderator

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue removing the moderator.

# MOTD

# Get Message of the Day

Back to top

Used to retrieve the message of the day

GET /motd

# Success response

# Success response - Success 200

Name Type Description
motd string

The unparsed motd, may contain bbcode or markdown

motd_html string

The parsed motd html to display to users

main_view_only boolean

Lets the UI know to display on the main page or all pages

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the Message of the Day

# Set Message of the Day

Back to top

Used to set the message of the day

PUT /motd

# Parameters - Payload

Name Type Description
motd string

The unparse message of the day, may contain markdown or bbcode

main_view_only boolean

Lets the UI know to display on the main page or all pages

# Success response

# Success response - Success 200

Name Type Description
motd string

The unparsed motd, may contain bbcode or markdown

motd_html string

The parsed motd html to display to users

main_view_only boolean

Lets the UI know to display on the main page or all pages

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue saving the Message of the Day

# Notifications

# Dismiss

Back to top

Used to dismiss all notifications of a type.

POST /notifications

# Parameters - Payload

Name Type Description
type string

The type of notifications to dismiss

Allowed values: "message","mention","other"
id string

The id of the specific notification to dismiss

# Success response

# Success response - Success 200

Name Type Description
STATUS object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue dismissing the notifications

# Get Notifications counts

Back to top

Get the notifications counts for this user.

GET /notifications/counts

# Success response

# Success response - Success 200

Name Type Description
notificationsCounts object

Object containing notification count information

notificationsCounts.message number

Number of message notifications

notificationsCounts.mention number

Number of mention notifications

notificationsCounts.other number

Number of other notifications

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue getting the notifications counts

# Portal

# Portal Contents

Back to top

Used to retrieve the portal contents.

GET /portal

# Success response

# Success response - Success 200

Name Type Description
boards object[]

contains boards to be displayed in portal

boards.id string

The id of the board

boards.name string

The name of the board

boards.parent_id string

The id of the parent board if applicable

boards.viewable_by number

The minimum priority to be able to view the board, null for no restriction

boards.postable_by number

The minimum priority to be able to post to the board, null for no restriction (stripped=false)

boards.description string

The board description text(stripped=false)

boards.thread_count number

The number of threads within the board (stripped=false)

boards.post_count number

The number of posts within the board(stripped=false)

boards.moderators object[]

Array containing data about the moderators of the board (stripped=false)

boards.moderators.id string

The id of the moderator

boards.moderators.username string

The username of the moderator

boards.created_at timestamp

The created at timestamp of the board(stripped=false)

boards.updated_at timestamp

The updated at timestamp of the board(stripped=false)

boards.imported_at timestamp

The imported at timestamp of the board(stripped=false)

threads object[]

contains threads with most recent posts (stripped=false)

threads.id string

The id of the thread

threads.locked boolean

Boolean indicating if the thread is locked

threads.sticky boolean

Boolean indicating if the thread is stickied

threads.moderated boolean

Boolean indicating if the thread is self moderated

threads.poll boolean

Boolean indicating if the thread has a poll

threads.updated_at timestamp

updated at timestamp of the thread

threads.view_count number

View count of the thread

threads.title string

The title of the thread

threads.last_post_id string

The id of the last post

threads.last_post_position number

The position of the last post

threads.last_post_created_at timestamp

Created at timestamp of last post

threads.last_post_updated_at timestamp

Updated at timestamp of last post

threads.post_body string

The body of the post

threads.post_avatar string

The avatar of the user who made the last post

threads.post_signature string

The signature of the user who made the last post

threads.post_user_name string

the name of the user who made the last post

threads.post_highlight_color string

The highlight color of the user who made the last post

threads.post_role_name string

The role of the user who made the last post

threads.last_post_username string

The username of the user who made the last post

threads.user object

The user who created the post

threads.user.id string

The id of the user who created the last post

threads.user.username string

The username of the user who created the last post

threads.user.deleted boolean

Boolean indicating if the user who created the last post had their account deleted

recent object[]

contains threads with most recent posts (stripped=false)

recent.id string

The id of the thread

recent.locked boolean

Boolean indicating if the thread is locked

recent.sticky boolean

Boolean indicating if the thread is stickied

recent.moderated boolean

Boolean indicating if the thread is self moderated

recent.poll boolean

Boolean indicating if the thread has a poll

recent.updated_at timestamp

updated at timestamp of the thread

recent.view_count number

View count of the thread

recent.title string

The title of the thread

recent.board object

The board the thread is in

recent.board.id string

The id of the board

recent.board.name string

The name of the board

recent.post object

The post object for the thread

recent.post.id string

The id of the post

recent.post.position number

The position of the last post

recent.post.created_at timestamp

The created at timestamp of the post

recent.post.deleted boolean

Boolean indicating if the post was deleted

recent.user object

The user who created the post

recent.user.id string

The id of the user who created the last post

recent.user.username string

The username of the user who created the last post

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Portal is disabled.

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving portal content.

# Posts

# Create

Back to top

Used to create a new post.

POST /posts

# Parameters - Payload

Name Type Description
title string

The title of the post

body string

The post's body as it was entered in the editor by the user

thread_id string

The unique id of the thread the post belongs to

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the post

thread_id string

The unique id of the thread the post belongs to

user_id string

The unique id of the user who created the post

title string

The title of the post

body_html string

The post's body with any markup tags converted and parsed into html elements

deleted boolean

boolean indicating if post has been deleted

locked boolean

boolean indicating if post has been locked

body string

The post's body as it was entered in the editor by the user

created_at timestamp

Timestamp of when the post was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue creating the post

# Delete

Back to top

Used to delete a post.

DELETE /posts/:id

# Parameters - Parameter

Name Type Description
id string

The Id of the post to delete

# Success response

# Success response - Success 200

Name Type Description
position number

The position of the post within the thread

updated_at timestamp

The updated at timestamp of the post

imported_at timestamp

The imported at timestamp of the post

id string

The unique id of the post

thread_id string

The unique id of the thread the post belongs to

user_id string

The unique id of the user who created the post

title string

The title of the post

body_html string

The post's body with any markup tags converted and parsed into html elements

deleted boolean

boolean indicating if post has been deleted

locked boolean

boolean indicating if post has been locked

body string

The post's body as it was entered in the editor by the user

created_at timestamp

Timestamp of when the post was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the post

# Find

Back to top

Used to find a post.

GET /posts/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the post to retrieve

# Success response

# Success response - Success 200

Name Type Description
avatar string

The avatar of the post author

position number

The position of the post within the thread

updated_at timestamp

The updated at timestamp of the post

imported_at timestamp

The imported at timestamp of the post

user object

Object containing user data about the author of the post

user.id string

The id of the user

user.name string

The name of the user

user.username string

The username of the user

user.signature string

The signature of the user

id string

The unique id of the post

thread_id string

The unique id of the thread the post belongs to

user_id string

The unique id of the user who created the post

title string

The title of the post

body_html string

The post's body with any markup tags converted and parsed into html elements

deleted boolean

boolean indicating if post has been deleted

locked boolean

boolean indicating if post has been locked

body string

The post's body as it was entered in the editor by the user

created_at timestamp

Timestamp of when the post was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue finding the post

# Get Post Draft

Back to top

Used to find a user's post draft.

GET /posts/drafts

# Success response

# Success response - Success 200

Name Type Description
user_id string

The id of the user

draft string

The user's latest draft

updated_at timestamp

The updated at timestamp of the draft

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue finding the post draft

# Lock

Back to top

Used to lock a post.

POST /posts/:id/lock

# Parameters - Parameter

Name Type Description
id string

The Id of the post to lock

# Success response

# Success response - Success 200

Name Type Description
position number

The position of the post within the thread

updated_at timestamp

The updated at timestamp of the post

imported_at timestamp

The imported at timestamp of the post

id string

The unique id of the post

thread_id string

The unique id of the thread the post belongs to

user_id string

The unique id of the user who created the post

title string

The title of the post

body_html string

The post's body with any markup tags converted and parsed into html elements

deleted boolean

boolean indicating if post has been deleted

locked boolean

boolean indicating if post has been locked

body string

The post's body as it was entered in the editor by the user

created_at timestamp

Timestamp of when the post was created

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Post Not Found

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the post

# Page By Thread

Back to top

Used to page through posts by thread.

GET /posts

# Parameters - Query

Name Type Description
thread_id string

Id of the thread to retrieve posts from

page number

Specific page of posts to retrieve. Only valid when start param is not present.

limit number

Number of posts to retrieve per page.

start number

Specific post within the thread. Only valid when page param is not present.

# Success response

# Success response - Success 200

Name Type Description
write_access boolean

Boolean indicating if user has write access to thread

banned_from_board boolean

Boolean indicating if user is banned from this board

page number

The page of posts being returned

limit number

The number of posts per page being returned

thread object

Object containing thread metadata

thread.id string

The id of the thread

thread.board_id string

The id of the board the thread is in

thread.locked boolean

Boolean indicating if thread is locked

thread.sticky boolean

Boolean indicating if thread is stickied

thread.moderated boolean

Boolean indicating if thread is self moderated

thread.watched boolean

Boolean indicating if thread is being watched

thread.trust_visible boolean

Boolean indicating if trust score is visible

thread.post_count number

Number of posts in the thread

thread.created_at timestamp

Thread created at timestamp

thread.updated_at timestamp

Thread updated at timestamp

thread.user object

The user who started the thread

thread.user.id string

The id of the user who started the thread

thread.user.username string

The username of the user who started the thread

thread.user.deleted boolean

Boolean indicating if the thread started has had their account deleted

thread.poll object

Object that contains poll data, if thread has a poll

thread.poll.id string

The unique id of the poll

thread.poll.question string

The question asked in the poll

thread.poll.answers object[]

The list of the answers to the question of this poll

thread.poll.answers.answer string

The answer to the question of this poll

thread.poll.max_answers number

The max number of answer per vote

thread.poll.change_vote boolean

Boolean indicating whether users can change their vote

thread.poll.locked boolean

Boolean indicating whether the poll is locked or not

thread.poll.has_voted boolean

Boolean indicating whether or not the user has voted

thread.poll.expiration date

The expiration date of the poll

thread.poll.display_mode string

String indicating how the results are shown to users

board object

Object containing information about the board the post is in

board.id string

The id of the board

board.name string

The name of the board

board.parent_id string

The id of the parent board if applicable

board.watched boolean

Boolean indicating if the authed user is watching this board

board.viewable_by number

The minimum priority to be able to view the board, null for no restriction

board.postable_by number

The minimum priority to be able to post to the board, null for no restriction

board.description string

The board description text

board.thread_count number

The number of threads within the board

board.post_count number

The number of posts within the board

board.children object[]

An array containing child boards if applicable

board.moderators object[]

Array containing data about the moderators of the board

board.moderators.id string

The id of the moderator

board.moderators.username string

The username of the moderator

board.created_at timestamp

The created at timestamp of the board

board.updated_at timestamp

The updated at timestamp of the board

board.imported_at timestamp

The imported at timestamp of the board

posts object[]

Object containing thread posts

posts.id string

The id of the post

posts.position number

The position of the post in the thread

posts.thread_id string

The id of the thread containing the post

posts.board_id string

The id of the board containing the post

posts.title string

The title of the post

posts.body_html string

The processed body of the post

posts.body string

The unprocessed body of the post

posts.locked boolean

Boolean indicating if the thread is locked

posts.reported boolean

Boolean indicating if the post has been reported by the authorized user

posts.reported_author boolean

Boolean indicating if the post's author has been reported by the authorized user

posts.created_at timestamp

The created at timestamp of the post

posts.updated_at timestamp

The updated at timestamp of the post

posts.imported_at timestamp

The imported at timestamp of the post

posts.avatar string

The avatar of the user who made the post

posts.user object

Object containing user data about the author of the post

posts.user.id string

The id of the user

posts.user.name string

The name of the user

posts.user.username string

The username of the user

posts.user.priority number

The priority of the user

posts.user.signature string

The signature of the user

posts.user.highlight_color string

The role highlight color of the user

posts.user.role_name string

The role name of the user

posts.user.activity number

The user's activity number

posts.user.post_count number

The user's post count number

posts.user.stats object

Object containing trust stats for user

posts.user.stats.score number

The user's overall trust score

posts.user.stats.neg number

The user's negative trust points

posts.user.stats.pos number

The user's positive trust points

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue finding the posts for thread

# Page By User

Back to top

Used to page through posts made by a particular user

GET /posts/user/:username

# Parameters - Parameter

Name Type Description
username string

The username of the user's whose posts to page through

# Parameters - Query

Name Type Description
page number optional

Which page of the user's posts to retrieve

Default value: 1
Size range: 1..n
limit number optional

How many posts to return per page

Default value: 25
Size range: 1..100
desc boolean optional

True to sort descending, false to sort ascending

Default value: true

# Success response

# Success response - Success 200

Name Type Description
page number

The page of posts to return

limit number

The number of posts to return per page

desc boolean

Boolean indicating the sort order of the posts

posts object[]

Object containing users posts

posts.id string

The id of the post

posts.thread_id string

The id of the thread containing the post

posts.body string

The unprocessed body of the post

posts.body_html string

The processed body of the post

posts.position number

The position of the post in the thread

posts.deleted boolean

Boolean indicating if the post is deleted

posts.hidden boolean

Boolean indicating if the post is hidden (true if user is owner of deleted post)

posts.created_at timestamp

The created at timestamp of the post

posts.updated_at timestamp

The updated at timestamp of the post

posts.imported_at timestamp

The imported at timestamp of the post

posts.board_id string

The id of the board containing the post

posts.thread_title string

The title of the thread the post is in

posts.avatar string

The avatar of the user who made the post

posts.user object

Object containing user data about the author of the post

posts.user.id string

The id of the user

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue paging posts for user

# Page First Posts By User

Back to top

Used to page through starting posts made by a particular user

GET /posts/user/:username/started

# Parameters - Parameter

Name Type Description
username string

The username of the user's whose posts to page through

# Parameters - Query

Name Type Description
page number optional

Which page of the user's posts to retrieve

Default value: 1
Size range: 1..n
limit number optional

How many posts to return per page

Default value: 25
Size range: 1..100
desc boolean optional

True to sort descending, false to sort ascending

Default value: true

# Success response

# Success response - Success 200

Name Type Description
page number

The page of posts to return

limit number

The number of posts to return per page

desc boolean

Boolean indicating the sort order of the posts

posts object[]

Object containing users posts

posts.id string

The id of the post

posts.thread_id string

The id of the thread containing the post

posts.body string

The unprocessed body of the post

posts.body_html string

The processed body of the post

posts.position number

The position of the post in the thread

posts.deleted boolean

Boolean indicating if the post is deleted

posts.hidden boolean

Boolean indicating if the post is hidden (true if user is owner of deleted post)

posts.created_at timestamp

The created at timestamp of the post

posts.updated_at timestamp

The updated at timestamp of the post

posts.imported_at timestamp

The imported at timestamp of the post

posts.board_id string

The id of the board containing the post

posts.thread_title string

The title of the thread the post is in

posts.avatar string

The avatar of the user who made the post

posts.user object

Object containing user data about the author of the post

posts.user.id string

The id of the user

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue paging posts for user

# Purge

Back to top

Used to purge a post.

DELETE /posts/:id/purge

# Parameters - Parameter

Name Type Description
id string

The Id of the post to purge

# Success response

# Success response - Success 200

Name Type Description
user_id string

The id of the user who created the post

thread_id string

The id of the thread that the post belonged to

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue purging the post

# Save Post Draft

Back to top

Used to save a user's post draft.

PUT /posts/drafts

# Success response

# Success response - Success 200

Name Type Description
user_id string

The id of the user

draft string

The user's post draft

updated_at timestamp

The updated at timestamp of the draft

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue saving the post draft

# Search Posts

Back to top

This allows users to search forum posts.

GET /search/posts

# Parameters - Query

Name Type Description
page number optional

The page of search results to retrieve

Default value: 1
Size range: 1..n
limit number optional

The number of search results per page

Default value: 25
Size range: 1..100
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: false
search string optional

The term to search posts for

# Success response

# Success response - Success 200

Name Type Description
limit number

The number of results returned per page

page string

The current page of the results

desc number

The order the results are sorted in

search string

The search term used in query for posts

next number

The number of the next page of search results

prev number

The number of the previous page of search results

posts object[]

An array of post objects

posts.id string

The unique id of the post

posts.thread_title string

The title of the thread the post belongs to

posts.user_id string

The id of the author of the post

posts.created_at timestamp

Timestamp of when the post was created

posts.thread_id string

The id of the thread the post belongs to

posts.position number

The position of the post within the thread

posts.body string

The body of the post

posts.board_id string

The id of the board the post belongs to

posts.board_name string

The name of the board the post belongs to

posts.user string

User object containing info about user who made post

posts.user.username string

Username of the user who made the post

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the users

# Undelete

Back to top

Used to undo a deleted post.

POST /posts/:id

# Parameters - Parameter

Name Type Description
id string

The Id of the post to undo deletion on

# Success response

# Success response - Success 200

Name Type Description
position number

The position of the post within the thread

updated_at timestamp

The updated at timestamp of the post

imported_at timestamp

The imported at timestamp of the post

id string

The unique id of the post

thread_id string

The unique id of the thread the post belongs to

user_id string

The unique id of the user who created the post

title string

The title of the post

body_html string

The post's body with any markup tags converted and parsed into html elements

deleted boolean

boolean indicating if post has been deleted

locked boolean

boolean indicating if post has been locked

body string

The post's body as it was entered in the editor by the user

created_at timestamp

Timestamp of when the post was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue undeleting the post

# Unlock

Back to top

Used to unlock a post.

POST /posts/:id/unlock

# Parameters - Parameter

Name Type Description
id string

The Id of the post to unlock

# Success response

# Success response - Success 200

Name Type Description
position number

The position of the post within the thread

updated_at timestamp

The updated at timestamp of the post

imported_at timestamp

The imported at timestamp of the post

id string

The unique id of the post

thread_id string

The unique id of the thread the post belongs to

user_id string

The unique id of the user who created the post

title string

The title of the post

body_html string

The post's body with any markup tags converted and parsed into html elements

deleted boolean

boolean indicating if post has been deleted

locked boolean

boolean indicating if post has been locked

body string

The post's body as it was entered in the editor by the user

created_at timestamp

Timestamp of when the post was created

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Post Not Found

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting the post

# Update

Back to top

Used to update a post.

POST /posts/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the post being updated

# Parameters - Payload

Name Type Description
title string

The title of the post

body string

The post's body as it was entered in the editor by the user

thread_id string

The unique id of the thread the post belongs to

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the post

thread_id string

The unique id of the thread the post belongs to

user_id string

The unique id of the user who created the post

title string

The title of the post

body_html string

The post's body with any markup tags converted and parsed into html elements

body string

The post's body as it was entered in the editor by the user

updated_at timestamp

Timestamp of when the post was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue updating the post

# Rank

# Get Ranks

Back to top

Used to retrieve a list of all ranks and their thresholds for use in the admin panel

GET /rank

# Success response

# Success response - Success 200

Name Type Description
ranks object[]

The id of the rank to updated

ranks.name string

The name of the rank

ranks.post_count number

The post count needed to achieve the rank

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the list of ranks

# Upsert Rank

Back to top

Used to insert/update ranks

PUT /rank

# Parameters - Payload

Name Type Description
ranks object[]

The list of ranks to be updated

ranks.name string

The name of the rank

ranks.post_count number

The post count needed to achieve the rank

# Success response

# Success response - Success 200

Name Type Description
ranks object[]

The list of ranks which were updated

ranks.name string

The name of the rank

ranks.post_count number

The post count needed to achieve the rank

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue upserting the rank

# Reports

# (Admin) Create Message Report Note

Back to top

Used to leave a note on message moderation reports.

POST /reports/messagenotes

# Parameters - Payload

Name Type Description
report_id string

The id of the message report to leave the note on

user_id string

The id of the message leaving the message report note

note string

The note being left on the message report

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id for the message report note

report_id string

The id of the message report to leave the note on

user_id string

The id of the user leaving the message report note

username string

The username of the user who left the message report note

avatar string

The url to the avatar of the user who left the message report note

note string

The note being left on the message report

created_at timestamp

Timestamp of when the message report note was created

updated_at timestamp

Timestamp of when the message report note was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error creating the message report note

# (Admin) Create Post Report Note

Back to top

Used to leave a note on post moderation reports.

POST /reports/postnotes

# Parameters - Payload

Name Type Description
report_id string

The id of the post report to leave the note on

user_id string

The id of the post leaving the post report note

note string

The note being left on the post report

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id for the post report note

report_id string

The id of the post report to leave the note on

user_id string

The id of the user leaving the post report note

username string

The username of the user who left the post report note

avatar string

The url to the avatar of the user who left the post report note

note string

The note being left on the post report

created_at timestamp

Timestamp of when the post report note was created

updated_at timestamp

Timestamp of when the post report note was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error creating the post report note

# (Admin) Create User Report Note

Back to top

Used to leave a note on user moderation reports.

POST /reports/usernotes

# Parameters - Payload

Name Type Description
report_id string

The id of the user report to leave the note on

user_id string

The id of the user leaving the user report note

note string

The note being left on the user report

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id for the user report note

report_id string

The id of the user report to leave the note on

user_id string

The id of the user leaving the user report note

username string

The username of the user who left the user report note

avatar string

The url to the avatar of the user who left the user report note

note string

The note being left on the user report

created_at timestamp

Timestamp of when the user report note was created

updated_at timestamp

Timestamp of when the user report note was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error creating the user report note

# (Admin) Page Message Report

Back to top

Used to page through message moderation reports.

GET /reports/messages

# Parameters - Query

Name Type Description
page number optional

The page of message reports to retrieve

Default value: 1
limit number optional

The number of message reports to retrieve per page

Default value: 15
filter string optional

Used to filter reports by their status

Allowed values: "Pending","Reviwed","Ignored","Bad Report"
field string optional

Indicates which column to sort by, used for table sorting

Default value: created_at
Allowed values: "created_at","priority","reporter_username","offender_created_at","offender_author_username"
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: false
search string optional

String used to search for a report by username

# Success response

# Success response - Success 200

Name Type Description
count number

The total number of reports

limit number

The number of reports to bring back per page

page number

The current page of reports brought back

page_count number

The total number of pages

filter string

Indicates the status type of the report being brought back

field string

Indicates the field the reports are sorted by

search string

Indicates the search string

desc boolean

Boolean indicating if the results are in descending order

data object[]

An array of message reports. Sort order varies depending on the query parameters passed in.

data.id string

The unique id of the message report

data.status string

The status of the message report

data.reviewer_user_id string

The unique id of the user who reviewed the message report

data.offender_ban_expiration timestamp

If the user is banned, the expiration of their ban

data.offender_board_banned boolean

Boolean indicating if user is board banned

data.offender_message_id string

The unique id of the offending message

data.offender_message string

The body of the offending message

data.offender_created_at timestamp

Timestamp of the offending message was created

data.offender_author_created_at timestamp

Timestamp of the offending message's author created date

data.offender_author_username string

The username of the offending message's author

data.offender_author_email string

The email of the user who created the offending message

data.offender_author_id string

The unique id of the offending message's author

data.reporter_reason string

The reason for the report

data.reporter_user_id string

The unique id of the reporting user

data.reporter_username string

The username of the reporting user

data.created_at timestamp

Timestamp of when the message report was created

data.updated_at timestamp

Timestamp of when the message report was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the message reports

# (Admin) Page Message Report Notes

Back to top

Used to page through message moderation report notes.

GET /reports/messagenotes/:messageReportId

# Parameters - Parameter

Name Type Description
messageReportId string

The unique id of the message report to retrieve notes for

# Parameters - Query

Name Type Description
page number optional

The page of message report notes to retrieve

Default value: 1
limit number optional

The number of message report notes to retrieve per page

Default value: 10
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: true

# Success response

# Success response - Success 200

Name Type Description
count number

The total number of report notes

limit number

The number of report notes to bring back per page

page number

The current page of report notes brought back

page_count number

The total number of pages

desc boolean

Boolean indicating if the results are in descending order

data object[]

An array of message report note objects.

data.id string

The unique id of the message report note

data.report_id string

The unique id of the message report this note is for

data.user_id string

The unique id of the user who left the note

data.username string

The username of the user who left the note

data.avatar string

The URL to the avatar of the user who left the note

data.note string

The note message that was left on the report

data.created_at timestamp

Timestamp of when the report note was created

data.updated_at timestamp

Timestamp of when the report note was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the message report notes

# (Admin) Page Post Report

Back to top

Used to page through post moderation reports.

GET /reports/posts

# Parameters - Query

Name Type Description
page number optional

The page of post reports to retrieve

Default value: 1
limit number optional

The number of post reports to retrieve per page

Default value: 15
filter string optional

Used to filter reports by their status

Allowed values: "Pending","Reviwed","Ignored","Bad Report"
field string optional

Indicates which column to sort by, used for table sorting

Default value: created_at
Allowed values: "created_at","priority","reporter_username","offender_created_at","offender_title","offender_author_username"
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: false
search string optional

String used to search for a report by username

mod_id string optional

If moderators user id is passed in, only returns reports made in boards this user moderates

# Success response

# Success response - Success 200

Name Type Description
count number

The total number of reports

limit number

The number of reports to bring back per page

page number

The current page of reports brought back

page_count number

The total number of pages

filter string

Indicates the status type of the report being brought back

field string

Indicates the field the reports are sorted by

search string

Indicates the search string

desc boolean

Boolean indicating if the results are in descending order

data object[]

An array of post reports. Sort order varies depending on the query parameters passed in.

data.id string

The unique id of the post report

data.status string

The status of the post report

data.reviewer_user_id string

The unique id of the user who reviewed the post report

data.offender_ban_expiration timestamp

If the user is banned, the expiration of their ban

data.offender_board_banned boolean

Boolean indicating if user is board banned

data.offender_post_id string

The unique id of the offending post

data.offender_thread_id string

The unique id of the offending post's thread

data.offender_title string

The title of the offending post

data.offender_created_at timestamp

Timestamp of the offending post was created

data.offender_author_created_at timestamp

Timestamp of the offending post's author created date

data.offender_author_username string

The username of the offending post's author

data.offender_author_email string

The email of the user who created the offending post

data.offender_author_id string

The unique id of the offending post's author

data.reporter_reason string

The reason for the report

data.reporter_user_id string

The unique id of the reporting user

data.reporter_username string

The username of the reporting user

data.created_at timestamp

Timestamp of when the post report was created

data.updated_at timestamp

Timestamp of when the post report was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the post reports

# (Admin) Page Post Report Notes

Back to top

Used to page through post moderation report notes.

GET /reports/postnotes/:postReportId

# Parameters - Parameter

Name Type Description
postReportId string

The unique id of the post report to retrieve notes for

# Parameters - Query

Name Type Description
page number optional

The page of post report notes to retrieve

Default value: 1
limit number optional

The number of post report notes to retrieve per page

Default value: 10
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: true

# Success response

# Success response - Success 200

Name Type Description
count number

The total number of report notes

limit number

The number of report notes to bring back per page

page number

The current page of report notes brought back

page_count number

The total number of pages

desc boolean

Boolean indicating if the results are in descending order

data object[]

An array of post report note objects

data.id string

The unique id of the post report note

data.report_id string

The unique id of the post report this note is for

data.user_id string

The unique id of the user who left the note

data.username string

The username of the user who left the note

data.avatar string

The URL to the avatar of the user who left the note

data.note string

The note message that was left on the report

data.created_at timestamp

Timestamp of when the report note was created

data.updated_at timestamp

Timestamp of when the report note was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the post report notes

# (Admin) Page User Report

Back to top

Used to page through user moderation reports.

GET /reports/users

# Parameters - Query

Name Type Description
page number optional

The page of user reports to retrieve

Default value: 1
limit number optional

The number of user reports to retrieve per page

Default value: 15
filter string optional

Used to filter reports by their status

Allowed values: "Pending","Reviwed","Ignored","Bad Report"
field string optional

Indicates which column to sort by, used for table sorting

Default value: created_at
Allowed values: "created_at","priority","reporter_username","offender_username","offender_email","offender_created_at"
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: false
search string optional

String used to search for a report by username

# Success response

# Success response - Success 200

Name Type Description
count number

The total number of reports

limit number

The number of reports to bring back per page

page number

The current page of reports brought back

page_count number

The total number of pages

filter string

Indicates the status type of the report being brought back

field string

Indicates the field the reports are sorted by

search string

Indicates the search string

desc boolean

Boolean indicating if the results are in descending order

data object[]

An array of user reports. Sort order varies depending on the query parameters passed in.

data.id string

The unique id of the user report

data.status string

The status of the user report

data.reviewer_user_id string

The unique id of the user who reviewed the user report

data.offender_ban_expiration timestamp

If the user is banned, the expiration of their ban

data.offender_board_banned boolean

Boolean indicating if user is board banned

data.offender_created_at timestamp

When the offending user created their account

data.offender_email string

The email of the offending user

data.offender_user_id string

The unique id of the offending user

data.offender_username string

The username of the offending user

data.reporter_reason string

The reason for the report

data.reporter_user_id string

The unique id of the reporting user

data.reporter_username string

The username of the reporting user

data.created_at timestamp

Timestamp of when the user report was created

data.updated_at timestamp

Timestamp of when the user report was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the user reports

# (Admin) Page User Report Notes

Back to top

Used to page through user moderation report notes.

GET /reports/usernotes/:userReportId

# Parameters - Parameter

Name Type Description
userReportId string

The unique id of the user report to retrieve notes for

# Parameters - Query

Name Type Description
page number optional

The page of user report notes to retrieve

Default value: 1
limit number optional

The number of user report notes to retrieve per page

Default value: 10
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: true

# Success response

# Success response - Success 200

Name Type Description
count number

The total number of report notes

limit number

The number of report notes to bring back per page

page number

The current page of report notes brought back

page_count number

The total number of pages

desc boolean

Boolean indicating if the results are in descending order

data object[]

An array of user report note objects.

data.id string

The unique id of the user report note

data.report_id string

The unique id of the user report this note is for

data.user_id string

The unique id of the user who left the note

data.username string

The username of the user who left the note

data.avatar string

The URL to the avatar of the user who left the note

data.note string

The note message that was left on the report

data.created_at timestamp

Timestamp of when the report note was created

data.updated_at timestamp

Timestamp of when the report note was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the user report notes

# (Admin) Update Message Report

Back to top

Used to update the status of a message moderation report.

PUT /reports/messages

# Parameters - Payload

Name Type Description
id string

The id of the message report

status string

The updated note status

Allowed values: "Pending","Reviewed","Ignored","Bad Report"
reviewer_user_id string

The id of the user updating the message report

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the message report which was created

status string

The status of the report

reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending message

reviewer_user_id string

The unique id of the user reviewing the report

offender_message_id string

The unique id of the message being reported

created_at timestamp

Timestamp of when the message report was created

updated_at timestamp

Timestamp of when the message report was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the message report

# (Admin) Update Message Report Note

Back to top

Used to update an existing note on message moderation reports.

PUT /reports/messagenotes

# Parameters - Payload

Name Type Description
id string

The id of the message report note

note string

The updated note

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id for the message report note

report_id string

The id of the message report to leave the note on

user_id string

The id of the user leaving the message report note

username string

The username of the user who left the message report note

avatar string

The url to the avatar of the user who left the message report note

note string

The note being left on the message report

created_at timestamp

Timestamp of when the message report note was created

updated_at timestamp

Timestamp of when the message report note was last updated

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Note must not be empty

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the message report note

# (Admin) Update Post Report

Back to top

Used to update the status of a post moderation report.

PUT /reports/posts

# Parameters - Payload

Name Type Description
id string

The id of the post report note

status string

The updated note status

Allowed values: "Pending","Reviewed","Ignored","Bad Report"
reviewer_user_id string

The id of the user updating the post report

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the post report which was updated

status string

The status of the report

reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending post

reviewer_user_id string

The unique id of the user reviewing the report

offender_post_id string

The unique id of the post being reported

created_at timestamp

Timestamp of when the post report was created

updated_at timestamp

Timestamp of when the post report was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the post report

# (Admin) Update Post Report Note

Back to top

Used to update an existing note on post moderation reports.

PUT /reports/usernotes

# Parameters - Payload

Name Type Description
id string

The id of the post report note

note string

The updated note

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id for the post report note

report_id string

The id of the post report to leave the note on

user_id string

The id of the user leaving the post report note

username string

The username of the user who left the post report note

avatar string

The url to the avatar of the user who left the post report note

note string

The note being left on the post report

created_at timestamp

Timestamp of when the post report note was created

updated_at timestamp

Timestamp of when the post report note was last updated

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Note must not be empty

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the post report note

# (Admin) Update User Report

Back to top

Used to update the status of a user moderation report.

PUT /reports/users

# Parameters - Payload

Name Type Description
id string

The id of the user report

status string

The updated note status

Allowed values: "Pending","Reviewed","Ignored","Bad Report"
reviewer_user_id string

The id of the user updating the user report

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the user report which was created

status string

The status of the report

reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending user

reviewer_user_id string

The unique id of the user reviewing the report

offender_user_id string

The unique id of the user being reported

created_at timestamp

Timestamp of when the user report was created

updated_at timestamp

Timestamp of when the user report was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the user report

# (Admin) Update User Report Note

Back to top

Used to update an existing note on user moderation reports.

PUT /reports/usernotes

# Parameters - Payload

Name Type Description
id string

The id of the user report note

note string

The updated note

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id for the user report note

report_id string

The id of the user report to leave the note on

user_id string

The id of the user leaving the user report note

username string

The username of the user who left the user report note

avatar string

The url to the avatar of the user who left the user report note

note string

The note being left on the user report

created_at timestamp

Timestamp of when the user report note was created

updated_at timestamp

Timestamp of when the user report note was last updated

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Note must not be empty

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the user report note

# Create Message Report

Back to top

Used to report a private message for moderators/administrators to review.

POST /reports/messages

# Parameters - Payload

Name Type Description
reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending private message

offender_message_id string

The unique id of the private message being reported

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the private message report which was created

status string

The status of the report

reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending message

reviewer_user_id string

The unique id of the user reviewing the report

offender_message_id string

The unique id of the private message being reported

created_at timestamp

Timestamp of when the private message report was created

updated_at timestamp

Timestamp of when the private message report was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue reporting the message report

# Create Post Report

Back to top

Used to report a post for moderators/administrators to review.

POST /reports/users

# Parameters - Payload

Name Type Description
reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending post

offender_post_id string

The unique id of the post being reported

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the post report which was created

status string

The status of the report

reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending post

reviewer_user_id string

The unique id of the user reviewing the report

offender_post_id string

The unique id of the post being reported

created_at timestamp

Timestamp of when the post report was created

updated_at timestamp

Timestamp of when the post report was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue reporting the post

# Create User Report

Back to top

Used to report a user for moderators/administrators to review.

POST /reports/users

# Parameters - Payload

Name Type Description
reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending user

offender_user_id string

The unique id of the user being reported

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the user report which was created

status string

The status of the report

reporter_user_id string

The unique id of the user initiating the report

reporter_reason string

The reporter's reason for reporting the offending user

reviewer_user_id string

The unique id of the user reviewing the report

offender_user_id string

The unique id of the user being reported

created_at timestamp

Timestamp of when the user report was created

updated_at timestamp

Timestamp of when the user report was updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue reporting the user

# Roles

# Add Roles

Back to top

Add a new role.

POST /admin/roles/add

# Parameters - Payload

Name Type Description
id string optional

The id of the role to add, for hardcoded ids.

name string

The name of the role to add.

description string

The description of the role to add.

priority string

The priorty of the role to add.

highlight_color string optional

The highlight color of the role to add.

permissions Object

The permission set for this role.

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the added role.

# Error response

# Error response - Error 400

Name Type Description
BadRequest

There name of the role must be unique.

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue adding the role.

# All Roles

Back to top

Retrieve all role.

GET /admin/roles/all

# Success response

# Success response - Success 200

Name Type Description
roles object[]

An array of all the roles.

roles.id string

The unique id of the role

roles.name string

The name of the role

roles.description string

The description of the role

roles.lookup string

A unique identifier for the role

roles.priority number

The priority of the role, with 0 being the highest priority

Size range: 0..n
roles.highlight_color string

An html hex value color used to highlight users based on their role

permissions object

An object containing all this roles permissions

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the roles.

# Page Users with Role

Back to top

Page all users with a particular role.

GET /admin/roles/:id/users

# Parameters - Payload

Name Type Description
id string

The id of the role to find users for

# Parameters - Query

Name Type Description
page number optional

The page of users to retrieve

Default value: 1
limit number optional

The number of users to retrieve per page

Default value: 15
search string optional

Allows user to filter the search results

# Success response

# Success response - Success 200

Name Type Description
users object[]

An array holding users with this role

users.id string

The id of the user

users.username string

The The username of the user

users.email string

The email of the user

users.roles string[]

An array containing the lookups values of all the roles this user has

users.priority number

The user's highest role priority

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the user data.

# Remove Roles

Back to top

Remove a role.

DELETE /admin/roles/remove/:id

# Parameters - Parameter

Name Type Description
id string

The id of the role to remove.

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the removed role.

name string

The name of the removed role.

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue removing the role.

# Reprioritize Roles

Back to top

Reprioritizes all roles.

UPDATE /admin/roles/reprioritize

# Parameters - Payload

Name Type Description
roles object[]

Array containing role objects

roles.id string

The id of the role

roles.priority string

The updated priorty of the role

# Success response

# Success response - Success 200

Name Type Description
STATUS object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue reprioritizing the roles.

# Update Roles

Back to top

Add a new role.

PUT /admin/roles/update

# Parameters - Payload

Name Type Description
id string

The id of the role to update.

name string

The updated name of the role.

description string

The updated description of the role.

priority string

The updated priorty of the role.

highlight_color string optional

The updated highlight color.

lookup string

The lookup string of the role.

permissions Object

The updated permission set.

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the updated role.

# Error response

# Error response - Error 400

Name Type Description
BadRequest

There name of the role must be unique.

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue adding the role.

# Settings

# (Admin) Add IP Rule to Blacklist

Back to top

Used to add an IP Rule to the blacklist

POST /admin/settings/blacklist

# Success response

# Success response - Success 200

Name Type Description
blacklist object[]

Array containing blacklisted IPs and info

blacklist.id string

Unique id for the Blacklisted IP rule.

blacklist.ip_data string

A single ip, ip range or wildcard ip.

blacklist.note string

A note/name for the Blacklisted IP rule.

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue adding to the blacklist.

# (Admin) Delete existing IP Rule from Blacklist

Back to top

Used to update an existing IP Rule in the blacklist

DELETE /admin/settings/blacklist/:id

# Parameters - Parameter

Name Type Description
id string

The id of the blacklist rule to delete

# Success response

# Success response - Success 200

Name Type Description
blacklist object[]

Array containing blacklisted IPs and info

blacklist.id string

Unique id for the Blacklisted IP rule.

blacklist.ip_data string

A single ip, ip range or wildcard ip.

blacklist.note string

A note/name for the Blacklisted IP rule.

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting from the blacklist.

# (Admin) Find

Back to top

Used to fetch all web app settings. Allows admins to grab settings defined in config.js

GET /api/configurations

# Success response

# Success response - Success 200

Name Type Description
verify_registration boolean

Boolean indicating if users need verify their accounts via email

login_required boolean

Boolean indicating if users need to login to view posts

invite_only boolean

Boolean indicating if forum is invite only

saas_mode boolean

Boolean indicating if forum is in saas mode

revision boolean

The current git revision of the running instance of Epochtalk

ga_key string

Google analytics key for reCaptcha

website object

Object containing website configs

website.title string

The title of the website

website.description string

Website description text

website.keywords string

Website keywords

website.logo string

The logo for the website

website.favicon string

The favicon for the website

emailer object

Object containing configurations for the email server

emailer.sender string

Email address that emails will be sent from

emailer.options.host string

The SMTP host

emailer.options.port number

The SMTP port

emailer.options.auth.user string

The SMTP username

emailer.options.auth.pass string

The SMTP password

emailer.options.secure boolean

Boolean indicating whether or not to use SSL

images object

Object containing image server configurations

images.storage string

Where to store images

Allowed values: "local","s3"
images.max_size number

Max image file size

images.expiration number

Expiration time for unused images

images.interval number

Interval for checking for unused images

images.local object

Object containing local image server configurations

images.local.dir string

Path to directory to store uploaded images

images.local.path string

Path to relative to host of where to serve images

images.s3 object

Object containing s3 image server configurations

images.s3.root string

The s3 root url

images.s3.dir string

The s3 directory

images.s3.bucket string

The s3 bucket

images.s3.region string

The s3 region

images.s3.access_key string

The s3 access key

images.s3.secret_key string

The s3 secret key

rate_limiting object

Object containing rate limit configurations

rate_limiting.namespace string

Redis namespace prefix for rate limit configurations

rate_limiting.get object

Object containing GET rate limit configurations

rate_limiting.get.interval number

The amount of time to which you are limiting the number of request to (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: -1...n
rate_limiting.get.max_in_interval number

How many requests you can make within the interval (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: 1...n
rate_limiting.get.min_difference number

How long between each request (e.g. how much time between each MAX_IN_INTERVAL)

rate_limiting.post.interval number

The amount of time to which you are limiting the number of request to (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: -1...n
rate_limiting.post.max_in_interval number

How many requests you can make within the interval (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: 1...n
rate_limiting.post.min_difference number

How long between each request (e.g. how much time between each MAX_IN_INTERVAL)

rate_limiting.put.interval number

The amount of time to which you are limiting the number of request to (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: -1...n
rate_limiting.put.max_in_interval number

How many requests you can make within the interval (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: 1...n
rate_limiting.put.min_difference number

How long between each request (e.g. how much time between each MAX_IN_INTERVAL)

rate_limiting.delete.interval number

The amount of time to which you are limiting the number of request to (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: -1...n
rate_limiting.delete.max_in_interval number

How many requests you can make within the interval (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: 1...n
rate_limiting.delete.min_difference number

How long between each request (e.g. how much time between each MAX_IN_INTERVAL)

# (Admin) Get Blacklist

Back to top

Used to fetch the IP blacklist

GET /admin/settings/blacklist

# Success response

# Success response - Success 200

Name Type Description
blacklist object[]

Array containing blacklisted IPs and info

blacklist.id string

Unique id for the Blacklisted IP rule.

blacklist.ip_data string

A single ip, ip range or wildcard ip.

blacklist.note string

A note/name for the Blacklisted IP rule.

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the blacklist.

# (Admin) Get Theme

Back to top

Used to fetch theme vars in _custom-variables.scss

GET /theme

# Success response

# Success response - Success 200

Name Type Description
base-line-height string

Base line height for entire forum

base-background-color string

The background color for the entire forum

color-primary string

The primary color for the forum, used for buttons, etc...

base-font-sans string

Font family for the entire forum

base-font-color string

Base font color for entire forum

base-font-size string

Base font size for entire forum

secondary-font-color string

Secondary font color, used for description text

input-font-color string

Font color for input fields

input-background-color string

Background color for all input fields

border-color string

Color for all borders used in the forum

header-bg-color string

Color for the forum header background

header-font-color string

Font color for the forum header

sub-header-color string

Color for sub headers and footers

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the theme.

# (Admin) Preview Theme

Back to top

Used preview theme vars are compiled from _preview-variables.scss

PUT /theme/preview

# Parameters - Payload

Name Type Description
base-line-height string

Base line height for entire forum

base-background-color string

The background color for the entire forum

color-primary string

The primary color for the forum, used for buttons, etc...

base-font-sans string

Font family for the entire forum

base-font-color string

Base font color for entire forum

base-font-size string

Base font size for entire forum

secondary-font-color string

Secondary font color, used for description text

input-font-color string

Font color for input fields

input-background-color string

Background color for all input fields

border-color string

Color for all borders used in the forum

header-bg-color string

Color for the forum header background

header-font-color string

Font color for the forum header

sub-header-color string

Color for sub headers and footers

# Success response

# Success response - Success 200

Name Type Description
base-line-height string

Base line height for entire forum

base-background-color string

The background color for the entire forum

color-primary string

The primary color for the forum, used for buttons, etc...

base-font-sans string

Font family for the entire forum

base-font-color string

Base font color for entire forum

base-font-size string

Base font size for entire forum

secondary-font-color string

Secondary font color, used for description text

input-font-color string

Font color for input fields

input-background-color string

Background color for all input fields

border-color string

Color for all borders used in the forum

header-bg-color string

Color for the forum header background

header-font-color string

Font color for the forum header

sub-header-color string

Color for sub headers and footers

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue previewing the theme.

# (Admin) Reset Theme

Back to top

Used reset custom variables to fall back to _default-variables.scss

POST /theme

# Success response

# Success response - Success 200

Name Type Description
base-line-height string

Base line height for entire forum

base-background-color string

The background color for the entire forum

color-primary string

The primary color for the forum, used for buttons, etc...

base-font-sans string

Font family for the entire forum

base-font-color string

Base font color for entire forum

base-font-size string

Base font size for entire forum

secondary-font-color string

Secondary font color, used for description text

input-font-color string

Font color for input fields

input-background-color string

Background color for all input fields

border-color string

Color for all borders used in the forum

header-bg-color string

Color for the forum header background

header-font-color string

Font color for the forum header

sub-header-color string

Color for sub headers and footers

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue resetting the theme.

# (Admin) Set Theme

Back to top

Used to set theme vars in _custom-variables.scss

PUT /theme

# Parameters - Payload

Name Type Description
base-line-height string

Base line height for entire forum

base-background-color string

The background color for the entire forum

color-primary string

The primary color for the forum, used for buttons, etc...

base-font-sans string

Font family for the entire forum

base-font-color string

Base font color for entire forum

base-font-size string

Base font size for entire forum

secondary-font-color string

Secondary font color, used for description text

input-font-color string

Font color for input fields

input-background-color string

Background color for all input fields

border-color string

Color for all borders used in the forum

header-bg-color string

Color for the forum header background

header-font-color string

Font color for the forum header

sub-header-color string

Color for sub headers and footers

# Success response

# Success response - Success 200

Name Type Description
base-line-height string

Base line height for entire forum

base-background-color string

The background color for the entire forum

color-primary string

The primary color for the forum, used for buttons, etc...

base-font-sans string

Font family for the entire forum

base-font-color string

Base font color for entire forum

base-font-size string

Base font size for entire forum

secondary-font-color string

Secondary font color, used for description text

input-font-color string

Font color for input fields

input-background-color string

Background color for all input fields

border-color string

Color for all borders used in the forum

header-bg-color string

Color for the forum header background

header-font-color string

Font color for the forum header

sub-header-color string

Color for sub headers and footers

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue setting the theme.

# (Admin) Update existing IP Rule in Blacklist

Back to top

Used to update an existing IP Rule in the blacklist

PUT /admin/settings/blacklist

# Success response

# Success response - Success 200

Name Type Description
blacklist object[]

Array containing blacklisted IPs and info

blacklist.id string

Unique id for the Blacklisted IP rule.

blacklist.ip_data string

A single ip, ip range or wildcard ip.

blacklist.note string

A note/name for the Blacklisted IP rule.

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue updating the blacklist.

# Update

Back to top

Used to update web app settings. Used in the admin panel.

POST /api/configurations(Admin)

# Parameters - Payload

Name Type Description
verify_registration boolean optional

Boolean indicating if users need verify their accounts via email

login_required boolean optional

Boolean indicating if users need to login to view posts

invite_only boolean optional

Boolean indicating if forum is invite only

ga_key string optional

Google analytics key for reCaptcha

website object optional

Object containing website configs

website.title string optional

The title of the website

website.description string optional

Website description text

website.keywords string optional

Website keywords

website.logo string optional

The logo for the website

website.favicon string optional

The favicon for the website

emailer object optional

Object containing configurations for the email server

emailer.sender string optional

Email address that emails will be sent from

emailer.options.host string optional

The SMTP host

emailer.options.port number optional

The SMTP port

emailer.options.auth.user string optional

The SMTP username

emailer.options.auth.pass string optional

The SMTP password

emailer.options.secure boolean optional

Boolean indicating whether or not to use SSL

images object optional

Object containing image server configurations

images.storage string optional

Where to store images

Allowed values: "local","s3"
images.max_size number optional

Max image file size

images.expiration number optional

Expiration time for unused images

images.interval number optional

Interval for checking for unused images

images.local object optional

Object containing local image server configurations

images.local.dir string optional

Path to directory to store uploaded images

images.local.path string optional

Path to relative to host of where to serve images

images.s3 object optional

Object containing s3 image server configurations

images.s3.root string optional

The s3 root url

images.s3.dir string optional

The s3 directory

images.s3.bucket string optional

The s3 bucket

images.s3.region string optional

The s3 region

images.s3.access_key string optional

The s3 access key

images.s3.secret_key string optional

The s3 secret key

rate_limiting object optional

Object containing rate limit configurations

rate_limiting.get object optional

Object containing GET rate limit configurations

rate_limiting.get.interval number optional

The amount of time to which you are limiting the number of request to (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: -1...n
rate_limiting.get.max_in_interval number optional

How many requests you can make within the interval (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: 1...n
rate_limiting.get.min_difference number optional

How long between each request (e.g. how much time between each MAX_IN_INTERVAL)

rate_limiting.post.interval number optional

The amount of time to which you are limiting the number of request to (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: -1...n
rate_limiting.post.max_in_interval number optional

How many requests you can make within the interval (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: 1...n
rate_limiting.post.min_difference number optional

How long between each request (e.g. how much time between each MAX_IN_INTERVAL)

rate_limiting.put.interval number optional

The amount of time to which you are limiting the number of request to (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: -1...n
rate_limiting.put.max_in_interval number optional

How many requests you can make within the interval (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: 1...n
rate_limiting.put.min_difference number optional

How long between each request (e.g. how much time between each MAX_IN_INTERVAL)

rate_limiting.delete.interval number optional

The amount of time to which you are limiting the number of request to (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: -1...n
rate_limiting.delete.max_in_interval number optional

How many requests you can make within the interval (e.g. MAX_IN_INTERVAL requests every INTERVAL)

Size range: 1...n
rate_limiting.delete.min_difference number optional

How long between each request (e.g. how much time between each MAX_IN_INTERVAL)

# Success response

# Success response - Success 200

Name Type Description
config object

Same object that was passed in is returned upon success

# ThreadNotifications

# Get Thread Notification Settings

Back to top

Used to retreive the user's thread notification settings

GET /threadnotifications

# Success response

# Success response - Success 200

Name Type Description
notify_replied_threads boolean

Boolean indicating if the user is receiving thread notifications

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an getting thread notification settings

# Toggle Thread Notifications

Back to top

Used to toggle thread notifications

PUT /threadnotifications

# Parameters - Payload

Name Type Description
enabled boolean optional

Boolean indicating if thread notifications are enabled or not

Default value: true

# Success response

# Success response - Success 200

Name Type Description
enabled boolean

Boolean indicating if the thread notifications were enabled or not

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an enabling thread notifications

# Threads

# Create

Back to top

Used to create a new thread.

POST /threads

# Parameters - Payload

Name Type Description
title string

The title of the thread

body string

The thread's body as it was entered in the editor by the user

board_id string

The unique id of the board this thread is being created within

locked boolean optional

Boolean indicating whether the thread is locked or unlocked

Default value: false
sticky boolean optional

Boolean indicating whether the thread is stickied or not

Default value: false
moderated boolean optional

Boolean indicating whether the thread is self-moderated or not

Default value: false
poll object

Object containing poll data

poll.max_answers number optional

The max answers allowed for poll

Default value: 1
poll.expiration timestamp optional

Timestamp of when the poll expires

poll.change_vote boolean optional

Boolean indicating if you can change your vote

Default value: false
poll.display_mode string

Used for the UI display mode of the poll

Allowed values: "always","voted","expired"
questions string[]

An array of poll questions

answers string[]

An array of poll answers

# Success response

# Success response - Success 200

Name Type Description
id string

The unqiue id of the post the thread is wrapping

thread_id string

The unqiue id of the thread

user_id string

The unique id of the user who created the thread

title string

The title of the thread

deleted boolean

Boolean indicating if the thread has been deleted

locked boolean

Boolean indicating if the thread has been locked

body_html string

The thread's body with any markup tags converted and parsed into html elements

body string

The thread's body as it was entered in the editor by the user

created_at timestamp

Timestamp of when the thread was created

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue creating the thread

# Create Poll

Back to top

Used to create a poll.

POST /threads/:id/polls

# Parameters - Param

Name Type Description
thread_id string

The unique id of the thread the poll is in.

question string

The question asked in the poll.

answers string[]

The list of the answers to the question of this poll.

# Parameters - Payload

Name Type Description
max_answers number optional

The max number of answers per vote.

Default value: 1
expiration date optional

The expiration date of the poll.

change_vote boolean optional

Boolean indicating whether users can change their vote.

display_mode string

String indicating how the results are shown to users.

Allowed values: "always","voted","expired"

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the poll

question string

The question asked in the poll

answers object[]

The list of the answers to the question of this poll

answers.answer string

The answer to the question of this poll

max_answers number

The max number of answer per vote

change_vote boolean

Boolean indicating whether users can change their vote

expiration date

The expiration date of the poll

display_mode string

String indicating how the results are shown to users

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to create the poll

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue creating the thread

# Edit Poll

Back to top

Used to edit a poll.

PUT /threads/:thread_id/polls/:poll_id

# Parameters - Param

Name Type Description
thread_id string

The unique id of the thread the poll is in.

poll_id string

The unique id of the poll to vote in.

# Parameters - Payload

Name Type Description
max_answers number

The max number of answers per vote.

expiration date

The expiration date of the poll.

change_vote boolean

Boolean indicating whether users can change their vote.

display_mode string

String indicating how the results are shown to users.

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the poll

max_answers number

The max number of answer per vote

change_vote boolean

Boolean indicating whether users can change their vote

expiration date

The expiration date of the poll

display_mode string

String indicating how the results are shown to users

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to edit the poll

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue editing the thread

# Lock

Back to top

Used to lock a thread and prevent any additional posts.

POST /threads/:id/lock

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread to lock

# Parameters - Payload

Name Type Description
status boolean optional

Boolean indicating lock status, true if locked false if unlocked.

Default value: true

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the poll

locked boolean

Boolean indicating if the poll is locked

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to lock the thread

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue locking the thread

# Lock/Unlock Poll

Back to top

Used to lock or unlock a poll.

POST /threads/:thread_id/polls/:poll_id/lock

# Parameters - Parameter

Name Type Description
thread_id string

The unique id of the thread the poll is in.

poll_id string

The unique id of the poll to lock.

# Parameters - Payload

Name Type Description
locked boolean

Boolean indicating to lock or unlock the poll

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the poll

locked boolean

The value the poll's lock

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to lock the poll

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue locking/unlocking the poll

# Mark Thread Viewed

Back to top

Used to mark a thread as viewed

POST /threads/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread to mark as viewed

# Success response

# Success response - Success 200

Name Type Description
success object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue marking the thread viewed

# Move

Back to top

Used to move a thread to a different board.

POST /threads/:id/move

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread to move

# Parameters - Payload

Name Type Description
new_board_id string

The unique id of the board to move this thread into.

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the thread which was moved

board_id string

The id of the board which the thread was moved to

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to move the thread

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue moving the thread

# Page By Board

Back to top

Used to page through a board's threads.

GET /threads

# Parameters - Query

Name Type Description
board_id string

The board whose threads to page through

page number optional

The page of threads to bring back

Default value: 1
limit number optional

The number of threads to bring back per page

Default value: 25

# Success response

# Success response - Success 200

Name Type Description
page number

The page of threads to bring back

limit number

The number or threads per page to bring back

banned_from_board boolean

Boolean indicating if the authed user has been banned from the current thread's board

write_access boolean

Boolean indicating if the authed user has write access to this thread

board object

Object containing information about the board the thread is in

board.id string

The id of the board

board.name string

The name of the board

board.parent_id string

The id of the parent board if applicable

board.watched boolean

Boolean indicating if the authed user is watching this board

board.viewable_by number

The minimum priority to be able to view the board, null for no restriction

board.postable_by number

The minimum priority to be able to post to the board, null for no restriction

board.description string

The board description text

board.thread_count number

The number of threads within the board

board.post_count number

The number of posts within the board

board.children object[]

An array containing child boards if applicable

board.moderators object[]

Array containing data about the moderators of the board

board.moderators.id string

The id of the moderator

board.moderators.username string

The username of the moderator

board.created_at timestamp

The created at timestamp of the board

board.updated_at timestamp

The updated at timestamp of the board

board.imported_at timestamp

The imported at timestamp of the board

sticky object[]

An array of sticky threads within the board

sticky.id string

The id of the stickied thread

sticky.locked boolean

Boolean indicating if the thread is locked

sticky.sticky boolean

Boolean indicating if the thread is stickied

sticky.moderated boolean

Boolean indicating if the thread is self-moderated

sticky.poll boolean

Boolean indicating if there is a poll in this thread

sticky.created_at timestamp

Timestamp indicating when the thread was created

sticky.updated_at timestamp

Timestamp indicating when the thread was last updated

sticky.view_count number

The number of views this thread has received

sticky.post_count number

The number of posts in this thread

sticky.title string

The title of the thread

sticky.last_post_id string

The id of the last post in the thread

sticky.last_post_position number

The position of the last post in the thread

sticky.last_post_created_at timestamp

Timestamp of when the last post was created

sticky.last_post_username string

The username of the author of the last post

sticky.last_post_avatar string

The avatar of the author of the last post

sticky.user object

Object containg user data about the last post author

sticky.user.id string

The id of the last post's author

sticky.user.username string

The username of the last post's author

sticky.user.deleted boolean

Boolean indicating if the last post's author has had their account deleted

sticky.has_new_posts boolean

Boolean indicating if the thread has new posts since it was last viewed

sticky.lastest_unread_position number

The position of the last unread post

sticky.lastest_unread_post_id number

The id of the last unread post

normal object[]

An array of threads within the board

normal.id string

The id of the thread

normal.locked boolean

Boolean indicating if the thread is locked

normal.normal boolean

Boolean indicating if the thread is stickied

normal.moderated boolean

Boolean indicating if the thread is self-moderated

normal.poll boolean

Boolean indicating if there is a poll in this thread

normal.created_at timestamp

Timestamp indicating when the thread was created

normal.updated_at timestamp

Timestamp indicating when the thread was last updated

normal.view_count number

The number of views this thread has received

normal.post_count number

The number of posts in this thread

normal.title string

The title of the thread

normal.last_post_id string

The id of the last post in the thread

normal.last_post_position number

The position of the last post in the thread

normal.last_post_created_at timestamp

Timestamp of when the last post was created

normal.last_post_username string

The username of the author of the last post

normal.last_post_avatar string

The avatar of the author of the last post

normal.user object

Object containg user data about the last post author

normal.user.id string

The id of the thread's author

normal.user.username string

The username of the thread's author

normal.user.deleted boolean

Boolean indicating if the thread's author has had their account deleted

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the threads

# Page Recently Posted In Threads

Back to top

Used to page through recent threads posted in by the user.

GET /threads/posted

# Parameters - Query

Name Type Description
page number optional

The page of threads to bring back

Default value: 1
limit number optional

The number of threads to bring back per page

Default value: 25

# Success response

# Success response - Success 200

Name Type Description
page number

The current page of threads.

limit number

The number of threads returned per page.

count number

The total number of threads for this user.

threads object[]

An array containing recently posted in threads.

threads.id string

The id of the thread

threads.board_id string

The id of the board the thread is in

threads.board_name string

The name of the board the thread is in

threads.locked boolean

Boolean indicating if the thread is locked

threads.threads boolean

Boolean indicating if the thread is stickied

threads.moderated boolean

Boolean indicating if the thread is self-moderated

threads.poll boolean

Boolean indicating if there is a poll in this thread

threads.created_at timestamp

Timestamp indicating when the thread was created

threads.updated_at timestamp

Timestamp indicating when the thread was last updated

threads.view_count number

The number of views this thread has received

threads.post_count number

The number of posts in this thread

threads.title string

The title of the thread

threads.last_post_id string

The id of the last post in the thread

threads.last_post_position number

The position of the last post in the thread

threads.last_post_created_at timestamp

Timestamp of when the last post was created

threads.last_post_username string

The username of the author of the last post

threads.last_post_avatar string

The avatar of the author of the last post

threads.user object

Object containg user data about the thread author

threads.user.id string

The id of the thread's author

threads.user.username string

The username of the thread's author

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the threads

# Purge

Back to top

Used to purge a thread.

DELETE /threads/:id/purge

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread to purge

# Success response

# Success response - Success 200

Name Type Description
success object

200 OK

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to purge the thread

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue purging the thread

# Remove Vote

Back to top

Used to remove a vote in a poll.

DELETE /threads/:thread_id/polls/:poll_id/vote

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread the poll is in.

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the poll

question string

The question asked in the poll

answers object[]

The list of the answers to the question of this poll

answers.answer string

The answer to the question of this poll

answers.id string

The id of the answer

answers.votes number

The number of votes for this answer

max_answers number

The max number of answer per vote

has_voted boolean

Boolean indicating whether the user has voted

change_vote boolean

Boolean indicating whether users can change their vote

expiration date

The expiration date of the poll

display_mode string

String indicating how the results are shown to users

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to vote in the poll

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue removing a vote in the poll

# Sticky

Back to top

Used to sticky a thread. This will cause the thread to show up at the top of the board it's posted within.

POST /threads/:id/sticky

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread to sticky

# Parameters - Payload

Name Type Description
status boolean optional

Boolean indicating sticky status, true if stickied false if not.

Default value: true

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the thread which was stickied

sticky boolean

Boolean indicating if the thread is stickied

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to sticky the thread

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue stickying the thread

# Title

Back to top

Used to update the title of a thread.

POST /threads/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread to update

# Parameters - Payload

Name Type Description
title string

The new title for this thread.

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the thread

title string

The title of the thread

body_html string

The thread's body with any markup tags converted and parsed into html elements

body string

The thread's body as it was entered in the editor by the user

thread_id string

The unqiue id of the thread

updated_at timestamp

Timestamp of when the thread was updated

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to update the thread title.

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue updating the thread title.

# Vote

Back to top

Used to vote in a poll.

POST /threads/:thread_id/polls/:poll_id/vote

# Parameters - Parameter

Name Type Description
thread_id string

The unique id of the thread the poll is in.

poll_id string

The unique id of the poll to vote in.

# Parameters - Payload

Name Type Description
answer_ids string[]

The ids of the answers tied to the vote.

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the poll

question string

The question asked in the poll

answers object[]

The list of the answers to the question of this poll

answers.answer string

The answer to the question of this poll

answers.id string

The id of the answer

answers.votes number

The number of votes for this answer

max_answers number

The max number of answer per vote

has_voted boolean

Boolean indicating whether the user has voted

locked boolean

Boolean indicating whether the poll is locked

change_vote boolean

Boolean indicating whether users can change their vote

expiration date

The expiration date of the poll

display_mode string

String indicating how the results are shown to users

# Error response

# Error response - Error 401

Name Type Description
Unauthorized

User doesn't have permissions to vote in the poll

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue voting in the poll

# Trust

# Add Trust Board

Back to top

Used to make trust scores visible on a specific board

POST /admin/trustboards

# Parameters - Payload

Name Type Description
board_id string

The unique id of the board to show trust scores on

# Success response

# Success response - Success 200

Name Type Description
board_id string

The unique id of the board trust scores were added to

# Error response

# Error response - Error 403

Name Type Description
Forbidden

User does not have permissions to add a trust board

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue adding board to trust boards

# Add Trust Feedback

Back to top

Used to leave trust feedback on a user's account

POST /trust

# Parameters - Payload

Name Type Description
user_id string

The unique id of the user feedback is being left for

risked_btc number optional

The amount of BTC that was risked in the transaction

scammer boolean

Boolean indicating if user is a scammer, true for negative feedback, false for positive, and null for neutral

reference string optional

A reference link for the feedback

comments string optional

Feedback comments

# Success response

# Success response - Success 200

Name Type Description
id string

The unique id of the added feedback.

user_id string

The unique id of the user feedback was left on.

reporter_id string

The unique id of the user leaving feedback.

scammer boolean

Boolean indicating if user is a scammer, true for negative feedback, false for positive, and null for neutral.

reference string

A reference link for the feedback.

comments string

Feedback comments.

created_at string

Timestamp of when feedback was created.

# Error response

# Error response - Error 403

Name Type Description
Forbidden

User does not have permissions to add trust feedback

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue adding feedback

# Delete Trust Board

Back to top

Used to remove trust score from a specific board

DELETE /admin/trustboards/:board_id

# Parameters - Params

Name Type Description
board_id string

The unique id of the board to hide trust scores on

# Success response

# Success response - Success 200

Name Type Description
board_id string

The unique id of the board to hide trust scores on.

# Error response

# Error response - Error 403

Name Type Description
Forbidden

User does not have permissions to delete trust boards

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue deleting trust board

# Edit Default Trust List

Back to top

Used to edit the trust list of the default trust account

POST /admin/trustlist

# Parameters - Payload

Name Type Description
max_depth number

The max depth of the user's trust web

list object[]

List containing trusted/untrusted users

list.user_id_trusted string

The unique id of the user being trusted/untrusted

list.username_trusted string

The username of the user being trusted/untrusted.

list.type number

Trust type, 0 for trusted and 1 for untrusted

# Success response

# Success response - Success 200

Name Type Description
max_depth string

The max depth for this user's trust web

trustList object[]

An array of trusted users.

trustList.user_id_trusted string

The unique id of the user being trusted.

trustList.username_trusted string

The username of the user being trusted.

trustList.type number

Type 0 which represents trusted users.

untrustList object[]

An array of untrusted users.

untrustList.user_id_trusted string

The unique id of the user being untrusted.

untrustList.username_trusted string

The username of the user being untrusted.

untrustList.type number

Type 1 which represents untrusted users.

# Error response

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permissions to edit the default trust list.

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue editing the default trust list.

# Edit Trust List

Back to top

Used to edit the authed user's trust list

POST /trustlist

# Parameters - Payload

Name Type Description
max_depth number

The max depth of the user's trust web

list object[]

List containing trusted/untrusted users

list.user_id_trusted string

The unique id of the user being trusted/untrusted

list.username_trusted string

The username of the user being trusted/untrusted.

list.type number

Trust type, 0 for trusted and 1 for untrusted

# Success response

# Success response - Success 200

Name Type Description
max_depth string

The max depth for this user's trust web

trustList object[]

An array of trusted users.

trustList.user_id_trusted string

The unique id of the user being trusted.

trustList.username_trusted string

The username of the user being trusted.

trustList.type number

Type 0 which represents trusted users.

untrustList object[]

An array of untrusted users.

untrustList.user_id_trusted string

The unique id of the user being untrusted.

untrustList.username_trusted string

The username of the user being untrusted.

untrustList.type number

Type 1 which represents untrusted users.

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue editing user's trust list.

# Get Default Trust List

Back to top

Retrieve trust list for default trust account

GET /admin/trustlist

# Success response

# Success response - Success 200

Name Type Description
max_depth string

The max depth for this user's trust web

trustList object[]

An array of trusted users.

trustList.user_id_trusted string

The unique id of the user being trusted.

trustList.username_trusted string

The username of the user being trusted.

trustList.type number

Type 0 which represents trusted users.

untrustList object[]

An array of untrusted users.

untrustList.user_id_trusted string

The unique id of the user being untrusted.

untrustList.username_trusted string

The username of the user being untrusted.

untrustList.type number

Type 1 which represents untrusted users.

# Error response

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permissions to get the default trust list.

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the default trust list.

# Get Trust Boards

Back to top

Retrieve array of board ids to show trust scores on

GET /admin/trustboards

# Success response

# Success response - Success 200

Name Type Description
trusted_boards string[]

Array of trusted board ids

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving array of trusted boards.

# Get Trust Feedback

Back to top

Retrieve trust feedback for a user

GET /trustfeedback/:username

# Parameters - Payload

Name Type Description
username string

The username to get trust feedback for

# Success response

# Success response - Success 200

Name Type Description
trusted object[]

An array of trusted feedback.

trusted.comments string

Trust feedback comments.

trusted.created_at timestamp

Timestamp of when feedback was left.

trusted.id string

Unique id of the trust feedback.

trusted.reference string

Refrence link for trust feedback.

trusted.reporter object[]

User info for user who left trust feedback.

trusted.reporter.id string

User id for user who left trust feedback.

trusted.reporter.username string

Username for user who left trust feedback.

trusted.reporter.stats object

User trust stats for user who left trust feedback.

trusted.reporter.stats.neg number

Negative trust review count.

trusted.reporter.stats.pos number

Positive trust review count.

trusted.reporter.stats.score number

Calculated trust score.

trusted.risked_btc number

Risked btc for feedback transaction.

trusted.scammer boolean

Type of feedback positive, negative, neutral.

untrusted object[]

An array of untrusted feedback.

untrusted.comments string

Trust feedback comments.

untrusted.created_at timestamp

Timestamp of when feedback was left.

untrusted.id string

Unique id of the trust feedback.

untrusted.reference string

Refrence link for trust feedback.

untrusted.reporter object[]

User info for user who left trust feedback.

untrusted.reporter.id string

User id for user who left trust feedback.

untrusted.reporter.username string

Username for user who left trust feedback.

untrusted.reporter.stats object

User trust stats for user who left trust feedback.

untrusted.reporter.stats.neg number

Negative trust review count.

untrusted.reporter.stats.pos number

Positive trust review count.

untrusted.reporter.stats.score number

Calculated trust score.

untrusted.risked_btc number

Risked btc for feedback transaction.

untrusted.scammer boolean

Type of feedback positive, negative, neutral.

sent object[]

An array of sent feedback.

sent.comments string

Trust feedback comments.

sent.created_at timestamp

Timestamp of when feedback was left.

sent.id string

Unique id of the trust feedback.

sent.reference string

Refrence link for trust feedback.

sent.risked_btc number

Risked btc for feedback transaction.

sent.scammer boolean

Type of feedback positive, negative, neutral.

# Error response

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permissions to get the default trust list.

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the default trust list.

# Get Trust List

Back to top

Retrieve trust list for authed user's account

GET /trustlist

# Success response

# Success response - Success 200

Name Type Description
max_depth string

The max depth for this user's trust web

trustList object[]

An array of trusted users.

trustList.user_id_trusted string

The unique id of the user being trusted.

trustList.username_trusted string

The username of the user being trusted.

trustList.type number

Type 0 which represents trusted users.

untrustList object[]

An array of untrusted users.

untrustList.user_id_trusted string

The unique id of the user being untrusted.

untrustList.username_trusted string

The username of the user being untrusted.

untrustList.type number

Type 1 which represents untrusted users.

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the default trust list.

# Get Trust Score Statistics

Back to top

Used to retrieve trust score for a particular user.

GET /trust/:username

# Parameters - Params

Name Type Description
username string

The username of the user to get trust stats for

# Success response

# Success response - Success 200

Name Type Description
neg number

Negative trust review count.

pos number

Positive trust review count.

score number

Calculated trust score.

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an retrieving trust score stats.

# Get Trust Tree

Back to top

Used to retrieve trust tree for the authed user.

GET /trusttree

# Parameters - Query

Name Type Description
hierarchy boolean

Boolean indicating whether to grab the hierarchical trust view or the depth view

# Success response

# Success response - Success 200

Name Type Description
depthObj object[]

Object containing trusted users at this depth, only returned if hierarchy query parameter is false

depthObj.depth string

The depth of the current depth object

depthObj.users object[]

Object containing trusted users

depthObj.users.id string

The id of the trusted/untrusted user

depthObj.users.username string

The username of the trusted/untrusted user

depthObj.users.level_trust number

The number of users at this level who trust this user

trusted object[]

Object containing trusted users, only returned if hierarchy query parameter is true

trusted.trusted object[]

Object containing the current trusted user's trusted users, this is a nested object of trusted users and contains the same information

trusted.type number

0 for trusted 1 for untrusted

trusted.user_id_trusted string

The id of the trusted/untrusted user

trusted.username_trusted string

The username of the trusted/untrusted user

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an retrieving trust tree.

# Users

# (Admin) Add Roles

Back to top

Used to add a role or roles to a user. This allows Administrators to add new (Super) Administrators and (Global) Moderators.

PUT /admin/users/roles/add

# Parameters - Payload

Name Type Description
usernames string[]

A unique array of usernames to grant the role to

role_id string

The unique id of the role to grant the user

# Success response

# Success response - Success 200

Name Type Description
users object[]

An array containing the users with added roles

users.id string

The user's unique id

users.username string

The user's username

users.email string

The user's email address

users.created_at timestamp

Timestamp of when the user's account was created

users.updated_at timestamp

Timestamp of when the user's account was last updated

users.roles object[]

An array containing the users role objects

users.roles.id string

The unique id of the role

users.roles.name string

The name of the role

users.roles.description string

The description of the role

users.roles.permissions object

The permissions that this role has

users.roles.priority number

The priority of this role

Size range: 1..n
users.roles.lookup string

The unique lookup string of this role

users.roles.highlight_color string

The html highlight color for this role

users.roles.created_at timestamp

Timestamp of when the role was created

users.roles.updated_at timestamp

Timestamp of when the role was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error adding roles to the user

# (Admin) Count Users

Back to top

This allows Administrators to get a count of how many users are registered. This is used in the admin panel for paginating through users.

GET /admin/users/count

# Parameters - Query

Name Type Description
filter string optional

If banned is passed in, route will return count of banned users.

Allowed values: "banned"
search string optional

Used to filter count by search string

ip boolean optional

Boolean indicating that search string is an ip address

# Success response

# Success response - Success 200

Name Type Description
count number

The number of users registered given the passed in parameters

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error calculating the user count

# (Admin) Create User Note

Back to top

This allows Administrators and Moderators to create user notes

POST /user/notes

# Parameters - Payload

Name Type Description
user_id string

The id of the user who the note is being left on

author_id string

The id of the user leaving the note

note string

The note being left on the user's account

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the user note

user_id string

The id of the user who the note is being left on

author_id string

The id of the user leaving the note

note string

The note being left on the user's account

created_at timestamp

The created at timestamp of the note

updated_at timestamp

The updated at timestamp of the note

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error creating user note

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permission to create user note

# (Admin) Delete User Note

Back to top

This allows Administrators and Moderators to delete user notes

DELETE /user/notes

# Parameters - Query

Name Type Description
id string

The id of the note to delete

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the user note being deleted

user_id string

The id of the user who the note is being left on

author_id string

The id of the user leaving the note

note string

The note being left on the user's account

created_at timestamp

The created at timestamp of the note

updated_at timestamp

The updated at timestamp of the note

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error deleting the user note

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permission to delete user note

# (Admin) Page User Notes

Back to top

This allows Administrators and Moderators to page through user notes

GET /user/notes

# Parameters - Query

Name Type Description
page number optional

The page of results to return

Default value: 1
Size range: 1..n
limit number optional

The number of results per page to return

Default value: 25
Size range: 1..100
user_id string

The id of the user whose notes to page through

# Success response

# Success response - Success 200

Name Type Description
user_id string

The id of the user whose notes are being returned

page number

The current page of results that is being returned

limit number

The current number of results that is being returned per page

next boolean

boolean indicating if there is a next page

prev boolean

boolean indicating if there is a previous page

data object[]

An array of user notes

data.id string

The id of the user note

data.author_id string

The id of the admin or mod who left the note

data.author_name string

The username of the admin or mod who left the note

data.author_avatar string

The avatar of the admin or mod who left the note

data.author_highlight_color string

The highlight color of the admin or mod who left the note

data.note string

The note left by the admin or mod

data.created_at timestamp

The created at timestamp of the note

data.updated_at timestamp

The updated at timestamp of the note

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error paging user notes

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permission to query user notes

# (Admin) Page Users

Back to top

This allows Administrators to page through all registered users.

GET /admin/users

# Parameters - Query

Name Type Description
page number optional

The page of registered users to retrieve

Default value: 1
Size range: 1..n
limit number optional

The number of users to retrieve per page

Default value: 25
Size range: 1..n
field string optional

The db field to sort the results by

Default value: username
Allowed values: "username","email","updated_at","created_at","imported_at","ban_expiration"
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: false
filter string optional

If banned is passed in only banned users are returned

Allowed values: "banned"
search string optional

Username to search for

ip boolean optional

Boolean indicating that search string is an ip address

# Success response

# Success response - Success 200

Name Type Description
users object[]

An array of user objects

users.id string

The unique id of the user

users.username string

The username of the user

users.email string

The email of the user

users.deleted boolean

Boolean indicating if the user's account is deleted

users.user_ips string[]

Array of user's known IP addresses

users.last_active timestamp

Timestamp of when the user's account was last active

users.ban_expiration timestamp

Timestamp of when the user's ban expires

users.created_at timestamp

Timestamp of when the user was created

users.updated_at timestamp

Timestamp of when the user was last updated

users.imported_at timestamp

Timestamp of when the user was imported, null if not imported

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the users

# (Admin) Recover Account

Back to top

Used by admins to recover a user's account. Sends an email to the account holder with a URL to visit to reset the account password.

POST /user/recover/

# Parameters - Payload

Name Type Description
user_id string

The id of the user's account to recover

# Success response

# Success response - Success 200

Name Type Description
Sucess object

200 OK

# Error response

# Error response - Error 400

Name Type Description
BadRequest

The user was not found

# Error response - Error 500

Name Type Description
InternalServerError

There was an error recovering the user account

# (Admin) Remove Roles

Back to top

Used to remove a role or roles from a user. This allows Administrators to remove roles from an account.

PUT /admin/users/roles/remove

# Parameters - Payload

Name Type Description
user_id string

The unique id of the user to remove the role from

role_id string

The unique id of the role to remove from the user

# Success response

# Success response - Success 200

Name Type Description
id string

The user's unique id

username string

The user's username

email string

The user's email address

created_at timestamp

Timestamp of when the user's account was created

updated_at timestamp

Timestamp of when the user's account was last updated

roles object[]

An array containing the users role objects

roles.id string

The unique id of the role

roles.name string

The name of the role

roles.description string

The description of the role

roles.permissions object

The permissions that this role has

roles.priority number

The priority of this role

Size range: 1..n
roles.lookup string

The unique lookup string of this role

roles.highlight_color string

The html highlight color for this role

roles.created_at timestamp

Timestamp of when the role was created

roles.updated_at timestamp

Timestamp of when the role was last updated

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error removing roles from the user

# (Admin) Search Usernames

Back to top

This allows Administrators to search usernames. This is used in the admin panel to autocomplete usernames when trying to quickly find a user.

GET /admin/users/search

# Parameters - Query

Name Type Description
username string

Username to search for, doesn't have to be a full username

limit number optional

The number of usernames to return while searching

Default value: 15

# Success response

# Success response - Success 200

Name Type Description
usernames string[]

An array containing usernames with accounts on the forum

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error searching for usernames

# (Admin) Update User Note

Back to top

This allows Administrators and Moderators to update user notes

PUT /user/notes

# Parameters - Payload

Name Type Description
id string

The id of the note to update

note string

The updated note

# Success response

# Success response - Success 200

Name Type Description
id string

The id of the user note

user_id string

The id of the user who the note is being left on

author_id string

The id of the user leaving the note

note string

The note being left on the user's account

created_at timestamp

The created at timestamp of the note

updated_at timestamp

The updated at timestamp of the note

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating user note

# Error response - Error 403

Name Type Description
Forbidden

User doesn't have permission to update the user note

# Deactivate

Back to top

Deactivate a user by userId

POST /users/:userId/deactivate

# Parameters - Parameter

Name Type Description
id string

The id of the user to deactivate

# Success response

# Success response - Success 200

Name Type Description
status object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error deactivating the user

# Delete

Back to top

Delete a user by userId

DELETE /users/:id

# Parameters - Parameter

Name Type Description
id string

The id of the user to delete

# Success response

# Success response - Success 200

Name Type Description
username string

The deleted user's username

email string

The deleted user's email

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error deleteing the user

# Find

Back to top

Find a user by their username.

GET /users/:username

# Parameters - Parameter

Name Type Description
username string

The username of the user to find

# Success response

# Success response - Success 200

Name Type Description
id string

The user's unique id

username string

The user's username

avatar string

URL to the user's avatar image

ignored boolean

Boolean idicating if user is being ignored

activity number

The user's activity number

signature string

The user's signature with any markup tags converted and parsed into html elements

raw_signature string

The user's signature as it was entered in the editor by the user

priority number

The user's role priority

post_count number

The number of posts made by this user

collapsed_categories string[]

Array containing id of categories the user collapsed

ignored_boards string[]

Array containing id of boards the user ignores

posts_per_page number

Preference indicating the number of posts the user wants to view per page

threads_per_page number

Preference indicating the number of threads the user wants to view per page

name string

The user's actual name (e.g. John Doe)

website string

URL to the user's website

gender string

The user's gender

dob timestamp

The user's date of birth

location string

The user's location

language string

The user's native language (e.g. English)

created_at timestamp

Timestamp of when the user's account was created

updated_at timestamp

Timestamp of when the user's account was last updated

roles string[]

An array containing the users role lookups

role_name string

The name of the user's primary role

role_highlight_color string

The hex color to highlight the user's primary role

# Error response

# Error response - Error 404

Name Type Description
NotFound

The user was not found

# Error response - Error 500

Name Type Description
InternalServerError

There was an error looking up the user

# Ignore User Posts

Back to top

Used to ignore a particular user's posts

POST /ignoreUsers/ignore/:id

# Parameters - Parameter

Name Type Description
id string

The id of the user whose posts to ignore

# Success response

# Success response - Success 200

Name Type Description
user_id string

The id of the user whose posts are ignored

ignored boolean

Boolean indicating if the user's posts are being ignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error ignoring the user's posts

# Invitation Exists

Back to top

Used to check if an invitation has already been sent to an address.

GET /invites/exists

# Parameters - Query

Name Type Description
email string

The email to check

# Success response

# Success response - Success 200

Name Type Description
found boolean

true if the email already has an invite.

# Error response

# Error response - Error 4xx

Name Type Description
BadRequest

There was an error checking if the invitation exists.

# Invitations

Back to top

Used to page through current invitations.

GET /invites

# Parameters - Query

Name Type Description
page string optional

The page of invitations to bring back.

Default value: 1
limit string optional

The number of invitations to bring back.

Default value: 25

# Success response

# Success response - Success 200

Name Type Description
page number

The page of invitations to return

limit number

The number of invitations to return per page

has_more boolean

Boolean indicating if there are more results on the next page

invitations object[]

An array containing invitations.

invitations.email string

The email of the user who was invited

invitations.hash string

The user's invite has

invitations.created_at timestamp

The invite created at timestamp

# Error response

# Error response - Error 4xx

Name Type Description
BadRequest

There was an error paging invitations.

# Invite

Back to top

Used to invite a user to join via email.

POST /invites

# Parameters - Payload

Name Type Description
email string

User's email address.

# Success response

# Success response - Success 200

Name Type Description
message string

Invitation sent success message

confirm_token string

Invitation token

# Error response

# Error response - Error 4xx

Name Type Description
BadRequest

There was an error creating the invitation

# Page Ignored Users

Back to top

Used to page through ignored users

GET /ignoreUsers/ignored

# Parameters - Parameter

Name Type Description
page number optional

The page of ignored users to return

Default value: 1
limit number optional

The number of ignored users to return per page

Default value: 25

# Success response

# Success response - Success 200

Name Type Description
page number

The page of ignored users being returned

limit number

The number of ignored users being returned per page

prev boolean

Boolean indicating if there is a previous page

next boolean

Boolean indicating if there is a next page

data object[]

Array of ignored users

data.id string

The id of the user being ignored

data.ignored_since timestamp

Timestamp of when the user was ignored

data.username string

The username of the user being ignored

data.avatar string

The avatar of the user being ignored

data.ignored boolean

Boolean indicating if the user is ignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error ignoring the user's posts

# Page Users

Back to top

This allows users to page through all registered users.

GET /search/users

# Parameters - Query

Name Type Description
page number optional

The page of registered users to retrieve

Default value: 1
Size range: 1..n
limit number optional

The number of users to retrieve per page

Default value: 25
Size range: 1..n
field string optional

The db field to sort the results by

Default value: username
Allowed values: "username","role","created_at","post_count"
desc boolean optional

Boolean indicating whether or not to sort the results in descending order

Default value: false
search string optional

Username to search for

# Success response

# Success response - Success 200

Name Type Description
field string

The field the results are sorted by

desc boolean

The order the results are sorted in

page number

The current page of the results

page_count number

Total number of pages in results

search string

The search term used in query

limit number

The number of results returned per page

count number

The total number of results

users object[]

An array of user objects

users.id string

The unique id of the user

users.username string

The username of the user

users.role string

The role of the user

users.created_at timestamp

Timestamp of when the user was created

users.post_count timestamp

The number of posts this user has made

users.avatar timestamp

The user's avatar

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error retrieving the users

# Preferences

Back to top

Get a user's preferences.

GET /users/preferences

# Success response

# Success response - Success 200

Name Type Description
posts_per_page number

The post limit for this user

threads_per_page number

The thread limit for this user

collapsed_categories string[]

The ids of the categories to collapse on boards view

ignored_boards string[]

The ids of the boards the user ignores

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error getting the user's preferences

# Reactivate

Back to top

Reactivate a user by userId

POST /users/:id/reactivate

# Parameters - Parameter

Name Type Description
id string

The id of the user to reactivate

# Success response

# Success response - Success 200

Name Type Description
status object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error reactivating the user

# Remove Invite

Back to top

Used to remove an invite for a user via email.

POST /invites/remove

# Parameters - Payload

Name Type Description
email string

User's email address.

# Success response

# Success response - Success 200

Name Type Description
message string

Invitation removal success message

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error removing the invite

# Resend

Back to top

Used to resend an invitation to a user

POST /invites/resend

# Parameters - Payload

Name Type Description
email string

User's email address

# Success response

# Success response - Success 200

Name Type Description
message string

Invitation sent success message

confirm_token string

Invitation confirmation token

# Error response

# Error response - Error 4xx

Name Type Description
BadRequest

There was an error resending the invitation

# Unignore User Posts

Back to top

Used to unignore a particular user's posts

POST /ignoreUsers/unignore/:id

# Parameters - Parameter

Name Type Description
id string

The id of the user whose posts to unignore

# Success response

# Success response - Success 200

Name Type Description
user_id string

The id of the user whose posts are unignore

ignored boolean

Boolean indicating if the user's posts are being ignored

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an error unignoring the user's posts

# Update

Back to top

Used to update user information such as profile fields, or passwords.

PUT /users/:id

# Parameters - Parameter

Name Type Description
id string

The user's unique id

# Parameters - Payload

Name Type Description
username string optional

The user's username

email string optional

The user's email

email_password string optional

The user's password used for updating email

old_password string optional

The user's old password (used for changing password)

password string optional

The user's new passowrd (used for changing password)

confirmation string optional

The user's new password confirmation (used for changing password)

name string optional

The user's name

website string optional

URL to user's website

btc_address string optional

User's bitcoin wallet address

gender string optional

The user's gender

dob date optional

Date version of the user's dob

location string optional

The user's geographical location

language string optional

The user's native language

position string optional

The user's position title

raw_signature string optional

The user's signature as it was entered in the editor by the user

signature string optional

The user's signature with any markup tags converted and parsed into html elements

avatar string optional

URL to the user's avatar

timezone_offset string optional

Preference for UTC offset for date display

patroller_view boolean optional

Preference to display patroller view

posts_per_page numbers optional

Preference for how many post to view per page

threads_per_page numbers optional

Preference for how many threads to view per page

collapsed_categories string[] optional

Array of category id's which the user has collapsed

ignored_boards string[] optional

Array of board id's which the user has ignored

# Success response

# Success response - Success 200

Name Type Description
id string

The user's unique id

username string optional

The user's username

email string optional

The user's email

name string optional

The user's name

website string optional

URL to user's website

btc_address string optional

User's bitcoin wallet address

gender string optional

The user's gender

dob timestamp optional

Timestamp of the user's dob

location string optional

The user's geographical location

language string optional

The user's native language

position string optional

The user's position title

raw_signature string optional

The user's signature as it was entered in the editor by the user

signature string optional

The user's signature with any markup tags converted and parsed into html elements

avatar string optional

URL to the user's avatar

collapsed_categories string[]

Array containing id of categories the user collapsed

ignored_boards string[]

Array containing id of boards the user ignores

timezone_offset string

Preference indicating UTC offset for date display

posts_per_page number

Preference indicating the number of posts the user wants to view per page

threads_per_page number

Preference indicating the number of threads the user wants to view per page

# Error response

# Error response - Error 400

Name Type Description
BadRequest

Occurs when resetting password and an invalid old password is provided

# Error response - Error 500

Name Type Description
InternalServerError

There was an error updating the user

# User Lookup

Back to top

Query possible username matches and returns their ids for use in UI components

GET /users/lookup/{username}

# Parameters - Parameter

Name Type Description
username string

The name of the user to send the message to

self boolean

Include authed user in lookup

restricted boolean

Hides some internal user accounts from the user lookup

# Success response

# Success response - Success 200

Name Type Description
users object[]

An array of possible username matches

users.id string

The id of the user

users.username string

The username of the user

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue looking up usernames

# Watchlist

# Page Watchlist Boards

Back to top

Page though a user's watched boards

GET /watchlist

# Parameters - Query

Name Type Description
page number optional

The page of watchlist to bring back

Default value: 1
limit number optional

The number of threads to bring back per page

Default value: 25

# Success response

# Success response - Success 200

Name Type Description
page number

The page of results being returned

limit number

The number of results per page

has_more_boards boolean

Boolean indicating if there are more pages of boards

boards object[]

An array containing watched board data

boards.id string

The unique id of the watched board

boards.name string

The name of the watched board

boards.post_count number

The post count of the watched board

boards.thread_count number

The thread count of the watched board

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the board watchlist threads.

# Page Watchlist Threads

Back to top

Page though a user's watched threads

GET /watchlist

# Parameters - Query

Name Type Description
page number optional

The page of watchlist to bring back

Default value: 1
limit number optional

The number of threads to bring back per page

Default value: 25

# Success response

# Success response - Success 200

Name Type Description
page number

The page of results being returned

limit number

The number of results per page

has_more_threads boolean

Boolean indicating if there are more pages of threads

threads object[]

An array containing watched thread data

threads.id string

The unique id of the watched thread

threads.post_count number

The post count of the watched thread

threads.view_count number

The view count of the watched thread

threads.board_name string

The name of the board the thread is in

threads.title string

The title of the thread being watched

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the watchlist threads.

# Page Watchlist Unread

Back to top

Used to page through a user's watchlist filtered by threads with unread posts.

GET /watchlist

# Parameters - Query

Name Type Description
page number optional

The page of watchlist to bring back

Default value: 1
limit number optional

The number of threads to bring back per page

Default value: 25

# Success response

# Success response - Success 200

Name Type Description
page number

The page of results being returned

limit number

The number of results per page

has_more_threads boolean

Boolean indicating if there are more pages of threads

threads object[]

An array containing watched thread data

threads.id string

The unique id of the watched thread

threads.locked boolean

Boolean indicating if the thread is locked

threads.sticky boolean

Boolean indicating if the thread is stickied

threads.has_new_post boolean

Boolean indicating if the thread has new posts

created_at timestamp

Timestamp of when the thread was created

updated_at timestamp

Timestamp of when the thread was last updated

threads.view_count number

The view count of the watched thread

threads.post_count number

The post count of the watched thread

threads.title string

The title of the thread being watched

threads.last_post_id string

The id of the last post in the thread

threads.last_post_position number

The position of the last post in the thread

threads.last_post_created_at timestamp

Timestamp of when the last post was created

threads.last_post_username string

The username of the author of the last post

threads.last_unread_position number

The position of the last unread post

threads.last_unread_post_id string

The id of the last unread post

threads.user object

Object containing data about the author of the thread

threads.user.id string

The id of the author of the thread

threads.user.username string

The username of the author of the thread

threads.user.deleted boolean

Boolean indicating if the thread author has had their account deleted

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the watchlist threads.

# Unwatch Board

Back to top

Used to unmark a user as watching a board.

DELETE /watchlist/boards/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the board being unwatched

# Success response

# Success response - Success 200

Name Type Description
status object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue unwatching the board

# Unwatch Thread

Back to top

Used to unmark a user as watching a thread.

DELETE /watchlist/threads/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread being unwatched

# Success response

# Success response - Success 200

Name Type Description
status object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue unwatching the thread

# View Edit Watchlist

Back to top

Used to view boards and threads for editing a user's watchlist.

GET /watchlist

# Parameters - Query

Name Type Description
limit number optional

The number of threads/boards to bring back per page

Default value: 25

# Success response

# Success response - Success 200

Name Type Description
page number

The page of results being returned

limit number

The number of results per page

has_more_threads boolean

Boolean indicating if there are more pages of threads

has_more_boards boolean

Boolean indicating if there are more pages of boards

threads object[]

An array containing watched thread data

threads.id string

The unique id of the watched thread

threads.post_count number

The post count of the watched thread

threads.view_count number

The view count of the watched thread

threads.board_name string

The name of the board the thread is in

threads.title string

The title of the thread being watched

boards object[]

An array containing watched board data

boards.id string

The unique id of the watched board

boards.name string

The name of the watched board

boards.post_count number

The post count of the watched board

boards.thread_count number

The thread count of the watched board

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue retrieving the watchlist threads.

# Watch Board

Back to top

Used to mark a user as watching a board.

POST /watchlist/boards/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the board being watched

# Success response

# Success response - Success 200

Name Type Description
status object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue watching the board

# Watch Thread

Back to top

Used to mark a user as watching a thread.

POST /watchlist/threads/:id

# Parameters - Parameter

Name Type Description
id string

The unique id of the thread being watched

# Success response

# Success response - Success 200

Name Type Description
status object

200 OK

# Error response

# Error response - Error 500

Name Type Description
InternalServerError

There was an issue watching the thread