# API Reference
Overview of Epochtalk API
- Ads
- Auth
- AutoModeration
- Bans
- Boards
- Breadcrumbs
- Categories
- Conversations
- Legal
- Mentions
- Messages
- Moderation
- Moderators
- MOTD
- Notifications
- Portal
- Posts
- Rank
- Reports
- (Admin) Create Message Report Note
- (Admin) Create Post Report Note
- (Admin) Create User Report Note
- (Admin) Page Message Report
- (Admin) Page Message Report Notes
- (Admin) Page Post Report
- (Admin) Page Post Report Notes
- (Admin) Page User Report
- (Admin) Page User Report Notes
- (Admin) Update Message Report
- (Admin) Update Message Report Note
- (Admin) Update Post Report
- (Admin) Update Post Report Note
- (Admin) Update User Report
- (Admin) Update User Report Note
- Create Message Report
- Create Post Report
- Create User Report
- Roles
- Settings
- ThreadNotifications
- Threads
- Trust
- Users
- (Admin) Add Roles
- (Admin) Count Users
- (Admin) Create User Note
- (Admin) Delete User Note
- (Admin) Page User Notes
- (Admin) Page Users
- (Admin) Recover Account
- (Admin) Remove Roles
- (Admin) Search Usernames
- (Admin) Update User Note
- Deactivate
- Delete
- Find
- Ignore User Posts
- Invitation Exists
- Invitations
- Invite
- Page Ignored Users
- Page Users
- Preferences
- Reactivate
- Remove Invite
- Resend
- Unignore User Posts
- Update
- User Lookup
- Watchlist
# Ads
# Ad Analytics
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Used to check if an email is available when registering a new account.
GET /register/email/:email
# Parameters - Parameter
| Name | Type | Description |
|---|---|---|
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
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 |
# Login/Auth with Google
Used to log a user into their account with Google oAuth2.
POST /auth/google
# Parameters - Payload
| Name | Type | Description |
|---|---|---|
| access_token | string | Oauth2 access token |
| username | string | User's account name |
| remember_me | boolean | Keep user logged in |
# Success response
# Success response - Success 200
| Name | Type | Description |
|---|---|---|
| token | string | User's authentication token |
| has_account | boolean | if the user has an existing account |
| 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
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
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)
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. |
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)
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. |
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)
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. |
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
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
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
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
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
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
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
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
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
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: falseAllowed 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
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
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
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
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
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: 1Size range: 1..n |
| limit | number | optional The number of results per page to return Default value: 25Size 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
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: 1Size range: 1..n |
| limit | number | optional The number of results per page to return Default value: 25Size 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_slugs | string[] | An array of the board slugs 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
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
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
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 |
# Convert Board Slug to Id
Used to retrieve a board's id via is slug.
GET /boards/:slug/id
# Parameters - Parameter
| Name | Type | Description |
|---|---|---|
| slug | string | The slug of the board |
# Success response
# Success response - Success 200
| Name | Type | Description |
|---|---|---|
| id | string | The unqiue id of the board |
# Error response
# Error response - Error 500
| Name | Type | Description |
|---|---|---|
| InternalServerError | There was an issue finding a board with the provided slug |
# Create
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
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
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
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
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
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
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)
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: 25Size 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)
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
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
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
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
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
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
# (Admin) Reset Legal Text
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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: 1Size range: 1..n |
| limit | number | optional The number of logs to retrieve per page Default value: 25Size 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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: 1Size range: 1..n |
| limit | number | optional How many posts to return per page Default value: 25Size 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
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: 1Size range: 1..n |
| limit | number | optional How many posts to return per page Default value: 25Size 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
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
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
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: 1Size range: 1..n |
| limit | number | optional The number of search results per page Default value: 25Size 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
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
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
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
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
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
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
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
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
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_atAllowed 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
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
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_atAllowed 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
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
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_atAllowed 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
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
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
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
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
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
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
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
Used to report a private message for moderators/administrators to review.
POST /reports/messages
# Parameters - Payload
| Name | Type | Description |
|---|---|---|
| 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
Used to report a post for moderators/administrators to review.
POST /reports/users
# Parameters - Payload
| Name | Type | Description |
|---|---|---|
| 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
Used to report a user for moderators/administrators to review.
POST /reports/users
# Parameters - Payload
| Name | Type | Description |
|---|---|---|
| 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
# Convert Thread Slug to Id
Used to retrieve a threads id via is slug.
GET /threads/:slug/id
# Parameters - Parameter
| Name | Type | Description |
|---|---|---|
| slug | string | The slug of the thread |
# Success response
# Success response - Success 200
| Name | Type | Description |
|---|---|---|
| id | string | The unqiue id of the thread |
# Error response
# Error response - Error 500
| Name | Type | Description |
|---|---|---|
| InternalServerError | There was an issue find a thread with the provided slug |
# Create
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 |
| slug | string | The slug 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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: 1Size range: 1..n |
| limit | number | optional The number of results per page to return Default value: 25Size 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
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: 1Size range: 1..n |
| limit | number | optional The number of users to retrieve per page Default value: 25Size range: 1..n |
| field | string | optional The db field to sort the results by Default value: usernameAllowed 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
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
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 |
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
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
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
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
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 |
string | The deleted user's email |
# Error response
# Error response - Error 500
| Name | Type | Description |
|---|---|---|
| InternalServerError | There was an error deleteing the user |
# Find
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
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
Used to check if an invitation has already been sent to an address.
GET /invites/exists
# Parameters - Query
| Name | Type | Description |
|---|---|---|
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
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
Used to invite a user to join via email.
POST /invites
# Parameters - Payload
| Name | Type | Description |
|---|---|---|
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
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
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: 1Size range: 1..n |
| limit | number | optional The number of users to retrieve per page Default value: 25Size range: 1..n |
| field | string | optional The db field to sort the results by Default value: usernameAllowed 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
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
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
Used to remove an invite for a user via email.
POST /invites/remove
# Parameters - Payload
| Name | Type | Description |
|---|---|---|
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
Used to resend an invitation to a user
POST /invites/resend
# Parameters - Payload
| Name | Type | Description |
|---|---|---|
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
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
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 |
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 |
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
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
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
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
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
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
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
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
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
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 |