You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

10240 lines
416 KiB
YAML

openapi: 3.0.0
info:
title: nodebb
version: 1.13.2
license:
name: GPL-3.0
description: >-
# Introduction
The following document outlines every Read API route available via NodeBB. Unlike the write API, the v1.x API was coded organically, and is **not** strictly RESTful. These shortcomings will be addressed in the v2.x version of the API.
## Authentication
Authentication with this API is done via cookies. A valid login session is required for API calls that pertain to operations involving a logged-in user. For example, `/api/unread` is a route showing unread topics, and is not accessible by guest users.
tags:
- name: home
description: Routes used at the forum index only
- name: categories
description: Category hierarchy and navigation
- name: topics
- name: posts
- name: users
- name: authentication
description: User authentication (e.g. login/registration)
- name: groups
description: User groups
- name: admin
description: Administrative Control Panel (ACP) routing
- name: emails
description: Email utilities
- name: flags
description: Reporting of content by users
- name: notifications
description: Real-time notifications
- name: search
- name: tags
description: Disparate method of categorizing topics
- name: shorthand
description: Convenience and utility routes for accessing other part of the API
paths:
/api/:
get:
tags:
- home
description: >
This route is used to populate the homepage of NodeBB. It is the main
access point of the forum, and shows a list of categories for navigation
purposes.
summary: /api/
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
title:
type: string
categories:
type: array
items:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
children:
type: array
items:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tagWhitelist:
type: array
items: {}
unread-class:
type: string
children:
type: array
items: {}
parent:
$ref: components/schemas/CategoryObject.yaml#/CategoryObject
posts:
type: array
items:
type: object
properties:
pid:
type: number
timestamp:
type: number
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to
users without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction
with `icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
cid:
type: number
description: A category identifier
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
topic:
type: object
properties:
slug:
type: string
title:
type: string
imageClass:
type: string
timesClicked:
type: number
posts:
type: array
items:
type: object
properties:
pid:
type: number
timestamp:
type: number
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
cid:
type: number
description: A category identifier
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
topic:
type: object
properties:
slug:
type: string
title:
type: string
teaser:
type: object
properties:
url:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
pid:
type: number
topic:
type: object
properties:
slug:
type: string
title:
type: string
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
upvotes:
type: number
downvotes:
type: number
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
oldUid:
type: number
groupTitle:
type: string
groupTitleArray:
type: array
items: {}
fullname:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
thumb:
type: string
teaserPid:
type: number
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/post/{pid}/raw":
get:
tags:
- posts
summary: /api/post/{pid}/raw
parameters:
- name: pid
in: path
required: true
schema:
type: number
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
properties:
pid:
type: number
content:
type: string
/api/admin:
get:
tags:
- admin
summary: /api/admin
responses: {}
/api/admin/general/dashboard:
get:
tags:
- admin
summary: /api/admin/general/dashboard
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
version:
type: string
lookupFailed:
type: boolean
latestVersion:
type: string
upgradeAvailable:
type: boolean
currentPrerelease:
type: boolean
notices:
type: array
items:
type: object
properties:
done:
type: boolean
doneText:
type: string
notDoneText:
type: string
tooltip:
type: string
link:
type: string
stats:
type: array
items:
type: object
properties:
yesterday:
type: number
today:
type: number
lastweek:
type: number
thisweek:
type: number
lastmonth:
type: number
thismonth:
type: number
alltime:
type: number
dayIncrease:
type: string
dayTextClass:
type: string
weekIncrease:
type: string
weekTextClass:
type: string
monthIncrease:
type: string
monthTextClass:
type: string
name:
type: string
canRestart:
type: boolean
lastrestart:
type: object
properties:
uid:
type: number
description: A user identifier
ip:
type: string
timestamp:
type: number
user:
$ref: components/schemas/UserObject.yaml#/UserObject
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/general/languages:
get:
tags:
- admin
summary: /api/admin/general/languages
responses: {}
/api/admin/general/sounds:
get:
tags:
- admin
summary: /api/admin/general/sounds
responses: {}
/api/admin/general/navigation:
get:
tags:
- admin
summary: /api/admin/general/navigation
responses: {}
/api/admin/general/homepage:
get:
tags:
- admin
summary: /api/admin/general/homepage
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
routes:
type: array
items:
type: object
properties:
route:
type: string
name:
type: string
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/general/social:
get:
tags:
- admin
summary: /api/admin/general/social
responses: {}
/api/admin/manage/categories:
get:
tags:
- admin
summary: /api/admin/manage/categories
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/admin/manage/categories/{category_id}":
get:
tags:
- admin
summary: /api/admin/manage/categories/{category_id}
parameters:
- name: category_id
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
category:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tagWhitelist:
type: array
items: {}
unread-class:
type: string
parent:
$ref: components/schemas/CategoryObject.yaml#/CategoryObject
allCategories:
type: array
items:
type: object
properties:
text:
type: string
value:
type: number
selected:
type: boolean
customClasses:
type: array
items: {}
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/admin/manage/categories/{category_id}/analytics":
get:
tags:
- admin
summary: /api/admin/manage/categories/{category_id}/analytics
parameters:
- name: category_id
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
name:
type: string
analytics:
type: object
properties:
pageviews:hourly:
type: array
items:
type: number
pageviews:daily:
type: array
items:
type: number
topics:daily:
type: array
items:
type: number
posts:daily:
type: array
items:
type: number
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/admin/manage/privileges/{cid?}":
get:
tags:
- admin
summary: /api/admin/manage/privileges/{cid?}
parameters:
- name: cid?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
privileges:
type: object
properties:
labels:
type: object
properties:
users:
type: array
items:
type: object
properties:
name:
type: string
groups:
type: array
items:
type: object
properties:
name:
type: string
users:
type: array
items: {}
groups:
type: array
items:
type: object
properties:
name:
type: string
nameEscaped:
type: string
privileges:
type: object
properties:
groups:find:
type: boolean
groups:read:
type: boolean
groups:topics:read:
type: boolean
groups:topics:create:
type: boolean
groups:topics:reply:
type: boolean
groups:topics:tag:
type: boolean
groups:posts:edit:
type: boolean
groups:posts:history:
type: boolean
groups:posts:delete:
type: boolean
groups:posts:upvote:
type: boolean
groups:posts:downvote:
type: boolean
groups:topics:delete:
type: boolean
groups:posts:view_deleted:
type: boolean
groups:purge:
type: boolean
groups:moderate:
type: boolean
isPrivate:
type: boolean
columnCountUser:
type: number
columnCountUserOther:
type: number
columnCountGroup:
type: number
columnCountGroupOther:
type: number
categories:
type: array
items:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
icon:
type: string
selected:
type: boolean
level:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
imageClass:
type: string
selectedCategory:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
level:
type: string
icon:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
selected:
type: boolean
cid:
type: number
description: A category identifier
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/manage/tags:
get:
tags:
- admin
summary: /api/admin/manage/tags
responses: {}
/api/admin/manage/post-queue:
get:
tags:
- admin
summary: /api/admin/manage/post-queue
responses: {}
/api/admin/manage/ip-blacklist:
get:
tags:
- admin
summary: /api/admin/manage/ip-blacklist
responses: {}
/api/admin/manage/users:
get:
tags:
- admin
summary: /api/admin/manage/users
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
users:
type: array
items:
$ref: components/schemas/UserObject.yaml#/UserObject
page:
type: number
pageCount:
type: number
resultsPerPage:
type: number
latest:
type: boolean
search_display:
type: string
requireEmailConfirmation:
type: number
inviteOnly:
type: boolean
adminInviteOnly:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/manage/users/search:
get:
tags:
- admin
summary: /api/admin/manage/users/search
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
search_display:
type: string
users:
type: array
items: {}
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/manage/users/latest:
get:
tags:
- admin
summary: /api/admin/manage/users/latest
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
users:
type: array
items:
$ref: components/schemas/UserObject.yaml#/UserObject
page:
type: number
pageCount:
type: number
resultsPerPage:
type: number
latest:
type: boolean
search_display:
type: string
requireEmailConfirmation:
type: number
inviteOnly:
type: boolean
adminInviteOnly:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/manage/users/not-validated:
get:
tags:
- admin
summary: /api/admin/manage/users/not-validated
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
users:
type: array
items:
$ref: components/schemas/UserObject.yaml#/UserObject
page:
type: number
pageCount:
type: number
resultsPerPage:
type: number
notvalidated:
type: boolean
search_display:
type: string
requireEmailConfirmation:
type: number
inviteOnly:
type: boolean
adminInviteOnly:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/manage/users/no-posts:
get:
tags:
- admin
summary: /api/admin/manage/users/no-posts
responses: {}
/api/admin/manage/users/top-posters:
get:
tags:
- admin
summary: /api/admin/manage/users/top-posters
responses: {}
/api/admin/manage/users/most-reputation:
get:
tags:
- admin
summary: /api/admin/manage/users/most-reputation
responses: {}
/api/admin/manage/users/inactive:
get:
tags:
- admin
summary: /api/admin/manage/users/inactive
responses: {}
/api/admin/manage/users/flagged:
get:
tags:
- admin
summary: /api/admin/manage/users/flagged
responses: {}
/api/admin/manage/users/banned:
get:
tags:
- admin
summary: /api/admin/manage/users/banned
responses: {}
/api/admin/manage/registration:
get:
tags:
- admin
summary: /api/admin/manage/registration
responses: {}
/api/admin/manage/admins-mods:
get:
tags:
- admin
summary: /api/admin/manage/admins-mods
responses: {}
/api/admin/manage/groups:
get:
tags:
- admin
summary: /api/admin/manage/groups
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
groups:
type: array
items:
type: object
properties:
name:
type: string
description:
type: string
deleted:
oneOf:
- type: number
- type: string
hidden:
type: number
system:
type: number
userTitle:
type: string
icon:
type: string
labelColor:
type: string
slug:
type: string
createtime:
type: number
memberCount:
type: number
private:
type: number
cover:url:
type: string
cover:position:
type: string
userTitleEnabled:
type: number
disableJoinRequests:
type: number
disableLeave:
type: number
nameEncoded:
type: string
displayName:
type: string
textColor:
type: string
createtimeISO:
type: string
cover:thumb:url:
type: string
ownerUid:
type: number
yourid:
type: number
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/admin/manage/groups/{name}":
get:
tags:
- admin
summary: /api/admin/manage/groups/{name}
parameters:
- name: name
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
group:
type: object
properties:
name:
type: string
slug:
type: string
createtime:
type: number
userTitle:
type: string
userTitleEnabled:
type: number
description:
type: string
memberCount:
type: number
hidden:
type: number
system:
type: number
private:
type: number
disableJoinRequests:
type: number
disableLeave:
type: number
icon:
type: string
labelColor:
type: string
textColor:
type: string
nameEncoded:
type: string
displayName:
type: string
createtimeISO:
type: string
cover:thumb:url:
type: string
cover:url:
type: string
cover:position:
type: string
descriptionParsed:
type: string
members:
type: array
items:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObject
- type: object
properties:
isOwner:
type: boolean
membersNextStart:
type: number
pending:
type: array
items: {}
invited:
type: array
items: {}
isMember:
type: boolean
isPending:
type: boolean
isInvited:
type: boolean
isOwner:
type: boolean
groupNames:
type: array
items:
type: object
properties:
encodedName:
type: string
displayName:
type: string
selected:
type: boolean
allowPrivateGroups:
type: number
maximumGroupNameLength:
type: number
maximumGroupTitleLength:
type: number
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/manage/uploads:
get:
tags:
- admin
summary: /api/admin/manage/uploads
responses: {}
/api/admin/manage/digest:
get:
tags:
- admin
summary: /api/admin/manage/digest
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
title:
type: string
delivery:
type: array
items:
type: object
properties:
username:
type: string
description: A friendly name for a given user account
picture:
nullable: true
type: string
uid:
type: number
description: A user identifier
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without an
avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with `icon:text`
for the user's auto-generated icon
example: "#f44336"
lastDelivery:
type: string
setting:
type: boolean
default:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/admin/settings/{term?}":
get:
tags:
- admin
summary: /api/admin/settings/{term?}
parameters:
- name: term?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
notificationSettings:
type: array
items:
type: object
properties:
name:
type: string
label:
type: string
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/admin/appearance/{term?}":
get:
tags:
- admin
summary: /api/admin/appearance/{term?}
parameters:
- name: term?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/extend/plugins:
get:
tags:
- admin
summary: /api/admin/extend/plugins
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
installed:
type: array
items:
type: object
properties:
latest:
type: string
description:
type: string
name:
type: string
updated:
type: string
url:
type: string
numInstalls:
type: number
isCompatible:
type: boolean
id:
type: string
installed:
type: boolean
active:
type: boolean
isTheme:
type: boolean
error:
type: boolean
version:
type: string
license:
type: object
properties:
name:
type: string
text:
type: string
outdated:
type: boolean
settingsRoute:
type: string
installedCount:
type: number
activeCount:
type: number
inactiveCount:
type: number
upgradeCount:
type: number
download:
type: array
items:
type: object
properties:
name:
type: string
updated:
type: string
description:
type: string
latest:
type: string
url:
type: string
numInstalls:
type: number
isCompatible:
type: boolean
id:
type: string
installed:
type: boolean
active:
type: boolean
incompatible:
type: array
items:
type: object
properties:
latest:
type: string
description:
type: string
name:
type: string
updated:
type: string
url:
type: string
numInstalls:
type: number
isCompatible:
type: boolean
id:
type: string
installed:
type: boolean
active:
type: boolean
submitPluginUsage:
type: number
version:
type: string
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/extend/widgets:
get:
tags:
- admin
summary: /api/admin/extend/widgets
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
templates:
type: array
items:
type: object
properties:
template:
type: string
areas:
type: array
items:
type: object
properties:
name:
type: string
location:
type: string
areas:
type: array
items:
type: object
properties:
name:
type: string
template:
type: string
location:
type: string
data:
type: array
items:
type: object
properties:
widget:
type: string
data:
type: object
properties:
html:
type: string
cid:
type: string
title:
type: string
container:
type: string
groups:
type: array
items: {}
groupsHideFrom:
type: array
items: {}
hide-mobile:
type: string
numTags:
type: string
numUsers:
type: string
text:
type: string
parseAsPost:
type: string
numTopics:
type: string
availableWidgets:
type: array
items:
type: object
properties:
widget:
type: string
name:
type: string
description:
type: string
content:
type: string
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/extend/rewards:
get:
tags:
- admin
summary: /api/admin/extend/rewards
responses: {}
/api/admin/advanced/database:
get:
tags:
- admin
summary: /api/admin/advanced/database
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
redis:
type: object
properties:
aof_current_rewrite_time_sec:
type: string
aof_enabled:
type: string
aof_last_bgrewrite_status:
type: string
aof_last_rewrite_time_sec:
type: string
aof_rewrite_in_progress:
type: string
aof_rewrite_scheduled:
type: string
arch_bits:
type: string
blocked_clients:
type: string
client_biggest_input_buf:
type: string
client_longest_output_list:
type: string
config_file:
type: string
connected_clients:
type: string
connected_slaves:
type: string
db0:
type: string
evicted_keys:
type: string
expired_keys:
type: string
gcc_version:
type: string
hz:
type: string
instantaneous_ops_per_sec:
type: string
keyspace_hits:
type: string
keyspace_misses:
type: string
latest_fork_usec:
type: string
loading:
type: string
lru_clock:
type: string
master_repl_offset:
type: string
mem_allocator:
type: string
mem_fragmentation_ratio:
type: string
multiplexing_api:
type: string
os:
type: string
process_id:
type: string
pubsub_channels:
type: string
pubsub_patterns:
type: string
rdb_bgsave_in_progress:
type: string
rdb_changes_since_last_save:
type: string
rdb_current_bgsave_time_sec:
type: string
rdb_last_bgsave_status:
type: string
rdb_last_bgsave_time_sec:
type: string
rdb_last_save_time:
type: string
redis_build_id:
type: string
redis_git_dirty:
type: string
redis_git_sha1:
type: string
redis_mode:
type: string
redis_version:
type: string
rejected_connections:
type: string
repl_backlog_active:
type: string
repl_backlog_first_byte_offset:
type: string
repl_backlog_histlen:
type: string
repl_backlog_size:
type: string
role:
type: string
run_id:
type: string
sync_full:
type: string
sync_partial_err:
type: string
sync_partial_ok:
type: string
tcp_port:
type: string
total_commands_processed:
type: string
total_connections_received:
type: string
uptime_in_days:
type: string
uptime_in_seconds:
type: string
used_cpu_sys:
type: string
used_cpu_sys_children:
type: string
used_cpu_user:
type: string
used_cpu_user_children:
type: string
used_memory:
type: string
used_memory_human:
type: string
used_memory_lua:
type: string
used_memory_peak:
type: string
used_memory_peak_human:
type: string
used_memory_rss:
type: string
keys:
type: string
expires:
type: string
avg_ttl:
type: string
instantaneous_input:
type: string
instantaneous_output:
type: string
total_net_input:
type: string
total_net_output:
type: string
raw:
type: string
redis:
type: boolean
mongo:
type: object
properties:
db:
type: string
collections:
type: number
objects:
type: number
avgObjSize:
type: string
dataSize:
type: string
storageSize:
type: string
numExtents:
type: number
indexes:
type: number
indexSize:
type: string
ok:
type: number
mem:
type: object
properties:
bits:
type: number
resident:
type: string
virtual:
type: string
supported:
type: boolean
mapped:
type: string
mappedWithJournal:
type: number
collectionData:
type: array
items:
type: object
properties:
name:
type: string
count:
type: number
size:
type: number
avgObjSize:
type: number
storageSize:
type: number
totalIndexSize:
type: number
indexSizes:
type: object
properties:
_id_:
type: number
expireAt_1:
type: number
_key_1_score_-1:
type: number
_key_1_value_-1:
type: number
content_text_uid_1_cid_1:
type: number
network:
type: object
properties:
bytesIn:
type: string
bytesOut:
type: string
numRequests:
type: string
raw:
type: string
fileSize:
type: number
storageEngine:
type: string
host:
type: string
version:
type: string
uptime:
type: number
mongo:
type: boolean
/api/admin/advanced/events:
get:
tags:
- admin
summary: /api/admin/advanced/events
responses: {}
/api/admin/advanced/hooks:
get:
tags:
- admin
summary: /api/admin/advanced/hooks
responses: {}
/api/admin/advanced/logs:
get:
tags:
- admin
summary: /api/admin/advanced/logs
responses: {}
/api/admin/advanced/errors:
get:
tags:
- admin
summary: /api/admin/advanced/errors
responses: {}
/api/admin/advanced/errors/export:
get:
tags:
- admin
summary: /api/admin/advanced/errors/export
responses: {}
/api/admin/advanced/cache:
get:
tags:
- admin
summary: /api/admin/advanced/cache
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
postCache:
type: object
properties:
length:
type: number
max:
type: number
itemCount:
type: number
percentFull:
type: string
avgPostSize:
type: number
hits:
type: string
misses:
type: string
hitRatio:
type: string
groupCache:
type: object
properties:
length:
type: number
max:
type: number
itemCount:
type: number
percentFull:
type: string
hits:
type: string
misses:
type: string
hitRatio:
type: string
localCache:
type: object
properties:
length:
type: number
max:
type: number
itemCount:
type: number
percentFull:
type: string
dump:
type: boolean
hits:
type: string
misses:
type: string
hitRatio:
type: string
objectCache:
type: object
properties:
length:
type: number
max:
type: number
itemCount:
type: number
percentFull:
type: string
hits:
type: string
misses:
type: string
hitRatio:
type: string
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/development/logger:
get:
tags:
- admin
summary: /api/admin/development/logger
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: components/schemas/CommonProps.yaml#/CommonProps
/api/admin/development/info:
get:
tags:
- admin
summary: /api/admin/development/info
responses: {}
/api/admin/users/csv:
get:
tags:
- admin
summary: /api/admin/users/csv
responses: {}
/api/admin/analytics:
get:
tags:
- admin
summary: /api/admin/analytics
responses: {}
/api/admin/category/uploadpicture:
post:
tags:
- admin
summary: /api/admin/category/uploadpicture
responses: {}
/api/admin/uploadfavicon:
post:
tags:
- admin
summary: /api/admin/uploadfavicon
responses: {}
/api/admin/uploadTouchIcon:
post:
tags:
- admin
summary: /api/admin/uploadTouchIcon
responses: {}
/api/admin/uploadlogo:
post:
tags:
- admin
summary: /api/admin/uploadlogo
responses: {}
/api/admin/uploadOgImage:
post:
tags:
- admin
summary: /api/admin/uploadOgImage
responses: {}
/api/admin/upload/sound:
post:
tags:
- admin
summary: /api/admin/upload/sound
responses: {}
/api/admin/upload/file:
post:
tags:
- admin
summary: /api/admin/upload/file
responses: {}
/api/admin/uploadDefaultAvatar:
post:
tags:
- admin
summary: /api/admin/uploadDefaultAvatar
responses: {}
/api/config:
get:
tags:
- home
summary: /api/config
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
properties:
relative_path:
type: string
upload_url:
type: string
siteTitle:
type: string
browserTitle:
type: string
titleLayout:
type: string
showSiteTitle:
type: boolean
minimumTitleLength:
type: number
maximumTitleLength:
type: number
minimumPostLength:
type: number
maximumPostLength:
type: number
minimumTagsPerTopic:
type: number
maximumTagsPerTopic:
type: number
minimumTagLength:
type: number
maximumTagLength:
type: number
useOutgoingLinksPage:
type: boolean
allowGuestHandles:
type: boolean
allowFileUploads:
type: boolean
allowTopicsThumbnail:
type: boolean
usePagination:
type: boolean
disableChat:
type: boolean
disableChatMessageEditing:
type: boolean
maximumChatMessageLength:
type: number
socketioTransports:
type: array
items:
type: string
socketioOrigins:
type: string
websocketAddress:
type: string
maxReconnectionAttempts:
type: number
reconnectionDelay:
type: number
topicsPerPage:
type: number
postsPerPage:
type: number
maximumFileSize:
type: number
theme:id:
type: string
theme:src:
type: string
defaultLang:
type: string
userLang:
type: string
loggedIn:
type: boolean
uid:
type: number
description: A user identifier
cache-buster:
type: string
requireEmailConfirmation:
type: boolean
topicPostSort:
type: string
categoryTopicSort:
type: string
csrf_token:
type: string
searchEnabled:
type: boolean
bootswatchSkin:
type: string
enablePostHistory:
type: boolean
notificationAlertTimeout:
type: number
timeagoCutoff:
type: number
timeagoCodes:
type: array
items:
type: string
cookies:
type: object
properties:
enabled:
type: boolean
message:
type: string
dismiss:
type: string
link:
type: string
link_url:
type: string
acpLang:
type: string
topicSearchEnabled:
type: boolean
hideSubCategories:
type: boolean
hideCategoryLastPost:
type: boolean
enableQuickReply:
type: boolean
markdown:
type: object
properties:
highlight:
type: number
highlightLinesLanguageList:
type: array
items: {}
theme:
type: string
question-and-answer:
type: object
properties:
defaultCid_13:
type: string
defaultCid_1:
type: string
defaultCid_5:
type: string
forceQuestions:
type: string
defaultCid_2:
type: string
defaultCid_6:
type: string
defaultCid_3:
type: string
defaultCid_15:
type: string
defaultCid_7:
type: string
defaultCid_10:
type: string
defaultCid_16:
type: string
defaultCid_21:
type: string
defaultCid_8:
type: string
defaultCid_4:
type: string
defaultCid_14:
type: string
defaultCid_17:
type: string
defaultCid_18:
type: string
defaultCid_19:
type: string
defaultCid_20:
type: string
defaultCid_22:
type: string
defaultCid_26:
type: string
composer-default:
type: object
properties: {}
sso-google:
type: object
properties:
style:
type: string
/api/me:
get:
tags:
- shorthand
summary: /api/me
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: components/schemas/UserObject.yaml#/UserObjectFull
"/api/user/uid/{uid}":
get:
tags:
- users
summary: /api/user/uid/{uid}
parameters:
- name: uid
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: components/schemas/UserObject.yaml#/UserObject
"/api/user/username/{username}":
get:
tags:
- users
summary: /api/user/username/{username}
parameters:
- name: username
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: components/schemas/UserObject.yaml#/UserObject
"/api/user/email/{email}":
get:
tags:
- users
summary: /api/user/email/{email}
parameters:
- name: email
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: components/schemas/UserObject.yaml#/UserObject
"/api/user/uid/{userslug}/export/posts":
get:
tags:
- users
summary: /api/user/uid/{userslug}/export/posts
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses: {}
"/api/user/uid/{userslug}/export/uploads":
get:
tags:
- users
summary: /api/user/uid/{userslug}/export/uploads
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"401":
description: ""
content:
application/json:
schema:
title: not-authorized
type: undefined
"/api/user/uid/{userslug}/export/profile":
get:
tags:
- users
summary: /api/user/uid/{userslug}/export/profile
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses: {}
"/api/{type}/pid/{id}":
get:
tags:
- shorthand
summary: /api/{type}/pid/{id}
parameters:
- name: type
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses: {}
"/api/{type}/tid/{id}":
get:
tags:
- shorthand
summary: /api/{type}/tid/{id}
parameters:
- name: type
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses: {}
"/api/{type}/cid/{id}":
get:
tags:
- shorthand
summary: /api/{type}/cid/{id}
parameters:
- name: type
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses: {}
/api/categories:
get:
tags:
- categories
summary: Get a list of categories
description: >
This route retrieve the list of categories currently available to the
accessing user. It doesn't necessarily mean that the user can *enter*
the category, as that is a separate privilege. Specifically, this route
will return all categories that grant the calling user the "Find
Category" privilege.
Subcategories are also returned, nested under a category's `children` property.
responses:
"200":
description: A list of category objectscurrently available to the accessing user
content:
application/json:
schema:
allOf:
- type: object
properties:
title:
description: The category title
type: string
categories:
description: A collection of category data objects
type: array
items:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tagWhitelist:
type: array
items: {}
unread-class:
type: string
children:
type: array
items:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tagWhitelist:
type: array
items: {}
unread-class:
type: string
children:
type: array
items:
$ref: components/schemas/CategoryObject.yaml#/CategoryObject
parent:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tagWhitelist:
type: array
items: {}
unread-class:
type: string
posts:
type: array
items:
type: object
properties:
pid:
type: number
timestamp:
type: number
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to
users without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction
with `icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
cid:
type: number
description: A category identifier
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
topic:
type: object
properties:
slug:
type: string
title:
type: string
imageClass:
type: string
timesClicked:
type: number
posts:
type: array
items:
type: object
properties:
pid:
type: number
timestamp:
type: number
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
cid:
type: number
description: A category identifier
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
topic:
type: object
properties:
slug:
type: string
title:
type: string
teaser:
type: object
properties:
url:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
pid:
type: number
topic:
type: object
properties:
slug:
type: string
title:
type: string
imageClass:
type: string
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
teaserPid:
type: number
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
fullname:
type: string
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
thumb:
type: string
isQuestion:
nullable: true
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/categories/{cid}/moderators":
get:
tags:
- categories
summary: Get mods for a category
description: >
This route returns an array of uids that correspond to the moderators
for the category in question.
parameters:
- name: cid
description: The category identifier for the category you wish to look up
in: path
required: true
schema:
type: number
responses:
"200":
description: An array of moderators for the requested category
content:
application/json:
schema:
type: object
properties:
moderators:
type: array
example:
moderators:
- 1
- 2
- 3
"/api/recent/posts/{term?}":
get:
tags:
- topics
summary: /api/recent/posts/{term?}
parameters:
- name: term?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: array
items:
type: object
properties:
pid:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
uid:
type: number
description: A user identifier
timestamp:
type: number
deleted:
type: boolean
upvotes:
type: number
downvotes:
type: number
votes:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with `icon:text` for
the user's auto-generated icon
example: "#f44336"
topic:
type: object
properties:
uid:
type: number
description: A user identifier
tid:
type: number
description: A topic identifier
title:
type: string
cid:
type: number
description: A category identifier
slug:
type: string
deleted:
type: number
postcount:
type: number
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
titleRaw:
type: string
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
icon:
type: string
slug:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
bgColor:
type: string
color:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
isMainPost:
type: boolean
/api/unread/total:
get:
tags:
- posts
summary: /api/unread/total
responses: {}
"/api/topic/teaser/{topic_id}":
get:
tags:
- topics
summary: /api/topic/teaser/{topic_id}
parameters:
- name: topic_id
in: path
required: true
schema:
type: string
responses: {}
"/api/topic/pagination/{topic_id}":
get:
tags:
- topics
summary: /api/topic/pagination/{topic_id}
parameters:
- name: topic_id
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: object
properties:
rel:
type: array
items:
type: object
properties:
rel:
type: string
href:
type: string
pages:
type: array
items:
type: object
properties:
page:
type: number
active:
type: boolean
qs:
type: string
currentPage:
type: number
pageCount:
type: number
prev:
type: object
properties:
page:
type: number
active:
type: boolean
qs:
type: string
next:
type: object
properties:
page:
type: number
active:
type: boolean
qs:
type: string
first:
type: object
properties:
page:
type: number
active:
type: boolean
qs:
type: string
last:
type: object
properties:
page:
type: number
active:
type: boolean
qs:
type: string
/api/post/upload:
post:
tags:
- posts
summary: /api/post/upload
responses:
"200":
description: ""
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
text/plain:
schema:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
"403":
description: ""
content:
application/json:
schema:
type: string
example: Forbidden
text/plain:
schema:
type: string
example: Forbidden
"500":
description: ""
content:
application/json:
schema:
type: object
properties:
path:
type: string
error:
type: string
text/plain:
schema:
type: object
properties:
path:
type: string
error:
type: string
/api/topic/thumb/upload:
post:
tags:
- topics
summary: /api/topic/thumb/upload
responses: {}
"/api/user/{userslug}/uploadpicture":
post:
tags:
- users
summary: /api/user/{userslug}/uploadpicture
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
"/api/user/{userslug}/uploadcover":
post:
tags:
- users
summary: /api/user/{userslug}/uploadcover
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses: {}
/api/groups/uploadpicture:
post:
tags:
- groups
summary: /api/groups/uploadpicture
responses: {}
/api/login:
get:
tags:
- authentication
summary: /api/login
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
loginFormEntry:
type: array
items: {}
alternate_logins:
type: boolean
authentication:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
callbackURL:
type: string
icon:
type: string
scope:
type: string
prompt:
type: string
allowRegistration:
type: boolean
allowLoginWith:
type: string
title:
type: string
allowPasswordReset:
type: boolean
allowLocalLogin:
type: boolean
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/register:
get:
tags:
- authentication
summary: /api/register
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
register_window:spansize:
type: string
alternate_logins:
type: boolean
authentication:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
callbackURL:
type: string
icon:
type: string
scope:
type: string
prompt:
type: string
minimumUsernameLength:
type: number
maximumUsernameLength:
type: number
minimumPasswordLength:
type: number
minimumPasswordStrength:
type: number
regFormEntry:
type: array
items:
type: object
properties:
label:
type: string
html:
type: string
styleName:
type: string
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/register/complete:
get:
tags:
- authentication
summary: /api/register/complete
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
title:
type: string
errors:
type: array
items: {}
sections:
type: array
items:
type: string
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/search:
get:
tags:
- search
summary: /api/search
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
posts:
type: array
items:
type: object
properties:
pid:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
uid:
type: number
description: A user identifier
timestamp:
type: number
deleted:
type: boolean
upvotes:
type: number
downvotes:
type: number
votes:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
topic:
type: object
properties:
uid:
type: number
description: A user identifier
tid:
type: number
description: A topic identifier
title:
type: string
cid:
type: number
description: A category identifier
slug:
type: string
deleted:
type: number
postcount:
type: number
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
titleRaw:
type: string
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
icon:
type: string
slug:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
bgColor:
type: string
color:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
isMainPost:
type: boolean
matchCount:
type: number
pageCount:
type: number
time:
type: string
multiplePages:
type: boolean
search_query:
type: string
term:
type: string
categories:
type: array
items:
type: object
properties:
value:
oneOf:
- type: string
- type: number
text:
type: string
categoriesCount:
type: number
expandSearch:
type: boolean
showAsPosts:
type: boolean
showAsTopics:
type: boolean
title:
type: string
searchDefaultSortBy:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/reset/{code?}":
get:
tags:
- authentication
summary: /api/reset/{code?}
parameters:
- name: code?
in: path
required: true
schema:
type: string
responses: {}
"/api/email/unsubscribe/{token}":
get:
tags:
- emails
summary: /api/email/unsubscribe/{token}
parameters:
- name: token
in: path
required: true
schema:
type: string
responses: {}
"/api/topic/{topic_id}/{slug}/{post_index?}":
get:
tags:
- topics
summary: /api/topic/{topic_id}/{slug}/{post_index?}
parameters:
- name: topic_id
in: path
required: true
schema:
type: string
- name: slug
in: path
required: true
schema:
type: string
- name: post_index?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
teaserPid:
type: number
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
posts:
type: array
items:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
tid:
type: number
description: A topic identifier
content:
type: string
timestamp:
type: number
votes:
type: number
deleted:
type: number
upvotes:
type: number
downvotes:
type: number
deleterUid:
type: number
edited:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
editedISO:
type: string
index:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
topiccount:
type: number
picture:
type: string
signature:
type: string
banned:
type: number
banned:expire:
type: number
status:
type: string
lastonline:
type: number
groupTitle:
nullable: true
type: string
groupTitleArray:
type: array
items:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
lastonlineISO:
type: string
banned_until:
type: number
banned_until_readable:
type: string
selectedGroups:
type: array
items:
type: object
properties:
name:
type: string
slug:
type: string
labelColor:
type: string
textColor:
type: string
icon:
type: string
userTitle:
type: string
custom_profile_info:
type: array
items: {}
editor:
nullable: true
bookmarked:
type: boolean
upvoted:
type: boolean
downvoted:
type: boolean
replies:
type: object
properties:
hasMore:
type: boolean
users:
type: array
items: {}
text:
type: string
count:
type: number
selfPost:
type: boolean
display_edit_tools:
type: boolean
display_delete_tools:
type: boolean
display_moderator_tools:
type: boolean
display_move_tools:
type: boolean
display_post_menu:
type: boolean
tagWhitelist:
type: array
items: {}
thread_tools:
type: array
items:
type: object
properties:
class:
type: string
title:
type: string
icon:
type: string
isFollowing:
type: boolean
isNotFollowing:
type: boolean
isIgnoring:
type: boolean
bookmark:
nullable: true
postSharing:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
class:
type: string
activated:
type: boolean
deleter:
nullable: true
merger:
nullable: true
related:
type: array
items: {}
unreplied:
type: boolean
icons:
type: array
items: {}
privileges:
type: object
properties:
topics:reply:
type: boolean
topics:read:
type: boolean
topics:tag:
type: boolean
topics:delete:
type: boolean
posts:edit:
type: boolean
posts:history:
type: boolean
posts:delete:
type: boolean
posts:view_deleted:
type: boolean
read:
type: boolean
purge:
type: boolean
view_thread_tools:
type: boolean
editable:
type: boolean
deletable:
type: boolean
view_deleted:
type: boolean
isAdminOrMod:
type: boolean
disabled:
type: number
tid:
type: string
uid:
type: number
description: A user identifier
topicStaleDays:
type: number
reputation:disabled:
type: number
downvote:disabled:
type: number
feeds:disableRSS:
type: number
bookmarkThreshold:
type: number
postEditDuration:
type: number
postDeleteDuration:
type: number
scrollToMyPost:
type: boolean
allowMultipleBadges:
type: boolean
privateUploads:
type: boolean
rssFeedUrl:
type: string
postIndex:
type: number
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/topic/{topic_id}/{slug?}":
get:
tags:
- topics
summary: /api/topic/{topic_id}/{slug?}
parameters:
- name: topic_id
in: path
required: true
schema:
type: string
- name: slug?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
teaserPid:
type: number
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
posts:
type: array
items:
type: object
properties:
editor:
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
nullable: true
type: object
votes:
type: number
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
pid:
type: number
edited:
type: number
uid:
type: number
description: A user identifier
upvotes:
type: number
bookmarks:
type: number
replies:
type: object
properties:
hasMore:
type: boolean
users:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
administrator:
type: boolean
text:
type: string
count:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
deleted:
type: number
downvotes:
type: number
deleterUid:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
editedISO:
type: string
index:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
fullname:
type: string
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
topiccount:
type: number
picture:
nullable: true
type: string
signature:
type: string
banned:
type: number
banned:expire:
type: number
status:
type: string
lastonline:
type: number
groupTitle:
nullable: true
type: string
groupTitleArray:
type: array
items:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
lastonlineISO:
type: string
banned_until:
type: number
banned_until_readable:
type: string
selectedGroups:
type: array
items:
type: object
properties:
name:
type: string
slug:
type: string
labelColor:
type: string
textColor:
type: string
icon:
type: string
userTitle:
type: string
custom_profile_info:
type: array
items: {}
bookmarked:
type: boolean
upvoted:
type: boolean
downvoted:
type: boolean
selfPost:
type: boolean
display_edit_tools:
type: boolean
display_delete_tools:
type: boolean
display_moderator_tools:
type: boolean
display_move_tools:
type: boolean
display_post_menu:
type: boolean
toPid:
type: number
parent:
type: object
properties:
username:
type: string
description: A friendly name for a given user account
tagWhitelist:
type: array
items: {}
thread_tools:
type: array
items:
type: object
properties:
class:
type: string
title:
type: string
icon:
type: string
isFollowing:
type: boolean
isNotFollowing:
type: boolean
isIgnoring:
type: boolean
bookmark:
nullable: true
postSharing:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
class:
type: string
activated:
type: boolean
deleter:
nullable: true
merger:
nullable: true
related:
type: array
items: {}
unreplied:
type: boolean
icons:
type: array
items: {}
privileges:
type: object
properties:
topics:reply:
type: boolean
topics:read:
type: boolean
topics:tag:
type: boolean
topics:delete:
type: boolean
posts:edit:
type: boolean
posts:history:
type: boolean
posts:delete:
type: boolean
posts:view_deleted:
type: boolean
read:
type: boolean
purge:
type: boolean
view_thread_tools:
type: boolean
editable:
type: boolean
deletable:
type: boolean
view_deleted:
type: boolean
isAdminOrMod:
type: boolean
disabled:
type: number
tid:
type: string
uid:
type: number
description: A user identifier
topicStaleDays:
type: number
reputation:disabled:
type: number
downvote:disabled:
type: number
feeds:disableRSS:
type: number
bookmarkThreshold:
type: number
postEditDuration:
type: number
postDeleteDuration:
type: number
scrollToMyPost:
type: boolean
allowMultipleBadges:
type: boolean
privateUploads:
type: boolean
rssFeedUrl:
type: string
postIndex:
type: number
loggedInUser:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
picture:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without an
avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with `icon:text` for
the user's auto-generated icon
example: "#f44336"
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/post/{pid}":
get:
tags:
- shorthand
summary: /api/post/{pid}
parameters:
- name: pid
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
title: /topic/9995/cannot-post-or-reply-to-posts-in-nodebb-mobile-version/14?_=1574522486637&lang=en-US
type: undefined
text/plain:
schema:
title: /topic/9995/cannot-post-or-reply-to-posts-in-nodebb-mobile-version/14?_=1574522486637&lang=en-US
type: undefined
"404":
description: ""
content:
application/json:
schema:
type: string
example: Not Found
text/plain:
schema:
type: string
example: Not Found
/api/flags:
get:
tags:
- flags
summary: /api/flags
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
flags:
type: array
items:
type: object
properties:
state:
type: string
flagId:
type: number
type:
type: string
targetId:
oneOf:
- type: string
- type: number
description:
type: string
uid:
type: number
description: A user identifier
datetime:
type: number
reporter:
type: object
properties:
username:
type: string
description: A friendly name for a given user account
picture:
nullable: true
type: string
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
labelClass:
type: string
target_readable:
type: string
datetimeISO:
type: string
assignee:
type: string
analytics:
type: array
items:
type: number
categories:
type: object
properties:
"1":
type: string
"2":
type: string
"3":
type: string
"4":
type: string
"5":
type: string
"6":
type: string
"7":
type: string
"10":
type: string
"13":
type: string
"14":
type: string
"15":
type: string
"16":
type: string
"17":
type: string
"18":
type: string
"19":
type: string
"21":
type: string
"22":
type: string
"26":
type: string
hasFilter:
type: boolean
filters:
type: object
properties:
page:
type: number
perPage:
type: number
title:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/flags/{flagId}":
get:
tags:
- flags
summary: /api/flags/{flagId}
parameters:
- name: flagId
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
state:
type: string
flagId:
type: number
type:
type: string
targetId:
type: string
description:
type: string
uid:
type: number
description: A user identifier
datetime:
type: number
datetimeISO:
type: string
target_readable:
type: string
target:
type: object
properties: {}
history:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
fields:
type: object
properties:
state:
type: string
datetime:
type: number
datetimeISO:
type: string
user:
type: object
properties:
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
uid:
type: number
description: A user identifier
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
notes:
type: array
items: {}
reporter:
type: object
properties:
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
reputation:
type: number
uid:
type: number
description: A user identifier
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without an
avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with `icon:text` for
the user's auto-generated icon
example: "#f44336"
type_path:
type: string
assignees:
type: array
items:
$ref: components/schemas/UserObject.yaml#/UserObject
type_bool:
type: object
properties:
post:
type: boolean
user:
type: boolean
empty:
type: boolean
title:
type: string
categories:
type: object
additionalProperties:
type: string
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/post-queue:
get:
tags:
- admin
summary: /api/post-queue
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
title:
type: string
posts:
type: array
items:
allOf:
- type: object
properties:
id:
type: string
uid:
type: number
description: A user identifier
type:
type: string
data:
type: object
properties:
title:
type: string
content:
type: string
thumb:
type: string
cid:
oneOf:
- type: number
- type: string
tags:
type: array
items: {}
uid:
type: number
description: A user identifier
req:
type: object
properties:
uid:
type: number
description: A user identifier
ip:
type: string
host:
type: string
protocol:
type: string
secure:
type: boolean
url:
type: string
path:
type: string
headers:
type: object
properties:
x-real-ip:
type: string
x-forwarded-for:
type: string
x-forwarded-proto:
type: string
host:
type: string
x-nginx-proxy:
type: string
connection:
type: string
accept:
type: string
user-agent:
type: string
sec-fetch-site:
type: string
sec-fetch-mode:
type: string
referer:
type: string
accept-encoding:
type: string
accept-language:
type: string
cookie:
type: string
timestamp:
type: number
fromQueue:
type: boolean
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
rawContent:
type: string
tid:
type: number
description: A topic identifier
toPid:
nullable: true
user:
type: object
properties:
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
uid:
type: number
description: A user identifier
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
topic:
type: object
properties:
cid:
oneOf:
- type: number
- type: string
title:
type: string
titleRaw:
type: string
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/ip-blacklist:
get:
tags:
- admin
summary: /api/ip-blacklist
responses: {}
/api/registration-queue:
get:
tags:
- admin
summary: /api/registration-queue
responses: {}
"/api/tags/{tag}":
get:
tags:
- tags
summary: /api/tags/{tag}
description: Returns a list of topics that are tagged with {tag}
parameters:
- name: tag
description: The tag used to retrieve the topics
in: path
required: true
schema:
type: string
- name: page
description: Page number used in pagination
in: query
required: false
schema:
type: number
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
topics:
type: array
description: An array of topics that are all tagged with {tag}
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
teaserPid:
oneOf:
- type: number
- type: string
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
upvotes:
type: number
downvotes:
type: number
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
fullname:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
thumb:
type: string
isQuestion:
nullable: true
type: number
isSolved:
type: number
tag:
type: string
title:
type: string
categories:
type: array
items:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
level:
type: string
icon:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
selected:
type: boolean
imageClass:
type: string
rssFeedUrl:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/tags:
get:
tags:
- tags
summary: /api/tags
description: Returns a list of tags sorted by the most topics
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
tags:
type: array
description: An array of tags sorted by the most topics
items:
type: object
properties:
value:
type: string
description: The raw tag
score:
type: number
description: Number of topics tagged by this tag
valueEscaped:
type: string
description: This is the escaped tag value, equal to validator.escape(value)
color:
type: string
bgColor:
type: string
displayTagSearch:
type: boolean
nextStart:
type: number
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/popular:
get:
tags:
- topics
summary: Popular Topics
description: Returns a list of topics sorted by most replies. In an event of a
tie breaker, the topic with the most views. Can be filtered by All Time,
Day, Week, or Month.
responses:
"200":
description: An array of topic objects sorted by most replies and views.
content:
application/json:
schema:
allOf:
- type: object
properties:
nextStart:
type: number
topicCount:
type: number
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
thumb:
type: string
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
teaserPid:
oneOf:
- type: number
- type: string
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
fullname:
type: string
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
tids:
type: array
items:
type: number
canPost:
type: boolean
categories:
type: array
items:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
level:
type: string
icon:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
selected:
type: boolean
imageClass:
type: string
allCategoriesUrl:
type: string
selectedCids:
type: array
items: {}
feeds:disableRSS:
type: number
rssFeedUrl:
type: string
title:
type: string
filters:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
filter:
type: string
selectedFilter:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
filter:
type: string
terms:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
term:
type: string
selectedTerm:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
term:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/recent:
get:
tags:
- topics
summary: Recent Topics
description: Returns a list of topics sorted by timestamp.
responses:
"200":
description: An array of topic objects sorted by timestamp.
content:
application/json:
schema:
allOf:
- type: object
properties:
nextStart:
type: number
topicCount:
type: number
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
teaserPid:
type: number
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
fullname:
type: string
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
thumb:
type: string
isQuestion:
nullable: true
tids:
type: array
items:
type: number
canPost:
type: boolean
categories:
type: array
items:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
level:
type: string
icon:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
selected:
type: boolean
imageClass:
type: string
allCategoriesUrl:
type: string
selectedCids:
type: array
items: {}
feeds:disableRSS:
type: number
rssFeedUrl:
type: string
title:
type: string
filters:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
filter:
type: string
selectedFilter:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
filter:
type: string
terms:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
term:
type: string
selectedTerm:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
term:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/top:
get:
tags:
- topics
summary: Top Topics
description: Returns a list of topics sorted by most upvotes.
responses:
"200":
description: An array of topic objects sorted by most upvotes.
content:
application/json:
schema:
allOf:
- type: object
properties:
nextStart:
type: number
topicCount:
type: number
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
teaserPid:
type: string
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
fullname:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
thumb:
type: string
tids:
type: array
items:
type: number
canPost:
type: boolean
categories:
type: array
items:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
level:
type: string
icon:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
selected:
type: boolean
imageClass:
type: string
allCategoriesUrl:
type: string
selectedCategory:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
level:
type: string
icon:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
selected:
type: boolean
selectedCids:
type: array
items:
type: number
feeds:disableRSS:
type: number
rssFeedUrl:
type: string
title:
type: string
filters:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
filter:
type: string
selectedFilter:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
filter:
type: string
terms:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
term:
type: string
selectedTerm:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
term:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/unread:
get:
tags:
- topics
summary: Unread Topics
description: Returns a list of the current user's unread topics, sorted by the
last post's timestamp.
responses:
"200":
description: An array of unread topic objects sorted by the last post's timestamp.
content:
application/json:
schema:
allOf:
- type: object
properties:
showSelect:
type: boolean
nextStart:
type: number
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
teaserPid:
type: number
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
fullname:
type: string
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
isQuestion:
nullable: true
topicCount:
type: number
title:
type: string
pageCount:
type: number
categories:
type: array
items:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
level:
type: string
icon:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
selected:
type: boolean
imageClass:
type: string
allCategoriesUrl:
type: string
selectedCids:
type: array
items: {}
filters:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
filter:
type: string
selectedFilter:
type: object
properties:
name:
type: string
url:
type: string
selected:
type: boolean
filter:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/category/{category_id}/{slug}/{topic_index}":
get:
tags:
- categories
summary: /api/category/{category_id}/{slug}/{topic_index}
parameters:
- name: category_id
in: path
required: true
schema:
type: string
- name: slug
in: path
required: true
schema:
type: string
- name: topic_index
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tagWhitelist:
type: array
items: {}
unread-class:
type: string
children:
type: array
items:
$ref: components/schemas/CategoryObject.yaml#/CategoryObject
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
thumb:
type: string
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
fullname:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items: {}
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
teaserPid:
type: number
nextStart:
type: number
isWatched:
type: boolean
isNotWatched:
type: boolean
isIgnored:
type: boolean
title:
type: string
privileges:
type: object
properties:
topics:create:
type: boolean
topics:read:
type: boolean
topics:tag:
type: boolean
read:
type: boolean
cid:
type: string
uid:
type: number
description: A user identifier
editable:
type: boolean
view_deleted:
type: boolean
isAdminOrMod:
type: boolean
showSelect:
type: boolean
rssFeedUrl:
type: string
feeds:disableRSS:
type: number
reputation:disabled:
type: number
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/category/{category_id}/{slug?}":
get:
tags:
- categories
summary: /api/category/{category_id}/{slug?}
parameters:
- name: category_id
in: path
required: true
schema:
type: string
- name: slug?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/CategoryObject.yaml#/CategoryObject
- type: object
properties:
tagWhitelist:
type: array
items: {}
unread-class:
type: string
children:
type: array
items:
$ref: components/schemas/CategoryObject.yaml#/CategoryObject
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
thumb:
type: string
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
teaserPid:
type: number
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
fullname:
type: string
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
isQuestion:
type: number
isSolved:
type: number
nextStart:
type: number
isWatched:
type: boolean
isNotWatched:
type: boolean
isIgnored:
type: boolean
title:
type: string
privileges:
type: object
properties:
topics:create:
type: boolean
topics:read:
type: boolean
topics:tag:
type: boolean
read:
type: boolean
cid:
type: string
uid:
type: number
description: A user identifier
editable:
type: boolean
view_deleted:
type: boolean
isAdminOrMod:
type: boolean
showSelect:
type: boolean
rssFeedUrl:
type: string
feeds:disableRSS:
type: number
reputation:disabled:
type: number
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/me/*:
get:
tags:
- shorthand
summary: /api/me/*
responses: {}
"/api/uid/{uid*}":
get:
tags:
- shorthand
summary: /api/uid/{uid*}
parameters:
- name: uid*
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
title: /user/the-penultimate-defenestrator
type: undefined
"/api/user/{userslug}":
get:
tags:
- users
summary: Get user profile
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
posts:
type: array
items:
type: object
properties:
pid:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
uid:
type: number
description: A user identifier
timestamp:
type: number
deleted:
type: boolean
upvotes:
type: number
downvotes:
type: number
votes:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
type: string
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
topic:
type: object
properties:
uid:
type: number
description: A user identifier
tid:
type: number
description: A topic identifier
title:
type: string
cid:
type: number
description: A category identifier
slug:
type: string
deleted:
type: number
postcount:
type: number
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
titleRaw:
type: string
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
icon:
type: string
slug:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
bgColor:
type: string
color:
type: string
image:
nullable: true
imageClass:
nullable: true
isMainPost:
type: boolean
latestPosts:
type: array
items:
type: object
properties:
pid:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
uid:
type: number
description: A user identifier
timestamp:
type: number
deleted:
type: boolean
upvotes:
type: number
downvotes:
type: number
votes:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
type: string
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
topic:
type: object
properties:
uid:
type: number
description: A user identifier
tid:
type: number
description: A topic identifier
title:
type: string
cid:
type: number
description: A category identifier
slug:
type: string
deleted:
type: number
postcount:
type: number
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
titleRaw:
type: string
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
icon:
type: string
slug:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
bgColor:
type: string
color:
type: string
image:
nullable: true
imageClass:
nullable: true
isMainPost:
type: boolean
bestPosts:
type: array
items:
type: object
properties:
pid:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
uid:
type: number
description: A user identifier
timestamp:
type: number
deleted:
type: boolean
upvotes:
type: number
downvotes:
type: number
votes:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
type: string
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
topic:
type: object
properties:
uid:
type: number
description: A user identifier
tid:
type: number
description: A topic identifier
title:
type: string
cid:
type: number
description: A category identifier
slug:
type: string
deleted:
type: number
postcount:
type: number
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
titleRaw:
type: string
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
icon:
type: string
slug:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
bgColor:
type: string
color:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
isMainPost:
type: boolean
hasPrivateChat:
type: number
title:
type: string
allowCoverPicture:
type: boolean
selectedGroup:
type: array
items:
type: object
properties:
name:
type: string
slug:
type: string
createtime:
type: number
userTitle:
type: string
description:
type: string
memberCount:
type: number
deleted:
type: string
hidden:
type: number
system:
type: number
private:
type: number
ownerUid:
type: number
icon:
type: string
labelColor:
type: string
cover:url:
type: string
cover:position:
type: string
userTitleEnabled:
type: number
disableJoinRequests:
type: number
disableLeave:
type: number
nameEncoded:
type: string
displayName:
type: string
textColor:
type: string
createtimeISO:
type: string
cover:thumb:url:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/following":
get:
tags:
- users
summary: Get followed users
parameters:
- name: userslug
in: path
required: true
schema:
type: string
- name: page
in: query
schema:
type: number
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
title:
type: string
users:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
status:
type: string
postcount:
type: number
reputation:
type: number
email:confirmed:
type: number
description: Whether the user has confirmed their email address or not
lastonline:
type: number
flags:
nullable: true
banned:
type: number
banned:expire:
type: number
joindate:
type: number
description: A UNIX timestamp representing the moment the user's account was
created
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without an
avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with `icon:text`
for the user's auto-generated icon
example: "#f44336"
joindateISO:
type: string
lastonlineISO:
type: string
banned_until:
type: number
banned_until_readable:
type: string
administrator:
type: boolean
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/followers":
get:
tags:
- users
summary: Get followers
parameters:
- name: userslug
in: path
required: true
schema:
type: string
- name: page
in: query
schema:
type: number
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
title:
type: string
users:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
status:
type: string
postcount:
type: number
reputation:
type: number
email:confirmed:
type: number
description: Whether the user has confirmed their email address or not
lastonline:
type: number
flags:
nullable: true
banned:
type: number
banned:expire:
type: number
joindate:
type: number
description: A UNIX timestamp representing the moment the user's account was
created
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without an
avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with `icon:text`
for the user's auto-generated icon
example: "#f44336"
joindateISO:
type: string
lastonlineISO:
type: string
banned_until:
type: number
banned_until_readable:
type: string
administrator:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/categories":
get:
tags:
- users
summary: /api/user/{userslug}/categories
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
categories:
type: array
items:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
level:
type: string
icon:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
color:
type: string
bgColor:
type: string
descriptionParsed:
type: string
depth:
type: number
slug:
type: string
isIgnored:
type: boolean
isWatched:
type: boolean
isNotWatched:
type: boolean
imageClass:
type: string
title:
type: string
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/posts":
get:
tags:
- users
summary: /api/user/{userslug}/posts
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
posts:
type: array
items: {}
nextStart:
type: number
noItemsFoundKey:
type: string
title:
type: string
showSort:
type: boolean
sortOptions:
type: array
items:
type: object
properties:
url:
type: string
name:
type: string
selected:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/topics":
get:
tags:
- users
summary: /api/user/{userslug}/topics
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObject
- type: object
properties:
age:
type: number
emailClass:
type: string
moderationNote:
type: string
isBlocked:
type: boolean
yourid:
type: number
theirid:
type: number
isTargetAdmin:
type: boolean
isAdmin:
type: boolean
isGlobalModerator:
type: boolean
isModerator:
type: boolean
isAdminOrGlobalModerator:
type: boolean
isAdminOrGlobalModeratorOrModerator:
type: boolean
isSelfOrAdminOrGlobalModerator:
type: boolean
canEdit:
type: boolean
canBan:
type: boolean
canChangePassword:
type: boolean
isSelf:
type: boolean
isFollowing:
type: boolean
showHidden:
type: boolean
groups:
type: array
items: {}
disableSignatures:
type: boolean
reputation:disabled:
type: boolean
downvote:disabled:
type: boolean
profile_links:
type: array
items: {}
sso:
type: array
items:
type: object
properties:
associated:
type: boolean
url:
type: string
name:
type: string
icon:
type: string
websiteLink:
type: string
websiteName:
type: string
username:disableEdit:
type: number
email:disableEdit:
type: number
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
thumb:
type: string
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
teaserPid:
type: number
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
imageClass:
nullable: true
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
nullable: true
signature:
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items: {}
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
nextStart:
type: number
noItemsFoundKey:
type: string
title:
type: string
showSort:
type: boolean
sortOptions:
type: array
items:
type: object
properties:
url:
type: string
name:
type: string
selected:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/best":
get:
tags:
- users
summary: /api/user/{userslug}/best
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
posts:
type: array
items:
type: object
properties:
pid:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
uid:
type: number
description: A user identifier
timestamp:
type: number
deleted:
type: boolean
upvotes:
type: number
downvotes:
type: number
votes:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
topic:
type: object
properties:
uid:
type: number
description: A user identifier
tid:
type: number
description: A topic identifier
title:
type: string
cid:
type: number
description: A category identifier
slug:
type: string
deleted:
type: number
postcount:
type: number
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
titleRaw:
type: string
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
icon:
type: string
slug:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
bgColor:
type: string
color:
type: string
image:
nullable: true
imageClass:
nullable: true
isMainPost:
type: boolean
nextStart:
type: number
noItemsFoundKey:
type: string
title:
type: string
showSort:
type: boolean
sortOptions:
type: array
items:
type: object
properties:
url:
type: string
name:
type: string
selected:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/groups":
get:
tags:
- users
summary: /api/user/{userslug}/groups
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
title:
type: string
template:
type: object
properties:
name:
type: string
account/groups:
type: boolean
"304":
description: ""
"/api/user/{userslug}/bookmarks":
get:
tags:
- users
summary: /api/user/{userslug}/bookmarks
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObject
- type: object
properties:
age:
type: number
emailClass:
type: string
ips:
type: array
items:
type: string
moderationNote:
type: string
isBlocked:
type: boolean
blocksCount:
type: number
yourid:
type: number
theirid:
type: number
isTargetAdmin:
type: boolean
isAdmin:
type: boolean
isGlobalModerator:
type: boolean
isModerator:
type: boolean
isAdminOrGlobalModerator:
type: boolean
isAdminOrGlobalModeratorOrModerator:
type: boolean
isSelfOrAdminOrGlobalModerator:
type: boolean
canEdit:
type: boolean
canBan:
type: boolean
canChangePassword:
type: boolean
isSelf:
type: boolean
isFollowing:
type: boolean
showHidden:
type: boolean
groups:
type: array
items: {}
disableSignatures:
type: boolean
reputation:disabled:
type: boolean
downvote:disabled:
type: boolean
profile_links:
type: array
items:
type: object
properties:
id:
type: string
route:
type: string
name:
type: string
visibility:
type: object
properties:
self:
type: boolean
other:
type: boolean
moderator:
type: boolean
globalMod:
type: boolean
admin:
type: boolean
canViewInfo:
type: boolean
public:
type: boolean
icon:
type: string
sso:
type: array
items:
type: object
properties:
associated:
type: boolean
url:
type: string
name:
type: string
icon:
type: string
websiteLink:
type: string
websiteName:
type: string
username:disableEdit:
type: number
email:disableEdit:
type: number
posts:
type: array
items: {}
nextStart:
type: number
noItemsFoundKey:
type: string
title:
type: string
showSort:
type: boolean
sortOptions:
type: array
items:
type: object
properties:
url:
type: string
name:
type: string
selected:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/watched":
get:
tags:
- users
summary: /api/user/{userslug}/watched
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObject
- type: object
properties:
aboutmeParsed:
type: string
age:
type: number
emailClass:
type: string
ips:
type: array
items:
type: string
isBlocked:
type: boolean
blocksCount:
type: number
yourid:
type: number
theirid:
type: number
isTargetAdmin:
type: boolean
isAdmin:
type: boolean
isGlobalModerator:
type: boolean
isModerator:
type: boolean
isAdminOrGlobalModerator:
type: boolean
isAdminOrGlobalModeratorOrModerator:
type: boolean
isSelfOrAdminOrGlobalModerator:
type: boolean
canEdit:
type: boolean
canBan:
type: boolean
canChangePassword:
type: boolean
isSelf:
type: boolean
isFollowing:
type: boolean
hasPrivateChat:
type: number
showHidden:
type: boolean
groups:
type: array
items:
type: object
properties:
name:
type: string
slug:
type: string
createtime:
type: number
userTitle:
type: string
description:
type: string
memberCount:
type: number
deleted:
oneOf:
- type: string
- type: number
hidden:
type: number
system:
type: number
private:
type: number
ownerUid:
type: number
icon:
type: string
labelColor:
type: string
userTitleEnabled:
type: number
disableJoinRequests:
type: number
disableLeave:
type: number
nameEncoded:
type: string
displayName:
type: string
textColor:
type: string
createtimeISO:
type: string
cover:thumb:url:
type: string
cover:url:
type: string
cover:position:
type: string
disableSignatures:
type: boolean
reputation:disabled:
type: boolean
downvote:disabled:
type: boolean
profile_links:
type: array
items:
type: object
properties:
id:
type: string
route:
type: string
name:
type: string
visibility:
type: object
properties:
self:
type: boolean
other:
type: boolean
moderator:
type: boolean
globalMod:
type: boolean
admin:
type: boolean
canViewInfo:
type: boolean
public:
type: boolean
icon:
type: string
sso:
type: array
items:
type: object
properties:
associated:
type: boolean
url:
type: string
deauthUrl:
type: string
name:
type: string
icon:
type: string
websiteLink:
type: string
websiteName:
type: string
moderationNote:
type: string
username:disableEdit:
type: boolean
email:disableEdit:
type: boolean
topics:
type: array
items:
type: object
properties:
tid:
type: number
description: A topic identifier
uid:
type: number
description: A user identifier
cid:
type: number
description: A category identifier
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
title:
type: string
slug:
type: string
timestamp:
type: number
lastposttime:
type: number
postcount:
type: number
viewcount:
type: number
teaserPid:
oneOf:
- type: number
- type: string
upvotes:
type: number
downvotes:
type: number
deleted:
type: number
locked:
type: number
pinned:
type: number
description: Whether or not this particular topic is pinned to the top of the
category
deleterUid:
type: number
titleRaw:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
lastposttimeISO:
type: string
votes:
type: number
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
slug:
type: string
icon:
type: string
image:
nullable: true
type: string
imageClass:
nullable: true
type: string
bgColor:
type: string
color:
type: string
disabled:
type: number
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
reputation:
type: number
postcount:
type: number
picture:
type: string
signature:
nullable: true
type: string
banned:
type: number
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
fullname:
type: string
teaser:
type: object
properties:
pid:
type: number
uid:
type: number
description: A user identifier
timestamp:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
index:
type: number
tags:
type: array
items:
type: object
properties:
value:
type: string
valueEscaped:
type: string
color:
type: string
bgColor:
type: string
score:
type: number
isOwner:
type: boolean
ignored:
type: boolean
unread:
type: boolean
bookmark:
nullable: true
type: number
unreplied:
type: boolean
icons:
type: array
items: {}
index:
type: number
thumb:
type: string
isQuestion:
type: number
isSolved:
type: number
nextStart:
type: number
noItemsFoundKey:
type: string
title:
type: string
showSort:
type: boolean
sortOptions:
type: array
items:
type: object
properties:
url:
type: string
name:
type: string
selected:
type: boolean
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/ignored":
get:
tags:
- users
summary: /api/user/{userslug}/ignored
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
topics:
type: array
items: {}
nextStart:
type: number
noItemsFoundKey:
type: string
title:
type: string
showSort:
type: boolean
sortOptions:
type: array
items:
type: object
properties:
url:
type: string
name:
type: string
selected:
type: boolean
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/upvoted":
get:
tags:
- users
summary: /api/user/{userslug}/upvoted
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses: {}
"/api/user/{userslug}/downvoted":
get:
tags:
- users
summary: /api/user/{userslug}/downvoted
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses: {}
"/api/user/{userslug}/edit":
get:
tags:
- users
summary: /api/user/{userslug}/edit
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
maximumSignatureLength:
type: number
maximumAboutMeLength:
type: number
maximumProfileImageSize:
type: number
allowProfilePicture:
type: boolean
allowCoverPicture:
type: boolean
allowProfileImageUploads:
type: number
allowedProfileImageExtensios:
type: string
allowMultipleBadges:
type: boolean
allowAccountDelete:
type: boolean
allowWebsite:
type: boolean
allowAboutMe:
type: boolean
allowSignature:
type: boolean
profileImageDimension:
type: number
defaultAvatar:
type: string
groupSelectSize:
type: number
title:
type: string
editButtons:
type: array
items: {}
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/edit/username":
get:
tags:
- users
summary: /api/user/{userslug}/edit/username
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
hasPassword:
type: boolean
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/edit/email":
get:
tags:
- users
summary: /api/user/{userslug}/edit/email
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
hasPassword:
type: boolean
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/edit/password":
get:
tags:
- users
summary: /api/user/{userslug}/edit/password
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
hasPassword:
type: boolean
minimumPasswordLength:
type: number
minimumPasswordStrength:
type: number
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/info":
get:
tags:
- users
summary: /api/user/{userslug}/info
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
history:
type: object
properties:
flags:
type: array
items:
type: object
properties:
pid:
type: number
timestamp:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
timestampReadable:
type: string
title:
type: string
titleRaw:
type: string
bans:
type: array
items: {}
sessions:
type: array
items:
type: object
properties:
ip:
type: string
uuid:
type: string
datetime:
type: number
platform:
type: string
browser:
type: string
version:
type: string
current:
type: boolean
datetimeISO:
type: string
usernames:
type: array
items:
type: object
properties:
value:
type: string
timestamp:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
emails:
type: array
items:
type: object
properties:
value:
type: string
timestamp:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
moderationNotes:
type: array
items: {}
title:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/settings":
get:
tags:
- users
summary: /api/user/{userslug}/settings
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
settings:
type: object
properties:
showemail:
type: boolean
usePagination:
type: boolean
topicsPerPage:
type: number
postsPerPage:
type: number
notificationSounds:
type: number
topicPostSort:
type: string
openOutgoingLinksInNewTab:
type: boolean
dailyDigestFreq:
type: string
language:
type: string
showfullname:
type: boolean
followTopicsOnCreate:
type: boolean
followTopicsOnReply:
type: boolean
restrictChat:
type: boolean
topicSearchEnabled:
type: boolean
categoryTopicSort:
type: string
userLang:
type: string
groupTitle:
nullable: true
pushbullet:enabled:
type: number
pushbullet:target:
type: string
bootswatchSkin:
type: string
homePageRoute:
type: string
scrollToMyPost:
type: boolean
delayImageLoading:
type: number
notificationSound:
type: string
incomingChatSound:
type: string
outgoingChatSound:
type: string
notificationType_new-chat:
type: string
notificationType_new-reply:
type: string
sendChatNotifications:
nullable: true
sendPostNotifications:
nullable: true
notificationType_upvote:
type: string
notificationType_new-topic:
type: string
notificationType_follow:
type: string
notificationType_group-invite:
type: string
upvoteNotifFreq:
type: string
notificationType_mention:
type: string
acpLang:
type: string
notificationType_new-register:
type: string
notificationType_post-queue:
type: string
notificationType_new-post-flag:
type: string
notificationType_new-user-flag:
type: string
categoryWatchState:
type: string
notificationType_group-request-membership:
type: string
uid:
type: number
description: A user identifier
languages:
type: array
items:
type: object
properties:
name:
type: string
code:
type: string
dir:
type: string
selected:
type: boolean
acpLanguages:
type: array
items:
type: object
properties:
name:
type: string
code:
type: string
dir:
type: string
selected:
type: boolean
notification-sound:
type: array
items:
type: object
properties:
name:
type: string
sounds:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
selected:
type: boolean
notificationSound:
type: array
items:
type: object
properties:
name:
type: string
selected:
type: boolean
chat-incoming-sound:
type: array
items:
type: object
properties:
name:
type: string
sounds:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
selected:
type: boolean
incomingChatSound:
type: array
items:
type: object
properties:
name:
type: string
selected:
type: boolean
chat-outgoing-sound:
type: array
items:
type: object
properties:
name:
type: string
sounds:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
selected:
type: boolean
outgoingChatSound:
type: array
items:
type: object
properties:
name:
type: string
selected:
type: boolean
customSettings:
type: array
items: {}
homePageRoutes:
type: array
items:
type: object
properties:
route:
type: string
name:
type: string
selected:
type: boolean
notificationSettings:
type: array
items:
type: object
properties:
name:
type: string
label:
type: string
none:
type: boolean
notification:
type: boolean
email:
type: boolean
notificationemail:
type: boolean
disableEmailSubscriptions:
type: number
dailyDigestFreqOptions:
type: array
items:
type: object
properties:
value:
type: string
name:
type: string
selected:
type: boolean
bootswatchSkinOptions:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
selected:
type: boolean
upvoteNotifFreq:
type: array
items:
type: object
properties:
name:
type: string
selected:
type: boolean
categoryWatchState:
type: object
properties:
watching:
type: boolean
disableCustomUserSkins:
type: number
allowUserHomePage:
type: number
hideFullname:
type: number
hideEmail:
type: number
inTopicSearchAvailable:
type: boolean
maxTopicsPerPage:
type: number
maxPostsPerPage:
type: number
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/uploads":
get:
tags:
- users
summary: /api/user/{userslug}/uploads
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
uploads:
type: array
items: {}
privateUploads:
type: boolean
title:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/consent":
get:
tags:
- users
summary: /api/user/{userslug}/consent
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
gdpr_consent:
type: boolean
digest:
type: object
properties:
frequency:
type: string
enabled:
type: boolean
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/blocks":
get:
tags:
- users
summary: /api/user/{userslug}/blocks
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
users:
type: array
items: {}
title:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/sessions":
get:
tags:
- users
summary: /api/user/{userslug}/sessions
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- $ref: components/schemas/UserObject.yaml#/UserObjectFull
- type: object
properties:
sessions:
type: array
items: {}
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/session/{uuid}":
delete:
tags:
- users
summary: /api/user/{userslug}/session/{uuid}
parameters:
- name: userslug
in: path
required: true
schema:
type: string
- name: uuid
in: path
required: true
schema:
type: string
responses: {}
/api/notifications:
get:
tags:
- notifications
summary: /api/notifications
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
notifications:
type: array
items:
type: object
properties:
type:
type: string
bodyShort:
type: string
bodyLong:
type: string
pid:
oneOf:
- type: number
- type: string
tid:
type: number
description: A topic identifier
path:
type: string
nid:
type: string
from:
type: number
mergeId:
type: string
topicTitle:
type: string
importance:
type: number
datetime:
type: number
datetimeISO:
type: string
user:
type: object
properties:
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
type: string
uid:
type: number
description: A user identifier
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
image:
type: string
read:
type: boolean
readClass:
type: string
subject:
type: string
filters:
type: array
items:
type: object
properties:
name:
type: string
filter:
type: string
selected:
type: boolean
regularFilters:
type: array
items:
type: object
properties:
name:
type: string
filter:
type: string
selected:
type: boolean
moderatorFilters:
type: array
items:
type: object
properties:
name:
type: string
filter:
type: string
selectedFilter:
type: object
properties:
name:
type: string
filter:
type: string
selected:
type: boolean
title:
type: string
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/user/{userslug}/chats/{roomid?}":
get:
tags:
- users
summary: /api/user/{userslug}/chats/{roomid?}
parameters:
- name: userslug
in: path
required: true
schema:
type: string
- name: roomid?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
owner:
type: number
roomId:
type: number
roomName:
type: string
messages:
type: array
items:
type: object
properties:
content:
type: string
timestamp:
type: number
fromuid:
type: number
roomId:
type: string
deleted:
type: boolean
system:
type: boolean
edited:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
editedISO:
type: string
messageId:
type: number
fromUser:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
type: string
status:
type: string
banned:
type: boolean
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
banned_until_readable:
type: string
deleted:
type: boolean
self:
type: number
newSet:
type: boolean
index:
type: number
cleanedContent:
type: string
isOwner:
type: boolean
users:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
picture:
type: string
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without an
avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with `icon:text`
for the user's auto-generated icon
example: "#f44336"
isOwner:
type: boolean
canReply:
type: boolean
groupChat:
type: boolean
usernames:
type: string
maximumUsersInChatRoom:
type: number
maximumChatMessageLength:
type: number
showUserInput:
type: boolean
isAdminOrGlobalMod:
type: boolean
rooms:
type: array
items:
type: object
properties:
owner:
oneOf:
- type: number
- type: string
roomId:
type: number
roomName:
type: string
users:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
status:
type: string
lastonline:
type: number
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
lastonlineISO:
type: string
groupChat:
type: boolean
unread:
type: boolean
teaser:
type: object
properties:
fromuid:
type: number
content:
type: string
timestamp:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
status:
type: string
lastonline:
type: number
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users
without an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's
auto-generated icon
example: "#f44336"
lastonlineISO:
type: string
lastUser:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
status:
type: string
lastonline:
type: number
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
lastonlineISO:
type: string
usernames:
type: string
nextStart:
type: number
title:
type: string
uid:
type: number
description: A user identifier
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
canViewInfo:
type: boolean
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/chats/{roomid?}":
get:
tags:
- shorthand
summary: /api/chats/{roomid?}
parameters:
- name: roomid?
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
title: /user/baris/chats/3499
type: undefined
/api/users:
get:
tags:
- users
summary: /api/users
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
users:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
nullable: true
type: string
status:
type: string
postcount:
type: number
reputation:
type: number
email:confirmed:
type: number
description: Whether the user has confirmed their email address or not
lastonline:
type: number
flags:
nullable: true
banned:
type: number
banned:expire:
type: number
joindate:
type: number
description: A UNIX timestamp representing the moment the user's account was
created
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without an
avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with `icon:text`
for the user's auto-generated icon
example: "#f44336"
joindateISO:
type: string
lastonlineISO:
type: string
banned_until:
type: number
banned_until_readable:
type: string
administrator:
type: boolean
userCount:
type: number
title:
type: string
isAdminOrGlobalMod:
type: boolean
isAdmin:
type: boolean
isGlobalMod:
type: boolean
displayUserSearch:
type: boolean
section_joindate:
type: boolean
maximumInvites:
type: number
inviteOnly:
type: boolean
adminInviteOnly:
type: boolean
invites:
type: number
showInviteButton:
type: boolean
reputation:disabled:
type: number
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
/api/groups:
get:
tags:
- groups
summary: /api/groups
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
groups:
type: array
items:
type: object
properties:
name:
type: string
description:
type: string
deleted:
oneOf:
- type: number
- type: string
hidden:
type: number
system:
type: number
userTitle:
type: string
icon:
type: string
labelColor:
type: string
createtime:
type: number
slug:
type: string
memberCount:
type: number
private:
type: number
userTitleEnabled:
type: number
disableJoinRequests:
type: number
disableLeave:
type: number
nameEncoded:
type: string
displayName:
type: string
textColor:
type: string
createtimeISO:
type: string
cover:thumb:url:
type: string
cover:url:
type: string
cover:position:
type: string
members:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
picture:
nullable: true
type: string
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
truncated:
type: boolean
ownerUid:
type: number
allowGroupCreation:
type: boolean
nextStart:
type: number
title:
type: string
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/groups/{slug}":
get:
tags:
- groups
summary: /api/groups/{slug}
parameters:
- name: slug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
title:
type: string
group:
type: object
properties:
name:
type: string
description:
type: string
deleted:
type: number
hidden:
type: number
system:
type: number
userTitle:
type: string
icon:
type: string
labelColor:
type: string
slug:
type: string
createtime:
type: number
memberCount:
type: number
private:
type: number
cover:url:
type: string
cover:position:
type: string
userTitleEnabled:
type: number
disableJoinRequests:
type: number
disableLeave:
type: number
nameEncoded:
type: string
displayName:
type: string
textColor:
type: string
createtimeISO:
type: string
cover:thumb:url:
type: string
descriptionParsed:
type: string
members:
type: array
items:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
type: string
status:
type: string
postcount:
type: number
reputation:
type: number
email:confirmed:
type: number
description: Whether the user has confirmed their email address or not
lastonline:
type: number
flags:
nullable: true
type: number
banned:
type: number
banned:expire:
type: number
joindate:
type: number
description: A UNIX timestamp representing the moment the user's account was
created
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
joindateISO:
type: string
lastonlineISO:
type: string
banned_until:
type: number
banned_until_readable:
type: string
administrator:
type: boolean
isOwner:
type: boolean
membersNextStart:
type: number
pending:
type: array
items: {}
invited:
type: array
items: {}
isMember:
type: boolean
isPending:
type: boolean
isInvited:
type: boolean
isOwner:
type: boolean
posts:
type: array
items:
type: object
properties:
pid:
type: number
tid:
type: number
description: A topic identifier
content:
type: string
uid:
type: number
description: A user identifier
timestamp:
type: number
deleted:
type: boolean
upvotes:
type: number
downvotes:
type: number
votes:
type: number
timestampISO:
type: string
description: An ISO 8601 formatted date string (complementing `timestamp`)
user:
type: object
properties:
uid:
type: number
description: A user identifier
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
type: string
status:
type: string
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
topic:
type: object
properties:
uid:
type: number
description: A user identifier
tid:
type: number
description: A topic identifier
title:
type: string
cid:
type: number
description: A category identifier
slug:
type: string
deleted:
type: number
postcount:
type: number
mainPid:
type: number
description: The post id of the first post in this topic (also called the
"original post")
titleRaw:
type: string
category:
type: object
properties:
cid:
type: number
description: A category identifier
name:
type: string
icon:
type: string
slug:
type: string
parentCid:
type: number
description: The category identifier for the category that is the immediate
ancestor of the current category
bgColor:
type: string
color:
type: string
image:
nullable: true
imageClass:
nullable: true
type: string
isMainPost:
type: boolean
isAdmin:
type: boolean
isGlobalMod:
type: boolean
allowPrivateGroups:
type: number
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps
"/api/groups/{slug}/members":
get:
tags:
- groups
summary: Get user group members
parameters:
- name: userslug
in: path
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
allOf:
- type: object
properties:
users:
type: array
- $ref: components/schemas/Pagination.yaml#/Pagination
- $ref: components/schemas/Breadcrumbs.yaml#/Breadcrumbs
- $ref: components/schemas/CommonProps.yaml#/CommonProps