# Returns user's notifications Retrieves the user's notifications with filtering options for types, excludeTypes and status Endpoint: GET /api/v1/notifications Version: 1.0 Security: header ## Query parameters: - `excludeTypes` (array,null) Enum: "FOLLOW", "FOLLOW_REQUEST", "GROUP_INVITE", "LIKE", "COMMENT", "MENTION", "REPOST", "LIST_POST_CREATE", "POST_UPDATE", "POLL", "EVENT_INVITE", "EVENT_JOIN", "EVENT_CANCEL", "EVENT_UPDATE" - `lastId` (string,null) Get older records (records with IDs less than this value) Alias maxId/max_id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `limit` (integer,null) - `offset` (integer,null) - `sortBy` (string,null) - `sortOrder` (string,null) - `status` (string,null) Enum: "UNREAD", "READ", "BLOCKED", "HIDDEN" - `types` (array,null) Enum: "FOLLOW", "FOLLOW_REQUEST", "GROUP_INVITE", "LIKE", "COMMENT", "MENTION", "REPOST", "LIST_POST_CREATE", "POST_UPDATE", "POLL", "EVENT_INVITE", "EVENT_JOIN", "EVENT_CANCEL", "EVENT_UPDATE" - `untilId` (string,null) Get newer records (records with IDs greater than this value) Alias minId/min_id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `htmlContent` (any) Returns text as html if true or original text if false. Applicable only to local posts and users. Default is true. ## Response 200 fields (application/json): - `id` (string, required) Internal notification id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `userId` (string, required) User receiving the notification Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `type` (string, required) FOLLOW New follower Send to the user who got a new follower. FOLLOW_REQUEST New follower request Similar to FOLLOW, send to the user who got a new follower, but in cases where followers need to be explicitly approved. GROUP_INVITE User got an invitation Send to the user who received the ActivityPub invitation activity. LIKE Post has been liked Send to the post's author as soon as another user likes their post. COMMENT Post has been commented on Send to the post's author and all users subscribed to the post. MENTION User has been mentioned in a post or comment Send to the user who was mentioned in the post or comment. REPOST Post has been reposted Send to the author of the post that was reposted. LIST_POST_CREATE New post or comment in list Send to the list owner when a new post is created by a list user. POST_UPDATE Post or comment has been updated Send to users subscribed to the post or comment. POLL Poll has been closed (expired) Send to the poll's author and all voters. EVENT_INVITE User has been invited to a private event Send to the invitee, i.e., the user invited to the event. EVENT_REVOKE User's invitation has been revoked Send to the invitee, i.e., the user whose invitation was revoked. EVENT_JOIN User joined a public event Send to the event organizer. EVENT_CANCEL Event has been cancelled Send to all event attendees (for public events, to users who joined). EVENT_UPDATE Event has been updated Send to all event attendees (for public events, to users who joined). Enum: "FOLLOW", "FOLLOW_REQUEST", "GROUP_INVITE", "LIKE", "COMMENT", "MENTION", "REPOST", "LIST_POST_CREATE", "POST_UPDATE", "POLL", "EVENT_INVITE", "EVENT_JOIN", "EVENT_CANCEL", "EVENT_UPDATE" - `status` (string, required) Enum: "UNREAD", "READ", "BLOCKED", "HIDDEN" - `activityId` (string,null) Related activity id (usually a post) Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `fromUserId` (string,null) User who triggered the notification Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `meta` (object, required) - `meta.actionsAvailable` (array,null) - `meta.actionsAvailable.action` (string, required) - `meta.actionsAvailable.text` (string, required) - `meta.actionsTaken` (array,null) - `meta.empty` (boolean) - `createdAt` (string, required) Example: "2022-03-10T16:15:50Z" - `updatedAt` (string,null) Example: "2022-03-10T16:15:50Z" - `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" - `post` (object,null) User's post - `post.id` (string, required) internal post id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `post.uri` (string, required) unique post uri - `post.text` (string, required) post text, raw or html depending on how it was requested - `post.path` (array, required) replies path Example: ["us_01hxcvk1hjexere4pvtrj0ymqq"] - `post.privacy` (string, required) post privacy level Enum: "PUBLIC", "UNLISTED", "PRIVATE", "DIRECT", "FOLLOW_POST" - `post.kind` (string, required) Article or Note Enum: "Note", "Article" - `post.software` (string, required) post software Example: "wellesley" - `post.repostOf` (string,null) id of a post this one was reposted from Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `post.ownerId` (string, required) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `post.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" - `post.title` (string,null) - `post.summary` (string,null, required) Subject or summary line, below which post content is collapsed until expanded. - `post.tags` (array, required) List of tags - `post.mentions` (array, required) List of mentions - `post.stats` (object, required) Stats - `post.stats.likes` (integer) - `post.stats.reposts` (integer) - `post.stats.quotes` (integer) - `post.stats.comments` (integer) - `post.stats.views` (integer) - `post.stats.bookmarks` (integer) - `post.stats.reactions` (object, required) - `post.stats.watchTime` (integer,null) - `post.stats.secondsToFirstAnswer` (integer,null) - `post.stats.secondsToAccepted` (integer,null) - `post.stats.lastActivity` (string, required) Example: "2022-03-10T16:15:50Z" - `post.stats.lastViewTimestamp` (string, required) Example: "2022-03-10T16:15:50Z" - `post.settings` (object, required) Settings - `post.settings.commentsEnabled` (boolean) - `post.settings.sensitive` (boolean) - `post.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" - `post.poll` (object,null) - `post.poll.id` (string, required) Internal poll id Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `post.poll.multiple` (boolean) - `post.poll.votersCount` (integer) - `post.poll.options` (array, required) - `post.poll.options.votesCount` (integer) - `post.poll.hideTotals` (boolean) - `post.poll.ownVotes` (array,null) - `post.poll.emojis` (array,null) - `post.poll.emojis.shortcode` (string, required) - `post.poll.emojis.category` (string,null) - `post.poll.emojis.url` (string, required) - `post.poll.emojis.staticUrl` (string, required) - `post.poll.emojis.visibleInPicker` (boolean) - `post.card` (object,null) Preview card for any links in the post - `post.card.url` (string,null, required) URL being referenced - `post.card.title` (string,null) Title of the linked resource - `post.card.description` (string,null) Description of the linked resource - `post.card.icon` (string,null) Favicon URL - `post.card.image` (string,null) Preview image URL - `post.card.imageAlt` (string,null) Alt text for the preview image - `post.card.publisher` (object,null) Information about the website/provider - `post.card.publisher.logo` (string,null) - `post.card.publisher.type` (string,null) - `post.card.oembedHtml` (string,null) HTML snippet to embed the link (from oEmbed), e.g., an iframe - `post.card.createdAt` (string, required) When the card data was fetched/created Example: "2022-03-10T16:15:50Z" - `post.card.expiresAt` (string,null) When the card data should be considered stale Example: "2022-03-10T16:15:50Z" - `post.mediaType` (string, required) Post media type. Default for Note is text/plain, for Article text/markdown Enum: "TEXT_PLAIN", "MARKDOWN" - `post.translations` (object,null) - `post.author` (object, required) One of account's users. Can be multiple per account - `post.uploads` (array, required) - `post.liked` (boolean,null) Whether the current user liked it or not - `post.reposted` (boolean,null) Whether the current user reposted it or not - `post.quoted` (boolean,null) Whether the current user quoted it or not - `post.muted` (boolean,null) Whether the current user muted the author of the post - `post.blocked` (boolean,null) Whether the current user blocked the author of the post - `post.visible` (boolean,null) Whether the current user can see it or not (e.g. FOLLOWERS_ONLY - `post.pinned` (boolean,null) Whether the current user pinned it or not - `post.bookmarked` (boolean,null) Whether the current user bookmarked it or not - `post.edited` (boolean,null) Whether the post was edited - `post.replies` (array,null) - `post.repostedBy` (array,null) List of users who reposted this post - `post.repostedBy.id` (string, required) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `post.repostedBy.displayName` (string, required) - `post.repostedBy.username` (string, required) - `post.repostedBy.domain` (string, required) - `post.originalPost` (object,null) Original of repost/quote. In WS context or /replies API could also be parent of a comment - `post.votes` (object,null) Votes summary - `post.votes.upvotes` (integer, required) upvotes count - `post.votes.downvotes` (integer, required) downvotes count - `post.votes.ownVote` (integer,null) current user's vote, if any - `post.originalPath` (array,null) Original path when the pinned replied was copied Example: ["us_01hxcvk1hjexere4pvtrj0ymqq"] - `post.remote` (boolean) - `post.repostAny` (boolean) - `post.repost` (boolean) - `post.quote` (boolean) - `post.own` (boolean) - `post.replyTo` (string,null) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" - `post.conversationId` (string, required) UUID with type prefix Example: "us_01hxcvk1hjexere4pvtrj0ymqq" ## Response 401 fields (application/json): - `errorCode` (string, required) Error code - `message` (string, required) Error message - `docUrl` (string) Link to documentation