Created
May 11, 2024 07:21
-
-
Save DonovanDMC/9ff1c09cc9531536b90114deab5baf0b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openapi: "3.1.0" | |
info: | |
title: "SomeSite" | |
version: "1" | |
x-constants: | |
- &modaction-actions | |
- artist_lock | |
- artist_rename | |
- artist_unlock | |
- artist_user_link | |
- artist_user_unlink | |
- ban_create | |
- ban_delete | |
- ban_update | |
- comment_delete | |
- comment_hide | |
- comment_unhide | |
- comment_update | |
- post_deletion_reason_create | |
- post_deletion_reason_delete | |
- post_deletion_reasons_reorder | |
- post_deletion_reason_update | |
- post_replacement_rejection_reason_create | |
- post_replacement_rejection_reason_delete | |
- post_replacement_rejection_reasons_reorder | |
- forum_topic_stick | |
- forum_topic_update | |
- forum_topic_unhide | |
- forum_topic_unlock | |
- forum_topic_unstick | |
- help_create | |
- help_delete | |
- help_update | |
- mascot_create | |
- mascot_delete | |
- mascot_update | |
- mass_update | |
- nuke_tag | |
- pool_delete | |
- set_change_visibility | |
- set_delete | |
- set_update | |
- tag_alias_create | |
- tag_alias_update | |
- tag_implication_create | |
- tag_implication_update | |
- takedown_process | |
- takedown_delete | |
- ticket_claim | |
- ticket_unclaim | |
- ticket_update | |
- upload_whitelist_create | |
- upload_whitelist_delete | |
- upload_whitelist_update | |
- user_blacklist_change | |
- user_delete | |
- user_flags_change | |
- user_level_change | |
- user_name_change | |
- user_text_change | |
- user_upload_limit_change | |
- user_feedback_create | |
- user_feedback_delete | |
- user_feedback_update | |
- wiki_page_delete | |
- wiki_page_lock | |
- wiki_page_rename | |
- wiki_page_unlock | |
- rule_create | |
- rule_delete | |
- rules_reorder | |
- rule_update | |
- rule_category_create | |
- rule_category_delete | |
- rule_categories_reorder | |
- rule_category_update | |
- quick_rule_create | |
- quick_rule_delete | |
- quick_rules_reorder | |
- quick_rule_update | |
- avoid_posting_create | |
- avoid_posting_deactivate | |
- avoid_posting_delete | |
- avoid_posting_reactivate | |
- avoid_posting_update | |
- &modaction-classes | |
- Artist | |
- AvoidPosting | |
- Ban | |
- BulkUpdateRequest | |
- Comment | |
- ForumCategory | |
- ForumPost | |
- ForumTopic | |
- Help | |
- Mascot | |
- Pool | |
- PostDeletionReason | |
- PostReplacementRejectionReason | |
- PostSet | |
- QuickRule | |
- RuleCategory | |
- Rule | |
- TagAlias | |
- TagImplication | |
- Takedown | |
- Ticket | |
- UploadWhitelist | |
- UserFeedback | |
- User | |
- WikiPage | |
- &auditlog-actions | |
- force_name_change | |
- min_upload_level_change | |
- post_owner_reassign | |
- stuck_dnp | |
- user_title_change | |
- ip_ban_create | |
- ip_ban_delete | |
- staff_note_create | |
- staff_note_update | |
- staff_note_delete | |
- staff_note_undelete | |
- comment_vote_delete | |
- comment_vote_lock | |
- post_vote_delete | |
- post_vote_lock | |
- forum_post_vote_delete | |
- &post-event-actions | |
- deleted | |
- undeleted | |
- approved | |
- unapproved | |
- flag_created | |
- flag_removed | |
- favorites_moved | |
- favorites_received | |
- rating_locked | |
- rating_unlocked | |
- status_locked | |
- status_unlocked | |
- note_locked | |
- note_unlocked | |
- replacement_accepted | |
- replacement_rejected | |
- replacement_promoted | |
- replacement_deleted | |
- expunged | |
- comment_disabled | |
- comment_enabled | |
- comment_locked | |
- comment_unlocked | |
- changed_bg_color | |
- &ratings | |
- s | |
- q | |
- e | |
- &tag-categories | |
- 0 #general | |
- 1 # artist | |
- 2 # voice actor | |
- 3 # copyright | |
- 4 # character | |
- 5 # species | |
- 6 # invalid | |
- 7 # meta | |
- 8 # lore | |
- &feedback-categories | |
- negative | |
- neutral | |
- positive | |
- &tag-request-statuses | |
- active | |
- deleted | |
- processing | |
- queued | |
- retired | |
- error | |
- pending | |
components: | |
securitySchemes: | |
basicAuth: | |
type: http | |
scheme: basic | |
parameters: | |
id: | |
name: search[id] | |
in: query | |
description: Search for a specific id. | |
schema: | |
type: number | |
limit: | |
name: limit | |
in: query | |
description: The maximum number of results to return. Between 0 and 500. | |
schema: | |
type: number | |
minimum: 0 | |
maximum: 500 | |
page: | |
name: page | |
in: query | |
description: The page number of results to get. Between 1 and 1000. | |
schema: | |
type: number | |
minimum: 1 | |
maximum: 1000 | |
ip_addr: | |
name: search[ip_addr] | |
in: query | |
description: Must be Admin+ to use. See [postgres' documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, "is contained within or equals" (`<<=`). | |
schema: | |
type: string | |
schemas: | |
Artist: | |
type: object | |
required: | |
- created_at | |
- creator_id | |
- id | |
- is_locked | |
- linked_user_id | |
- name | |
- notes | |
- other_names | |
- updated_at | |
properties: | |
created_at: | |
type: string | |
format: date-time | |
creator_id: | |
type: number | |
id: | |
type: number | |
is_locked: | |
type: boolean | |
linked_user_id: | |
type: ["number", "null"] | |
name: | |
type: string | |
notes: | |
type: ["string", "null"] | |
other_names: | |
type: array | |
items: | |
type: string | |
updated_at: | |
type: string | |
format: date-time | |
ArtistURL: | |
type: object | |
required: | |
- artist_id | |
- created_at | |
- id | |
- is_active | |
- updated_at | |
- url | |
- normalized_url | |
properties: | |
artist_id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
id: | |
type: number | |
is_active: | |
type: boolean | |
updated_at: | |
type: string | |
format: date-time | |
url: | |
type: string | |
format: "uri" | |
normalized_url: | |
type: string | |
format: "uri" | |
ArtistVersion: | |
type: object | |
required: | |
- id | |
- artist_id | |
- name | |
- updater_id | |
- created_at | |
- updated_at | |
- other_names | |
- urls | |
- notes_changed | |
properties: | |
id: | |
type: number | |
artist_id: | |
type: number | |
name: | |
type: string | |
updater_id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
other_names: | |
type: array | |
items: | |
type: string | |
urls: | |
type: array | |
items: | |
type: string | |
format: uri | |
notes_changed: | |
type: boolean | |
AvoidPosting: | |
type: object | |
required: | |
- id | |
- creator_id | |
- updater_id | |
- artist_name | |
- details | |
- is_active | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
updater_id: | |
type: number | |
artist_name: | |
type: string | |
staff_notes: | |
type: string | |
description: Only visible to Janitor+ | |
details: | |
type: string | |
is_active: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
AvoidPostingVersion: | |
type: object | |
required: | |
- id | |
- updater_id | |
- avoid_posting_id | |
- artist_name | |
- details | |
- is_active | |
- updated_at | |
properties: | |
id: | |
type: number | |
updater_id: | |
type: number | |
avoid_posting_id: | |
type: number | |
artist_name: | |
type: string | |
details: | |
type: string | |
staff_notes: | |
type: string | |
description: Only visible to Janitor+ | |
is_active: | |
type: boolean | |
updated_at: | |
type: string | |
format: date-time | |
Ban: | |
type: object | |
required: | |
- id | |
- user_id | |
- reason | |
- banner_id | |
- expires_at | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
user_id: | |
type: number | |
reason: | |
type: string | |
banner_id: | |
type: number | |
expires_at: | |
type: ["string", "null"] | |
format: date-time | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
BulkRelatedTag: | |
allOf: | |
- $ref: "#/components/schemas/RelatedTag" | |
- type: object | |
required: | |
- count | |
properties: | |
count: | |
type: number | |
BulkUpdateRequest: | |
type: object | |
required: | |
- id | |
- creator_id | |
- forum_topic_id | |
- forum_post_id | |
- script | |
- status | |
- created_at | |
- updated_at | |
- approver_id | |
- title | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
forum_topic_id: | |
type: ["number", "null"] | |
forum_post_id: | |
type: ["number", "null"] | |
script: | |
type: string | |
examples: | |
- "alias a -> b" | |
status: | |
type: string | |
enum: | |
- approved | |
- rejected | |
- pending | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
approver_id: | |
type: ["number", "null"] | |
title: | |
type: string | |
Comment: | |
type: object | |
required: | |
- id | |
- post_id | |
- creator_id | |
- body | |
- score | |
- created_at | |
- updated_at | |
- updater_id | |
- do_not_bump_post | |
- is_hidden | |
- is_sticky | |
- warning_type | |
- warning_user_id | |
- creator_name | |
- updater_name | |
properties: | |
id: | |
type: number | |
post_id: | |
type: number | |
creator_id: | |
type: number | |
body: | |
type: string | |
score: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
updater_id: | |
type: number | |
do_not_bump_post: | |
type: boolean | |
deprecated: true | |
is_hidden: | |
type: boolean | |
is_sticky: | |
type: boolean | |
warning_type: | |
type: ["string", "null"] | |
enum: | |
- warning | |
- record | |
- ban | |
warning_user_id: | |
type: ["number", "null"] | |
creator_name: | |
type: string | |
updater_name: | |
type: string | |
CommentVote: | |
allOf: | |
- $ref: "#/components/schemas/LockableUserVote" | |
- type: object | |
required: | |
- comment_id | |
properties: | |
comment_id: | |
type: number | |
CurrentUser: | |
allOf: | |
- $ref: "#/components/schemas/FullUser" | |
- type: object | |
required: | |
- recent_tags | |
- last_logged_in_at | |
- last_forum_read_at | |
- comment_threshold | |
- default_image_size | |
- favorite_tags | |
- blacklisted_tags | |
- time_zone | |
- per_page | |
- custom_style | |
- api_regen_multiplier | |
- api_burst_limit | |
- remaining_api_limit | |
- statement_timeout | |
- favorite_limit | |
- tag_query_limit | |
- has_mail | |
- description_collapsed_initially | |
- hide_comments | |
- show_hidden_comments | |
- receive_email_notifications | |
- enable_keyboard_navigation | |
- enable_privacy_mode | |
- style_usernames | |
- enable_autocomplete | |
- disable_cropped_thumbnails | |
- enable_safe_mode | |
- disable_responsive_mode | |
- enable_compact_uploader | |
- move_related_thumbnails | |
- enable_hover_zoom | |
- hover_zoom_shift | |
- hover_zoom_sticky_shift | |
- hover_zoom_play_audio | |
- show_post_uploader | |
- go_to_recent_forum_post | |
properties: | |
recent_tags: | |
type: ["string", "null"] | |
last_logged_in_at: | |
type: string | |
format: date-time | |
last_forum_read_at: | |
type: string | |
format: date-time | |
email: | |
type: string | |
comment_threshold: | |
type: number | |
default_image_size: | |
type: string | |
favorite_tags: | |
type: string | |
blacklisted_tags: | |
type: string | |
time_zone: | |
type: string | |
per_page: | |
type: number | |
custom_style: | |
type: string | |
api_regen_multiplier: | |
type: number | |
api_burst_limit: | |
type: number | |
remaining_api_limit: | |
type: number | |
statement_timeout: | |
type: number | |
favorite_limit: | |
type: number | |
tag_query_limit: | |
type: number | |
has_mail: | |
type: boolean | |
description_collapsed_initially: | |
type: boolean | |
hide_comments: | |
type: boolean | |
show_hidden_comments: | |
type: boolean | |
receive_email_notifications: | |
type: boolean | |
enable_keyboard_navigation: | |
type: boolean | |
enable_privacy_mode: | |
type: boolean | |
style_usernames: | |
type: boolean | |
enable_autocomplete: | |
type: boolean | |
disable_cropped_thumbnails: | |
type: boolean | |
enable_safe_mode: | |
type: boolean | |
disable_responsive_mode: | |
type: boolean | |
enable_compact_uploader: | |
type: boolean | |
move_related_thumbnails: | |
type: boolean | |
enable_hover_zoom: | |
type: boolean | |
hover_zoom_shift: | |
type: boolean | |
hover_zoom_sticky_shift: | |
type: boolean | |
hover_zoom_play_audio: | |
type: boolean | |
show_post_uploader: | |
type: boolean | |
go_to_recent_forum_post: | |
type: boolean | |
DMail: | |
type: object | |
required: | |
- id | |
- owner_id | |
- from_id | |
- to_id | |
- title | |
- body | |
- is_read | |
- is_deleted | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
owner_id: | |
type: number | |
from_id: | |
type: number | |
to_id: | |
type: number | |
title: | |
type: string | |
body: | |
type: string | |
is_read: | |
type: boolean | |
is_deleted: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
DMailFilter: | |
type: object | |
required: | |
- id | |
- user_id | |
- words | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
user_id: | |
type: number | |
words: | |
type: string | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
DeferredPost: | |
type: object | |
required: | |
- created_ago | |
- created_at | |
- down_score | |
- file_ext | |
- file_size | |
- flags | |
- height | |
- id | |
- preview_height | |
- preview_width | |
- rating | |
- score | |
- status | |
- tags | |
- up_score | |
- uploader | |
- uploader_id | |
- width | |
properties: | |
created_ago: | |
type: string | |
created_at: | |
type: string | |
down_score: | |
type: number | |
file_ext: | |
type: string | |
file_size: | |
type: number | |
flags: | |
type: string | |
height: | |
type: number | |
id: | |
type: number | |
preview_height: | |
type: number | |
preview_width: | |
type: number | |
rating: | |
type: string | |
enum: *ratings | |
score: | |
type: number | |
status: | |
type: string | |
enum: | |
- active | |
- deleted | |
- flagged | |
- pending | |
tags: | |
type: string | |
up_score: | |
type: number | |
uploader: | |
type: string | |
uploader_id: | |
type: number | |
width: | |
type: number | |
md5: | |
type: string | |
preview_file_url: | |
type: string | |
large_file_url: | |
type: string | |
cropped_file_url: | |
type: string | |
file_url: | |
type: string | |
DTextResponse: | |
type: object | |
required: | |
- html | |
- posts | |
properties: | |
html: | |
type: string | |
posts: | |
type: object | |
patternProperties: | |
"^0-9+$": | |
$ref: "#/components/schemas/DeferredPost" | |
EmailBlacklist: | |
type: object | |
reequired: | |
- id | |
- created_at | |
- updated_at | |
- domain | |
- creator_id | |
- reason | |
properties: | |
id: | |
type: number | |
created_at: | |
type: string | |
updated_at: | |
type: string | |
domain: | |
type: string | |
creator_id: | |
type: string | |
reason: | |
type: string | |
ForumCategory: | |
type: object | |
required: | |
- id | |
- name | |
- order | |
- can_view | |
- can_create | |
properties: | |
id: | |
type: number | |
name: | |
type: string | |
order: | |
type: number | |
can_view: | |
type: number | |
can_create: | |
type: number | |
ForumPost: | |
type: object | |
required: | |
- id | |
- topic_id | |
- creator_id | |
- updater_id | |
- body | |
- is_hidden | |
- created_at | |
- updated_at | |
- warning_type | |
- warning_user_id | |
- tag_change_request_id | |
- tag_change_request_type | |
properties: | |
id: | |
type: number | |
topic: | |
type: number | |
creator_id: | |
type: number | |
updater_id: | |
type: number | |
body: | |
type: string | |
is_hidden: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
warning_type: | |
type: ["string", "null"] | |
enum: | |
- warning | |
- record | |
- ban | |
warning_user_id: | |
type: ["number", "null"] | |
tag_change_request_id: | |
type: ["number", "null"] | |
tag_change_request_type: | |
type: ["string", "null"] | |
enum: | |
- BulkUpdateRequest | |
- TagAlias | |
- TagImplication | |
ForumPostVote: | |
allOf: | |
- $ref: "#/components/schemas/UserVote" | |
- type: object | |
required: | |
- forum_post_id | |
properties: | |
forum_post_id: | |
type: number | |
ForumTopic: | |
type: object | |
required: | |
- id | |
- creator_id | |
- updater_id | |
- title | |
- response_count | |
- is_sticky | |
- is_locked | |
- is_hidden | |
- created_at | |
- updated_at | |
- category_id | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
updater_id: | |
type: number | |
title: | |
type: string | |
response_count: | |
type: number | |
is_sticky: | |
type: boolean | |
is_locked: | |
type: boolean | |
is_hidden: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
category_id: | |
type: number | |
FullUser: | |
allOf: | |
- $ref: "#/components/schemas/User" | |
- type: object | |
required: | |
- wiki_page_version_count | |
- artist_version_count | |
- pool_version_count | |
- forum_post_count | |
- comment_count | |
- flag_count | |
- favorite_count | |
- positive_feedback_count | |
- neutral_feedback_count | |
- negative_feedback_count | |
- upload_limit | |
- profile_about | |
- profile_artinfo | |
properties: | |
wiki_page_version_count: | |
type: number | |
artist_version_count: | |
type: number | |
pool_version_count: | |
type: number | |
forum_post_count: | |
type: number | |
comment_count: | |
type: number | |
flag_count: | |
type: number | |
favorite_count: | |
type: number | |
positive_feedback_count: | |
type: number | |
neutral_feedback_count: | |
type: number | |
negative_feedback_count: | |
type: number | |
upload_limit: | |
type: number | |
profile_about: | |
type: string | |
profile_artinfo: | |
type: string | |
Help: | |
type: object | |
required: | |
- id | |
- created_at | |
- updated_at | |
- name | |
- wiki_page | |
- related | |
- title | |
properties: | |
id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
name: | |
type: string | |
wiki_page: | |
type: string | |
related: | |
type: string | |
title: | |
type: string | |
IPBan: | |
type: object | |
required: | |
- id | |
- creator_id | |
- ip_addr | |
- reason | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
ip_addr: | |
type: string | |
reason: | |
type: string | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
IQDBResponse: | |
type: object | |
required: | |
- hash | |
- post_id | |
- score | |
- post | |
properties: | |
hash: | |
type: string | |
post_id: | |
type: number | |
score: | |
type: number | |
post: | |
$ref: "#/components/schemas/Post" | |
LockableUserVote: | |
allOf: | |
- $ref: "#/components/schemas/UserVote" | |
- type: object | |
required: | |
- is_locked | |
properties: | |
is_locked: | |
type: boolean | |
Mascot: | |
type: object | |
required: | |
- id | |
- creator_id | |
- display_name | |
- md5 | |
- file_ext | |
- background_color | |
- artist_url | |
- artist_name | |
- active | |
- created_at | |
- updated_at | |
- available_on | |
- url_path | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
display_name: | |
type: string | |
md5: | |
type: string | |
file_ext: | |
type: string | |
background_color: | |
type: string | |
artist_url: | |
type: string | |
format: uri | |
artist_name: | |
type: string | |
active: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
available_on: | |
type: array | |
items: | |
type: string | |
url_path: | |
type: string | |
format: uri | |
ModAction: | |
type: object | |
required: | |
- id | |
- creator_id | |
- created_at | |
- updated_at | |
- action | |
- subject_id | |
- subject_type | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
action: | |
type: string | |
enum: *modaction-actions | |
subject_id: | |
type: ["number", "null"] | |
subject_type: | |
type: ["string", "null"] | |
enum: *modaction-classes | |
user_id: | |
type: number | |
description: | | |
Valid for: `artist_user_link`, `artist_user_unlink`, `ban_create`, `ban_delete`, `ban_update`, `comment_delete`, `comment_hide`, `comment_unhide`, `comment_update`, `post_deletion_reason_delete`, `post_replacement_rejection_reason_delete`, `forum_post_delete`, `forum_post_hide`, `forum_post_unhide`, `forum_post_update`, `forum_topic_delete`, `forum_topic_hide`, `forum_topic_lock`, `forum_topic_move`, `forum_topic_stick`, `forum_topic_update`, `forum_topic_unhide`, `forum_topic_unlock`, `forum_topic_unstick`, `pool_delete`, `set_change_visibility`, `set_delete`, `set_update`, `user_feedback_create`, `user_feedback_delete`, `user_feedback_update` | |
name: | |
type: string | |
description: | | |
Valid for: `help_create`, `help_delete`, `help_update`, `rule_create`, `rule_delete`, `rule_update`, `rule_category_create`, `rule_category_delete`, `rule_category_update` | |
total: | |
type: number | |
description: | | |
Valid for: `post_deletion_reasons_reorder`, `post_replacement_rejection_reasons_reorder`, `rules_reorder`, `rule_categories_reorder`, `quick_rules_reorder` | |
tag_name: | |
type: string | |
description: | | |
Valid for: `nuke_tag` | |
change_desc: | |
type: string | |
description: | | |
Valid for: `tag_alias_update`, `tag_implication_update` | |
reason: | |
type: string | |
description: | | |
Valid for: `ban_update`, `post_deletion_reason_create`, `post_deletion_reason_delete`, `post_deletion_reason_update`, `post_replacement_rejection_reason_create`, `post_replacement_rejection_reason_delete`, `post_replacement_rejection_reason_update`, `user_feedback_create`, `user_feedback_delete`, `user_feedback_update`, `quick_rule_create`, `quick_rule_delete`, `quick_rule_update` | |
old_reason: | |
type: string | |
description: | | |
Valid for: `ban_update`, `post_deletion_reason_update`, `post_replacement_rejection_reason_update`, `user_feedback_update`, `quick_rule_update` | |
header: | |
type: string | |
description: | | |
Valid for: `quick_rule_create`, `quick_rule_delete`, `quick_rule_update` | |
old_header: | |
type: string | |
description: | | |
Valid for: `quick_rule_update` | |
description: | |
type: string | |
description: | | |
Valid for: `rule_create`, `rule_update` | |
old_description: | |
type: string | |
description: | | |
Valid for: `rule_update` | |
antecedent: | |
type: string | |
description: | | |
Valid for: `mass_update` | |
consequent: | |
type: string | |
description: | | |
Valid for: `consequent` | |
alias_desc: | |
type: string | |
description: | | |
Valid for: `tag_alias_create`, `tag_alias_update` | |
implication_desc: | |
type: string | |
description: | | |
Valid for: `tag_implication_create`, `tag_implication_update` | |
is_public: | |
type: boolean | |
description: | | |
Valid for: `set_change_visibility` | |
added: | |
type: array | |
description: | | |
Valid for: `user_flags_change` | |
items: | |
type: string | |
removed: | |
type: array | |
description: | | |
Valid for: `user_flags_change` | |
items: | |
type: string | |
level: | |
type: number | |
description: | | |
Valid for: `user_level_change` | |
old_level: | |
type: number | |
description: | | |
Valid for: `user_level_change` | |
upload_limit: | |
type: number | |
description: | | |
Valid for: `user_upload_limit_change` | |
old_upload_limit: | |
type: number | |
description: | | |
Valid for: `user_upload_limit_change` | |
new_name: | |
type: string | |
description: | | |
Valid for: `artist_rename` | |
old_name: | |
type: string | |
description: | | |
Valid for: `artist_rename`, `rule_update`, `rule_category_update` | |
duration: | |
type: string | |
description: | | |
Valid for: `ban_create` | |
expires_at: | |
type: string | |
description: | | |
Valid for: `ban_update` | |
format: date-time | |
old_expires_at: | |
type: string | |
description: | | |
Valid for: `ban_update` | |
format: date-time | |
forum_category_id: | |
type: number | |
description: | | |
Valid for: `forum_topic_move` | |
old_forum_category_id: | |
type: number | |
description: | | |
Valid for: `forum_topic_move` | |
forum_category_name: | |
type: string | |
description: | | |
Valid for: `forum_topic_move`, `forum_category_create`, `forum_category_delete`, `forum_category_update` | |
old_forum_category_name: | |
type: string | |
description: | | |
Valid for: `forum_topic_move`, `forum_category_update` | |
can_view: | |
type: number | |
description: | | |
Valid for: `forum_category_create`, `forum_category_delete`, `forum_category_update` | |
old_can_view: | |
type: number | |
description: | | |
Valid for: `forum_category_update` | |
can_create: | |
type: number | |
description: | | |
Valid for: `forum_category_create`, `forum_category_delete`, `forum_category_update` | |
old_can_create: | |
type: number | |
description: | | |
Valid for: `forum_category_update` | |
forum_topic_id: | |
type: number | |
description: | | |
Valid for: `forum_post_delete`, `forum_post_hide`, `forum_post_unhide`, `forum_post_update` | |
forum_topic_title: | |
type: string | |
description: | | |
Valid for: `forum_topic_delete`, `forum_topic_hide`, `forum_topic_lock`, `forum_topic_move`, `forum_topic_stick`, `forum_topic_update`, `forum_topic_update`, `forum_topic_unhide`, `forum_topic_unlock`, `forum_topic_unstick` | |
pool_name: | |
type: string | |
description: | | |
Valid for: `pool_delete` | |
pattern: | |
type: string | |
description: | | |
Valid for: `upload_whitelist_create`, `upload_whitelist_delete`, `upload_whitelist_update` | |
old_pattern: | |
type: string | |
description: | | |
Valid for: `upload_whitelist_update` | |
note: | |
type: string | |
description: | | |
Valid for: `upload_whitelist_create`, `upload_whitelist_delete`, `upload_whitelist_update` | |
hidden: | |
type: boolean | |
description: | | |
Valid for: `upload_whitelist_create`, `upload_whitelist_delete`, `upload_whitelist_update` | |
type: | |
type: string | |
description: | | |
Valid for: `user_feedback_create`, `user_feedback_delete`, `user_feedback_update` | |
enum: *feedback-categories | |
old_type: | |
type: string | |
description: | | |
Valid for: `user_feedback_update` | |
enum: *feedback-categories | |
wiki_page: | |
type: string | |
description: | | |
Valid for: `help_create`, `help_delete`, `help_update` | |
wiki_page_title: | |
type: string | |
description: | | |
Valid for: `wiki_page_delete`, `wiki_page_lock`, `wiki_page_rename`, `wiki_page_unlock` | |
old_title: | |
type: string | |
description: | | |
Valid for: `post_deletion_reason_update`, `wiki_page_rename` | |
category_name: | |
type: string | |
description: | | |
Valid for: `rule_create`, `rule_delete`, `rule_update` | |
old_category_name: | |
type: string | |
description: | | |
Valid for: `rule_update` | |
prompt: | |
type: string | |
description: | | |
Valid for: `post_deletion_reason_update` | |
old_prompt: | |
type: string | |
description: | | |
Valid for: `post_deletion_reason_update` | |
title: | |
type: string | |
description: | | |
Valid for: `post_deletion_reason_update` | |
artist_name: | |
type: string | |
description: | | |
Valid for: `avoid_posting_create`, `avoid_posting_deactivate`, `avoid_posting_delete`, `avoid_posting_reactivate`, `avoid_posting_update` | |
NewsUpdate: | |
type: object | |
required: | |
- id | |
- message | |
- creator_id | |
- updater_id | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
message: | |
type: string | |
creator_id: | |
type: number | |
updater_id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
Note: | |
type: object | |
required: | |
- id | |
- creator_id | |
- post_id | |
- x | |
- y | |
- width | |
- height | |
- is_active | |
- body | |
- created_at | |
- updated_at | |
- version | |
- creator_name | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
post_id: | |
type: number | |
x: | |
type: number | |
y: | |
type: number | |
width: | |
type: number | |
height: | |
type: number | |
is_active: | |
type: boolean | |
body: | |
type: string | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
version: | |
type: number | |
creator_name: | |
type: string | |
NoteVersion: | |
type: object | |
required: | |
- id | |
- note_id | |
- post_id | |
- updater_id | |
- x | |
- y | |
- width | |
- height | |
- is_active | |
- body | |
- created_at | |
- updated_at | |
- version | |
properties: | |
id: | |
type: number | |
note_id: | |
type: number | |
post_id: | |
type: number | |
updater_id: | |
type: number | |
x: | |
type: number | |
y: | |
type: number | |
width: | |
type: number | |
height: | |
type: number | |
is_active: | |
type: boolean | |
body: | |
type: string | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
version: | |
type: number | |
Pool: | |
type: object | |
required: | |
- id | |
- name | |
- creator_id | |
- description | |
- is_active | |
- post_ids | |
- created_at | |
- updated_at | |
- artists | |
- creator_name | |
- post_count | |
properties: | |
id: | |
type: number | |
name: | |
type: string | |
creator_id: | |
type: number | |
description: | |
type: string | |
is_active: | |
type: boolean | |
post_ids: | |
type: array | |
items: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
artists: | |
type: array | |
items: | |
type: string | |
creator_name: | |
type: string | |
post_count: | |
type: number | |
PoolVersion: | |
type: object | |
required: | |
- id | |
- pool_id | |
- post_ids | |
- added_post_ids | |
- removed_post_ids | |
- updater_id | |
- description | |
- description_changed | |
- name | |
- name_changed | |
- created_at | |
- updated_at | |
- is_active | |
- version | |
properties: | |
id: | |
type: number | |
pool_id: | |
type: number | |
post_ids: | |
type: array | |
items: | |
type: number | |
added_post_ids: | |
type: array | |
items: | |
type: number | |
removed_post_ids: | |
type: array | |
items: | |
type: number | |
updater_id: | |
type: number | |
description: | |
type: string | |
description_changed: | |
type: boolean | |
name: | |
type: string | |
name_changed: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
is_active: | |
type: boolean | |
version: | |
type: number | |
PopularSearch: | |
type: object | |
required: | |
- tag | |
- count | |
properties: | |
tag: | |
type: string | |
count: | |
type: number | |
Post: | |
type: object | |
required: | |
- id | |
- created_at | |
- updated_at | |
- file | |
- preview | |
- sample | |
- score | |
- views | |
- tags | |
- locked_tags | |
- change_seq | |
- flags | |
- rating | |
- fav_count | |
- sources | |
- pools | |
- relationships | |
- approver_id | |
- uploader_id | |
- description | |
- comment_count | |
- is_favorited | |
- own_vote | |
- has_notes | |
- duration | |
properties: | |
id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
file: | |
type: object | |
required: | |
- width | |
- height | |
- ext | |
- size | |
- md5 | |
- url | |
properties: | |
width: | |
type: number | |
height: | |
type: number | |
ext: | |
type: string | |
size: | |
type: number | |
md5: | |
type: string | |
url: | |
type: ["string", "null"] | |
preview: | |
type: object | |
required: | |
- width | |
- height | |
- url | |
properties: | |
width: | |
type: number | |
height: | |
type: number | |
url: | |
type: ["string", "null"] | |
sample: | |
type: object | |
required: | |
- has | |
- height | |
- width | |
- url | |
- alternates | |
properties: | |
has: | |
type: boolean | |
height: | |
type: ["number", "null"] | |
width: | |
type: ["number", "null"] | |
url: | |
type: ["string", "null"] | |
alternates: | |
type: object | |
properties: | |
480p: | |
$ref: "#/components/schemas/PostSampleAlternate" | |
720p: | |
$ref: "#/components/schemas/PostSampleAlternate" | |
original: | |
$ref: "#/components/schemas/PostSampleAlternate" | |
score: | |
type: object | |
required: | |
- up | |
- down | |
- total | |
properties: | |
up: | |
type: number | |
down: | |
type: number | |
total: | |
type: number | |
views: | |
type: object | |
required: | |
- daily | |
- total | |
properties: | |
daily: | |
type: number | |
total: | |
type: number | |
tags: | |
type: object | |
required: | |
- general | |
- artist | |
- voice_actor | |
- copyright | |
- character | |
- species | |
- invalid | |
- meta | |
- lore | |
properties: | |
general: | |
type: array | |
items: | |
type: string | |
artist: | |
type: array | |
items: | |
type: string | |
voice_actor: | |
type: array | |
items: | |
type: string | |
copyright: | |
type: array | |
items: | |
type: string | |
character: | |
type: array | |
items: | |
type: string | |
species: | |
type: array | |
items: | |
type: string | |
invalid: | |
type: array | |
items: | |
type: string | |
meta: | |
type: array | |
items: | |
type: string | |
lore: | |
type: array | |
items: | |
type: string | |
locked_tags: | |
type: ["array", "null"] | |
items: | |
type: string | |
change_seq: | |
type: number | |
flags: | |
type: object | |
required: | |
- pending | |
- flagged | |
- note_locked | |
- status_locked | |
- rating_locked | |
- deleted | |
properties: | |
pending: | |
type: boolean | |
flagged: | |
type: boolean | |
note_locked: | |
type: boolean | |
status_locked: | |
type: boolean | |
rating_locked: | |
type: boolean | |
deleted: | |
type: boolean | |
rating: | |
type: string | |
enum: *ratings | |
fav_count: | |
type: number | |
sources: | |
type: array | |
items: | |
type: string | |
pools: | |
type: array | |
items: | |
type: number | |
relationships: | |
type: object | |
required: | |
- parent_id | |
- has_children | |
- has_active_children | |
- children | |
properties: | |
parent_id: | |
type: ["number", "null"] | |
has_children: | |
type: boolean | |
has_active_children: | |
type: boolean | |
children: | |
type: array | |
items: | |
type: number | |
approver_id: | |
type: ["number", "null"] | |
uploader_id: | |
type: number | |
description: | |
type: string | |
comment_count: | |
type: number | |
is_favorited: | |
type: boolean | |
own_vote: | |
type: ["number", "null"] | |
enum: | |
- -1 | |
- 0 | |
- 1 | |
has_notes: | |
type: boolean | |
duration: | |
type: ["number", "null"] | |
PostApproval: | |
type: object | |
required: | |
- id | |
- user_id | |
- post_id | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
user_id: | |
type: number | |
post_id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
PostDeletionReason: | |
type: object | |
required: | |
- id | |
- creator_id | |
- reason | |
- title | |
- prompt | |
- order | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
reason: | |
type: ["string", "null"] | |
title: | |
type: ["string", "null"] | |
prompt: | |
type: ["string", "null"] | |
order: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
PostDisapproval: | |
type: object | |
required: | |
- id | |
- user_id | |
- post_id | |
- reason | |
- message | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
user_id: | |
type: number | |
post_id: | |
type: number | |
reason: | |
type: string | |
enum: | |
- borderline_quality | |
- borderline_relevancy | |
- other | |
message: | |
type: ["string", "null"] | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
PostEvents: | |
type: object | |
required: | |
- id | |
- creator_id | |
- post_id | |
- action | |
- created_at | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: ["number", "null"] | |
post_id: | |
type: number | |
action: | |
type: string | |
enum: *post-event-actions | |
created_at: | |
type: string | |
format: date-time | |
reason: | |
type: string | |
description: | | |
Valid for: `deleted`, `flag_created` | |
parent_id: | |
type: number | |
description: | | |
Valid for: `favorites_moved` | |
child_id: | |
type: number | |
description: | | |
Valid for: `favorites_received` | |
source_post_id: | |
type: number | |
description: | | |
Valid for: `replacement_promoted` | |
bg_color: | |
type: string | |
description: | | |
Valid for: `changed_background_color` | |
PostFlag: | |
type: object | |
required: | |
- id | |
- post_id | |
- creator_id | |
- reason | |
- is_resolved | |
- created_at | |
- updated_at | |
- is_deletion | |
- type | |
properties: | |
id: | |
type: number | |
post_id: | |
type: number | |
creator_id: | |
type: ["number", "null"] | |
reason: | |
type: string | |
is_resolved: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
is_deletion: | |
type: boolean | |
type: | |
type: string | |
enum: | |
- flag | |
- deletion | |
PostRecommendation: | |
type: object | |
required: | |
- score | |
- post | |
properties: | |
score: | |
type: number | |
post: | |
$ref: "#/components/schemas/Post" | |
PostReplacementRejectionReason: | |
type: object | |
required: | |
- id | |
- creator_id | |
- reason | |
- order | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
reason: | |
type: string | |
order: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
PostReplacement: | |
type: object | |
required: | |
- id | |
- created_at | |
- updated_at | |
- post_id | |
- creator_id | |
- approver_id | |
- file_ext | |
- file_size | |
- image_height | |
- image_width | |
- md5 | |
- source | |
- file_name | |
- status | |
- reason | |
- rejector_id | |
- rejection_reason | |
- file_url | |
properties: | |
id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
post_id: | |
type: number | |
creator_id: | |
type: number | |
approver_id: | |
type: ["number", "null"] | |
file_ext: | |
type: string | |
file_size: | |
type: number | |
image_height: | |
type: number | |
image_width: | |
type: number | |
md5: | |
type: string | |
source: | |
type: string | |
file_name: | |
type: string | |
status: | |
type: string | |
enum: | |
- prompted | |
- approved | |
- rejected | |
- pending | |
reason: | |
type: string | |
rejector_id: | |
type: ["number", "null"] | |
rejection_reason: | |
type: string | |
file_url: | |
type: ["string", "null"] | |
PostSampleAlternate: | |
type: object | |
required: | |
- type | |
- height | |
- width | |
- urls | |
properties: | |
type: | |
type: string | |
enum: | |
video | |
height: | |
type: number | |
width: | |
type: number | |
urls: | |
type: array | |
items: | |
- type: ["string", "null"] | |
format: "uri" | |
- type: ["string", "null"] | |
format: "uri" | |
PostSet: | |
type: object | |
required: | |
- id | |
- name | |
- shortname | |
- description | |
- is_public | |
- transfer_on_delete | |
- creator_id | |
- post_ids | |
- post_count | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
name: | |
type: string | |
shortname: | |
type: string | |
description: | |
type: string | |
is_public: | |
type: boolean | |
transfer_on_delete: | |
type: boolean | |
creator_id: | |
type: number | |
post_ids: | |
type: array | |
items: | |
type: number | |
post_count: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
PostVersion: | |
type: object | |
required: | |
- id | |
- post_id | |
- tags | |
- added_tags | |
- removed_tags | |
- locked_tags | |
- added_locked_tags | |
- removed_locked_tags | |
- updater_id | |
- updated_at | |
- rating | |
- rating_changed | |
- parent_id | |
- parent_changed | |
- source | |
- source_changed | |
- description | |
- description_changed | |
- version | |
- reason | |
- original_tags | |
- obsolete_added_tags | |
- obsolete_removed_tags | |
- unchanged_tags | |
- updater_name | |
properties: | |
id: | |
type: number | |
post_id: | |
type: number | |
tags: | |
type: string | |
added_tags: | |
type: array | |
items: | |
type: string | |
removed_tags: | |
type: array | |
items: | |
type: string | |
locked_tags: | |
type: ["string", "null"] | |
added_locked_tags: | |
type: array | |
items: | |
type: string | |
removed_locked_tags: | |
type: array | |
items: | |
type: string | |
updater_id: | |
type: number | |
updated_at: | |
type: string | |
format: date-time | |
rating: | |
type: string | |
enum: *ratings | |
rating_changed: | |
type: boolean | |
parent_id: | |
type: ["number", "null"] | |
parent_changed: | |
type: boolean | |
source: | |
type: string | |
source_changed: | |
type: boolean | |
description: | |
type: string | |
description_changed: | |
type: boolean | |
version: | |
type: number | |
reason: | |
type: ["string", "null"] | |
original_tags: | |
type: string | |
obsolete_added_tags: | |
type: string | |
obsolete_removed_tags: | |
type: string | |
unchanged_tags: | |
type: string | |
updater_name: | |
type: string | |
PostVote: | |
allOf: | |
- $ref: "#/components/schemas/LockableUserVote" | |
- type: object | |
required: | |
- post_id | |
properties: | |
post_id: | |
type: number | |
UserVote: | |
type: object | |
required: | |
- id | |
- user_id | |
- score | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
user_id: | |
type: number | |
score: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
QuickRule: | |
type: object | |
required: | |
- id | |
- rule_id | |
- reason | |
- header | |
- order | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
rule_id: | |
type: number | |
reason: | |
type: string | |
header: | |
type: string | |
order: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
RelatedTag: | |
type: object | |
required: | |
- name | |
- category_id | |
properties: | |
name: | |
type: string | |
category_id: | |
type: number | |
enum: *tag-categories | |
RecordBuilder: | |
type: object | |
required: | |
- section | |
- quick_mod | |
- rules | |
properties: | |
section: | |
type: string | |
quick_mod: | |
type: array | |
items: | |
type: object | |
required: | |
- reason | |
- header | |
- rule | |
properties: | |
reason: | |
type: string | |
header: | |
type: string | |
rule: | |
type: string | |
rules: | |
type: object | |
patternProperties: | |
"^[a-zA-Z0-9]+$": | |
type: object | |
required: | |
- name | |
- description | |
properties: | |
name: | |
type: string | |
description: | |
type: string | |
Rule: | |
type: object | |
required: | |
- id | |
- creator_id | |
- updater_id | |
- category_id | |
- name | |
- description | |
- order | |
- anchor | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
updater_id: | |
type: number | |
category_id: | |
type: number | |
name: | |
type: string | |
description: | |
type: string | |
order: | |
type: number | |
anchor: | |
type: string | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
RuleCategory: | |
type: object | |
required: | |
- id | |
- creator_id | |
- updater_id | |
- name | |
- order | |
- anchor | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
updater_id: | |
type: number | |
name: | |
type: string | |
order: | |
type: number | |
anchor: | |
type: string | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
StaffAuditLog: | |
type: object | |
required: | |
- id | |
- created_at | |
- updated_at | |
- user_id | |
- action | |
properties: | |
id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
user_id: | |
type: number | |
action: | |
type: string | |
enum: *auditlog-actions | |
reason: | |
type: string | |
description: | | |
Valid for: `ip_ban_create`, `ip_ban_delete` | |
title: | |
type: string | |
description: | | |
Valid for: `user_title_change` | |
target_id: | |
type: number | |
description: | | |
Valid for: `staff_note_create`, `staff_note_update`, `staff_note_delete`, `staff_note_undelete` | |
query: | |
type: string | |
description: | | |
Valid for: `post_owner_reassign`, `stuck_dnp` | |
post_ids: | |
type: array | |
description: | | |
Valid for: `post_owner_reassign`, `stuck_dnp` | |
items: | |
type: number | |
new_level: | |
type: number | |
description: | | |
Valid for: `min_upload_level_change` | |
old_level: | |
type: number | |
description: | | |
Valid for: `min_upload_level_change` | |
new_user_id: | |
type: number | |
description: | | |
Valid for: ` post_owner_reassign` | |
old_user_id: | |
type: number | |
description: | | |
Valid for: `post_owner_reassign` | |
staff_note_id: | |
type: number | |
description: | | |
Valid for: `staff_note_create`, `staff_note_update`, `staff_note_delete`, `staff_note_undelete` | |
body: | |
type: string | |
description: | | |
Valid for: `staff_note_create`, `staff_note_update` | |
old_body: | |
type: string | |
description: | | |
Valid for: `staff_note_update` | |
ip_addr: | |
type: string | |
description: | | |
Valid for: `ip_ban_create`, `ip_ban_delete` | |
comment_id: | |
type: number | |
description: | | |
Valid for: `comment_vote_delete`, `comment_vote_lock` | |
post_id: | |
type: number | |
description: | | |
Valid for: `post_vote_delete`, `post_vote_lock` | |
forum_post_id: | |
type: number | |
description: | | |
Valid for: `forum_post_vote_delete` | |
vote: | |
type: number | |
description: | | |
Valid for: `comment_vote_delete`, `comment_vote_lock`, `post_vote_delete`, `post_vote_lock`, `forum_post_vote_delete` | |
voter_id: | |
type: number | |
description: | | |
Valid for: `comment_vote_delete`, `comment_vote_lock`, `post_vote_delete`, `post_vote_lock`, `forum_post_vote_delete` | |
StaffNote: | |
type: object | |
required: | |
- id | |
- created_at | |
- updated_at | |
- user_id | |
- creator_id | |
- body | |
- is_deleted | |
- updater_id | |
properties: | |
id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
user_id: | |
type: number | |
creator_id: | |
type: number | |
body: | |
type: string | |
is_deleted: | |
type: boolean | |
updater_id: | |
type: number | |
Stats: | |
type: object | |
required: | |
- started | |
- total_posts | |
- active_posts | |
- deleted_posts | |
- existing_posts | |
- destroyed_posts | |
- total_votes | |
- total_notes | |
- total_favorites | |
- total_pools | |
- public_sets | |
- private_sets | |
- total_sets | |
- average_posts_per_pool | |
- average_posts_per_set | |
- safe_posts | |
- questionable_posts | |
- explicit_posts | |
- jpg_posts | |
- png_posts | |
- gif_posts | |
- webp_posts | |
- webm_posts | |
- average_file_size | |
- total_file_size | |
- average_posts_per_day | |
- total_users | |
- anonymous_users | |
- banned_users | |
- restricted_users | |
- member_users | |
- trusted_users | |
- former_staff_users | |
- janitor_users | |
- moderator_users | |
- system_users | |
- admin_users | |
- owner_users | |
- unactivated_users | |
- total_dmails | |
- average_registrations_per_day | |
- total_comments | |
- active_comments | |
- hidden_comments | |
- deleted_comments | |
- average_comments_per_day | |
- total_forum_threads | |
- total_forum_posts | |
- average_posts_per_thread | |
- average_forum_posts_per_day | |
- total_tags | |
- general_tags | |
- artist_tags | |
- voice_actor_tags | |
- copyright_tags | |
- character_tags | |
- species_tags | |
- invalid_tags | |
- meta_tags | |
- lore_tags | |
properties: | |
started: | |
type: string | |
format: date-time | |
total_posts: | |
type: number | |
active_posts: | |
type: number | |
deleted_posts: | |
type: number | |
existing_posts: | |
type: number | |
destroyed_posts: | |
type: number | |
total_votes: | |
type: number | |
total_notes: | |
type: number | |
total_favorites: | |
type: number | |
total_pools: | |
type: number | |
public_sets: | |
type: number | |
private_sets: | |
type: number | |
total_sets: | |
type: number | |
average_posts_per_pool: | |
type: string | |
average_posts_per_set: | |
type: string | |
safe_posts: | |
type: number | |
questionable_posts: | |
type: number | |
explicit_posts: | |
type: number | |
jpg_posts: | |
type: number | |
png_posts: | |
type: number | |
gif_posts: | |
type: number | |
webp_posts: | |
type: number | |
webm_posts: | |
type: number | |
average_file_size: | |
type: string | |
total_file_size: | |
type: number | |
average_posts_per_day: | |
type: number | |
total_users: | |
type: number | |
anonymous_users: | |
type: number | |
banned_users: | |
type: number | |
restricted_users: | |
type: number | |
member_users: | |
type: number | |
trusted_users: | |
type: number | |
former_staff_users: | |
type: number | |
janitor_users: | |
type: number | |
moderator_users: | |
type: number | |
system_users: | |
type: number | |
admin_users: | |
type: number | |
owner_users: | |
type: number | |
unactivated_users: | |
type: number | |
total_dmails: | |
type: number | |
average_registrations_per_day: | |
type: number | |
total_comments: | |
type: number | |
active_comments: | |
type: number | |
hidden_comments: | |
type: number | |
deleted_comments: | |
type: number | |
average_comments_per_day: | |
type: number | |
total_forum_threads: | |
type: number | |
total_forum_posts: | |
type: number | |
average_posts_per_thread: | |
type: number | |
average_forum_posts_per_day: | |
type: number | |
total_tags: | |
type: number | |
general_tags: | |
type: number | |
artist_tags: | |
type: number | |
voice_actor_tags: | |
type: number | |
copyright_tags: | |
type: number | |
character_tags: | |
type: number | |
species_tags: | |
type: number | |
invalid_tags: | |
type: number | |
meta_tags: | |
type: number | |
lore_tags: | |
type: number | |
Tag: | |
type: object | |
required: | |
- id | |
- name | |
- post_count | |
- category | |
- related_tags | |
- related_tags_updated_at | |
- created_at | |
- updated_at | |
- is_locked | |
properties: | |
id: | |
type: number | |
name: | |
type: string | |
post_count: | |
type: number | |
category: | |
type: number | |
enum: *tag-categories | |
related_tags: | |
type: array | |
items: | |
type: string | |
related_tags_updated_at: | |
type: ["string", "null"] | |
format: date-time | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
is_locked: | |
type: string | |
format: date-time | |
TagAlias: | |
type: object | |
required: | |
- id | |
- antecedent_name | |
- consequent_name | |
- creator_id | |
- forum_topic_id | |
- forum_post_id | |
- status | |
- created_at | |
- updated_at | |
- post_count | |
- approver_id | |
- reason | |
properties: | |
id: | |
type: number | |
antecedent_name: | |
type: string | |
consequent_name: | |
type: string | |
creator_id: | |
type: number | |
forum_topic_id: | |
type: ["number", "null"] | |
forum_post_id: | |
type: ["number", "null"] | |
status: | |
type: string | |
description: | | |
Note: The "error" status will be proceeded by an error, ex: "error: Validation failed: A tag alias for tag_name already exists" | |
enum: *tag-request-statuses | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
post_count: | |
type: number | |
approver_id: | |
type: ["number", "null"] | |
reason: | |
type: string | |
TagImplication: | |
type: object | |
required: | |
- id | |
- antecedent_name | |
- consequent_name | |
- creator_id | |
- forum_topic_id | |
- forum_post_id | |
- status | |
- created_at | |
- updated_at | |
- post_count | |
- approver_id | |
- descendant_names | |
- reason | |
properties: | |
id: | |
type: number | |
antecedent_name: | |
type: string | |
consequent_name: | |
type: string | |
creator_id: | |
type: number | |
forum_topic_id: | |
type: ["number", "null"] | |
forum_post_id: | |
type: ["number", "null"] | |
status: | |
type: string | |
description: | | |
Note: The "error" status will be proceeded by an error, ex: "error: Validation failed: A tag alias for tag_name already exists" | |
enum: *tag-request-statuses | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
post_count: | |
type: number | |
approver_id: | |
type: ["number", "null"] | |
descendant_names: | |
type: array | |
items: | |
type: string | |
reason: | |
type: string | |
TagPreview: | |
type: object | |
required: | |
- a | |
- type | |
- tagTypeA | |
properties: | |
a: | |
type: string | |
description: The name if type=tag, else the antecedent. | |
b: | |
type: string | |
description: The consequent, only present if type=alias or type=implication. | |
type: | |
type: string | |
enum: | |
- tag | |
- implication | |
- alias | |
tagTypeA: | |
type: ["number", "null"] | |
enum: *tag-categories | |
tagTypeB: | |
type: ["number", "null"] | |
enum: *tag-categories | |
TagVersion: | |
type: object | |
required: | |
- id | |
- created_at | |
- updated_at | |
- category | |
- is_locked | |
- tag_id | |
- updater_id | |
- reason | |
properties: | |
id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
category: | |
type: number | |
enum: *tag-categories | |
is_locked: | |
type: boolean | |
tag_id: | |
type: number | |
updater_id: | |
type: number | |
reason: | |
type: string | |
Takedown: | |
type: object | |
required: | |
- id | |
- created_at | |
- updated_at | |
- approver_id | |
- status | |
- reason_hidden | |
- post_count | |
properties: | |
id: | |
tpe: number | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
approver_id: | |
type: ["number", "null"] | |
status: | |
type: string | |
enum: | |
- approved | |
- denied | |
- partial | |
- pending | |
reason_hidden: | |
type: boolean | |
post_count: | |
type: number | |
UploadWhitelist: | |
type: object | |
required: | |
- id | |
- pattern | |
- note | |
- reason | |
- allowed | |
- hidden | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
pattern: | |
type: string | |
note: | |
type: string | |
reason: | |
type: string | |
allowed: | |
type: boolean | |
hidden: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
Upload: | |
type: object | |
required: | |
- io | |
- source | |
- rating | |
- uploader_id | |
- tag_string | |
- status | |
- backtrace | |
- post_id | |
- created_at | |
- updated_at | |
- parent_id | |
- md5 | |
- file_ext | |
- file_size | |
- image_width | |
- image_height | |
- description | |
- uploader_name | |
properties: | |
id: | |
type: number | |
source: | |
type: string | |
rating: | |
type: string | |
enum: *ratings | |
uploader_id: | |
type: number | |
tag_string: | |
type: string | |
status: | |
type: string | |
description: | | |
Note: The "error" status will be proceeded by an error, ex: "error: RuntimeError - No file or source URL provided" | |
enum: | |
- completed | |
- duplicate | |
- error | |
- processing | |
- pending | |
backtrace: | |
type: ["string", "null"] | |
post_id: | |
type: ["number", "null"] | |
deprecated: true | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
parent_id: | |
type: ["null", "number"] | |
md5: | |
type: ["string", "null"] | |
file_ext: | |
type: ["string", "number"] | |
file_size: | |
type: ["null", "number"] | |
image_width: | |
type: ["null", "number"] | |
image_height: | |
type: ["null", "number"] | |
description: | |
type: string | |
uploader_name: | |
type: string | |
User: | |
type: object | |
required: | |
- id | |
- created_at | |
- name | |
- level | |
- base_upload_limit | |
- post_upload_count | |
- post_update_count | |
- note_update_count | |
- level_string | |
- avatar_id | |
- can_approve_posts | |
- unrestricted_uploads | |
- disable_user_dmails | |
- can_manage_aibur | |
properties: | |
id: | |
type: number | |
created_at: | |
type: string | |
format: date-time | |
name: | |
type: string | |
level: | |
type: number | |
base_upload_limit: | |
type: number | |
post_upload_count: | |
type: number | |
post_update_count: | |
type: number | |
note_update_count: | |
type: number | |
level_string: | |
type: string | |
avatar_id: | |
type: ["number", "null"] | |
can_approve_posts: | |
type: boolean | |
unrestricted_uploads: | |
type: boolean | |
disable_user_dmails: | |
type: boolean | |
can_manage_aibur: | |
type: boolean | |
UserBlock: | |
type: object | |
required: | |
- id | |
- user_id | |
- target_id | |
- hide_uploads | |
- hide_comments | |
- hide_forum_topics | |
- hide_forum_posts | |
- disable_messages | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
user_id: | |
type: number | |
target_id: | |
type: number | |
hide_uploads: | |
type: boolean | |
hide_comments: | |
type: boolean | |
hide_forum_topics: | |
type: boolean | |
hide_forum_posts: | |
type: boolean | |
disable_messages: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
UserFeedback: | |
type: object | |
required: | |
- id | |
- user_id | |
- creator_id | |
- category | |
- body | |
- created_at | |
- updated_at | |
- updater_id | |
properties: | |
id: | |
type: number | |
user_id: | |
type: number | |
creator_id: | |
type: number | |
category: | |
type: string | |
enum: *feedback-categories | |
body: | |
type: string | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
updater_id: | |
type: number | |
UserNameChangeRequest: | |
type: object | |
required: | |
- id | |
- status | |
- user_id | |
- approver_id | |
- original_name | |
- desired_name | |
- change_reason | |
- rejection_reason | |
- created_at | |
- updated_at | |
properties: | |
id: | |
type: number | |
status: | |
type: string | |
enum: | |
- approved | |
user_id: | |
type: number | |
approver_id: | |
type: number | |
original_name: | |
type: string | |
desired_name: | |
type: string | |
change_reason: | |
type: string | |
rejection_reason: | |
type: "null" | |
deprecated: true | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
WikiPage: | |
type: object | |
required: | |
- id | |
- creator_id | |
- title | |
- body | |
- is_locked | |
- created_at | |
- updated_at | |
- updater_id | |
- parent | |
- creator_name | |
- category_id | |
properties: | |
id: | |
type: number | |
creator_id: | |
type: number | |
title: | |
type: string | |
body: | |
type: string | |
is_locked: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
updater_id: | |
type: number | |
parent: | |
type: ["string", "null"] | |
creator_name: | |
type: string | |
category_id: | |
type: number | |
enum: *tag-categories | |
WikiPageVersion: | |
type: object | |
required: | |
- id | |
- wiki_page_id | |
- updater_id | |
- title | |
- body | |
- is_locked | |
- created_at | |
- updated_at | |
- reason | |
- parent | |
properties: | |
id: | |
type: number | |
wiki_page_id: | |
type: number | |
updater_id: | |
type: number | |
title: | |
type: string | |
body: | |
type: string | |
is_locked: | |
type: boolean | |
created_at: | |
type: string | |
format: date-time | |
updated_at: | |
type: string | |
format: date-time | |
reason: | |
type: ["string", "null"] | |
parent: | |
type: ["string", "null"] | |
responses: | |
NotFound: | |
description: Not Found | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- success | |
- reason | |
properties: | |
success: | |
type: boolean | |
enum: | |
- false | |
reason: | |
type: string | |
enum: | |
- "not found" | |
AccessDenied: | |
description: Access Denied | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- success | |
- reason | |
properties: | |
success: | |
type: boolean | |
enum: | |
- false | |
reason: | |
type: string | |
enum: | |
- "Access Denied" | |
ExpectedError: | |
description: Invalid Input Data | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- errors | |
examples: | |
- { "errors": { "key": [ "the error" ] } } | |
properties: | |
errors: | |
type: object | |
patternProperties: | |
"^[a-z]+$": | |
type: array | |
items: | |
type: string | |
MessageError: | |
description: Error | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- success | |
- message | |
- code | |
properties: | |
success: | |
type: boolean | |
enum: | |
- false | |
message: | |
type: string | |
code: | |
type: ["string", "null"] | |
requestBodies: | |
reorder: | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
type: object | |
required: | |
- id | |
- order | |
properties: | |
id: | |
type: number | |
order: | |
type: number | |
warning: | |
content: | |
application/json: | |
type: object | |
required: | |
- record_type | |
properties: | |
record_type: | |
type: string | |
enum: | |
- unmark | |
- ban | |
- record | |
- warning | |
paths: | |
# Artists | |
/artists.json: | |
get: | |
summary: Search Artists | |
tags: | |
- Artists | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- updated_at | |
- name | |
- post_count | |
- name: search[name] | |
in: query | |
schema: | |
type: string | |
- name: search[any_other_name_like] | |
in: query | |
schema: | |
type: string | |
- name: search[any_name_matches] | |
in: query | |
schema: | |
type: string | |
- name: search[any_name_or_url_matches] | |
in: query | |
schema: | |
type: string | |
- name: search[url_matches] | |
in: query | |
schema: | |
type: string | |
- name: search[creator_name] | |
in: query | |
schema: | |
type: string | |
- name: search[creator_id] | |
in: query | |
schema: | |
type: string | |
- name: search[has_tag] | |
in: query | |
schema: | |
type: string | |
- name: search[is_linked] | |
in: query | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
allOf: | |
- $ref: "#/components/schemas/Artist" | |
- type: object | |
properties: | |
urls: | |
type: array | |
items: | |
$ref: "#/components/schemas/ArtistURL" | |
post: | |
summary: Create Artist | |
tags: | |
- Artists | |
security: | |
- basicAuth: [] | |
description: | | |
`other_names` & `urls` are silently truncated to 25 entries. | |
`notes` is silently truncated to the wiki page limit (250,000). | |
Individual `other_names` are silently truncated to 100 characters. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- name | |
properties: | |
name: | |
type: string | |
other_names: | |
type: array | |
items: | |
type: string | |
other_names_string: | |
type: string | |
url_string: | |
type: string | |
notes: | |
type: string | |
linked_user_id: | |
type: ["number", "null"] | |
description: Only usable for Janitor+ | |
is_locked: | |
type: boolean | |
description: Only usable for Janitor+ | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Artist" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/artists/{idOrName}.json: | |
get: | |
summary: Get Artist | |
tags: | |
- Artists | |
parameters: | |
- name: idOrName | |
in: path | |
required: true | |
description: The ID or name of the artist to get. | |
schema: | |
type: ["number", "string"] | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
allOf: | |
- $ref: "#/components/schemas/Artist" | |
- type: object | |
properties: | |
urls: | |
type: array | |
items: | |
$ref: "#/components/schemas/ArtistURL" | |
domains: | |
type: array | |
items: | |
type: array | |
items: | |
- type: string | |
- type: number | |
examples: | |
- [["pawsmov.in", 1], ["furaffinity.net", 1]] | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Artist | |
tags: | |
- Artists | |
security: | |
- basicAuth: [] | |
description: | | |
If an artist is locked, you must be Janitor+ to edit them. | |
`other_names` & `urls` are silently truncated to 25 entries. | |
`notes` is silently truncated to the wiki page limit (250,000). | |
Individual `other_names` are silently truncated to 100 characters. | |
parameters: | |
- name: idOrName | |
in: path | |
required: true | |
description: The ID or name of the artist to edit. | |
schema: | |
type: ["number", "string"] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
name: | |
type: string | |
description: Only usable for Janitor+ | |
other_names: | |
type: array | |
items: | |
type: string | |
other_names_string: | |
type: string | |
url_string: | |
type: string | |
notes: | |
type: string | |
linked_user_id: | |
type: ["number", "null"] | |
description: Only usable for Janitor+ | |
is_locked: | |
type: boolean | |
description: Only usable for Janitor+ | |
rename_dnp: | |
type: boolean | |
description: Only usable for Owner+ | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Artist | |
tags: | |
- Artists | |
security: | |
- basicAuth: [] | |
description: | | |
You must be an Admin or higher to delete an artist. | |
parameters: | |
- name: idOrName | |
in: path | |
required: true | |
description: The ID or name of the artist to edit. | |
schema: | |
type: ["number", "string"] | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/artists/{idOrName}/revert.json: | |
put: | |
summary: Revert Artist | |
tags: | |
- Artists | |
security: | |
- basicAuth: [] | |
description: | | |
If an artist is locked, you must be Janitor+ to revert them. | |
parameters: | |
- name: idOrName | |
in: path | |
required: true | |
description: The ID or name of the artist to revert. | |
schema: | |
type: ["number", "string"] | |
- name: version_id | |
in: query | |
required: true | |
description: The version ID to revert to. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Artist Versions | |
/artists/versions.json: | |
get: | |
summary: Search Artist Versions | |
tags: | |
- Artist Versions | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
description: The order of the results. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- name | |
- name: search[artist_name] | |
in: query | |
description: The name of the artist. | |
schema: | |
type: string | |
- name: search[artist_id] | |
in: query | |
description: The id of the artist. | |
schema: | |
type: string | |
- name: search[updater_name] | |
in: query | |
description: The name of the user that updated the artist. | |
schema: | |
type: string | |
- name: search[updater_id] | |
in: query | |
description: The id of the user that updated the artist. | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/ArtistVersion" | |
# Artist URLs | |
/artists/urls.json: | |
get: | |
summary: Search Artist URLs | |
tags: | |
- Artist URLs | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
description: The order of the results. | |
schema: | |
type: string | |
enum: | |
- id | |
- id_asc | |
- id_desc | |
- artist_id | |
- artist_id_asc | |
- artist_id_desc | |
- url | |
- url_asc | |
- url_desc | |
- normalized_url | |
- normalized_url_asc | |
- normalized_url_desc | |
- created_at | |
- created_at_asc | |
- created_at_desc | |
- updated_at | |
- updated_at_asc | |
- updated_at_desc | |
- name: search[artist_name] | |
in: query | |
description: The name of the artist. | |
schema: | |
type: string | |
- name: search[artist_id] | |
in: query | |
description: The id of the artist. | |
schema: | |
type: string | |
- name: search[is_active] | |
in: query | |
description: If the artist url is active. | |
schema: | |
type: boolean | |
- name: search[url] | |
in: query | |
description: The url. | |
schema: | |
type: string | |
- name: search[normalized_url] | |
in: query | |
description: The normalized url. (http:, trailing `/`) | |
schema: | |
type: string | |
- name: search[artist] | |
in: query | |
description: Legacy name for `search[artist_name]`. | |
deprecated: true | |
schema: | |
type: string | |
- name: search[url_matches] | |
in: query | |
description: Legacy name for `search[url]`. | |
deprecated: true | |
schema: | |
type: string | |
- name: search[normalized_url_matches] | |
in: query | |
description: Legacy name for `search[normalized_url]`. | |
deprecated: true | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/ArtistURL" | |
# Avoid Posting Entries | |
/avoid_postings.json: | |
get: | |
summary: Search Avoid Posting Entries | |
tags: | |
- Avoid Posting Entries | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- name: search[creator_name] | |
in: query | |
schema: | |
type: string | |
- name: search[creator_id] | |
in: query | |
schema: | |
type: string | |
- name: search[any_name_matches] | |
in: query | |
description: Any name matching. | |
schema: | |
type: string | |
- name: search[artist_name] | |
in: query | |
description: The artist name of the avoid posting entry. | |
schema: | |
type: string | |
- name: search[artist_id] | |
in: query | |
description: The artist id for the avoid posting entry. | |
schema: | |
type: string | |
- name: search[any_other_name_matches] | |
in: query | |
description: Any other name matching. | |
schema: | |
type: string | |
- name: search[details] | |
in: query | |
description: The details of the avoid posting entry. | |
schema: | |
type: string | |
- name: search[staff_notes] | |
in: query | |
description: The staff notes on the avoid posting entry. Must be Janitor+ to use. | |
schema: | |
type: string | |
- name: search[is_active] | |
in: query | |
description: If the avoid posting entry is active. | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/AvoidPosting" | |
post: | |
summary: Create Avoid Posting Entry | |
tags: | |
- Avoid Posting Entries | |
security: | |
- basicAuth: [] | |
description: Must be Owner+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- artist_name | |
properties: | |
artist_name: | |
type: string | |
details: | |
type: string | |
staff_notes: | |
type: string | |
is_active: | |
type: boolean | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/AvoidPosting" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/avoid_postings/{idOrArtistName}.json: | |
get: | |
summary: Get Avoid Posting Entry | |
tags: | |
- Avoid Posting Entries | |
parameters: | |
- name: idOrArtistName | |
in: path | |
required: true | |
description: The ID of the avoid posting entry, or the name of the artist. | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/AvoidPosting" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Avoid Posting Entry | |
tags: | |
- Avoid Posting Entries | |
security: | |
- basicAuth: [] | |
description: Must be Owner+. | |
parameters: | |
- name: idOrArtistName | |
in: path | |
required: true | |
description: The ID of the avoid posting entry, or the name of the artist. | |
schema: | |
type: string | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
artist_name: | |
type: string | |
details: | |
type: string | |
staff_notes: | |
type: string | |
is_active: | |
type: boolean | |
rename_artist: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/AvoidPosting" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Avoid Posting Entry | |
tags: | |
- Avoid Posting Entries | |
security: | |
- basicAuth: [] | |
description: Must be Owner+. | |
parameters: | |
- name: idOrArtistName | |
in: path | |
required: true | |
description: The ID of the avoid posting entry, or the name of the artist. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/avoid_postings/{idOrArtistName}/deactivate.json: | |
put: | |
summary: Deactivate Avoid Posting Entry | |
tags: | |
- Avoid Posting Entries | |
security: | |
- basicAuth: [] | |
description: Must be Owner+. | |
parameters: | |
- name: idOrArtistName | |
in: path | |
required: true | |
description: The ID of the avoid posting entry, or the name of the artist. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/avoid_postings/{idOrArtistName}/reactivate.json: | |
put: | |
summary: Reactivate Avoid Posting Entry | |
tags: | |
- Avoid Posting Entries | |
security: | |
- basicAuth: [] | |
description: Must be Owner+. | |
parameters: | |
- name: idOrArtistName | |
in: path | |
required: true | |
description: The ID of the avoid posting entry, or the name of the artist. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Avoid Posting Versions | |
/avoid_postings/versions.json: | |
get: | |
summary: Search Avoid Posting Versions | |
tags: | |
- Avoid Posting Versions | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[updater_ip_addr] | |
in: query | |
description: Must be Admin+ to use. See [postgres' documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, "is contained within or equals" (`<<=`). | |
schema: | |
type: string | |
- name: search[order] | |
in: query | |
description: The order of the results. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- name: search[updater_name] | |
in: query | |
description: The name of the updater of the avoid posting entry. | |
schema: | |
type: string | |
- name: search[updater_id] | |
in: query | |
description: The ID of the updater of the avoid posting entry. | |
schema: | |
type: string | |
- name: search[any_name_matches] | |
in: query | |
description: Any name matching. | |
schema: | |
type: string | |
- name: search[artist_name] | |
in: query | |
description: The artist name of the avoid posting entry. | |
schema: | |
type: string | |
- name: search[artist_id] | |
in: query | |
description: The artist id for the avoid posting entry. | |
schema: | |
type: string | |
- name: search[any_other_name_matches] | |
in: query | |
description: Any other name matching. | |
schema: | |
type: string | |
- name: search[is_active] | |
in: query | |
description: If the avoid posting entry is active. | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/AvoidPostingVersion" | |
# Bans | |
/bans.json: | |
get: | |
summary: Search Bans | |
tags: | |
- Bans | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
description: The order of the results. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- expires_at_desc | |
- name: search[banner_id] | |
in: query | |
description: The ID of the banner. | |
schema: | |
type: string | |
- name: search[banner_name] | |
in: query | |
description: The name of banner. | |
schema: | |
type: string | |
- name: search[user_id] | |
in: query | |
description: The ID of the banned user. | |
schema: | |
type: string | |
- name: search[user_name] | |
in: query | |
description: The name of the banned user. | |
schema: | |
type: string | |
- name: search[reason_matches] | |
in: query | |
description: The reason of the ban. | |
schema: | |
type: string | |
- name: search[expired] | |
in: query | |
description: If the ban is expired. | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Ban" | |
/bans/{id}.json: | |
get: | |
summary: Get Ban | |
tags: | |
- Bans | |
parameters: | |
- name: id | |
in: path | |
description: The ID of the ban to get. | |
required: true | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Ban" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Bulk Update Requests | |
/bulk_update_requests.json: | |
get: | |
summary: Search Bulk Update Requests | |
tags: | |
- Bulk Update Requests | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- status_desc | |
- updated_at_asc | |
- name: search[creator_id] | |
in: query | |
schema: | |
type: number | |
- name: search[creator_name] | |
in: query | |
schema: | |
type: string | |
- name: search[approver_id] | |
in: query | |
schema: | |
type: number | |
- name: search[approver_name] | |
in: query | |
schema: | |
type: string | |
- name: search[forum_topic_id] | |
in: query | |
schema: | |
type: number | |
- name: search[status] | |
in: query | |
schema: | |
type: string | |
enum: | |
- approved | |
- rejected | |
- pending | |
- name: search[title_matches] | |
in: query | |
schema: | |
type: string | |
- name: search[script_matches] | |
in: query | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/BulkUpdateRequest" | |
post: | |
summary: Create Bulk Update Request | |
tags: | |
- Bulk Update Requests | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- script | |
- title | |
- reason | |
properties: | |
script: | |
type: string | |
title: | |
type: string | |
reason: | |
type: string | |
forum_topic_id: | |
type: number | |
skip_forum: | |
type: boolean | |
description: Only usable for Admin+ | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/BulkUpdateRequest" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/bulk_update_request/{id}.json: | |
get: | |
summary: Get Bulk Update Request | |
tags: | |
- Bulk Update Request | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the bulk update request. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/BulkUpdateRequest" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Bulk Update Request | |
tags: | |
- Bulk Update Request | |
security: | |
- basicAuth: [] | |
description: You must be the creator of the BUR, or an have the "Manage Tag Change Requests" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the bulk update request. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
script: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Reject Bulk Update Request | |
tags: | |
- Bulk Update Request | |
security: | |
- basicAuth: [] | |
description: You must be the creator of the BUR, or an have the "Manage Tag Change Requests" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the bulk update request. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/bulk_update_request/{id}/approve.json: | |
post: | |
summary: Approve Bulk Update Request | |
tags: | |
- Bulk Update Request | |
description: Must have the "Manage Tag Change Requests" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the bulk update request. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Comments | |
/comments.json: | |
get: | |
summary: Search Comments | |
tags: | |
- Comments | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- status | |
- status_desc | |
- updated_at_desc | |
- in: query | |
name: search[body_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[post_tags_match] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[post_note_updater_name] | |
schema: | |
type: string | |
- in: query | |
name: search[post_note_updater_id] | |
schema: | |
type: number | |
- in: query | |
name: search[poster_id] | |
schema: | |
type: number | |
- in: query | |
name: search[poster_name] | |
schema: | |
type: string | |
- in: query | |
name: search[is_sticky] | |
schema: | |
type: boolean | |
- in: query | |
name: search[is_hidden] | |
description: Only usable by Moderator+ | |
schema: | |
type: boolean | |
- in: query | |
name: search[ip_addr] | |
description: Only usable by Admin+ | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Comment" | |
post: | |
summary: Create Comment | |
tags: | |
- Comments | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- body | |
- post_id | |
properties: | |
body: | |
type: string | |
post_id: | |
type: number | |
is_sticky: | |
type: boolean | |
description: Only usable for Moderator+ | |
is_hidden: | |
type: boolean | |
description: Only usable for Moderator+ | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Comment" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/comments/{id}.json: | |
get: | |
summary: Get Comment | |
tags: | |
- Comments | |
description: If the comment is hidden, you must be the creator or Moderator+ to see it. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the comment. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Comment" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Comment | |
tags: | |
- Comments | |
security: | |
- basicAuth: [] | |
description: | | |
You must be the creator of the comment, or Admin+ to edit. Marked comments cannot be edited. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the comment. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
body: | |
type: string | |
is_sticky: | |
type: boolean | |
description: Only usable for Moderator+ | |
is_hidden: | |
type: boolean | |
description: Only usable for Moderator+ | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Comment | |
tags: | |
- Comments | |
security: | |
- basicAuth: [] | |
description: | | |
You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the comment. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/comments/{id}/hide.json: | |
put: | |
summary: Hide Comment | |
tags: | |
- Comments | |
security: | |
- basicAuth: [] | |
description: | | |
You must be the creator or Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the comment. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/comments/{id}/unhide.json: | |
put: | |
summary: Unhide Comment | |
tags: | |
- Comments | |
security: | |
- basicAuth: [] | |
description: | | |
You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the comment. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/comments/{id}/warning.json: | |
put: | |
summary: Mark Comment | |
tags: | |
- Comments | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the comment. | |
schema: | |
type: number | |
requestBody: | |
$ref: "#/components/requestBodies/warning" | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/DTextResponse" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Comment Votes | |
/comments/{id}/votes.json: | |
post: | |
summary: Create Comment Vote | |
tags: | |
- Comment Votes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the comment. | |
schema: | |
type: string | |
- name: score | |
in: query | |
required: true | |
schema: | |
type: number | |
enum: | |
- -1 | |
- 1 | |
- name: no_unvote | |
in: query | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- score | |
- our_score | |
properties: | |
score: | |
type: number | |
our_score: | |
type: number | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Comment Vote | |
tags: | |
- Comment Votes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the comment. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/comments/votes.json: | |
get: | |
summary: Search Comment Votes | |
tags: | |
- Comment Votes | |
security: | |
- basicAuth: [] | |
description: | | |
If you are not Moderator+, you can only see your own votes. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
description: Must be Admin+ to use. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- ip_addr | |
- in: query | |
name: search[user_id] | |
schema: | |
type: number | |
- in: query | |
name: search[user_name] | |
schema: | |
type: string | |
- in: query | |
name: search[comment_id] | |
schema: | |
type: number | |
- in: query | |
name: search[comment_creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[comment_creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[timeframe] | |
schema: | |
type: number | |
description: Number of days. | |
- in: query | |
name: search[score] | |
description: -1 for down, 1 for up | |
schema: | |
type: number | |
- in: query | |
name: search[is_locked] | |
schema: | |
type: boolean | |
- in: query | |
name: search[duplicates_only] | |
description: Must be Admin+ to use. | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/CommentVote" | |
/comments/votes/lock.json: | |
put: | |
summary: Lock Comment Vote | |
tags: | |
- Comment Votes | |
security: | |
- basicAuth: [] | |
description: | | |
You must be Moderator+. | |
parameters: | |
- name: ids | |
in: query | |
required: true | |
description: The IDs of the comment votes, comma separated. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/comments/votes/delete.json: | |
put: | |
summary: Delete Comment Vote | |
tags: | |
- Comment Votes | |
security: | |
- basicAuth: [] | |
description: | | |
You must be Admin+. | |
parameters: | |
- name: ids | |
in: query | |
required: true | |
description: The IDs of the comment votes, comma separated. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# DMails | |
/dmails.json: | |
get: | |
summary: Search DMails | |
tags: | |
- DMails | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- in: query | |
name: search[title_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[message_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[to_name] | |
schema: | |
type: string | |
- in: query | |
name: search[to_id] | |
schema: | |
type: number | |
- in: query | |
name: search[from_name] | |
schema: | |
type: string | |
- in: query | |
name: search[from_id] | |
schema: | |
type: number | |
- in: query | |
name: search[is_read] | |
schema: | |
type: boolean | |
- in: query | |
name: search[is_deleted] | |
schema: | |
type: boolean | |
- in: query | |
name: search[read] | |
schema: | |
type: boolean | |
- in: query | |
name: search[owner_id] | |
schema: | |
type: number | |
- in: query | |
name: search[owner_name] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/DMail" | |
/dmails/{id}.json: | |
get: | |
summary: Get DMail | |
tags: | |
- DMails | |
description: Fetching a dmail will not mark it as read. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the dmail. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/DMail" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
delete: | |
summary: Delete DMail | |
tags: | |
- DMails | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the dmail. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/dmails/{id}/mark_as_read.json: | |
put: | |
summary: Mark DMail As Read | |
tags: | |
- DMails | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the dmail. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/dmails/{id}/mark_as_unread.json: | |
put: | |
summary: Mark DMail As Unread | |
tags: | |
- DMails | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the dmail. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/dmails/mark_all_as_unread.json: | |
put: | |
summary: Mark All DMail As Unread | |
tags: | |
- DMails | |
security: | |
- basicAuth: [] | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# DText Preview | |
/dtext_preview.json: | |
post: | |
summary: Preview DText | |
tags: | |
- DText | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- body | |
properties: | |
body: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/DTextResponse" | |
# Email Blacklists | |
/email_blacklists.json: | |
get: | |
summary: Search Email Blacklists | |
tags: | |
- Email Blacklists | |
description: You must be Admin+. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- reason | |
- domain | |
- in: query | |
name: search[domain] | |
schema: | |
type: string | |
- in: query | |
name: search[reason] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/EmailBlacklist" | |
post: | |
summary: Create Email Blacklist | |
tags: | |
- Email Blacklists | |
description: You must be Admin+. | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- domain | |
- reason | |
properties: | |
domain: | |
type: string | |
reason: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/EmailBlacklist" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/email_blacklists/{id}.json: | |
delete: | |
summary: Delete Email Blacklist | |
tags: | |
- Email Blacklists | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the email blacklist. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Favorites | |
/favorites.json: | |
get: | |
summary: List Favorites | |
tags: | |
- Favorites | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- in: query | |
name: user_id | |
description: You must be the user or Moderator+ if the user has their favorites hidden. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Post" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
post: | |
summary: Create Favorite | |
tags: | |
- Favorites | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_id | |
properties: | |
post_ud: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/favorites/{id}.json: | |
delete: | |
summary: Delete Favorite | |
tags: | |
- Favorites | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Forum Categories | |
/forum_categories.json: | |
get: | |
summary: List Forum Categories | |
tags: | |
- Forum Categories | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/ForumCategory" | |
post: | |
summary: Create Forum Category | |
tags: | |
- Forum Categories | |
description: You must be Admin+. | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- name | |
- can_create | |
- can_reply | |
properties: | |
name: | |
type: string | |
can_create: | |
type: number | |
description: user level | |
can_view: | |
type: number | |
description: user level | |
order: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/ForumCategory" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/forum_categories/{id}.json: | |
patch: | |
summary: Edit Forum Category | |
tags: | |
- Forum Categories | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum category. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
name: | |
type: string | |
can_create: | |
type: number | |
description: user level | |
can_view: | |
type: number | |
description: user level | |
order: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Forum Category | |
tags: | |
- Forum Categories | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum category. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_categories/reorder.json: | |
post: | |
summary: Reorder Forum Categories | |
tags: | |
- Forum Categories | |
description: You must be Admin+. No IDs can be omitted, no extra IDs can be present, and no duplicate IDs can be present. | |
security: | |
- basicAuth: [] | |
requestBody: | |
$ref: "#/components/requestBodies/reorder" | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Forum Post | |
/forum_posts.json: | |
get: | |
summary: Search Forum Posts | |
tags: | |
- Forum Posts | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[topic_id] | |
schema: | |
type: number | |
- in: query | |
name: search[topic_title_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[body_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[topic_category_id] | |
schema: | |
type: number | |
- in: query | |
name: search[is_hidden] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/ForumPost" | |
post: | |
summary: Create Forum Post | |
tags: | |
- Forum Posts | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- body | |
- topic_id | |
properties: | |
body: | |
type: string | |
topic_id: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/ForumPost" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/forum_posts/{id}.json: | |
get: | |
summary: Get Forum Post | |
tags: | |
- Forum Posts | |
description: If the forum post is hidden, you must be the creator or Moderator+ to see it. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/ForumPost" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Forum Post | |
tags: | |
- Forum Posts | |
security: | |
- basicAuth: [] | |
description: You must be the creator of the forum post, or Admin+ to edit. Marked comments cannot be edited. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- body | |
properties: | |
body: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Forum Post | |
tags: | |
- Forum Posts | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_posts/{id}/hide.json: | |
put: | |
summary: Hide Forum Post | |
tags: | |
- Forum Post | |
security: | |
- basicAuth: [] | |
description: You must be the creator or Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_posts/{id}/unhide.json: | |
put: | |
summary: Unhide Forum Post | |
tags: | |
- Forum Post | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_posts/{id}/warning.json: | |
put: | |
summary: Mark Forum Post | |
tags: | |
- Forum Posts | |
security: | |
- basicAuth: [] | |
description: | | |
You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: number | |
requestBody: | |
$ref: "#/components/requestBodies/warning" | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/DTextResponse" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Forum Post Votes | |
/forum_posts/{id}/votes.json: | |
post: | |
summary: Create Forum Post Vote | |
tags: | |
- Forum Post Votes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: string | |
- name: score | |
in: query | |
required: true | |
schema: | |
type: number | |
enum: | |
- -1 | |
- 0 | |
- 1 | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/ForumPostVote" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Forum Post Vote | |
tags: | |
- Forum Post Votes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/forum_posts/votes.json: | |
get: | |
summary: Search Forum Post Votes | |
tags: | |
- Forum Post Votes | |
security: | |
- basicAuth: [] | |
description: If you are not Moderator+, you can only see your own votes. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
description: Must be Admin+ to use. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- ip_addr | |
- in: query | |
name: search[user_id] | |
schema: | |
type: number | |
- in: query | |
name: search[user_name] | |
schema: | |
type: string | |
- in: query | |
name: search[forum_post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[forum_post_creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[forum_post_creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[timeframe] | |
schema: | |
type: number | |
description: Number of days. | |
- in: query | |
name: search[score] | |
description: -1 for down, 0 for meh, 1 for up | |
schema: | |
type: number | |
- in: query | |
name: search[duplicates_only] | |
description: Must be Admin+ to use. | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/ForumPostVote" | |
/forum_posts/votes/delete.json: | |
put: | |
summary: Delete Forum Post Vote | |
tags: | |
- Forum Post Votes | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: ids | |
in: query | |
required: true | |
description: The IDs of the forum post votes, comma separated. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Forum Topics | |
/forum_topics.json: | |
get: | |
summary: Search Forum Topics | |
tags: | |
- Forum Topics | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- sticky | |
- in: query | |
name: search[title] | |
schema: | |
type: string | |
- in: query | |
name: search[title_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[category_id] | |
schema: | |
type: number | |
- in: query | |
name: search[is_sticky] | |
schema: | |
type: boolean | |
- in: query | |
name: search[is_locked] | |
schema: | |
type: boolean | |
- in: query | |
name: search[is_hidden] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/ForumTopic" | |
post: | |
summary: Create Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- title | |
- category_id | |
- original_post_attributes | |
properties: | |
title: | |
type: string | |
category_id: | |
type: number | |
original_post_attributes: | |
type: object | |
description: Mutually exclusive, at least one must be provided. | |
properties: | |
id: | |
type: number | |
description: Forum post ID. | |
body: | |
type: string | |
description: First forum post body. | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/ForumTopic" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/forum_topics/{id}.json: | |
get: | |
summary: Get Forum Forum Topic | |
tags: | |
- Forum Topics | |
description: If the forum topic is hidden, you must be the creator or Moderator+ to see it. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topics. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/ForumTopic" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be the creator of the forum topic, or Admin+ to edit. Marked comments cannot be edited. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum post. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
title: | |
type: string | |
category_id: | |
type: number | |
original_post_attributes: | |
type: object | |
description: Mutually exclusive. | |
properties: | |
id: | |
type: number | |
description: Forum post ID. | |
body: | |
type: string | |
description: First forum post body. | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/hide.json: | |
put: | |
summary: Hide Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be the creator or Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/unhide.json: | |
put: | |
summary: Unhide Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/lock.json: | |
put: | |
summary: Lock Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/unlock.json: | |
put: | |
summary: Unlock Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/sticky.json: | |
put: | |
summary: Sticky Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/unsticky.json: | |
put: | |
summary: Unsticky Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/subscribe.json: | |
put: | |
summary: Subscribe To Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/unsubscribe.json: | |
put: | |
summary: Unsubscrbibe From Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/mute.json: | |
put: | |
summary: Mute Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/unmute.json: | |
put: | |
summary: Unmute Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/{id}/move.json: | |
put: | |
summary: Move Forum Topic | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the forum topic. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- category_id | |
properties: | |
category_id: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/forum_topics/mark_all_as_read.json: | |
put: | |
summary: Mark All Forum Topics As Read | |
tags: | |
- Forum Topics | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- category_id | |
properties: | |
category_id: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Help Pages | |
/help.json: | |
get: | |
summary: List Help Pages | |
tags: | |
- Help Pages | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Help" | |
post: | |
summary: Create Help Page | |
tags: | |
- Help Pages | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- name | |
- wiki_page | |
properties: | |
name: | |
type: string | |
wiki_page: | |
type: string | |
related: | |
type: string | |
description: Separate with a comma followed by a space. | |
title: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Help" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/help/{id}.json: | |
get: | |
summary: Get Help Page | |
tags: | |
- Help Pages | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID or name of the help page. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Help" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Help Page | |
tags: | |
- Help Pages | |
security: | |
- basicAuth: [] | |
description: You must be Admin+ | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the help page. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
name: | |
type: string | |
wiki_page: | |
type: string | |
related: | |
type: string | |
description: Separate with a comma followed by a space. | |
title: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Help Page | |
tags: | |
- Help Page | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the help page. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# IP Bans | |
/ip_bans.json: | |
get: | |
summary: List IP Bans | |
tags: | |
- IP Bans | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[banner_id] | |
schema: | |
type: number | |
- in: query | |
name: search[banner_name] | |
schema: | |
type: string | |
- in: query | |
name: search[reason] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/IPBan" | |
post: | |
summary: Create IP Ban | |
tags: | |
- IP Bans | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- ip_addr | |
- reason | |
properties: | |
ip_addr: | |
type: string | |
reason: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/IPBan" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/ip_bans/{id}.json: | |
delete: | |
summary: Delete IP Ban | |
tags: | |
- IP Bans | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the ip ban. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Mascots | |
/mascots.json: | |
get: | |
summary: Search Mascots | |
tags: | |
- Mascots | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- sticky | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Mascot" | |
post: | |
summary: Create Mascot | |
tags: | |
- Mascots | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
requestBody: | |
content: | |
multipart/form-data: | |
schema: | |
type: object | |
required: | |
- mascot[mascot_file] | |
- mascot[display_name] | |
- mascot[background_color] | |
- mascot[artist_url] | |
- mascot[artist_name] | |
properties: | |
mascot[mascot_file]: | |
type: binary | |
mascot[display_name]: | |
type: string | |
mascot[background_color]: | |
type: string | |
mascot[artist_url]: | |
type: string | |
mascot[artist_name]: | |
type: string | |
mascot[available_on_string]: | |
type: string | |
description: Comma separated site names. | |
mascot[active]: | |
type: boolean | |
mascot[hide_anonymous]: | |
type: boolean | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Mascot" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/mascots/{id}.json: | |
patch: | |
summary: Edit Mascot | |
tags: | |
- Mascots | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the mascot. | |
schema: | |
type: number | |
requestBody: | |
content: | |
multipart/form-data: | |
schema: | |
type: object | |
properties: | |
mascot[mascot_file]: | |
type: binary | |
mascot[display_name]: | |
type: string | |
mascot[background_color]: | |
type: string | |
mascot[artist_url]: | |
type: string | |
mascot[artist_name]: | |
type: string | |
mascot[available_on_string]: | |
type: string | |
description: Comma separated site names. | |
mascot[active]: | |
type: boolean | |
mascot[hide_anonymous]: | |
type: boolean | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Mascot | |
tags: | |
- Mascots | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the mascot. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Mod Actions | |
/mod_actions.json: | |
get: | |
summary: Search Mod Actions | |
tags: | |
- Mod Actions | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[action] | |
schema: | |
type: string | |
enum: *modaction-actions | |
- in: query | |
name: search[subject_type] | |
schema: | |
type: string | |
enum: *modaction-classes | |
- in: query | |
name: search[subject_id] | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/ModAction" | |
# News Updates | |
/news_updates.json: | |
get: | |
summary: List News Updates | |
tags: | |
- News Updates | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/NewsUpdate" | |
post: | |
summary: Create News Update | |
tags: | |
- News Updates | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- message | |
properties: | |
message: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/NewsUpdate" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/news_updates/{id}.json: | |
patch: | |
summary: Edit News Updates | |
tags: | |
- Help Pages | |
security: | |
- basicAuth: [] | |
description: You must be Admin+ | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the news update. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- message | |
properties: | |
message: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete News Update | |
tags: | |
- News Update | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the news update. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Notes | |
/notes.json: | |
get: | |
summary: Search Notes | |
tags: | |
- Notes | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[body_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[is_active] | |
schema: | |
type: boolean | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[post_tags_match] | |
schema: | |
type: string | |
- in: query | |
name: search[post_note_updater_id] | |
schema: | |
type: number | |
- in: query | |
name: search[post_note_updater_name] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Note" | |
post: | |
summary: Create Note | |
tags: | |
- Notes | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_id | |
- x | |
- y | |
- width | |
- height | |
- body | |
properties: | |
post_id: | |
type: number | |
x: | |
type: number | |
y: | |
type: number | |
width: | |
type: number | |
height: | |
type: number | |
body: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Note" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/notes/{id}.json: | |
get: | |
summary: Get Note | |
tags: | |
- Notes | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the note. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Note" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Note | |
tags: | |
- Notes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the note. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
x: | |
type: number | |
y: | |
type: number | |
width: | |
type: number | |
height: | |
type: number | |
body: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Note | |
tags: | |
- Notes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the note. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/notes/{id}/revert.json: | |
post: | |
summary: Revert Note | |
tags: | |
- Notes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the note. | |
schema: | |
type: number | |
- name: version_id | |
in: query | |
required: true | |
description: The version ID to revert to. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Note Versions | |
/notes/versions.json: | |
put: | |
summary: Search Note Versions | |
tags: | |
- Note Versions | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
description: The order of the results. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[updater_id] | |
schema: | |
type: number | |
- in: query | |
name: search[updater_name] | |
schema: | |
type: string | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[note_id] | |
schema: | |
type: number | |
- in: query | |
name: search[is_active] | |
schema: | |
type: boolean | |
- in: query | |
name: search[body_matches] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/NoteVersion" | |
# Pools | |
/pools.json: | |
get: | |
summary: Search Pools | |
tags: | |
- Pools | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- name | |
- created_at | |
- post_count | |
- in: query | |
name: search[name_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[description_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[category] | |
schema: | |
type: string | |
- in: query | |
name: search[is_active] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Pool" | |
post: | |
summary: Create Pool | |
tags: | |
- Pools | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- name | |
properties: | |
name: | |
type: string | |
description: | |
type: string | |
is_active: | |
type: boolean | |
post_ids_string: | |
type: string | |
description: Space separated list of post IDs. Mutually exclusive with post_ids. | |
post_ids: | |
type: array | |
description: Array of post IDs. Mutually exclusive with post_ids_string. | |
items: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Pool" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/pools/{id}.json: | |
get: | |
summary: Get Pool | |
tags: | |
- Pools | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the pool. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Pool" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Pool | |
tags: | |
- Pools | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the pool. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
name: | |
type: string | |
description: | |
type: string | |
is_active: | |
type: boolean | |
post_ids_string: | |
type: string | |
description: Space separated list of post IDs. Mutually exclusive with post_ids. | |
post_ids: | |
type: array | |
description: Array of post IDs. Mutually exclusive with post_ids_string. | |
items: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Pool | |
tags: | |
- Pools | |
description: You must be Janitor+. | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the pool. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/pools/{id}/revert.json: | |
put: | |
summary: Revert Pool | |
tags: | |
- Pools | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the pool. | |
schema: | |
type: number | |
- name: version_id | |
in: query | |
required: true | |
description: The version ID to revert to. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Pool Versions | |
/pools/versions.json: | |
get: | |
summary: Search Pool Versions | |
tags: | |
- Pool Versions | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
description: The order of the results. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[updater_id] | |
schema: | |
type: number | |
- in: query | |
name: search[updater_name] | |
schema: | |
type: string | |
- in: query | |
name: search[pool_id] | |
schema: | |
type: number | |
- in: query | |
name: search[is_active] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PoolVersion" | |
# Popular | |
/popular/uploads.json: | |
get: | |
summary: List Most Upvoted Posts | |
tags: | |
- Popular | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- name: date | |
in: query | |
description: The date to list popular uploads for. Only The day, month, and year are considered. | |
schema: | |
type: string | |
format: date | |
- name: scale | |
in: query | |
description: The scale of the results, in relation to `date`. | |
schema: | |
type: string | |
enum: | |
- month | |
- week | |
- day | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Post" | |
/popular/views.json: | |
get: | |
summary: List Most Viewed Posts | |
tags: | |
- Popular | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- name: date | |
in: query | |
description: The date to list popular uploads for. Only The day, month, and year are considered. | |
schema: | |
type: string | |
format: date | |
- name: scale | |
in: query | |
description: The scale of the results, in relation to `date`. | |
schema: | |
type: string | |
enum: | |
- day | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Post" | |
/popular/searches.json: | |
get: | |
summary: List Most Used Searches | |
tags: | |
- Popular | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- name: date | |
in: query | |
description: The date to list popular uploads for. Only The day, month, and year are considered. | |
schema: | |
type: string | |
format: date | |
- name: scale | |
in: query | |
description: The scale of the results, in relation to `date`. | |
schema: | |
type: string | |
enum: | |
- day | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PopularSearch" | |
/popular/searches/missed.json: | |
get: | |
summary: List Most Missed Searches | |
tags: | |
- Popular | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- name: date | |
in: query | |
description: The date to list popular uploads for. Only The day, month, and year are considered. | |
schema: | |
type: string | |
format: date | |
- name: scale | |
in: query | |
description: The scale of the results, in relation to `date`. | |
schema: | |
type: string | |
enum: | |
- day | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PopularSearch" | |
# Post Sets | |
/post_sets.json: | |
get: | |
summary: Search Post Sets | |
tags: | |
- Post Sets | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- name | |
- shortname | |
- post_count | |
- postcount | |
- created_at | |
- updated_at | |
- update | |
- in: query | |
name: search[name_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[description_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[category] | |
schema: | |
type: string | |
- in: query | |
name: search[is_active] | |
schema: | |
type: boolean | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[maintainer_id] | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostSet" | |
post: | |
summary: Create Post Set | |
tags: | |
- Post Sets | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- name | |
- shortname | |
properties: | |
name: | |
type: string | |
shortname: | |
type: string | |
description: | |
type: string | |
is_public: | |
type: boolean | |
transfer_on_delete: | |
type: boolean | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostSet" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/post_sets/{id}.json: | |
get: | |
summary: Get Post Set | |
tags: | |
- Post Sets | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post set. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostSet" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Post Set | |
tags: | |
- Post Sets | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post sets. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
name: | |
type: string | |
shortname: | |
type: string | |
description: | |
type: string | |
is_public: | |
type: boolean | |
transfer_on_delete: | |
type: boolean | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Post Set | |
tags: | |
- Post Sets | |
security: | |
- basicAuth: [] | |
description: You must be the owner of the set, or Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post set. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/post_sets/{id}/update_posts.json: | |
post: | |
summary: Update Post Set Posts | |
tags: | |
- Post Sets | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_ids_string | |
properties: | |
post_ids_string: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostSet" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/post_sets/{id}/add_posts.json: | |
post: | |
summary: Add Posts To Post Set | |
tags: | |
- Post Sets | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_ids | |
properties: | |
post_ids: | |
type: array | |
items: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostSet" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/post_sets/{id}/remove_posts.json: | |
post: | |
summary: Remove Posts From Post Set | |
tags: | |
- Post Sets | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_ids | |
properties: | |
post_ids: | |
type: array | |
items: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostSet" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/post_sets/for_select.json: | |
get: | |
summary: List Post Sets For Select | |
tags: | |
- Post Sets | |
security: | |
- basicAuth: [] | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
Owned: | |
type: array | |
items: | |
- type: string | |
- type: number | |
Maintained: | |
type: array | |
items: | |
- type: string | |
- type: number | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Posts | |
/posts.json: | |
get: | |
summary: Search Posts | |
tags: | |
- Posts | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- in: query | |
name: md5 | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Post" | |
/posts/{id}.json: | |
get: | |
summary: Get Post | |
tags: | |
- Posts | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Post | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
tag_string: | |
type: string | |
description: Replaces all tags on the post. | |
old_tag_string: | |
type: string | |
description: The tag string before your edits, used to reconcile conflicts. | |
tag_string_diff: | |
type: string | |
description: Tags with a minus are removed, else they are added. Mutually exclusive with tag_string. | |
source_diff: | |
type: string | |
description: Sources with a minus are removed, else they are added. It is not possible to add inactive sources through this. Mutually exclusive with source. | |
source: | |
type: string | |
description: Replaces all sources on the post. | |
old_source: | |
type: string | |
description: The sources before your edits, used to reconcile conflicts. | |
parent_id: | |
type: number | |
old_parent_id: | |
type: number | |
description: | |
type: string | |
old_description: | |
type: string | |
rating: | |
type: string | |
enum: *ratings | |
old_rating: | |
type: string | |
enum: *ratings | |
edit_reason: | |
type: string | |
is_rating_locked: | |
type: boolean | |
description: You must be Trusted+. | |
is_note_locked: | |
type: boolean | |
description: You must be Janitor+. | |
bg_color: | |
type: string | |
description: You must be Janitor+. | |
is_comment_locked: | |
type: boolean | |
description: You must be Moderator+. | |
is_status_locked: | |
type: boolean | |
description: You must be Admin+. | |
is_comment_disabled: | |
type: boolean | |
description: You must be Admin+. | |
locked_tags: | |
type: string | |
description: You must be Admin+. | |
hide_from_anonymous: | |
type: boolean | |
description: You must be Admin+. | |
hide_from_search_engines: | |
type: boolean | |
description: You must be Admin+. | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Post | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
type: object | |
properties: | |
reason: | |
type: string | |
description: If the post does not have an active flag, this is required. | |
move_favorites: | |
type: boolean | |
description: Move favorites to parent. | |
copy_sources: | |
type: boolean | |
description: Copy sources to parent. | |
copy_tags: | |
type: boolean | |
description: Copy tags to parent. | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/undelete.json: | |
post: | |
summary: Undelete Post | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/regenerate_thumbnails.json: | |
put: | |
summary: Regenerate Post Thumbnails | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/regenerate_videos.json: | |
put: | |
summary: Regenerate Post Videos | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/expunge.json: | |
put: | |
summary: Expunge Post | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission and be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/update_iqdb.json: | |
put: | |
summary: Update Post IQDB | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/mark_as_translated.json: | |
post: | |
summary: Mark Post As Translated | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
translation_check: | |
type: boolean | |
partially_translated: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/add_to_pool.json: | |
put: | |
summary: Add Post To Pool | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
- name: pool_id | |
in: query | |
description: The ID of the pool to add the post to. Mutually exclusive with pool_name. | |
schema: | |
type: number | |
- name: pool_name | |
in: query | |
description: The name of the pool to add the post to. Mutually exclusive with pool_id. | |
schema: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Pool" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/{id}/remove_from_pool.json: | |
put: | |
summary: Remove Post From Pool | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
- name: pool_id | |
in: query | |
description: The ID of the pool to remove the post from. Mutually exclusive with pool_name. | |
schema: | |
type: number | |
- name: pool_name | |
in: query | |
description: The name of the pool to remove the post from. Mutually exclusive with pool_id. | |
schema: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Pool" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/{id}/copy_notes.json: | |
put: | |
summary: Copy Notes To Post | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- other_post_id | |
properties: | |
other_post_id: | |
type: number | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/{id}/revert.json: | |
post: | |
summary: Revert Post | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
- name: version_id | |
in: query | |
required: true | |
description: The version ID to revert to. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/show_seq.json: | |
get: | |
summary: Get Post Sequence | |
tags: | |
- Posts | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
- name: seq | |
in: query | |
description: The direction to move in the sequence. | |
schema: | |
type: string | |
enum: | |
- next | |
- prev | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/{id}/flag.json: | |
delete: | |
summary: Unflag Post | |
tags: | |
- Posts | |
description: You must have the "Approve Posts" permission. | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
approval: | |
type: string | |
description: Approves the post if set to "approve". | |
schema: | |
- approve | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/random.json: | |
put: | |
summary: Get Random Post | |
tags: | |
- Posts | |
parameters: | |
- name: tags | |
in: query | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Post Approvals | |
/posts/approvals.json: | |
get: | |
summary: Search Post Approvals | |
tags: | |
- Post Approvals | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostApproval" | |
post: | |
summary: Approve Post | |
tags: | |
- Post Approvals | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_id | |
properties: | |
post_id: | |
type: number | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/approvals/{id}.json: | |
delete: | |
summary: Unapprove Post | |
tags: | |
- Post Approvals | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/{id}/move_favorites.json: | |
put: | |
summary: Move Post Favorites | |
tags: | |
- Posts | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Deleted Posts | |
/posts/deleted.json: | |
get: | |
summary: Search Deleted Posts | |
tags: | |
- Post Approvals | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- name: user_id | |
in: query | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Post" | |
# Post Deletion Reasons | |
/posts/deletion_reeasons.json: | |
get: | |
summary: List Post Deletion Reasons | |
tags: | |
- Post Deletion Reasons | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostDeletionReason" | |
post: | |
summary: Create Post Deletion Reason | |
tags: | |
- Post Deletion Reasons | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission and be Admin+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
reason: | |
type: string | |
description: The reason used when deleting the post. %PARENT_ID% & %OTHER_ID% placeholders. | |
title: | |
type: string | |
description: The title shown in the quickmod menu. If specified, prompt is also required. | |
prompt: | |
type: string | |
description: The prompt text in confirmation for the quickmod menu. If specified, title is also required. | |
order: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostDeletionReason" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/deletion_reasons/{id}.json: | |
patch: | |
summary: Edit Post Deletion Reason | |
tags: | |
- Post Deletion Reasons | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission and be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post deletion reason. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
reason: | |
type: string | |
description: The reason used when deleting the post. %PARENT_ID% & %OTHER_ID% placeholders. | |
title: | |
type: string | |
description: The title shown in the quickmod menu. If specified, prompt is also required. | |
prompt: | |
type: string | |
description: The prompt text in confirmation for the quickmod menu. If specified, title is also required. | |
order: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Post Deletion Reason | |
tags: | |
- Post Deletion Reasons | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission and be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post deletion reason. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/deletion_reasons/reorder.json: | |
post: | |
summary: Reorder Post Deletion Reasons | |
tags: | |
- Post Deletion Reasons | |
description: You must have the "Approve Posts" permission and be Admin+. No IDs can be omitted, no extra IDs can be present, and no duplicate IDs can be present. | |
security: | |
- basicAuth: [] | |
requestBody: | |
$ref: "#/components/requestBodies/reorder" | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Post Disapprovals | |
/posts/disapprovals.json: | |
get: | |
summary: Search Post Disapprovals | |
tags: | |
- Post Disapprovals | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- post_id | |
- post_id_desc | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[message] | |
schema: | |
type: string | |
- in: query | |
name: search[post_tags_match] | |
schema: | |
type: string | |
- in: query | |
name: search[reason] | |
schema: | |
type: string | |
- in: query | |
name: search[has_message] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostDisapproval" | |
post: | |
summary: Create Post Disapproval | |
tags: | |
- Post Disapprovals | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_id | |
- reason | |
properties: | |
post_id: | |
type: number | |
reason: | |
type: string | |
enum: | |
- borderline_quality | |
- borderline_relevancy | |
- other | |
message: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostDisapproval" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Post Events | |
/posts/events.json: | |
get: | |
summary: Search Post Events | |
tags: | |
- Post Events | |
security: | |
- basicAuth: [] | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[action] | |
schema: | |
type: string | |
enum: *post-event-actions | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostDisapproval" | |
post: | |
summary: Create Post Disapproval | |
tags: | |
- Post Disapprovals | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_id | |
- reason | |
properties: | |
post_id: | |
type: number | |
reason: | |
type: string | |
enum: | |
- borderline_quality | |
- borderline_relevancy | |
- other | |
message: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostDisapproval" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Post Flags | |
/posts/flags.json: | |
get: | |
summary: Search Post Flags | |
tags: | |
- Post Flags | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[reason_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[post_tags_match] | |
schema: | |
type: string | |
- in: query | |
name: search[type] | |
schema: | |
type: string | |
- in: query | |
name: search[is_resolved] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostFlag" | |
post: | |
summary: Create Post Flag | |
tags: | |
- Post Flags | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_id | |
- reason_name | |
properties: | |
post_id: | |
type: number | |
reason_name: | |
type: string | |
enum: | |
- uploading_guidelines | |
- dnp_artist | |
- pay_content | |
- trace | |
- previously_deleted | |
- real_porn | |
- corrupt | |
- inferior | |
parent_id: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostFlag" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/flags/{id}.json: | |
get: | |
summary: Get Post Flag | |
tags: | |
- Post Flags | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post flag. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostFlag" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# IQDB | |
/posts/iqdb.json: | |
get: | |
summary: Query IQDB | |
tags: | |
- IQDB | |
parameters: | |
- name: search[score_cutoff] | |
in: query | |
schema: | |
type: number | |
- name: search[url] | |
in: query | |
schema: | |
type: string | |
- name: search[post_id] | |
in: query | |
schema: | |
type: number | |
- name: search[hash] | |
in: query | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/IQDBResponse" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
post: | |
summary: Query IQDB | |
tags: | |
- IQDB | |
requestBody: | |
content: | |
multipart/form-data: | |
schema: | |
type: object | |
properties: | |
search[file]: | |
type: binary | |
search[score_cutoff]: | |
type: number | |
search[url]: | |
type: string | |
search[post_id]: | |
type: string | |
search[hash]: | |
type: string | |
application/json: | |
schema: | |
type: object | |
properties: | |
score_cutoff: | |
type: number | |
url: | |
type: string | |
post_id: | |
type: string | |
hash: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/IQDBResponse" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Post Recommendations | |
/posts/recommendations.json: | |
get: | |
summary: Get Post Recommendations | |
tags: | |
- Post Recommendations | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- name: search[post_id] | |
in: query | |
schema: | |
type: number | |
- name: search[user_id] | |
in: query | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostRecommendation" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Post Replacement Rejection Reasons | |
/posts/replacement_rejection_reasons.json: | |
get: | |
summary: List Post Replacement Rejection Reasons | |
tags: | |
- Post Replacement Rejection Reasons | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostReplacementRejectionReason" | |
post: | |
summary: Create Post Replacement Rejection Reason | |
tags: | |
- Post Replacement Rejection Reasons | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission and be Admin+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
reason: | |
type: string | |
description: The reason used when rejecting the replacement. | |
order: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostReplacementRejectionReason" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/replacement_rejection_reasons/{id}.json: | |
patch: | |
summary: Edit Post Replacement Rejection Reason | |
tags: | |
- Post Replacement Rejection Reasons | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission and be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post replacement rejection reason. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
reason: | |
type: string | |
description: The reason used when rejecting the replacement. | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Post Replacement Rejection Reason | |
tags: | |
- Post Replacement Rejection Reasons | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission and be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post replacement rejection reason. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/replacement_rejection_reasons/reorder.json: | |
post: | |
summary: Reorder Post Replacement Rejection Reasons | |
tags: | |
- Post Replacement Rejection Reasons | |
description: You must have the "Approve Posts" permission and be Admin+. No IDs can be omitted, no extra IDs can be present, and no duplicate IDs can be present. | |
security: | |
- basicAuth: [] | |
requestBody: | |
$ref: "#/components/requestBodies/reorder" | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Post Replacements | |
/posts/replacements.json: | |
get: | |
summary: Search Post Replacements | |
tags: | |
- Post Replacements | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- in: query | |
name: search[file_ext] | |
schema: | |
type: string | |
- in: query | |
name: search[md5] | |
schema: | |
type: string | |
- in: query | |
name: search[status] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[approver_id] | |
schema: | |
type: number | |
- in: query | |
name: search[approver_name] | |
schema: | |
type: string | |
- in: query | |
name: search[rejector_id] | |
schema: | |
type: number | |
- in: query | |
name: search[rejector_name] | |
schema: | |
type: string | |
- in: query | |
name: search[uploader_name_on_approve] | |
schema: | |
type: string | |
- in: query | |
name: search[uploader_id_on_approve] | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostReplacement" | |
post: | |
summary: Create Post Replacement | |
tags: | |
- Post Replacements | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- replacement_url | |
- reason | |
properties: | |
replacement_url: | |
type: string | |
reason: | |
type: string | |
source: | |
type: string | |
multipart/form-data: | |
schema: | |
type: object | |
required: | |
- reason | |
properties: | |
replacement[replacement_file]: | |
type: string | |
replacement[replacement_url]: | |
type: string | |
replacement[reason]: | |
type: string | |
replacement[source]: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PostReplacement" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/replacements/{id}.json: | |
delete: | |
summary: Delete Post Replacement | |
tags: | |
- Post Replacements | |
description: You must be Admin+. | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post replacement. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/posts/replacements/{id}/approve.json: | |
put: | |
summary: Approve Post Replacement | |
tags: | |
- Post Replacements | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/replacements/{id}/reject.json: | |
put: | |
summary: Reject Post Replacement | |
tags: | |
- Post Replacements | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
reason: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/replacements/{id}/promote.json: | |
post: | |
summary: Promote Post Replacement | |
tags: | |
- Post Replacements | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
reason: | |
type: string | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Post" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/replacements/{id}/toggle_penalize.json: | |
put: | |
summary: Toggle Post Replacement Penalty | |
tags: | |
- Post Replacements | |
security: | |
- basicAuth: [] | |
description: You must have the "Approve Posts" permission. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
reason: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Post Versions | |
/posts/versions.json: | |
get: | |
summary: Search Post Versions | |
tags: | |
- Post Versions | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- name: page | |
in: query | |
description: The page number of results to get. Between 1 and 1000. Note that for post versions specifically, you can only go through the 10,000 most recent results with page numbers. | |
schema: | |
type: number | |
minimum: 1 | |
maximum: 1000 | |
- $ref: "#/components/parameters/id" | |
- in: query | |
name: search[updater_name] | |
schema: | |
type: string | |
- in: query | |
name: search[updater_id] | |
schema: | |
type: number | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[start_id] | |
schema: | |
type: number | |
- in: query | |
name: search[rating] | |
schema: | |
type: string | |
enum: *ratings | |
- in: query | |
name: search[rating_changed] | |
schema: | |
type: string | |
enum: | |
- e | |
- q | |
- s | |
- any | |
- in: query | |
name: search[parent_id] | |
schema: | |
type: number | |
- in: query | |
name: search[parent_id_changed] | |
schema: | |
type: boolean | |
- in: query | |
name: search[tags] | |
schema: | |
type: string | |
- in: query | |
name: search[tags_removed] | |
schema: | |
type: string | |
- in: query | |
name: search[tags_added] | |
schema: | |
type: string | |
- in: query | |
name: search[locked_tags] | |
schema: | |
type: string | |
- in: query | |
name: search[locked_tags_removed] | |
schema: | |
type: string | |
- in: query | |
name: search[locked_tags_added] | |
schema: | |
type: string | |
- in: query | |
name: search[reason] | |
schema: | |
type: string | |
- in: query | |
name: search[description] | |
schema: | |
type: string | |
- in: query | |
name: search[description_changed] | |
schema: | |
type: boolean | |
- in: query | |
name: search[source_changed] | |
schema: | |
type: boolean | |
- in: query | |
name: search[uploads] | |
schema: | |
type: string | |
enum: | |
- included | |
- excluded | |
- only | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostVersion" | |
# Post Votes | |
/posts/{id}/votes.json: | |
post: | |
summary: Create Post Vote | |
tags: | |
- Post Votes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: string | |
- name: score | |
in: query | |
required: true | |
schema: | |
type: number | |
enum: | |
- -1 | |
- 1 | |
- name: no_unvote | |
in: query | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- score | |
- up | |
- down | |
- our_score | |
properties: | |
score: | |
type: number | |
up: | |
type: number | |
down: | |
type: number | |
our_score: | |
type: number | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Post Vote | |
tags: | |
- Post Votes | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/votes.json: | |
get: | |
summary: Search Post Votes | |
tags: | |
- Post Votes | |
security: | |
- basicAuth: [] | |
description: If you are not Moderator+, you can only see your own votes. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
description: Must be Admin+ to use. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- ip_addr | |
- in: query | |
name: search[user_id] | |
schema: | |
type: number | |
- in: query | |
name: search[user_name] | |
schema: | |
type: string | |
- in: query | |
name: search[comment_id] | |
schema: | |
type: number | |
- in: query | |
name: search[comment_creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[comment_creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[timeframe] | |
schema: | |
type: number | |
description: Number of days. | |
- in: query | |
name: search[score] | |
description: -1 for down, 1 for up | |
schema: | |
type: number | |
- in: query | |
name: search[is_locked] | |
schema: | |
type: boolean | |
- in: query | |
name: search[duplicates_only] | |
description: Must be Admin+ to use. | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/PostVote" | |
/posts/votes/lock.json: | |
put: | |
summary: Lock Post Vote | |
tags: | |
- Post Votes | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: ids | |
in: query | |
required: true | |
description: The IDs of the post votes, comma separated. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/posts/votes/delete.json: | |
put: | |
summary: Delete Post Vote | |
tags: | |
- Post Votes | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: ids | |
in: query | |
required: true | |
description: The IDs of the post votes, comma separated. | |
schema: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Rules | |
/rules.json: | |
get: | |
summary: List Rules | |
tags: | |
- Rules | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Rule" | |
post: | |
summary: Create Rule | |
tags: | |
- Rules | |
description: You must be Admin+. | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- name | |
- description | |
- category_id | |
properties: | |
name: | |
type: string | |
description: | |
type: string | |
category_id: | |
type: number | |
anchor: | |
type: string | |
order: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Rule" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/rules/{id}.json: | |
patch: | |
summary: Edit Rule | |
tags: | |
- Rules | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the rule. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
name: | |
type: string | |
description: | |
type: string | |
category_id: | |
type: number | |
anchor: | |
type: string | |
order: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Rule | |
tags: | |
- Rules | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the rule. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/rules/reorder.json: | |
post: | |
summary: Reorder Rules | |
tags: | |
- Rules | |
description: You must be Admin+. No IDs can be omitted, no extra IDs can be present, and no duplicate IDs can be present. | |
security: | |
- basicAuth: [] | |
requestBody: | |
$ref: "#/components/requestBodies/reorder" | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
/rules/builder.json: | |
get: | |
summary: Get Record Builder | |
tags: | |
- Rules | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
$ref: "#/components/schemas/RecordBuilder" | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Rule Categories | |
/rules/categories.json: | |
get: | |
summary: List Rule Categories | |
tags: | |
- Rule Categories | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/RuleCategory" | |
post: | |
summary: Create Rule Category | |
tags: | |
- Rule Categories | |
description: You must be Admin+. | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- name | |
properties: | |
name: | |
type: string | |
anchor: | |
type: string | |
order: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/RuleCategory" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/rules/categories/{id}.json: | |
patch: | |
summary: Edit Rule Category | |
tags: | |
- Rule Categories | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the rule category. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
name: | |
type: string | |
anchor: | |
type: string | |
order: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Rule Category | |
tags: | |
- Rule Categories | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the rule category. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/rules/categories/reorder.json: | |
post: | |
summary: Reorder Rule Categories | |
tags: | |
- Rule Categories | |
description: You must be Admin+. No IDs can be omitted, no extra IDs can be present, and no duplicate IDs can be present. | |
security: | |
- basicAuth: [] | |
requestBody: | |
$ref: "#/components/requestBodies/reorder" | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Quick Rules | |
/rules/quick.json: | |
get: | |
summary: List Quick Rules | |
tags: | |
- Quick Rules | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/QuickRule" | |
post: | |
summary: Create Quick Rule | |
tags: | |
- Quick Rules | |
description: You must be Admin+. | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- header | |
- reason | |
- rule_id | |
properties: | |
header: | |
type: string | |
reason: | |
type: string | |
rule_id: | |
type: number | |
order: | |
type: number | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/QuickRule" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/rules/quick/{id}.json: | |
patch: | |
summary: Edit Quick Rule | |
tags: | |
- Quick Rules | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the quick rule. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
header: | |
type: string | |
reason: | |
type: string | |
rule_id: | |
type: number | |
order: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Quick Rule | |
tags: | |
- Quick Rules | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the quick rule. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/rules/quick/reorder.json: | |
post: | |
summary: Reorder Quick Rules | |
tags: | |
- Quick Rules | |
description: You must be Admin+. No IDs can be omitted, no extra IDs can be present, and no duplicate IDs can be present. | |
security: | |
- basicAuth: [] | |
requestBody: | |
$ref: "#/components/requestBodies/reorder" | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Stats | |
/stats.json: | |
get: | |
summary: Get Stats | |
tags: | |
- Stats | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Stats" | |
# Tags | |
/tags.json: | |
get: | |
summary: Search Tags | |
tags: | |
- Tags | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- name | |
- date | |
- count | |
- similarity | |
- in: query | |
name: search[fuzzy_name_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[name_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[name] | |
schema: | |
type: string | |
- in: query | |
name: search[category] | |
schema: | |
type: number | |
enum: *tag-categories | |
- in: query | |
name: search[hide_empty] | |
schema: | |
type: boolean | |
- in: query | |
name: search[has_wiki] | |
schema: | |
type: boolean | |
- in: query | |
name: search[has_artist] | |
schema: | |
type: boolean | |
- in: query | |
name: search[is_locked] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Tag" | |
/tags/{id}.json: | |
get: | |
summary: Get Tag | |
tags: | |
- Tags | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID or name of the tag. | |
schema: | |
type: ["number", "string"] | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Tag" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Tag | |
tags: | |
- Tags | |
security: | |
- basicAuth: [] | |
description: Must be Admin+ if the tag is locked or post count is >100. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the tag. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
category: | |
type: number | |
enum: *tag-categories | |
reason: | |
type: string | |
is_locked: | |
type: boolean | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/tags/{id}/correct.json: | |
put: | |
summary: Correct Tag | |
tags: | |
- Tags | |
security: | |
- basicAuth: [] | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/tags/meta_search.json: | |
get: | |
summary: Tag Meta Search | |
tags: | |
- Tags | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
required: | |
- search | |
- tags | |
search: | |
type: string | |
tags: | |
$ref: "#/components/schemas/Tag" | |
/tags/correct.json: | |
put: | |
summary: Correct Tag | |
tags: | |
- Tags | |
security: | |
- basicAuth: [] | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/tags/preview.json: | |
get: | |
summary: Preview Tags | |
tags: | |
- Tags | |
parameters: | |
- name: tags | |
in: query | |
required: true | |
description: The tags to preview, space separated. | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/TagPreview" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Tag Versions | |
/tags/versions.json: | |
get: | |
summary: Search Tag Versions | |
tags: | |
- Tag Versions | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
description: The order of the results. | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- name: search[tag] | |
in: query | |
schema: | |
type: string | |
- name: search[updater_id] | |
in: query | |
schema: | |
type: string | |
- name: search[updater_name] | |
in: query | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/TagVersion" | |
# Tag Aliases | |
/tags/aliases.json: | |
get: | |
summary: Search Tag Aliases | |
tags: | |
- Tag Aliases | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- created_at | |
- updated_at | |
- name | |
- tag_count | |
- in: query | |
name: search[name_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[antecedent_name] | |
schema: | |
type: string | |
- in: query | |
name: search[consequent_name] | |
schema: | |
type: string | |
- in: query | |
name: search[status] | |
schema: | |
type: string | |
enum: *tag-request-statuses | |
- in: query | |
name: search[antecedent_tag_category] | |
schema: | |
type: number | |
enum: *tag-categories | |
- in: query | |
name: search[consequent_tag_category] | |
schema: | |
type: number | |
enum: *tag-categories | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[approver_id] | |
schema: | |
type: number | |
- in: query | |
name: search[approver_name] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/TagAlias" | |
post: | |
summary: Create Tag Alias | |
tags: | |
- Tag Aliases | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- antecedent_name | |
- consequent_name | |
- forum_topic_id | |
properties: | |
antecedent_name: | |
type: string | |
consequent_name: | |
type: string | |
forum_topic_id: | |
type: number | |
reason: | |
type: string | |
skip_forum: | |
type: boolean | |
description: Must be Admin+. | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/TagAlias" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/tags/aliases/{id}.json: | |
get: | |
summary: Get Tag Alias | |
tags: | |
- Tag Aliases | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the tag alias. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/TagAlias" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Tag Alias | |
tags: | |
- Tag Aliases | |
security: | |
- basicAuth: [] | |
description: You must have the "Manage Tag Change Requests" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the tag alias. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
antecedent_name: | |
type: string | |
consequent_name: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Reject Tag Alias | |
tags: | |
- Tag Aliases | |
description: You must be the creator of the request (if pending), or have the "Manage Tag Change Requests" permission. | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the tag alias. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/tags/aliases/{id}/approve.json: | |
post: | |
summary: Approve Tag Alias | |
tags: | |
- Tag Aliases | |
security: | |
- basicAuth: [] | |
description: You must have the "Manage Tag Change Requests" permission. | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Tag Implications | |
/tags/implications.json: | |
get: | |
summary: Search Tag Implications | |
tags: | |
- Tag Implications | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- created_at | |
- updated_at | |
- name | |
- tag_count | |
- in: query | |
name: search[name_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[antecedent_name] | |
schema: | |
type: string | |
- in: query | |
name: search[consequent_name] | |
schema: | |
type: string | |
- in: query | |
name: search[status] | |
schema: | |
type: string | |
enum: *tag-request-statuses | |
- in: query | |
name: search[antecedent_tag_category] | |
schema: | |
type: number | |
enum: *tag-categories | |
- in: query | |
name: search[consequent_tag_category] | |
schema: | |
type: number | |
enum: *tag-categories | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[approver_id] | |
schema: | |
type: number | |
- in: query | |
name: search[approver_name] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/TagImplication" | |
post: | |
summary: Create Tag Implication | |
tags: | |
- Tag Implications | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- antecedent_name | |
- consequent_name | |
- forum_topic_id | |
properties: | |
antecedent_name: | |
type: string | |
consequent_name: | |
type: string | |
forum_topic_id: | |
type: number | |
reason: | |
type: string | |
skip_forum: | |
type: boolean | |
description: Must be Admin+. | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/TagImplication" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/tags/implications/{id}.json: | |
get: | |
summary: Get Tag Implication | |
tags: | |
- Tag Implications | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the tag implication. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/TagImplication" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Tag Implication | |
tags: | |
- Tag Implications | |
security: | |
- basicAuth: [] | |
description: You must have the "Manage Tag Change Requests" permission. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the tag implication. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
antecedent_name: | |
type: string | |
consequent_name: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Reject Tag Implication | |
tags: | |
- Tag Implications | |
description: You must be the creator of the request (if pending), or have the "Manage Tag Change Requests" permission. | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the tag implication. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/tags/implications/{id}/approve.json: | |
post: | |
summary: Approve Tag Implication | |
tags: | |
- Tag Implications | |
security: | |
- basicAuth: [] | |
description: You must have the "Manage Tag Change Requests" permission. | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Related Tags | |
/tags/related.json: | |
get: | |
summary: List Related Tags | |
tags: | |
- Related Tags | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: search[query] | |
in: query | |
schema: | |
type: string | |
- name: search[category_id] | |
in: query | |
schema: | |
type: number | |
enum: *tag-categories | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/RelatedTag" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Bulk Related Tags | |
/tags/related/bulk.json: | |
post: | |
summary: List Bulk Related Tags | |
tags: | |
- Related Tags | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
query: | |
type: string | |
category_id: | |
type: number | |
enum: *tag-categories | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
examples: | |
- {"male":[{"name":"male","count":0,"category_id":0}]} | |
patternProperties: | |
"^.+$": | |
type: array | |
items: | |
$ref: "#/components/schemas/BulkRelatedTag" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# Takedowns | |
/takedowns.json: | |
get: | |
summary: Search Takedowns | |
tags: | |
- Takedowns | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[ip_addr] | |
- in: query | |
description: Must be Owner+ to use. See [postgres' documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, "is contained within or equals" (`<<=`). | |
schema: | |
type: string | |
- in: query | |
name: search[order] | |
schema: | |
type: string | |
description: Must be Owner+ to use. | |
enum: | |
- id_asc | |
- id_desc | |
- status | |
- post_count | |
- in: query | |
name: search[status] | |
schema: | |
type: string | |
- in: query | |
name: search[source] | |
description: Must be Janitor+ to use. | |
schema: | |
type: string | |
- in: query | |
name: search[reason] | |
description: Must be Janitor+ to use. | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
description: Must be Janitor+ to use. | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
description: Must be Janitor+ to use. | |
schema: | |
type: string | |
- in: query | |
name: search[reason_hidden] | |
description: Must be Janitor+ to use. | |
schema: | |
type: boolean | |
- in: query | |
name: search[instructions] | |
description: Must be Janitor+ to use. | |
schema: | |
type: string | |
- in: query | |
description: Must be Janitor+ to use. | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
description: Must be Janitor+ to use. | |
name: search[notes] | |
schema: | |
type: string | |
- in: query | |
description: Must be Owner+ to use. | |
name: search[email] | |
schema: | |
type: string | |
- in: query | |
name: search[vericode] | |
description: Must be Owner+ to use. | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Takedown" | |
post: | |
summary: Create Takedown | |
tags: | |
- Takedowns | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- reason | |
properties: | |
email: | |
type: string | |
source: | |
type: string | |
instructions: | |
type: string | |
reason: | |
type: string | |
post_ids: | |
type: array | |
items: | |
type: number | |
reason_hidden: | |
type: boolean | |
notes: | |
type: string | |
description: Must be Owner+ to use. | |
del_post_ids: | |
type: array | |
description: Must be Owner+ to use. | |
items: | |
type: number | |
status: | |
type: string | |
description: Must be Owner+ to use. | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Takedown" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/takedowns/{id}.json: | |
get: | |
summary: Get Takedown | |
tags: | |
- Takedowns | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the takedown. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/Takedown" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Takedown | |
tags: | |
- Takedowns | |
security: | |
- basicAuth: [] | |
description: You must be Owner+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the takedown. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
takedown: | |
type: object | |
properties: | |
notes: | |
type: string | |
reason_hidden: | |
type: boolean | |
takedown_posts: | |
type: object | |
patternProperties: | |
"^(0-9)+$": | |
type: number | |
description: 0 to keep, 1 to delete | |
process_takedown: | |
type: boolean | |
delete_reason: | |
type: boolean | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Takedown | |
tags: | |
- Takedowns | |
security: | |
- basicAuth: [] | |
description: You must be Owner+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the takedown. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/takedowns/{id}/add_by_ids.json: | |
post: | |
summary: Add Posts To Takedown By IDs | |
tags: | |
- Takedowns | |
security: | |
- basicAuth: [] | |
description: You must be Owner+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_ids | |
properties: | |
post_ids: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- added_count | |
- added_post_ids | |
properties: | |
added_count: | |
type: number | |
added_post_ids: | |
type: array | |
items: | |
type: number | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/takedowns/{id}/add_by_tags.json: | |
post: | |
summary: Add Posts To Takedown By Tags | |
tags: | |
- Takedowns | |
security: | |
- basicAuth: [] | |
description: You must be Owner+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_tags | |
properties: | |
post_tags: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- added_count | |
- added_post_ids | |
properties: | |
added_count: | |
type: number | |
added_post_ids: | |
type: array | |
items: | |
type: number | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/takedowns/{id}/count_matching_posts.json: | |
post: | |
summary: Count Matching Posts | |
tags: | |
- Takedowns | |
security: | |
- basicAuth: [] | |
description: You must be Owner+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_tags | |
properties: | |
post_tags: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- matched_post_count | |
properties: | |
matched_post_count: | |
type: number | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/takedowns/{id}/remove_by_ids.json: | |
post: | |
summary: Remove Posts From Takedown By IDs | |
tags: | |
- Takedowns | |
security: | |
- basicAuth: [] | |
description: You must be Owner+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- post_ids | |
properties: | |
post_ids: | |
type: string | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Uploads | |
/uploads.json: | |
get: | |
summary: Search Uploads | |
tags: | |
- Uploads | |
description: You must be Janitor+. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[uploader_id] | |
schema: | |
type: number | |
- in: query | |
name: search[uploader_name] | |
schema: | |
type: string | |
- in: query | |
name: search[source] | |
schema: | |
type: string | |
- in: query | |
name: search[source_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[rating] | |
schema: | |
type: string | |
enum: *ratings | |
- in: query | |
name: search[parent_id] | |
schema: | |
type: number | |
- in: query | |
name: search[post_id] | |
schema: | |
type: number | |
- in: query | |
name: search[has_post] | |
schema: | |
type: boolean | |
- in: query | |
name: search[post_tags_match] | |
schema: | |
type: string | |
- in: query | |
name: search[status] | |
schema: | |
type: string | |
enum: | |
- completed | |
- processing | |
- pending | |
- error | |
- in: query | |
name: search[backtrace] | |
schema: | |
type: string | |
- in: query | |
name: search[tag_string] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Upload" | |
post: | |
summary: Upload Post | |
tags: | |
- Uploads | |
- Posts | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
multipart/form-data: | |
schema: | |
type: object | |
required: | |
- source | |
- tag_string | |
- rating | |
properties: | |
upload[file]: | |
type: binary | |
description: Mutually exclusive with direct_url. | |
upload[direct_url]: | |
type: string | |
description: Mutually exclusive with file. | |
upload[source]: | |
type: string | |
upload[tag_string]: | |
type: string | |
upload[rating]: | |
type: string | |
enum: *ratings | |
upload[parent_id]: | |
type: number | |
upload[description]: | |
type: string | |
upload[as_pending]: | |
type: boolean | |
description: Must have the "Unrestricted Uploads" permission. | |
upload[locked_rating]: | |
type: boolean | |
description: Must be Trusted+ to use. | |
upload[locked_tags]: | |
type: string | |
description: Must be Admin+ to use. | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- success | |
- location | |
- post_id | |
properties: | |
success: | |
type: boolean | |
enum: | |
- true | |
location: | |
type: string | |
post_id: | |
type: number | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
412: | |
content: | |
application/json: | |
type: object | |
properties: | |
success: | |
type: boolean | |
enum: | |
- false | |
reason: | |
type: string | |
message: | |
type: string | |
# Upload Whitelists | |
/upload_whitelists.json: | |
get: | |
summary: Search Upload Whitelists | |
tags: | |
- Upload Whitelists | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- pattern | |
- updated_at | |
- created_at | |
- in: query | |
name: search[allowed] | |
schema: | |
type: boolean | |
- in: query | |
name: search[pattern] | |
schema: | |
type: string | |
- in: query | |
name: search[note] | |
schema: | |
type: string | |
- in: query | |
name: search[reason] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/UploadWhitelist" | |
post: | |
summary: Create Upload Whitelist | |
tags: | |
- Upload Whitelists | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- allowed | |
- pattern | |
properties: | |
a | |
/upload_whitelists/{id}.json: | |
patch: | |
summary: Edit Upload Whitelist | |
tags: | |
- Upload Whitelists | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the upload whitelist. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
allowed: | |
type: string | |
pattern: | |
type: string | |
reason: | |
type: string | |
note: | |
type: string | |
hidden: | |
type: boolean | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Upload Whitelist | |
tags: | |
- Upload Whitelists | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the upload whitelist. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/upload_whitelists/{id}/is_allowed.json: | |
get: | |
summary: Check If URL Is Allowed | |
tags: | |
- Upload Whitelists | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the upload whitelist. | |
schema: | |
type: number | |
- name: url | |
in: query | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- url | |
- domain | |
- is_allowed | |
- reason | |
properties: | |
url: | |
type: string | |
domain: | |
type: string | |
is_allowed: | |
type: boolean | |
reason: | |
type: string | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Users | |
/users.json: | |
get: | |
summary: Search Users | |
tags: | |
- Upload Whitelists | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- name | |
- post_upload_count | |
- note_count | |
- post_update_count | |
- in: query | |
name: search[name_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[about_me] | |
schema: | |
type: string | |
- in: query | |
name: search[avatar_id] | |
schema: | |
type: number | |
- in: query | |
name: search[level] | |
schema: | |
type: number | |
- in: query | |
name: search[min_level] | |
schema: | |
type: number | |
- in: query | |
name: search[max_level] | |
schema: | |
type: number | |
- in: query | |
name: search[unrestricted_uploads] | |
schema: | |
type: boolean | |
- in: query | |
name: search[can_approve_posts] | |
schema: | |
type: boolean | |
- in: query | |
name: search[email_matches] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/User" | |
/users/{id}.json: | |
get: | |
summary: Get User | |
tags: | |
- Users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the user. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/FullUser" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/users/update.json: | |
post: | |
summary: Edit Current User | |
tags: | |
- Users | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
comment_threshold: | |
type: number | |
default_image_size: | |
type: string | |
enum: | |
- large | |
- fit | |
- fitv | |
- original | |
favorite_tags: | |
type: string | |
blacklisted_tags: | |
type: string | |
time_zone: | |
type: string | |
description: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones | |
per_page: | |
type: number | |
custom_style: | |
type: string | |
dmail_filter_attributes: | |
type: object | |
properties: | |
id: | |
type: number | |
words: | |
type: string | |
enable_hover_zoom_form: | |
type: string | |
enum: | |
- shift | |
- true | |
- false | |
profile_about: | |
type: string | |
profile_artinfo: | |
type: string | |
avatar_id: | |
type: number | |
enable_compact_uploader: | |
type: boolean | |
description: You must have uploaded at least 10 posts. | |
description_collapsed_initially: | |
type: boolean | |
hide_comments: | |
type: boolean | |
show_hidden_comments: | |
type: boolean | |
receive_email_notifications: | |
type: boolean | |
enable_keyboard_navigation: | |
type: boolean | |
enable_privacy_mode: | |
type: boolean | |
style_usernames: | |
type: boolean | |
enable_autocomplete: | |
type: boolean | |
disable_cropped_thumbnails: | |
type: boolean | |
enable_safe_mode: | |
type: boolean | |
disable_responsive_mode: | |
type: boolean | |
disable_user_dmails: | |
type: boolean | |
move_related_thumbnails: | |
type: boolean | |
enable_hover_zoom: | |
type: boolean | |
hover_zoom_shift: | |
type: boolean | |
hover_zoom_sticky_shift: | |
type: boolean | |
hover_zoom_play_audio: | |
type: boolean | |
show_post_uploader: | |
type: boolean | |
go_to_recent_forum_post: | |
type: boolean | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/CurrentUser" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/users/me.json: | |
get: | |
summary: Get Current User | |
tags: | |
- Users | |
security: | |
- basicAuth: [] | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/CurrentUser" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# User Blocks | |
/users/{id}/blocks.json: | |
get: | |
summary: Get Blocked Users | |
tags: | |
- Users Blocks | |
security: | |
- basicAuth: [] | |
description: You must be the user or Admin+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the user. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/UserBlock" | |
404: | |
$ref: "#/components/responses/NotFound" | |
post: | |
summary: Block User | |
tags: | |
- User Blocks | |
security: | |
- basicAuth: [] | |
description: You must be the user. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the user. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
target_id: | |
type: number | |
target_name: | |
type: string | |
hide_uploads: | |
type: boolean | |
hide_comments: | |
type: boolean | |
hide_forum_topics: | |
type: boolean | |
hide_forum_posts: | |
type: boolean | |
disable_messages: | |
type: boolean | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/UserBlock" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/blocks/{id}/users/{blockID}.json: | |
patch: | |
summary: Edit User Block | |
tags: | |
- Blocked Users | |
security: | |
- basicAuth: [] | |
description: You must be the user. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the user. | |
schema: | |
type: number | |
- name: blockID | |
in: path | |
required: true | |
description: The ID of the block. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
hide_uploads: | |
type: boolean | |
hide_comments: | |
type: boolean | |
hide_forum_topics: | |
type: boolean | |
hide_forum_posts: | |
type: boolean | |
disable_messages: | |
type: boolean | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete User Block | |
tags: | |
- User Blocks | |
security: | |
- basicAuth: [] | |
description: You must be the user. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the user. | |
schema: | |
type: number | |
- name: blockID | |
in: path | |
required: true | |
description: The ID of the block. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/users/count_fixes.json: | |
post: | |
summary: Fix User Stat Counts | |
tags: | |
- Users | |
security: | |
- basicAuth: [] | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
/users/dmail_filter.json: | |
get: | |
summary: Get user Dmail Filter | |
tags: | |
- DMail Filter | |
security: | |
- basicAuth: [] | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/DMailFilter" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
patch: | |
summary: Update user Dmail Filter | |
tags: | |
- DMail Filter | |
security: | |
- basicAuth: [] | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
# User Feedbacks | |
/users/feedbacks.json: | |
get: | |
summary: Search User Feedbacks | |
tags: | |
- User Feedbacks | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[body_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[user_id] | |
schema: | |
type: number | |
- in: query | |
name: search[user_name] | |
schema: | |
type: string | |
- in: query | |
name: search[category] | |
schema: | |
type: string | |
enum: *feedback-categories | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/UserFeedback" | |
post: | |
summary: Create User Feedback | |
tags: | |
- User Feedbacks | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- body | |
- category | |
properties: | |
user_id: | |
type: number | |
user_name: | |
type: string | |
body: | |
type: string | |
category: | |
type: string | |
enum: *feedback-categories | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/UserFeedback" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/users/feedbacks/{id}.json: | |
get: | |
summary: Get User Feedback | |
tags: | |
- User Feedbacks | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the feedback. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/UserFeedback" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit User Feedback | |
tags: | |
- User Feedbacks | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the post feedback. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
body: | |
type: string | |
category: | |
type: string | |
enum: *feedback-categories | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete User Feedback | |
tags: | |
- User Feedbacks | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+ | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the feedback. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# User Name Change Requests | |
/users/name_change_requests.json: | |
get: | |
summary: Search User Name Change Requests | |
tags: | |
- User Name Change Requests | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[user_id] | |
schema: | |
type: number | |
- in: query | |
name: search[user_name] | |
schema: | |
type: string | |
- in: query | |
name: search[original_name] | |
schema: | |
type: string | |
- in: query | |
name: search[desired_name] | |
schema: | |
type: string | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/UserFeedback" | |
post: | |
summary: Create User Name Change Request | |
tags: | |
- User Name Change Requests | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- body | |
- category | |
properties: | |
user_id: | |
type: number | |
user_name: | |
type: string | |
body: | |
type: string | |
category: | |
type: string | |
enum: *feedback-categories | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/UserNameChangeRequest" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/users/name_change_request/{id}.json: | |
get: | |
summary: Get User Name Change Request | |
tags: | |
- User Name Change Requests | |
security: | |
- basicAuth: [] | |
description: You must be the creator of the request or Moderator+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the name change request. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/UserNameChangeRequest" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/users/revert.json: | |
get: | |
summary: Revert User | |
tags: | |
- Users | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- user_id | |
properties: | |
user_id: | |
type: number | |
responses: | |
204: | |
description: Success | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Wiki Pages | |
/wiki_pages.json: | |
get: | |
summary: Search Wiki Pages | |
tags: | |
- Wiki Pages | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- title | |
- post_count | |
- in: query | |
name: search[title] | |
schema: | |
type: string | |
- in: query | |
name: search[title_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[body_matches] | |
schema: | |
type: string | |
- in: query | |
name: search[creator_id] | |
schema: | |
type: number | |
- in: query | |
name: search[creator_name] | |
schema: | |
type: string | |
- in: query | |
name: search[is_locked] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/WikiPage" | |
post: | |
summary: Create Wiki Page | |
tags: | |
- Wiki Pages | |
security: | |
- basicAuth: [] | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- title | |
- body | |
properties: | |
title: | |
type: string | |
body: | |
type: string | |
edit_reason: | |
type: string | |
parent: | |
type: string | |
description: Must be Trusted+ to use. | |
is_locked: | |
type: boolean | |
description: Must be Janitor+ to use. | |
responses: | |
201: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/WikiPage" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
/wiki_pages/{id}.json: | |
get: | |
summary: Get Wiki Page | |
tags: | |
- Wiki Pages | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID or name of the wiki page. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/WikiPage" | |
404: | |
$ref: "#/components/responses/NotFound" | |
patch: | |
summary: Edit Wiki Page | |
tags: | |
- Wiki Pages | |
security: | |
- basicAuth: [] | |
description: You must be Janitor+ if the wiki page is locked. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the wiki page. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
body: | |
type: string | |
skip_post_count_rename_check: | |
type: boolean | |
edit_reason: | |
type: string | |
parent: | |
type: string | |
description: Must be Trusted+ to use. | |
title: | |
type: string | |
description: Must be Janitor+ to use. | |
is_locked: | |
type: boolean | |
description: Must be Janitor+ to use. | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
delete: | |
summary: Delete Wiki Page | |
tags: | |
- Wiki Pages | |
security: | |
- basicAuth: [] | |
description: You must be Admin+ | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the wiki page-. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
/wiki_page/{id}/revert.json: | |
post: | |
summary: Revert Wiki Page | |
tags: | |
- Wiki Pages | |
security: | |
- basicAuth: [] | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the wiki page. | |
schema: | |
type: number | |
- name: version_id | |
in: query | |
required: true | |
description: The version ID to revert to. | |
schema: | |
type: number | |
responses: | |
204: | |
description: Success | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" | |
# Wiki Page Versions | |
/wiki_pages/versions.json: | |
get: | |
summary: Search Wiki Page Versions | |
tags: | |
- Wiki Page Versions | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- $ref: "#/components/parameters/ip_addr" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[updater_id] | |
schema: | |
type: number | |
- in: query | |
name: search[updater_name] | |
schema: | |
type: string | |
- in: query | |
name: search[wiki_page_id] | |
schema: | |
type: number | |
- in: query | |
name: search[title] | |
schema: | |
type: string | |
- in: query | |
name: search[body] | |
schema: | |
type: string | |
- in: query | |
name: search[is_locked] | |
schema: | |
type: boolean | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/WikiPageVersion" | |
/wiki_pages/versions/{id}.json: | |
get: | |
summary: Get Wiki Page Version | |
tags: | |
- Wiki Page Versions | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the wiki page version. | |
schema: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/WikiPageVersion" | |
404: | |
$ref: "#/components/responses/NotFound" | |
# Staff Audit Logs | |
/admin/audit_logs.json: | |
get: | |
summary: Search Audit Logs | |
tags: | |
- Audit Logs | |
security: | |
- basicAuth: [] | |
description: You must be Moderator+. | |
parameters: | |
- $ref: "#/components/parameters/limit" | |
- $ref: "#/components/parameters/page" | |
- $ref: "#/components/parameters/id" | |
- name: search[order] | |
in: query | |
schema: | |
type: string | |
enum: | |
- id_asc | |
- id_desc | |
- in: query | |
name: search[user_id] | |
schema: | |
type: number | |
- in: query | |
name: search[user_name] | |
schema: | |
type: string | |
- in: query | |
name: search[action] | |
schema: | |
type: string | |
enum: *auditlog-actions | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/StaffAuditLog" | |
# Bulk Update Request Import | |
/admin/bulk_update_request_imports.json: | |
post: | |
summary: Import Bulk Update Request | |
tags: | |
- Bulk Update Request Import | |
security: | |
- basicAuth: [] | |
description: You must be Owner+. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- script | |
properties: | |
script: | |
type: string | |
forum_id: | |
type: number | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/StaffAuditLog" | |
# Admin Users | |
/admin/users/alt_list.json: | |
get: | |
summary: Get Alt List | |
tags: | |
- Admin Users | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. | |
parameters: | |
- name: page | |
in: query | |
description: The page number of results to get. Between 1 and 9999. | |
schema: | |
type: number | |
minimum: 1 | |
maximum: 9999 | |
responses: | |
200: | |
description: Success | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
- type: number | |
description: ID of concerned user. | |
- type: array | |
items: | |
type: number | |
description: ID of suspected alt. | |
examples: | |
- [[1,[2]],[2,[1]]] | |
/admins/users/{id}.json: | |
patch: | |
summary: Admin Edit User | |
tags: | |
- Admin Users | |
security: | |
- basicAuth: [] | |
description: You must be Admin+. If editing an Admin+, you must be Owner+. | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: The ID of the user. | |
schema: | |
type: number | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
verified: | |
type: boolean | |
description: Must be Owner+ to use. | |
level: | |
type: number | |
description: Must be Owner+ to promote to Admin+. | |
name: | |
type: string | |
profile_about: | |
type: string | |
profile_artinfo: | |
type: string | |
base_upload_limit: | |
type: number | |
enable_privacy_mode: | |
type: boolean | |
force_name_change: | |
type: boolean | |
email: | |
type: string | |
description: Must be Owner+ to use. | |
title: | |
type: string | |
description: Must be Owner+ to use. | |
responses: | |
204: | |
description: Success | |
400: | |
$ref: "#/components/responses/MessageError" | |
403: | |
$ref: "#/components/responses/AccessDenied" | |
404: | |
$ref: "#/components/responses/NotFound" | |
422: | |
$ref: "#/components/responses/ExpectedError" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment