# Report a post or a user to instance moderators Endpoint: POST /api/v1/reports Version: 1.0 Security: header ## Request fields (application/json): - `comment` (string, required) - `targetUserId` (string,null) User who is being reported Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `targetPostIds` (array, required) Posts that are being reported Example: ["pt_01hz1f0jkdw3h27a2kdr8sn2kt"] - `forward` (boolean) ## Response 200 fields (application/json): - `id` (string, required) Internal report id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `uri` (string, required) - `comment` (string, required) - `fromUserId` (string,null) User who reported the content Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `targetPostIds` (array,null) Posts that were reported Example: ["pt_01hz1f0jkdw3h27a2kdr8sn2kt"] - `targetUserId` (string,null) User who was reported Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `groupId` (string,null) Report scope. If empty the scope is global. If set the scope is group and group admins can take actions Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `createdAt` (string, required) Example: "2022-03-10T16:15:50Z" - `updatedAt` (string, required) Example: "2022-03-10T16:15:50Z" - `assignedUser` (string,null) Moderator assigned to handle the report Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `actionTakenAt` (string,null) Example: "2022-03-10T16:15:50Z" - `actionTakenBy` (string,null) Moderator who took action on the report Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `forwarded` (boolean) - `notes` (array, required) - `notes.userId` (string, required) User who added the note Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `notes.note` (string, required) - `fromUser` (object,null) One of account's users. Can be multiple per account - `fromUser.groupUserName` (string,null) Name of the channel inside a group - `fromUser.id` (string, required) internal id of this user Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `fromUser.username` (string, required) unique user name Example: "john_smith" - `fromUser.domain` (string, required) user's domain, remote only, empty for local Example: "wlsly1.net" - `fromUser.displayName` (string, required) full name of the user Example: "John Smith" - `fromUser.uri` (string, required) URI of this user Example: "https://wlsly1.net/users/john_smith" - `fromUser.avatar` (object,null) User's avatar - `fromUser.avatar.uploadId` (string, required) Internal id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `fromUser.avatar.userId` (string, required) User id this upload belongs to Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `fromUser.avatar.uploadType` (string, required) Type of the upload Enum: "VIDEO", "IMAGE", "AUDIO", "DOCUMENT", "OTHER" - `fromUser.avatar.meta` (object, required) Meta data - `fromUser.avatar.meta.blurhash` (string,null) - `fromUser.avatar.meta.name` (string,null) - `fromUser.avatar.meta.altText` (string,null) - `fromUser.avatar.size` (integer, required) Size in bytes of all the files in this upload - `fromUser.avatar.files` (array, required) List of all the files this upload has - `fromUser.avatar.files.uri` (string,null, required) Full url of the file - `fromUser.avatar.files.fileId` (string, required) File id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `fromUser.avatar.files.extension` (string, required) File extension Example: "mp4" - `fromUser.avatar.files.original` (boolean, required) true if this file is original, false if it is a derivative - `fromUser.avatar.files.meta` (object, required) File metadata. Contains optional values for width, height etc. - `fromUser.avatar.files.meta.duration` (number,null) Video duration in seconds - `fromUser.avatar.files.meta.width` (integer,null) Media width - `fromUser.avatar.files.meta.height` (integer,null) Media height - `fromUser.avatar.files.meta.codec` (string,null) Video codec - `fromUser.avatar.files.meta.rotate` (integer,null) Rotation in degrees - `fromUser.avatar.files.size` (integer, required) File size in bytes - `fromUser.avatar.files.type` (string, required) File type Enum: "VIDEO", "IMAGE", "AUDIO", "DOCUMENT", "OTHER" - `fromUser.avatar.tags` (array, required) List of tags attached to upload Enum: "Post", "Avatar", "Header", "Album", "Emoji", "Event" - `fromUser.avatar.error` (string,null) Upload processing error - `fromUser.avatar.cached` (boolean) true if cached - `fromUser.avatar.logs` (string,null) Logs - `fromUser.avatar.remote` (boolean) true if this upload is remote - `fromUser.deleted` (boolean,null) - `fromUser.state` (string, required) User's moderation state Enum: "REGULAR", "SENSITIVE", "LIMITED", "SUSPENDED" - `fromUser.relationship` (object,null) Relationship with this user - `fromUser.relationship.following` (string,null) Does the viewer follow the target? Enum: "PENDING", "ACCEPTED", "REJECTED" - `fromUser.relationship.followed` (string,null) Does the target follow the viewer? Enum: "PENDING", "ACCEPTED", "REJECTED" - `fromUser.relationship.blocked` (boolean,null) Viewer blocked the target - `fromUser.relationship.blockedBy` (boolean,null) Target blocked the viewer - `fromUser.relationship.muted` (object,null) Viewer mutes the target - `fromUser.relationship.muted.state` (boolean) - `fromUser.relationship.muted.expiresAt` (string,null) Example: "2022-03-10T16:15:50Z" - `fromUser.relationship.note` (string,null) Viewer's private note about the target - `fromUser.channel` (boolean) Whether this is a channel or a user - `fromUser.groupId` (string,null) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `fromUser.groupPrivacy` (string,null) * PUBLIC - Channel is visible to everyone and can be followed by anyone. * PRIVATE - Channel is visible only to group members and can only be followed by group members. Enum: "PUBLIC", "PRIVATE" - `fromUser.groupMain` (boolean,null) - `fromUser.groupDefault` (boolean,null) - `fromUser.actorType` (string,null) Whether this user is a person, application or a service Enum: "Application", "Group", "Organization", "Person", "Service" - `targetUser` (object,null) One of account's users. Can be multiple per account - `posts` (array,null) - `posts.id` (string, required) internal post id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `posts.uri` (string, required) unique post uri - `posts.text` (string, required) post text, raw or html depending on how it was requested - `posts.path` (array, required) replies path Example: ["us_01hxcvk1hjexere4pvtrj0ymqq"] - `posts.privacy` (string, required) post privacy level Enum: "PUBLIC", "UNLISTED", "PRIVATE", "DIRECT", "FOLLOW_POST" - `posts.kind` (string, required) Article or Note Enum: "Note", "Article" - `posts.software` (string, required) post software Example: "wellesley" - `posts.repostOf` (string,null) id of a post this one was reposted from Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `posts.ownerId` (string, required) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `posts.ownerType` (string, required) Owner types for posts: * USER - user’s channel (personal or group channel) * EVENT - event (personal or group) * CATEGORY - forum category POST OWNER: - Personal channel - userId = author - ownerId = userId (Type.USER) - ownerType = USER - groupId = null - Forum post - userId = author - ownerId = categoryId (Type.CATEGORY) - ownerType = CATEGORY - groupId = forum’s groupId - Personal event - userId = author - ownerId = eventId (Type.EVENT) - ownerType = EVENT - groupId = null - Group channel - userId = author - ownerId = channel userId (Type.USER) - ownerType = USER - groupId = groupId - Group event - userId = author - ownerId = eventId (Type.EVENT) - ownerType = EVENT - groupId = groupId Enum: "USER", "EVENT", "CATEGORY" - `posts.title` (string,null) - `posts.summary` (string,null, required) Subject or summary line, below which post content is collapsed until expanded. - `posts.tags` (array, required) List of tags - `posts.mentions` (array, required) List of mentions - `posts.stats` (object, required) Stats - `posts.stats.likes` (integer) - `posts.stats.reposts` (integer) - `posts.stats.quotes` (integer) - `posts.stats.comments` (integer) - `posts.stats.views` (integer) - `posts.stats.bookmarks` (integer) - `posts.stats.reactions` (object, required) - `posts.stats.watchTime` (integer,null) - `posts.stats.secondsToFirstAnswer` (integer,null) - `posts.stats.secondsToAccepted` (integer,null) - `posts.stats.lastActivity` (string, required) Example: "2022-03-10T16:15:50Z" - `posts.stats.lastViewTimestamp` (string, required) Example: "2022-03-10T16:15:50Z" - `posts.settings` (object, required) Settings - `posts.settings.commentsEnabled` (boolean) - `posts.settings.sensitive` (boolean) - `posts.lang` (string,null) Enum: "BG", "CS", "DA", "DE", "EL", "EN", "ES", "ET", "FI", "FR", "HU", "ID", "IT", "JA", "KO", "LT", "LV", "NB", "NL", "PL", "PT", "RO", "RU", "SK", "SL", "SV", "TR", "UK", "ZH" - `posts.poll` (object,null) - `posts.poll.id` (string, required) Internal poll id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `posts.poll.multiple` (boolean) - `posts.poll.votersCount` (integer) - `posts.poll.options` (array, required) - `posts.poll.options.votesCount` (integer) - `posts.poll.hideTotals` (boolean) - `posts.poll.ownVotes` (array,null) - `posts.poll.emojis` (array,null) - `posts.poll.emojis.shortcode` (string, required) - `posts.poll.emojis.category` (string,null) - `posts.poll.emojis.url` (string, required) - `posts.poll.emojis.staticUrl` (string, required) - `posts.poll.emojis.visibleInPicker` (boolean) - `posts.card` (object,null) Preview card for any links in the post - `posts.card.url` (string,null, required) URL being referenced - `posts.card.title` (string,null) Title of the linked resource - `posts.card.description` (string,null) Description of the linked resource - `posts.card.icon` (string,null) Favicon URL - `posts.card.image` (string,null) Preview image URL - `posts.card.imageAlt` (string,null) Alt text for the preview image - `posts.card.publisher` (object,null) Information about the website/provider - `posts.card.publisher.logo` (string,null) - `posts.card.publisher.type` (string,null) - `posts.card.oembedHtml` (string,null) HTML snippet to embed the link (from oEmbed), e.g., an iframe - `posts.card.createdAt` (string, required) When the card data was fetched/created Example: "2022-03-10T16:15:50Z" - `posts.card.expiresAt` (string,null) When the card data should be considered stale Example: "2022-03-10T16:15:50Z" - `posts.mediaType` (string, required) Post media type. Default for Note is text/plain, for Article text/markdown Enum: "TEXT_PLAIN", "MARKDOWN" - `posts.translations` (object,null) - `posts.author` (object, required) One of account's users. Can be multiple per account - `posts.uploads` (array, required) - `posts.liked` (boolean,null) Whether the current user liked it or not - `posts.reposted` (boolean,null) Whether the current user reposted it or not - `posts.quoted` (boolean,null) Whether the current user quoted it or not - `posts.muted` (boolean,null) Whether the current user muted the author of the post - `posts.blocked` (boolean,null) Whether the current user blocked the author of the post - `posts.visible` (boolean,null) Whether the current user can see it or not (e.g. FOLLOWERS_ONLY - `posts.pinned` (boolean,null) Whether the current user pinned it or not - `posts.bookmarked` (boolean,null) Whether the current user bookmarked it or not - `posts.edited` (boolean,null) Whether the post was edited - `posts.replies` (array,null) - `posts.repostedBy` (array,null) List of users who reposted this post - `posts.repostedBy.id` (string, required) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `posts.repostedBy.displayName` (string, required) - `posts.repostedBy.username` (string, required) - `posts.repostedBy.domain` (string, required) - `posts.originalPost` (object,null) Original of repost/quote. In WS context or /replies API could also be parent of a comment - `posts.votes` (object,null) Votes summary - `posts.votes.upvotes` (integer, required) upvotes count - `posts.votes.downvotes` (integer, required) downvotes count - `posts.votes.ownVote` (integer,null) current user's vote, if any - `posts.remote` (boolean) - `posts.repostAny` (boolean) - `posts.repost` (boolean) - `posts.quote` (boolean) - `posts.own` (boolean) - `posts.replyTo` (string,null) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `posts.conversationId` (string, required) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" ## Response 400 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation ## Response 401 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation