Pleroma API (2.4.51-184-gc97f99cc) Download OpenAPI specification:Download This is documentation for client Pleroma API. Most of the endpoints and entities come from Mastodon API and have custom extensions on top. While this document aims to be a complete guide to the client API Pleroma exposes, the details are still being worked out. Some endpoints may have incomplete or poorly worded documentation. You might want to check the following resources if something is not clear: Legacy Pleroma-specific endpoint documentation Mastodon API documentation Differences in Mastodon API responses from vanilla Mastodon Please report such occurences on our issue tracker. Feel free to submit API questions or proposals there too! Authentication oAuth Security Scheme Type OAuth2 password OAuth Flow Token URL: /oauth/token Scopes: follow - Manage relationships push - Web Push API subscriptions read - Read everything write - Write everything Account actions Unmute Unmute the given account. AUTHORIZATIONS: oAuth (followwrite:mutes) PATH PARAMETERS id required string Example: 123 Account ID or nickname Responses 200 Relationship POST /api/v1/accounts/{id}/unmute Response samples 200 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Unblock Unblock the given account. AUTHORIZATIONS: oAuth (followwrite:blocks) PATH PARAMETERS id required string Example: 123 Account ID or nickname Responses 200 Relationship POST /api/v1/accounts/{id}/unblock Response samples 200 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Subscribe Receive notifications for all statuses posted by the account. AUTHORIZATIONS: oAuth (followwrite:follows) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Account ID Responses 200 Relationship 404 Not Found POST /api/v1/pleroma/accounts/{id}/subscribe Response samples 200404 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Mute Mute the given account. Clients should filter statuses and notifications from this account, if received (e.g. due to a boost in the Home timeline). AUTHORIZATIONS: oAuth (followwrite:mutes) PATH PARAMETERS id required string Example: 123 Account ID or nickname QUERY PARAMETERS notifications boolean or string or integer Default: true Mute notifications in addition to statuses? Defaults to true. expires_in integer Default: 0 Expire the mute in expires_in seconds. Default 0 for infinity REQUEST BODY SCHEMA: application/json Parameters expires_in integer Nullable Default: 0 Expire the mute in expires_in seconds. Default 0 for infinity notifications boolean or string or integer Nullable Default: true Mute notifications in addition to statuses? Defaults to true. Responses 200 Relationship POST /api/v1/accounts/{id}/mute Request samples Payload Content type application/json Copy Expand all Collapse all { "expires_in": 86400, "notifications": true } Response samples 200 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Block Block the given account. Clients should filter statuses from this account if received (e.g. due to a boost in the Home timeline) AUTHORIZATIONS: oAuth (followwrite:blocks) PATH PARAMETERS id required string Example: 123 Account ID or nickname Responses 200 Relationship POST /api/v1/accounts/{id}/block Response samples 200 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Unfollow Unfollow the given account AUTHORIZATIONS: oAuth (followwrite:follows) PATH PARAMETERS id required string Example: 123 Account ID or nickname Responses 200 Relationship 400 Error 404 Error POST /api/v1/accounts/{id}/unfollow Response samples 200400404 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Unsubscribe Stop receiving notifications for all statuses posted by the account. AUTHORIZATIONS: oAuth (followwrite:follows) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Account ID Responses 200 Relationship 404 Not Found POST /api/v1/pleroma/accounts/{id}/unsubscribe Response samples 200404 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Follow by URI AUTHORIZATIONS: oAuth (followwrite:follows) REQUEST BODY SCHEMA: application/json Parameters uri required string <uri> Nullable Responses 200 Account 400 Error 404 Error POST /api/v1/follows Request samples Payload Content type application/json Copy Expand all Collapse all { "uri": "http://example.com" } Response samples 200400404 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Follow Follow the given account AUTHORIZATIONS: oAuth (followwrite:follows) PATH PARAMETERS id required string Example: 123 Account ID or nickname REQUEST BODY SCHEMA: application/json Parameters reblogs boolean Default: true Receive this account's reblogs in home timeline? Defaults to true. Responses 200 Relationship 400 Error 404 Error POST /api/v1/accounts/{id}/follow Request samples Payload Content type application/json Copy Expand all Collapse all { "reblogs": true } Response samples 200400404 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Retrieve account information Account View information about a profile. PATH PARAMETERS id required string Example: 123 Account ID or nickname QUERY PARAMETERS with_relationships boolean or string or integer (BooleanLike) Embed relationships into accounts. If this parameter is not set account's pleroma.relationship is going to be null. Responses 200 Account 401 Error 404 Error GET /api/v1/accounts/{id} Response samples 200401404 Content type application/json Copy Expand all Collapse all { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { "accepts_chat_messages": true, "allow_following_move": true, "background_image": null, "chat_token": "SFMyNTY.g3QAAAACZAAEZGF0YW0AAAASOXRLaTNlc2JHN09RZ1oyOTIwZAAGc2lnbmVkbgYARNplS3EB.Mb_Iaqew2bN1I1o79B_iP7encmVCpTKC4OtHZRxdjKc", "hide_favorites": true, "hide_followers": false, "hide_followers_count": false, "hide_follows": false, "hide_follows_count": false, "is_admin": false, "is_confirmed": false, "is_moderator": false, "notification_settings": { }, "relationship": { }, "settings_store": { }, "skip_thread_containment": false, "tags": [ ], "unread_conversation_count": 0 }, "source": { "fields": [ ], "note": "foobar", "pleroma": { }, "privacy": "public", "sensitive": false }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } Following Accounts which the given account is following, if network is not hidden by the account owner. AUTHORIZATIONS: oAuth (read:accounts) PATH PARAMETERS id required string Example: 123 Account ID or nickname QUERY PARAMETERS id string ID of the resource owner with_relationships boolean or string or integer (BooleanLike) Embed relationships into accounts. If this parameter is not set account's pleroma.relationship is going to be null. max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Accounts GET /api/v1/accounts/{id}/following Response samples 200 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Favorites Only returns data if the user has opted into sharing it. See hide_favorites in Update account credentials. AUTHORIZATIONS: oAuth (read:favourites) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Account ID QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Statuses 403 Forbidden 404 Not Found GET /api/v1/pleroma/accounts/{id}/favourites Response samples 200403404 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Relationship with current account Find out whether a given account is followed, blocked, muted, etc. AUTHORIZATIONS: oAuth (read:follows) QUERY PARAMETERS id Array of strings or string Example: id=123 Account IDs Responses 200 Account GET /api/v1/accounts/relationships Response samples 200 Content type application/json Copy Expand all Collapse all [ { "blocked_by": true, "blocking": false, "domain_blocking": false, "endorsed": true, "followed_by": true, "following": true, "id": "1", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false }, { "blocked_by": true, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": true, "following": true, "id": "2", "muting": true, "muting_notifications": false, "requested": true, "showing_reblogs": true, "subscribing": false }, { "blocked_by": false, "blocking": true, "domain_blocking": true, "endorsed": false, "followed_by": true, "following": true, "id": "3", "muting": true, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": true } ] Statuses Statuses posted to the given account. Public (for public statuses only), or user token + read:statuses (for private statuses the user is authorized to see) PATH PARAMETERS id required string Example: 123 Account ID or nickname QUERY PARAMETERS pinned boolean or string or integer (BooleanLike) Include only pinned statuses tagged string With tag only_media boolean or string or integer (BooleanLike) Include only statuses with media attached with_muted boolean or string or integer (BooleanLike) Include statuses from muted accounts. exclude_reblogs boolean or string or integer (BooleanLike) Exclude reblogs exclude_replies boolean or string or integer (BooleanLike) Exclude replies exclude_visibilities Array of strings (VisibilityScope) Items Enum: "public" "unlisted" "local" "private" "direct" "list" Exclude visibilities with_muted boolean or string or integer (BooleanLike) Include reactions from muted accounts. max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Statuses 401 Error 404 Error GET /api/v1/accounts/{id}/statuses Response samples 200401404 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Lists containing this account User lists that you have added this account to. AUTHORIZATIONS: oAuth (read:lists) PATH PARAMETERS id required string Example: 123 Account ID or nickname Responses 200 Lists GET /api/v1/accounts/{id}/lists Response samples 200 Content type application/json Copy Expand all Collapse all [ { "id": "123", "title": "my list" }, { "id": "1337", "title": "anotehr list" } ] Identity proofs Not implemented PATH PARAMETERS id required string Example: 123 Account ID or nickname Responses 200 Empty array GET /api/v1/accounts/{id}/identity_proofs Response samples 200 Content type application/json Copy Expand all Collapse all [ ] Followers Accounts which follow the given account, if network is not hidden by the account owner. AUTHORIZATIONS: oAuth (read:accounts) PATH PARAMETERS id required string Example: 123 Account ID or nickname QUERY PARAMETERS id string ID of the resource owner with_relationships boolean or string or integer (BooleanLike) Embed relationships into accounts. If this parameter is not set account's pleroma.relationship is going to be null. max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Accounts GET /api/v1/accounts/{id}/followers Response samples 200 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Endorsements Not implemented AUTHORIZATIONS: oAuth (read:accounts) Responses 200 Empty array GET /api/v1/endorsements Response samples 200 Content type application/json Copy Expand all Collapse all [ ] Scrobbles Requests a list of current and recent Listen activities for an account AUTHORIZATIONS: oAuth (read) PATH PARAMETERS id required string Example: 123 Account ID or nickname QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Scrobble GET /api/v1/pleroma/accounts/{id}/scrobbles Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "album": "Some Album", "artist": "Some Artist", "created_at": "2019-09-28T12:40:45.000Z", "id": "1234", "length": 180000, "title": "Some Title" } ] Creates a new Listen activity for an account AUTHORIZATIONS: oAuth (write) REQUEST BODY SCHEMA: application/json Parameters album string The album of the media playing artist string The artist of the media playing length integer The length of the media playing title required string The title of the media playing visibility string Default: "public" Enum: "public" "unlisted" "local" "private" "direct" "list" Scrobble visibility Responses 200 Scrobble POST /api/v1/pleroma/scrobble Request samples Payload Content type application/json Copy Expand all Collapse all { "album": "Some Album", "artist": "Some Artist", "length": 180000, "title": "Some Title" } Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" }, "album": "Some Album", "artist": "Some Artist", "created_at": "2019-09-28T12:40:45.000Z", "id": "1234", "length": 180000, "title": "Some Title" } Chat administration Get chat's messages AUTHORIZATIONS: oAuth (admin:read:chats) PATH PARAMETERS id required string The ID of the Chat QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 The messages in the chat GET /api/v1/pleroma/admin/chats/{id}/messages Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account_id": "someflakeid", "chat_id": "1", "content": "Check this out :firefox:", "created_at": "2020-04-21T15:11:46.000Z", "emojis": [ ], "id": "13", "unread": false }, { "account_id": "someflakeid", "chat_id": "1", "content": "Whats' up?", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ ], "id": "12", "unread": false } ] Create a chat AUTHORIZATIONS: oAuth (admin:read) PATH PARAMETERS id required string Example: 1234 The id of the chat Responses 200 The existing chat GET /api/v1/pleroma/admin/chats/{id} Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "lain@dontbulling.me", "avatar": "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", "avatar_static": "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", "bot": false, "created_at": "2020-04-16T13:40:15.000Z", "display_name": "lain", "emojis": [ ], "fields": [ ], "followers_count": 0, "following_count": 0, "header": "https://originalpatchou.li/images/banner.png", "header_static": "https://originalpatchou.li/images/banner.png", "id": "9u6Qw6TAZANpqokMkK", "is_locked": false, "note": "lain", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "https://dontbulling.me/users/lain", "username": "lain" }, "id": "1", "last_message": { "account_id": "someflakeid", "attachment": null, "card": null, "chat_id": "1", "content": "hey you again", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ ], "id": "14", "unread": false }, "unread": 2, "updated_at": "2020-04-21T15:06:45.000Z" } Delete an individual chat message AUTHORIZATIONS: oAuth (admin:write:chats) PATH PARAMETERS id required string The ID of the Chat message_id required string The ID of the message Responses 200 The deleted ChatMessage DELETE /api/v1/pleroma/admin/chats/{id}/messages/{message_id} Response samples 200 Content type application/json Copy Expand all Collapse all { "account_id": "someflakeid", "attachment": null, "card": null, "chat_id": "1", "content": "hey you again", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ { } ], "id": "14", "unread": false } Emoji pack administration Delete a custom emoji pack AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS name required string Example: name=cofe Pack Name Responses 200 Ok 400 Bad Request 404 Not Found 500 Error DELETE /api/v1/pleroma/emoji/pack Response samples 200400404500 Content type application/json Copy Expand all Collapse all "ok" Updates (replaces) pack metadata AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS name required string Example: name=cofe Pack Name REQUEST BODY SCHEMA: application/json Parameters metadata object Metadata to replace the old one Responses 200 Metadata 400 Bad Request 500 Error PATCH /api/v1/pleroma/emoji/pack Request samples Payload Content type application/json Copy Expand all Collapse all { "metadata": { "description": "string", "fallback-src": "http://example.com", "fallback-src-sha256": "string", "homepage": "http://example.com", "license": "string", "share-files": true } } Response samples 200400500 Content type application/json Copy Expand all Collapse all { "description": "string", "fallback-src": "http://example.com", "fallback-src-sha256": "string", "homepage": "http://example.com", "license": "string", "share-files": true } Create an empty pack AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS name required string Example: name=cofe Pack Name Responses 200 Ok 400 Not Found 409 Conflict 500 Error POST /api/v1/pleroma/emoji/pack Response samples 200400409500 Content type application/json Copy Expand all Collapse all "ok" Imports packs from filesystem AUTHORIZATIONS: oAuth (admin:write) Responses 200 Array of imported pack names GET /api/v1/pleroma/emoji/packs/import Response samples 200 Content type application/json Copy Expand all Collapse all [ "string" ] Make request to another instance for emoji packs list AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS url required string <uri> URL of the instance page integer Default: 1 Page page_size integer Default: 30 Number of emoji to return Responses 200 Object with pack names as keys and pack contents as values 500 Error GET /api/v1/pleroma/emoji/packs/remote Response samples 200500 Content type application/json Copy Expand all Collapse all { "emojos": { "files": { }, "pack": { } } } Download pack from another instance AUTHORIZATIONS: oAuth (admin:write) REQUEST BODY SCHEMA: application/json Parameters as string <uri> Save as name required string <uri> Pack Name url required string <uri> URL of the instance to download from Responses 200 Ok 500 Error POST /api/v1/pleroma/emoji/packs/download Request samples Payload Content type application/json Copy Expand all Collapse all { "as": "http://example.com", "name": "http://example.com", "url": "http://example.com" } Response samples 200500 Content type application/json Copy Expand all Collapse all "ok" Delete emoji file from pack AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS name required string Example: name=cofe Pack Name shortcode required string Example: shortcode=cofe File shortcode Responses 200 Files Object 400 Bad Request 404 Not Found 422 Unprocessable Entity DELETE /api/v1/pleroma/emoji/packs/files Response samples 200400404422 Content type application/json Copy Expand all Collapse all { "property1": "string", "property2": "string" } Add new file to the pack AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS name required string Example: name=cofe Pack Name REQUEST BODY SCHEMA: application/json Parameters force boolean Default: false With true value to overwrite existing emoji with new shortcode new_filename required string New filename for emoji file new_shortcode required string New emoji file shortcode shortcode required string Emoji file shortcode Responses 200 Files Object 400 Bad Request 404 Not Found 409 Conflict 422 Unprocessable Entity PATCH /api/v1/pleroma/emoji/packs/files Request samples Payload Content type application/json Copy Expand all Collapse all { "force": false, "new_filename": "string", "new_shortcode": "string", "shortcode": "string" } Response samples 200400404409422 Content type application/json Copy Expand all Collapse all { "property1": "string", "property2": "string" } Add new file to the pack AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS name required string Example: name=cofe Pack Name REQUEST BODY SCHEMA: application/json Parameters file required string or string File needs to be uploaded with the multipart request or link to remote file filename string New emoji file name. If not specified will be taken from original filename. shortcode string Shortcode for new emoji, must be unique for all emoji. If not sended, shortcode will be taken from original filename. Responses 200 Files Object 400 Bad Request 404 Not Found 409 Conflict 422 Unprocessable Entity 500 Error POST /api/v1/pleroma/emoji/packs/files Request samples Payload Content type application/json Copy Expand all Collapse all { "file": "string", "filename": "string", "shortcode": "string" } Response samples 200400404409422500 Content type application/json Copy Expand all Collapse all { "property1": "string", "property2": "string" } Frontend managment Retrieve a list of available frontends AUTHORIZATIONS: oAuth (admin:read) Responses 200 Response 403 Forbidden GET /api/v1/pleroma/admin/frontends Response samples 200403 Content type application/json Copy Expand all Collapse all [ { "build_url": "http://example.com", "git": "http://example.com", "installed": true, "name": "string", "ref": "string" } ] Install a frontend AUTHORIZATIONS: oAuth (admin:read) REQUEST BODY SCHEMA: application/json Parameters build_dir string build_url string file string name required string ref string Responses 200 Response 400 Error 403 Forbidden POST /api/v1/pleroma/admin/frontends/install Request samples Payload Content type application/json Copy Expand all Collapse all { "build_dir": "string", "build_url": "string", "file": "string", "name": "string", "ref": "string" } Response samples 200400403 Content type application/json Copy Expand all Collapse all [ { "build_url": "http://example.com", "git": "http://example.com", "installed": true, "name": "string", "ref": "string" } ] Instance configuration Retrieve config description AUTHORIZATIONS: oAuth (admin:read) QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 200 Config Descriptions 400 Bad Request GET /api/v1/pleroma/admin/config/descriptions Response samples 200400 Content type application/json Copy Expand all Collapse all [ { "children": [ ], "description": "string", "group": "string", "key": "string", "type": "string" } ] Retrieve instance configuration AUTHORIZATIONS: oAuth (admin:read) QUERY PARAMETERS only_db boolean Default: false Get only saved in database settings admin_token string Allows authorization via admin token. Responses 200 Config 400 Bad Request GET /api/v1/pleroma/admin/config Response samples 200400 Content type application/json Copy Expand all Collapse all { "configs": [ { } ], "need_reboot": true } Update instance configuration AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters configs Array of objects Responses 200 Config 400 Bad Request POST /api/v1/pleroma/admin/config Request samples Payload Content type application/json Copy Expand all Collapse all { "configs": [ { } ] } Response samples 200400 Content type application/json Copy Expand all Collapse all { "configs": [ { } ], "need_reboot": true } Instance documents Delete an instance document AUTHORIZATIONS: oAuth (admin:write) PATH PARAMETERS name required string The document name QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 200 InstanceDocument 400 Bad Request 403 Forbidden 404 Not Found DELETE /api/v1/pleroma/admin/instance_document/{name} Response samples 200400403404 Content type application/json Copy Expand all Collapse all { "url": "https://example.com/static/terms-of-service.html" } Retrieve an instance document AUTHORIZATIONS: oAuth (admin:read) PATH PARAMETERS name required string The document name QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 200 InstanceDocumentContent 400 Bad Request 403 Forbidden 404 Not Found GET /api/v1/pleroma/admin/instance_document/{name} Response samples 400403404 Content type application/json Copy Expand all Collapse all { "error": "Something went wrong" } Update an instance document AUTHORIZATIONS: oAuth (admin:write) PATH PARAMETERS name required string The document name QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters file required string <binary> The file to be uploaded, using multipart form data. Responses 200 InstanceDocument 400 Bad Request 403 Forbidden 404 Not Found PATCH /api/v1/pleroma/admin/instance_document/{name} Request samples Payload Content type application/json Copy Expand all Collapse all { "file": "string" } Response samples 200400403404 Content type application/json Copy Expand all Collapse all { "url": "https://example.com/static/terms-of-service.html" } Invites Revoke invite by token AUTHORIZATIONS: oAuth (admin:write:invites) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters token required string Responses 200 Invite 400 Bad Request 404 Not Found POST /api/v1/pleroma/admin/users/revoke_invite Request samples Payload Content type application/json Copy Expand all Collapse all { "token": "string" } Response samples 200400404 Content type application/json Copy Expand all Collapse all { "expires_at": null, "id": 123, "invite_type": "one_time", "max_use": null, "token": "kSQtDj_GNy2NZsL9AQDFIsHN5qdbguB6qRg3WHw6K1U=", "used": true, "uses": 0 } Get a list of generated invites AUTHORIZATIONS: oAuth (admin:read:invites) QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 200 Invites GET /api/v1/pleroma/admin/users/invites Response samples 200 Content type application/json Copy Expand all Collapse all { "invites": [ { } ] } Create an account registration invite token AUTHORIZATIONS: oAuth (admin:write:invites) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters expires_at string <date> max_use integer Responses 200 Invite POST /api/v1/pleroma/admin/users/invite_token Request samples Payload Content type application/json Copy Expand all Collapse all { "expires_at": "2020-04-20", "max_use": 0 } Response samples 200 Content type application/json Copy Expand all Collapse all { "expires_at": null, "id": 123, "invite_type": "one_time", "max_use": null, "token": "kSQtDj_GNy2NZsL9AQDFIsHN5qdbguB6qRg3WHw6K1U=", "used": true, "uses": 0 } Sends registration invite via email AUTHORIZATIONS: oAuth (admin:write:invites) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters email required string <email> name string Responses 204 No Content 400 Bad Request 403 Forbidden POST /api/v1/pleroma/admin/users/email_invite Request samples Payload Content type application/json Copy Expand all Collapse all { "email": "user@example.com", "name": "string" } Response samples 204400403 Content type application/json Copy Expand all Collapse all "" MediaProxy cache Retrieve a list of banned MediaProxy URLs AUTHORIZATIONS: oAuth (admin:read:media_proxy_caches) QUERY PARAMETERS query string Page page integer Default: 1 Page page_size integer Default: 50 Number of statuses to return admin_token string Allows authorization via admin token. Responses 200 Array of MediaProxy URLs GET /api/v1/pleroma/admin/media_proxy_caches Response samples 200 Content type application/json Copy Expand all Collapse all { "count": 0, "page_size": 0, "urls": [ "http://example.com" ] } Purge a URL from MediaProxy cache and optionally ban it AUTHORIZATIONS: oAuth (admin:write:media_proxy_caches) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters ban boolean Default: true urls required Array of strings <uri> Responses 200 Empty object 400 Error POST /api/v1/pleroma/admin/media_proxy_caches/purge Request samples Payload Content type application/json Copy Expand all Collapse all { "ban": true, "urls": [ "http://example.com" ] } Response samples 200400 Content type application/json Copy Expand all Collapse all { } Remove a banned MediaProxy URL AUTHORIZATIONS: oAuth (admin:write:media_proxy_caches) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters urls required Array of strings <uri> Responses 200 Empty object 400 Error POST /api/v1/pleroma/admin/media_proxy_caches/delete Request samples Payload Content type application/json Copy Expand all Collapse all { "urls": [ "http://example.com" ] } Response samples 200400 Content type application/json Copy Expand all Collapse all { } OAuth application managment Retrieve a list of OAuth applications AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS name string App name client_id string Client ID page integer Default: 1 Page trusted boolean Default: false Trusted apps page_size integer Default: 50 Number of apps to return admin_token string Allows authorization via admin token. Responses 200 List of apps GET /api/v1/pleroma/admin/oauth_app Response samples 200 Content type application/json Copy Expand all Collapse all { "apps": [ { } ], "count": 1, "page_size": 50 } Create an OAuth application AUTHORIZATIONS: oAuth (admin:write) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters name required string Application Name redirect_uris required string Where the user should be redirected after authorization. To display the authorization code to the user instead of redirecting to a web page, use urn:ietf:wg:oauth:2.0:oob in this parameter. scopes Array of strings oAuth scopes trusted boolean Nullable Default: false Is the app trusted? website string Nullable A URL to the homepage of the app Responses 200 App 400 Bad Request POST /api/v1/pleroma/admin/oauth_app Request samples Payload Content type application/json Copy Expand all Collapse all { "name": "My App", "redirect_uris": "https://myapp.com/auth/callback", "scopes": [ "read", "write" ], "trusted": true, "website": "https://myapp.com/" } Response samples 200400 Content type application/json Copy Expand all Collapse all { "client_id": "TWhM-tNSuncnqN7DBJmoyeLnk6K3iJJ71KKXxgL1hPM", "client_secret": "ZEaFUFmF0umgBX1qKJDjaU99Q31lDkOU8NutzTOoliw", "id": 123, "name": "My App", "redirect_uri": "https://myapp.com/oauth-callback", "trusted": false, "website": "https://myapp.com/" } Delete OAuth application AUTHORIZATIONS: oAuth (admin:write) PATH PARAMETERS id required integer Example: 1337 App ID QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 204 No Content 400 No Content DELETE /api/v1/pleroma/admin/oauth_app/{id} Response samples 204400 Content type application/json Copy Expand all Collapse all "" Update OAuth application AUTHORIZATIONS: oAuth (admin:write) PATH PARAMETERS id required integer Example: 1337 App ID QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters name string Application Name redirect_uris string Where the user should be redirected after authorization. To display the authorization code to the user instead of redirecting to a web page, use urn:ietf:wg:oauth:2.0:oob in this parameter. scopes Array of strings oAuth scopes trusted boolean Nullable Default: false Is the app trusted? website string Nullable A URL to the homepage of the app Responses 200 App 400 Bad Request PATCH /api/v1/pleroma/admin/oauth_app/{id} Request samples Payload Content type application/json Copy Expand all Collapse all { "name": "My App", "redirect_uris": "https://myapp.com/auth/callback", "scopes": [ "read", "write" ], "trusted": true, "website": "https://myapp.com/" } Response samples 200400 Content type application/json Copy Expand all Collapse all { "client_id": "TWhM-tNSuncnqN7DBJmoyeLnk6K3iJJ71KKXxgL1hPM", "client_secret": "ZEaFUFmF0umgBX1qKJDjaU99Q31lDkOU8NutzTOoliw", "id": 123, "name": "My App", "redirect_uri": "https://myapp.com/oauth-callback", "trusted": false, "website": "https://myapp.com/" } Relays Unfollow a relay AUTHORIZATIONS: oAuth (admin:write:follows) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters force boolean Default: false relay_url string <uri> Responses 200 Status DELETE /api/v1/pleroma/admin/relay Request samples Payload Content type application/json Copy Expand all Collapse all { "force": false, "relay_url": "http://example.com" } Response samples 200 Content type application/json Copy Expand all Collapse all "http://mastodon.example.org/users/admin" Retrieve a list of relays AUTHORIZATIONS: oAuth (admin:read) QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 200 Response GET /api/v1/pleroma/admin/relay Response samples 200 Content type application/json Copy Expand all Collapse all { "relays": [ { } ] } Follow a relay AUTHORIZATIONS: oAuth (admin:write:follows) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters relay_url string <uri> Responses 200 Status POST /api/v1/pleroma/admin/relay Request samples Payload Content type application/json Copy Expand all Collapse all { "relay_url": "http://example.com" } Response samples 200 Content type application/json Copy Expand all Collapse all { "actor": "https://example.com/relay", "followed_back": true } Report managment Add a note to the report AUTHORIZATIONS: oAuth (admin:write:reports) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Report ID QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters content string The message Responses 204 No Content 404 Not Found POST /api/v1/pleroma/admin/reports/{id}/notes Request samples Payload Content type application/json Copy Expand all Collapse all { "content": "string" } Response samples 204404 Content type application/json Copy Expand all Collapse all "" Delete note attached to the report AUTHORIZATIONS: oAuth (admin:write:reports) PATH PARAMETERS report_id required string Report ID id required string Note ID QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 204 No Content 404 Not Found DELETE /api/v1/pleroma/admin/reports/{report_id}/notes/{id} Response samples 204404 Content type application/json Copy Expand all Collapse all "" Retrieve a report AUTHORIZATIONS: oAuth (admin:read:reports) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Report ID QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 200 Report 404 Not Found GET /api/v1/pleroma/admin/reports/{id} Response samples 200404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "string", "avatar": "http://example.com", "avatar_static": "http://example.com", "bot": true, "created_at": "2019-08-24T14:15:22Z", "display_name": "string", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 0, "header": "http://example.com", "header_static": "http://example.com", "id": "string", "is_active": true, "is_confirmed": true, "local": true, "locked": true, "nickname": "string", "note": "string", "pleroma": { }, "roles": { }, "source": { }, "statuses_count": 0, "url": "http://example.com", "username": "string" }, "actor": { "acct": "string", "avatar": "http://example.com", "avatar_static": "http://example.com", "bot": true, "created_at": "2019-08-24T14:15:22Z", "display_name": "string", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 0, "header": "http://example.com", "header_static": "http://example.com", "id": "string", "is_active": true, "is_confirmed": true, "local": true, "locked": true, "nickname": "string", "note": "string", "pleroma": { }, "roles": { }, "source": { }, "statuses_count": 0, "url": "http://example.com", "username": "string" }, "content": "string", "created_at": "2019-08-24T14:15:22Z", "id": "string", "notes": [ { } ], "state": "open", "statuses": [ { } ] } Retrieve a list of reports AUTHORIZATIONS: oAuth (admin:read:reports) QUERY PARAMETERS state string Enum: "open" "closed" "resolved" Filter by report state limit integer The number of records to retrieve page integer Default: 1 Page number page_size integer Default: 50 Number number of log entries per page admin_token string Allows authorization via admin token. Responses 200 Response 403 Forbidden GET /api/v1/pleroma/admin/reports Response samples 200403 Content type application/json Copy Expand all Collapse all { "reports": [ { } ], "total": 0 } Change state of specified reports AUTHORIZATIONS: oAuth (admin:write:reports) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters reports required Array of objects Responses 204 No Content 400 Bad Request 403 Forbidden PATCH /api/v1/pleroma/admin/reports Request samples Payload Content type application/json Copy Expand all Collapse all { "reports": { "reports": [ ] } } Response samples 204400403 Content type application/json Copy Expand all Collapse all "" Status administration Get all statuses AUTHORIZATIONS: oAuth (admin:read:statuses) QUERY PARAMETERS godmode boolean Default: false Allows to see private statuses local_only boolean Default: false Excludes remote statuses with_reblogs boolean Default: false Allows to see reblogs page integer Default: 1 Page page_size integer Default: 50 Number of statuses to return admin_token string Allows authorization via admin token. Responses 200 Array of statuses GET /api/v1/pleroma/admin/statuses Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] User administration Unfollow AUTHORIZATIONS: oAuth (admin:write:follows) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters followed string Followed nickname follower string Follower nickname Responses 200 Response 403 Forbidden POST /api/v1/pleroma/admin/users/unfollow Request samples Payload Content type application/json Copy Expand all Collapse all { "followed": "string", "follower": "string" } Response samples 200403 Content type application/json Copy Expand all Collapse all "string" Activate multiple users AUTHORIZATIONS: oAuth (admin:write:accounts) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters nicknames Array of strings Responses 200 Response 403 Forbidden PATCH /api/v1/pleroma/admin/users/activate Request samples Payload Content type application/json Copy Expand all Collapse all { "nicknames": [ "string" ] } Response samples 200403 Content type application/json Copy Expand all Collapse all { "user": [ { } ] } Removes a single or multiple users AUTHORIZATIONS: oAuth (admin:write:accounts) QUERY PARAMETERS nickname string User nickname admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters nicknames Array of strings Responses 200 Response 403 Forbidden DELETE /api/v1/pleroma/admin/users Request samples Payload Content type application/json Copy Expand all Collapse all { "nicknames": [ "string" ] } Response samples 200403 Content type application/json Copy Expand all Collapse all [ "string" ] List users AUTHORIZATIONS: oAuth (admin:read:accounts) QUERY PARAMETERS filters string Comma separated list of filters query string Search users query name string Search by display name email string Search by email page integer Page Number page_size integer Number of users to return per page actor_types Array of strings (ActorType) Items Enum: "Application" "Group" "Organization" "Person" "Service" Filter by actor type tags Array of strings Filter by tags admin_token string Allows authorization via admin token. Responses 200 Response 403 Forbidden GET /api/v1/pleroma/admin/users Response samples 200403 Content type application/json Copy Expand all Collapse all { "count": 0, "page_size": 0, "users": [ { } ] } Create a single or multiple users AUTHORIZATIONS: oAuth (admin:write:accounts) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters users Array of objects Responses 200 Response 403 Forbidden 409 Conflict POST /api/v1/pleroma/admin/users Request samples Payload Content type application/json Copy Expand all Collapse all { "users": [ { } ] } Response samples 200403409 Content type application/json Copy Expand all Collapse all [ { "code": 0, "data": { }, "type": "string" } ] Toggle user activation AUTHORIZATIONS: oAuth (admin:write:accounts) PATH PARAMETERS nickname required string User nickname QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 200 Response 403 Forbidden PATCH /api/v1/pleroma/admin/users/{nickname}/toggle_activation Response samples 200403 Content type application/json Copy Expand all Collapse all { "actor_type": "string", "avatar": "http://example.com", "display_name": "string", "email": "user@example.com", "id": "string", "is_active": true, "is_approved": true, "is_confirmed": true, "local": true, "nickname": "string", "registration_reason": "string", "roles": { "admin": true, "moderator": true }, "tags": [ "string" ], "url": "http://example.com" } Follow AUTHORIZATIONS: oAuth (admin:write:follows) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters followed string Followed nickname follower string Follower nickname Responses 200 Response 403 Forbidden POST /api/v1/pleroma/admin/users/follow Request samples Payload Content type application/json Copy Expand all Collapse all { "followed": "string", "follower": "string" } Response samples 200403 Content type application/json Copy Expand all Collapse all "string" Show user AUTHORIZATIONS: oAuth (admin:read:accounts) PATH PARAMETERS nickname required string User nickname or ID QUERY PARAMETERS admin_token string Allows authorization via admin token. Responses 200 Response 403 Forbidden 404 Not Found GET /api/v1/pleroma/admin/users/{nickname} Response samples 200403404 Content type application/json Copy Expand all Collapse all { "actor_type": "string", "avatar": "http://example.com", "display_name": "string", "email": "user@example.com", "id": "string", "is_active": true, "is_approved": true, "is_confirmed": true, "local": true, "nickname": "string", "registration_reason": "string", "roles": { "admin": true, "moderator": true }, "tags": [ "string" ], "url": "http://example.com" } Approve multiple users AUTHORIZATIONS: oAuth (admin:write:accounts) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters nicknames Array of strings Responses 200 Response 403 Forbidden PATCH /api/v1/pleroma/admin/users/approve Request samples Payload Content type application/json Copy Expand all Collapse all { "nicknames": [ "string" ] } Response samples 200403 Content type application/json Copy Expand all Collapse all { "user": [ { } ] } Deactivates multiple users AUTHORIZATIONS: oAuth (admin:write:accounts) QUERY PARAMETERS admin_token string Allows authorization via admin token. REQUEST BODY SCHEMA: application/json Parameters nicknames Array of strings Responses 200 Response 403 Forbidden PATCH /api/v1/pleroma/admin/users/deactivate Request samples Payload Content type application/json Copy Expand all Collapse all { "nicknames": [ "string" ] } Response samples 200403 Content type application/json Copy Expand all Collapse all { "user": [ { } ] } Applications Verify the application works Confirm that the app's OAuth2 credentials work. AUTHORIZATIONS: oAuth (read) Responses 200 App 422 Unauthorized GET /api/v1/apps/verify_credentials Response samples 200422 Content type application/json Copy Expand all Collapse all { "name": "My App", "vapid_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=", "website": "https://myapp.com/" } Create an application Create a new application to obtain OAuth2 credentials REQUEST BODY SCHEMA: application/json Parameters client_name required string A name for your application. redirect_uris required string Where the user should be redirected after authorization. To display the authorization code to the user instead of redirecting to a web page, use urn:ietf:wg:oauth:2.0:oob in this parameter. scopes string Default: "read" Space separated list of scopes website string Nullable A URL to the homepage of your app Responses 200 App 422 Unprocessable Entity POST /api/v1/apps Request samples Payload Content type application/json Copy Expand all Collapse all { "client_name": "My App", "redirect_uris": "https://myapp.com/auth/callback", "website": "https://myapp.com/" } Response samples 200422 Content type application/json Copy Expand all Collapse all { "client_id": "TWhM-tNSuncnqN7DBJmoyeLnk6K3iJJ71KKXxgL1hPM", "client_secret": "ZEaFUFmF0umgBX1qKJDjaU99Q31lDkOU8NutzTOoliw", "id": "123", "name": "My App", "vapid_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=", "website": "https://myapp.com/" } Push subscriptions Remove current subscription Removes the current Web Push API subscription. AUTHORIZATIONS: oAuth (push) Responses 200 Empty object 403 Error 404 Error DELETE /api/v1/push/subscription Response samples 200403404 Content type application/json Copy Expand all Collapse all { } Get current subscription View the PushSubscription currently associated with this access token. AUTHORIZATIONS: oAuth (push) Responses 200 Push subscription 403 Error 404 Error GET /api/v1/push/subscription Response samples 200403404 Content type application/json Copy Expand all Collapse all { "alerts": { "favourite": true, "follow": true, "mention": true, "poll": true, "reblog": true }, "endpoint": "https://yourdomain.example/listener", "id": "328_183", "server_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=" } Subscribe to push notifications Add a Web Push API subscription to receive notifications. Each access token can have one push subscription. If you create a new subscription, the old subscription is deleted. AUTHORIZATIONS: oAuth (push) REQUEST BODY SCHEMA: application/json Parameters data object Nullable subscription required object Responses 200 Push subscription 400 Error 403 Error POST /api/v1/push/subscription Request samples Payload Content type application/json Copy Expand all Collapse all { "data": { "alerts": { } }, "subscription": { "endpoint": "https://example.com/example/1234", "keys": { } } } Response samples 200400403 Content type application/json Copy Expand all Collapse all { "alerts": { "favourite": true, "follow": true, "mention": true, "poll": true, "reblog": true }, "endpoint": "https://yourdomain.example/listener", "id": "328_183", "server_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=" } Change types of notifications Updates the current push subscription. Only the data part can be updated. To change fundamentals, a new subscription must be created instead. AUTHORIZATIONS: oAuth (push) REQUEST BODY SCHEMA: application/json Parameters data object Nullable Responses 200 Push subscription 403 Error PUT /api/v1/push/subscription Request samples Payload Content type application/json Copy Expand all Collapse all { "data": { "alerts": { } } } Response samples 200403 Content type application/json Copy Expand all Collapse all { "alerts": { "favourite": true, "follow": true, "mention": true, "poll": true, "reblog": true }, "endpoint": "https://yourdomain.example/listener", "id": "328_183", "server_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=" } Account credentials Change account email AUTHORIZATIONS: oAuth (write:accounts) REQUEST BODY SCHEMA: application/json Parameters email required string New email. Set to blank to remove the user's email. password required string Current password Responses 200 Success 400 Error 403 Error POST /api/pleroma/change_email Request samples Payload Content type application/json Copy Expand all Collapse all { "email": "string", "password": "string" } Response samples 200400403 Content type application/json Copy Expand all Collapse all { "status": "success" } Delete Account AUTHORIZATIONS: oAuth (write:accounts) QUERY PARAMETERS password string Password Responses 200 Success 403 Error POST /api/pleroma/delete_account Response samples 200403 Content type application/json Copy Expand all Collapse all { "status": "success" } Resend confirmation email Expects email or nickname. QUERY PARAMETERS email string Example: email=cofe@cofe.io Email of that needs to be verified nickname string Example: nickname=cofefe Nickname of user that needs to be verified Responses 204 No Content POST /api/v1/pleroma/accounts/confirmation_resend Response samples 204 Content type application/json Copy Expand all Collapse all "" Disable Account AUTHORIZATIONS: oAuth (write:accounts) QUERY PARAMETERS password string Password Responses 200 Success 403 Error POST /api/pleroma/disable_account Response samples 200403 Content type application/json Copy Expand all Collapse all { "status": "success" } Register an account Creates a user and account records. Returns an account access token for the app that initiated the request. The app should save this token for later, and should wait for the user to confirm their account by clicking a link in their email inbox. REQUEST BODY SCHEMA: application/json Parameters agreement required boolean or string or integer Whether the user agrees to the local rules, terms, and policies. These should be presented to the user in order to allow them to consent before setting this parameter to TRUE. bio string Nullable Default: "" Bio captcha_answer_data string Nullable Provider-specific captcha data captcha_solution string Nullable Provider-specific captcha solution captcha_token string Nullable Provider-specific captcha token email string <email> Nullable The email address to be used for login. Required when account_activation_required is enabled. fullname string Nullable Full name locale string Nullable The language of the confirmation email that will be sent password required string <password> The password to be used for login reason string Nullable Text that will be reviewed by moderators if registrations require manual approval token string Nullable Invite token required when the registrations aren't public username required string The desired username for the account Responses 200 Account 400 Error 403 Error 429 Error POST /api/v1/accounts Request samples Payload Content type application/json Copy Expand all Collapse all { "agreement": "true", "bio": "☕️", "email": "cofe@example.com", "password": "secret", "username": "cofe" } Response samples 200400403429 Content type application/json Copy Expand all Collapse all { "access_token": "i9hAVVzGld86Pl5JtLtizKoXVvtTlSCJvwaugCxvZzk", "created_at": 1585918714, "expires_in": 600, "me": "https://gensokyo.2hu/users/raymoo", "refresh_token": "i9hAVVzGld86Pl5JtLtizKoXVvtTlSCJvwaugCxvZzz", "scope": "read write follow push", "token_type": "Bearer" } Change account password AUTHORIZATIONS: oAuth (write:accounts) REQUEST BODY SCHEMA: application/json Parameters new_password required string New password new_password_confirmation required string New password, confirmation password required string Current password Responses 200 Success 400 Error 403 Error POST /api/pleroma/change_password Request samples Payload Content type application/json Copy Expand all Collapse all { "new_password": "string", "new_password_confirmation": "string", "password": "string" } Response samples 200400403 Content type application/json Copy Expand all Collapse all { "status": "success" } Update account credentials Update the user's display and preferences. AUTHORIZATIONS: oAuth (write:accounts) REQUEST BODY SCHEMA: application/json Parameters accepts_chat_messages boolean or string or integer Nullable Whether the user accepts receiving chat messages. actor_type string (ActorType) Enum: "Application" "Group" "Organization" "Person" "Service" allow_following_move boolean or string or integer Nullable Allows automatically follow moved following accounts also_known_as Array of strings Nullable List of alternate ActivityPub IDs avatar string <binary> Nullable Avatar image encoded using multipart/form-data bot boolean or string or integer Nullable Whether the account has a bot flag. default_scope string (VisibilityScope) Enum: "public" "unlisted" "local" "private" "direct" "list" Status visibility discoverable boolean or string or integer Nullable Discovery (listing, indexing) of this account by external services (search bots etc.) is allowed. display_name string Nullable The display name to use for the profile. fields_attributes Array of AccountAttributeField (objects) or object Nullable header string <binary> Nullable Header image encoded using multipart/form-data hide_favorites boolean or string or integer Nullable user's favorites timeline will be hidden hide_followers boolean or string or integer Nullable user's followers will be hidden hide_followers_count boolean or string or integer Nullable user's follower count will be hidden hide_follows boolean or string or integer Nullable user's follows will be hidden hide_follows_count boolean or string or integer Nullable user's follow count will be hidden locked boolean or string or integer Nullable Whether manual approval of follow requests is required. no_rich_text boolean or string or integer Nullable html tags are stripped from all statuses requested from the API note string The account bio. pleroma_background_image string <binary> Nullable Sets the background image of the user. pleroma_settings_store object Nullable Opaque user settings to be saved on the backend. show_role boolean or string or integer Nullable user's role (e.g admin, moderator) will be exposed to anyone in the API skip_thread_containment boolean or string or integer Nullable Skip filtering out broken threads Responses 200 Account 403 Error PATCH /api/v1/accounts/update_credentials Request samples Payload Content type application/json Copy Expand all Collapse all { "actor_type": "Person", "allow_following_move": false, "also_known_as": [ "https://foo.bar/users/foo" ], "bot": false, "default_scope": "private", "discoverable": false, "display_name": "cofe", "fields_attributes": [ { } ], "hide_favorites": false, "hide_followers": true, "hide_followers_count": false, "hide_follows": false, "hide_follows_count": false, "no_rich_text": false, "note": "foobar", "pleroma_settings_store": { "pleroma-fe": { } }, "show_role": false, "skip_thread_containment": false } Response samples 200403 Content type application/json Copy Expand all Collapse all { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { "accepts_chat_messages": true, "allow_following_move": true, "background_image": null, "chat_token": "SFMyNTY.g3QAAAACZAAEZGF0YW0AAAASOXRLaTNlc2JHN09RZ1oyOTIwZAAGc2lnbmVkbgYARNplS3EB.Mb_Iaqew2bN1I1o79B_iP7encmVCpTKC4OtHZRxdjKc", "hide_favorites": true, "hide_followers": false, "hide_followers_count": false, "hide_follows": false, "hide_follows_count": false, "is_admin": false, "is_confirmed": false, "is_moderator": false, "notification_settings": { }, "relationship": { }, "settings_store": { }, "skip_thread_containment": false, "tags": [ ], "unread_conversation_count": 0 }, "source": { "fields": [ ], "note": "foobar", "pleroma": { }, "privacy": "public", "sensitive": false }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } Verify account credentials Test to make sure that the user token works. AUTHORIZATIONS: oAuth (read:accounts) Responses 200 Account GET /api/v1/accounts/verify_credentials Response samples 200 Content type application/json Copy Expand all Collapse all { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { "accepts_chat_messages": true, "allow_following_move": true, "background_image": null, "chat_token": "SFMyNTY.g3QAAAACZAAEZGF0YW0AAAASOXRLaTNlc2JHN09RZ1oyOTIwZAAGc2lnbmVkbgYARNplS3EB.Mb_Iaqew2bN1I1o79B_iP7encmVCpTKC4OtHZRxdjKc", "hide_favorites": true, "hide_followers": false, "hide_followers_count": false, "hide_follows": false, "hide_follows_count": false, "is_admin": false, "is_confirmed": false, "is_moderator": false, "notification_settings": { }, "relationship": { }, "settings_store": { }, "skip_thread_containment": false, "tags": [ ], "unread_conversation_count": 0 }, "source": { "fields": [ ], "note": "foobar", "pleroma": { }, "privacy": "public", "sensitive": false }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } Backups List backups AUTHORIZATIONS: oAuth (read:account) Responses 200 An array of backups 400 Bad Request GET /api/v1/pleroma/backups Response samples 200400 Content type application/json Copy Expand all Collapse all [ { "content_type": "application/zip", "file_name": "https://cofe.fe:4000/media/backups/archive-foobar-20200908T164207-Yr7vuT5Wycv-sN3kSN2iJ0k-9pMo60j9qmvRCdDqIew.zip", "file_size": 4105, "inserted_at": "2020-09-08T16:42:07.000Z", "processed": true } ] Create a backup AUTHORIZATIONS: oAuth (read:account) Responses 200 An array of backups 400 Bad Request POST /api/v1/pleroma/backups Response samples 200400 Content type application/json Copy Expand all Collapse all [ { "content_type": "application/zip", "file_name": "https://cofe.fe:4000/media/backups/archive-foobar-20200908T164207-Yr7vuT5Wycv-sN3kSN2iJ0k-9pMo60j9qmvRCdDqIew.zip", "file_size": 4105, "inserted_at": "2020-09-08T16:42:07.000Z", "processed": true } ] Blocks and mutes Retrieve list of blocks View your blocks. See also accounts/:id/{block,unblock} AUTHORIZATIONS: oAuth (read:blocks) QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Accounts GET /api/v1/blocks Response samples 200 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Retrieve list of mutes Accounts the user has muted. AUTHORIZATIONS: oAuth (followread:mutes) QUERY PARAMETERS with_relationships boolean or string or integer (BooleanLike) Embed relationships into accounts. If this parameter is not set account's pleroma.relationship is going to be null. max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Accounts GET /api/v1/mutes Response samples 200 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Data import Import mutes AUTHORIZATIONS: oAuth (write:mutes) REQUEST BODY SCHEMA: application/json Parameters list required string or string STRING or FILE containing a whitespace-separated list of accounts to import. Responses 200 Ok 500 Error POST /api/pleroma/mutes_import Request samples Payload Content type application/json Copy Expand all Collapse all { "list": "string" } Response samples 200500 Content type application/json Copy Expand all Collapse all "ok" Import blocks AUTHORIZATIONS: oAuth (write:blocks) REQUEST BODY SCHEMA: application/json Parameters list required string or string STRING or FILE containing a whitespace-separated list of accounts to import. Responses 200 Ok 500 Error POST /api/pleroma/blocks_import Request samples Payload Content type application/json Copy Expand all Collapse all { "list": "string" } Response samples 200500 Content type application/json Copy Expand all Collapse all "ok" Import follows AUTHORIZATIONS: oAuth (write:follow) REQUEST BODY SCHEMA: application/json Parameters list required string or string STRING or FILE containing a whitespace-separated list of accounts to import. Responses 200 Ok 403 Error 500 Error POST /api/pleroma/follow_import Request samples Payload Content type application/json Copy Expand all Collapse all { "list": "string" } Response samples 200403500 Content type application/json Copy Expand all Collapse all "ok" Domain blocks Unblock a domain Remove a domain block, if it exists in the user's array of blocked domains. AUTHORIZATIONS: oAuth (followwrite:blocks) QUERY PARAMETERS domain string Domain name REQUEST BODY SCHEMA: application/json Parameters domain string Responses 200 Empty object DELETE /api/v1/domain_blocks Request samples Payload Content type application/json Copy Expand all Collapse all { "domain": "facebook.com" } Response samples 200 Content type application/json Copy Expand all Collapse all { } Retrieve a list of blocked domains AUTHORIZATIONS: oAuth (followread:blocks) Responses 200 Domain blocks GET /api/v1/domain_blocks Response samples 200 Content type application/json Copy Expand all Collapse all [ "google.com", "facebook.com" ] Block a domain Block a domain to: hide all public posts from it hide all notifications from it remove all followers from it prevent following new users from it (but does not remove existing follows) AUTHORIZATIONS: oAuth (followwrite:blocks) QUERY PARAMETERS domain string Domain name REQUEST BODY SCHEMA: application/json Parameters domain string Responses 200 Empty object POST /api/v1/domain_blocks Request samples Payload Content type application/json Copy Expand all Collapse all { "domain": "facebook.com" } Response samples 200 Content type application/json Copy Expand all Collapse all { } Follow requests Reject follow request AUTHORIZATIONS: oAuth (followwrite:follows) PATH PARAMETERS id required string Example: 123 Conversation ID Responses 200 Relationship POST /api/v1/follow_requests/{id}/reject Response samples 200 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Accept follow request AUTHORIZATIONS: oAuth (followwrite:follows) PATH PARAMETERS id required string Example: 123 Conversation ID Responses 200 Relationship POST /api/v1/follow_requests/{id}/authorize Response samples 200 Content type application/json Copy Expand all Collapse all { "blocked_by": false, "blocking": false, "domain_blocking": false, "endorsed": false, "followed_by": false, "following": false, "id": "9tKi3esbG7OQgZ2920", "muting": false, "muting_notifications": false, "requested": false, "showing_reblogs": true, "subscribing": false } Retrieve follow requests AUTHORIZATIONS: oAuth (read:followsfollow) Responses 200 Array of Account GET /api/v1/follow_requests Response samples 200 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Mascot Retrieve mascot AUTHORIZATIONS: oAuth (read:accounts) Responses 200 Mascot GET /api/v1/pleroma/mascot Response samples 200 Content type application/json Copy Expand all Collapse all { "id": "abcdefg", "pleroma": { "mime_type": "image/png" }, "type": "image", "url": "https://pleroma.example.org/media/abcdefg.png" } Set or clear mascot Behaves exactly the same as POST /api/v1/upload. Can only accept images - any attempt to upload non-image files will be met with HTTP 415 Unsupported Media Type. AUTHORIZATIONS: oAuth (write:accounts) REQUEST BODY SCHEMA: application/json Parameters file string <binary> Responses 200 Mascot 415 Unsupported Media Type PUT /api/v1/pleroma/mascot Request samples Payload Content type application/json Copy Expand all Collapse all { "file": "string" } Response samples 200415 Content type application/json Copy Expand all Collapse all { "id": "abcdefg", "pleroma": { "mime_type": "image/png" }, "type": "image", "url": "https://pleroma.example.org/media/abcdefg.png" } Markers Get saved timeline position AUTHORIZATIONS: oAuth (read:statuses) QUERY PARAMETERS timeline Array of strings Items Enum: "home" "notifications" Array of markers to fetch. If not provided, an empty object will be returned. Responses 200 Marker 403 Error GET /api/v1/markers Response samples 200403 Content type application/json Copy Expand all Collapse all { "home": { "last_read_id": "103206604258487607", "pleroma": { }, "updated_at": "2019-11-26T22:37:25.235Z", "version": 468 }, "notifications": { "last_read_id": "35098814", "pleroma": { }, "updated_at": "2019-11-26T22:37:25.239Z", "version": 361 } } Save position in timeline AUTHORIZATIONS: oAuth (followwrite:blocks) REQUEST BODY SCHEMA: application/json Parameters home object Nullable notifications object Nullable Responses 200 Marker 403 Error POST /api/v1/markers Request samples Payload Content type application/json Copy Expand all Collapse all { "home": { "last_read_id": "103194548672408537", "updated_at": "2019-11-24T19:39:39.337Z", "version": 462 } } Response samples 200403 Content type application/json Copy Expand all Collapse all { "home": { "last_read_id": "103206604258487607", "pleroma": { }, "updated_at": "2019-11-26T22:37:25.235Z", "version": 468 }, "notifications": { "last_read_id": "35098814", "pleroma": { }, "updated_at": "2019-11-26T22:37:25.239Z", "version": 361 } } Notifications Dismiss all notifications Clear all notifications from the server. AUTHORIZATIONS: oAuth (write:notifications) Responses 200 Empty object POST /api/v1/notifications/clear Response samples 200 Content type application/json Copy Expand all Collapse all { } Mark notifications as read Query parameters are mutually exclusive. AUTHORIZATIONS: oAuth (write:notifications) REQUEST BODY SCHEMA: application/json Parameters id integer A single notification ID to read max_id integer Read all notifications up to this ID Responses 200 A Notification or array of Notifications 400 Bad Request POST /api/v1/pleroma/notifications/read Request samples Payload Content type application/json Copy Expand all Collapse all { "id": 0, "max_id": 0 } Response samples 200400 Content type application/json Copy Expand all Collapse all { "account": { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" }, "created_at": "2019-11-23T07:49:02.064Z", "id": "34975861", "pleroma": { "is_muted": false, "is_seen": false }, "status": { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" }, "type": "mention" } Dismiss a single notification Deprecated Clear a single notification from the server. AUTHORIZATIONS: oAuth (write:notifications) REQUEST BODY SCHEMA: application/json Parameters id string Responses 200 Empty object POST /api/v1/notifications/dismiss Request samples Payload Content type application/json Copy Expand all Collapse all { "id": "string" } Response samples 200 Content type application/json Copy Expand all Collapse all { } Retrieve a notification View information about a notification with a given ID. AUTHORIZATIONS: oAuth (read:notifications) PATH PARAMETERS id required string Example: 123 Notification ID Responses 200 Notification GET /api/v1/notifications/{id} Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" }, "created_at": "2019-11-23T07:49:02.064Z", "id": "34975861", "pleroma": { "is_muted": false, "is_seen": false }, "status": { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" }, "type": "mention" } Retrieve a list of notifications Notifications concerning the user. This API returns Link headers containing links to the next/previous page. However, the links can also be constructed dynamically using query params and id values. AUTHORIZATIONS: oAuth (read:notifications) QUERY PARAMETERS exclude_types Array of strings Items Enum: "follow" "favourite" "reblog" "mention" "pleroma:emoji_reaction" "pleroma:chat_mention" "pleroma:report" "move" "follow_request" "poll" Array of types to exclude account_id string Return only notifications received from this account exclude_visibilities Array of strings (VisibilityScope) Items Enum: "public" "unlisted" "local" "private" "direct" "list" Exclude the notifications for activities with the given visibilities include_types Array of strings Items Enum: "follow" "favourite" "reblog" "mention" "pleroma:emoji_reaction" "pleroma:chat_mention" "pleroma:report" "move" "follow_request" "poll" Include the notifications for activities with the given types with_muted boolean or string or integer (BooleanLike) Include the notifications from muted users max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of notifications 404 Error GET /api/v1/notifications Response samples 200404 Content type application/json Copy Expand all Collapse all [ { "account": { }, "created_at": "2019-11-23T07:49:02.064Z", "id": "34975861", "pleroma": { }, "status": { }, "type": "mention" } ] Dismiss a notification Clear a single notification from the server. AUTHORIZATIONS: oAuth (write:notifications) PATH PARAMETERS id required string Example: 123 Notification ID Responses 200 Empty object POST /api/v1/notifications/{id}/dismiss Response samples 200 Content type application/json Copy Expand all Collapse all { } Dismiss multiple notifications AUTHORIZATIONS: oAuth (write:notifications) QUERY PARAMETERS ids required Array of strings Array of notification IDs to dismiss Responses 200 Empty object DELETE /api/v1/notifications/destroy_multiple Response samples 200 Content type application/json Copy Expand all Collapse all { } Custom emojis Retrieve a list of custom emojis Returns custom emojis that are available on the server. Responses 200 Custom Emojis GET /api/v1/custom_emojis Response samples 200 Content type application/json Copy Expand all Collapse all [ { "category": "Fun", "shortcode": "blank", "static_url": "https://lain.com/emoji/blank.png", "tags": [ ], "url": "https://lain.com/emoji/blank.png", "visible_in_picker": false }, { "category": "Gif,Fun", "shortcode": "firefox", "static_url": "https://lain.com/emoji/Firefox.gif", "tags": [ ], "url": "https://lain.com/emoji/Firefox.gif", "visible_in_picker": true }, { "category": "pack:mixed", "shortcode": "sadcat", "static_url": "https://lain.com/emoji/mixed/sadcat.png", "tags": [ ], "url": "https://lain.com/emoji/mixed/sadcat.png", "visible_in_picker": true } ] Chats Mark a message as read AUTHORIZATIONS: oAuth (write:chats) PATH PARAMETERS id required string The ID of the Chat message_id required string The ID of the message Responses 200 The read ChatMessage POST /api/v1/pleroma/chats/{id}/messages/{message_id}/read Response samples 200 Content type application/json Copy Expand all Collapse all { "account_id": "someflakeid", "attachment": null, "card": null, "chat_id": "1", "content": "hey you again", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ { } ], "id": "14", "unread": false } Delete message AUTHORIZATIONS: oAuth (write:chats) PATH PARAMETERS id required string The ID of the Chat message_id required string The ID of the message Responses 200 The deleted ChatMessage DELETE /api/v1/pleroma/chats/{id}/messages/{message_id} Response samples 200 Content type application/json Copy Expand all Collapse all { "account_id": "someflakeid", "attachment": null, "card": null, "chat_id": "1", "content": "hey you again", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ { } ], "id": "14", "unread": false } Retrieve list of chats (unpaginated) Deprecated Deprecated due to no support for pagination. Using /api/v2/pleroma/chats instead is recommended. AUTHORIZATIONS: oAuth (read:chats) QUERY PARAMETERS with_muted boolean or string or integer (BooleanLike) Include chats from muted users Responses 200 The chats of the user GET /api/v1/pleroma/chats Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "id": "1", "unread": 2 } ] Retrieve chat's messages AUTHORIZATIONS: oAuth (read:chats) PATH PARAMETERS id required string The ID of the Chat QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 The messages in the chat 404 Not Found GET /api/v1/pleroma/chats/{id}/messages Response samples 200404 Content type application/json Copy Expand all Collapse all [ { "account_id": "someflakeid", "chat_id": "1", "content": "Check this out :firefox:", "created_at": "2020-04-21T15:11:46.000Z", "emojis": [ ], "id": "13", "unread": false }, { "account_id": "someflakeid", "chat_id": "1", "content": "Whats' up?", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ ], "id": "12", "unread": false } ] Post a message to the chat AUTHORIZATIONS: oAuth (write:chats) PATH PARAMETERS id required string The ID of the Chat REQUEST BODY SCHEMA: application/json Parameters content string The content of your message. Optional if media_id is present media_id string The id of an upload Responses 200 The newly created ChatMessage 400 Bad Request 422 MRF Rejection POST /api/v1/pleroma/chats/{id}/messages Request samples Payload Content type application/json Copy Expand all Collapse all { "content": "Hey wanna buy feet pics?", "media_id": "134234" } Response samples 200400422 Content type application/json Copy Expand all Collapse all { "account_id": "someflakeid", "attachment": null, "card": null, "chat_id": "1", "content": "hey you again", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ { } ], "id": "14", "unread": false } Mark all messages in the chat as read AUTHORIZATIONS: oAuth (write:chats) PATH PARAMETERS id required string The ID of the Chat REQUEST BODY SCHEMA: application/json Parameters last_read_id required string The content of your message. Responses 200 The updated chat POST /api/v1/pleroma/chats/{id}/read Request samples Payload Content type application/json Copy Expand all Collapse all { "last_read_id": "abcdef12456" } Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "lain@dontbulling.me", "avatar": "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", "avatar_static": "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", "bot": false, "created_at": "2020-04-16T13:40:15.000Z", "display_name": "lain", "emojis": [ ], "fields": [ ], "followers_count": 0, "following_count": 0, "header": "https://originalpatchou.li/images/banner.png", "header_static": "https://originalpatchou.li/images/banner.png", "id": "9u6Qw6TAZANpqokMkK", "is_locked": false, "note": "lain", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "https://dontbulling.me/users/lain", "username": "lain" }, "id": "1", "last_message": { "account_id": "someflakeid", "attachment": null, "card": null, "chat_id": "1", "content": "hey you again", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ ], "id": "14", "unread": false }, "unread": 2, "updated_at": "2020-04-21T15:06:45.000Z" } Create a chat AUTHORIZATIONS: oAuth (write:chats) PATH PARAMETERS id required string Example: someflakeid The account id of the recipient of this chat Responses 200 The created or existing chat POST /api/v1/pleroma/chats/by-account-id/{id} Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "lain@dontbulling.me", "avatar": "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", "avatar_static": "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", "bot": false, "created_at": "2020-04-16T13:40:15.000Z", "display_name": "lain", "emojis": [ ], "fields": [ ], "followers_count": 0, "following_count": 0, "header": "https://originalpatchou.li/images/banner.png", "header_static": "https://originalpatchou.li/images/banner.png", "id": "9u6Qw6TAZANpqokMkK", "is_locked": false, "note": "lain", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "https://dontbulling.me/users/lain", "username": "lain" }, "id": "1", "last_message": { "account_id": "someflakeid", "attachment": null, "card": null, "chat_id": "1", "content": "hey you again", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ ], "id": "14", "unread": false }, "unread": 2, "updated_at": "2020-04-21T15:06:45.000Z" } Retrieve list of chats AUTHORIZATIONS: oAuth (read:chats) QUERY PARAMETERS with_muted boolean or string or integer (BooleanLike) Include chats from muted users max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 The chats of the user GET /api/v2/pleroma/chats Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "id": "1", "unread": 2 } ] Retrieve a chat AUTHORIZATIONS: oAuth (read) PATH PARAMETERS id required string Example: 1234 The id of the chat Responses 200 The existing chat GET /api/v1/pleroma/chats/{id} Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "lain@dontbulling.me", "avatar": "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", "avatar_static": "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", "bot": false, "created_at": "2020-04-16T13:40:15.000Z", "display_name": "lain", "emojis": [ ], "fields": [ ], "followers_count": 0, "following_count": 0, "header": "https://originalpatchou.li/images/banner.png", "header_static": "https://originalpatchou.li/images/banner.png", "id": "9u6Qw6TAZANpqokMkK", "is_locked": false, "note": "lain", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "https://dontbulling.me/users/lain", "username": "lain" }, "id": "1", "last_message": { "account_id": "someflakeid", "attachment": null, "card": null, "chat_id": "1", "content": "hey you again", "created_at": "2020-04-21T15:06:45.000Z", "emojis": [ ], "id": "14", "unread": false }, "unread": 2, "updated_at": "2020-04-21T15:06:45.000Z" } Conversations Mark conversation as read AUTHORIZATIONS: oAuth (write:conversations) PATH PARAMETERS id required string Example: 123 Conversation ID Responses 200 Conversation POST /api/v1/conversations/{id}/read Response samples 200 Content type application/json Copy Expand all Collapse all { "accounts": [ { } ], "id": "418450", "last_status": { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" }, "unread": true } Timeline for conversation AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string Example: 123 Conversation ID QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Statuses GET /api/v1/pleroma/conversations/{id}/statuses Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] List of conversations AUTHORIZATIONS: oAuth (read:statuses) QUERY PARAMETERS recipients Array of strings (FlakeID) Only return conversations with the given recipients (a list of user ids) max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Conversation GET /api/v1/conversations Response samples 200 Content type application/json Copy Expand all Collapse all [ { "accounts": [ ], "id": "418450", "last_status": { }, "unread": true } ] Marks all conversations as read AUTHORIZATIONS: oAuth (write:conversations) Responses 200 Array of Conversations that were marked as read POST /api/v1/pleroma/conversations/read Response samples 200 Content type application/json Copy Expand all Collapse all [ { "accounts": [ ], "id": "418450", "last_status": { }, "unread": true } ] Conversation AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string Example: 123 Conversation ID Responses 200 Conversation GET /api/v1/pleroma/conversations/{id} Response samples 200 Content type application/json Copy Expand all Collapse all { "accounts": [ { } ], "id": "418450", "last_status": { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" }, "unread": true } Update conversation Change set of recipients for the conversation. AUTHORIZATIONS: oAuth (write:conversations) PATH PARAMETERS id required string Example: 123 Conversation ID QUERY PARAMETERS recipients required Array of strings (FlakeID) A list of ids of users that should receive posts to this conversation. This will replace the current list of recipients, so submit the full list. The owner of owner of the conversation will always be part of the set of recipients, though. Responses 200 Conversation PATCH /api/v1/pleroma/conversations/{id} Response samples 200 Content type application/json Copy Expand all Collapse all { "accounts": [ { } ], "id": "418450", "last_status": { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" }, "unread": true } Remove conversation AUTHORIZATIONS: oAuth (write:conversations) PATH PARAMETERS id required string Example: 123 Conversation ID Responses 200 Empty object DELETE /api/v1/conversations/{id} Response samples 200 Content type application/json Copy Expand all Collapse all { } Emoji reactions Get an object of emoji to account mappings with accounts that reacted to the post AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string (FlakeID) Status ID emoji string Filter by a single unicode emoji QUERY PARAMETERS with_muted boolean Include reactions from muted acccounts. Responses 200 Array of Emoji reactions GET /api/v1/pleroma/statuses/{id}/reactions Response samples 200 Content type application/json Copy Expand all Collapse all [ { "accounts": [ ], "count": 1, "me": false, "name": "😱" } ] Remove a reaction to a post with a unicode emoji AUTHORIZATIONS: oAuth (write:statuses) PATH PARAMETERS id required string (FlakeID) Status ID emoji required string A single character unicode emoji Responses 200 Status DELETE /api/v1/pleroma/statuses/{id}/reactions/{emoji} Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Get an object of emoji to account mappings with accounts that reacted to the post AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string (FlakeID) Status ID emoji string Filter by a single unicode emoji QUERY PARAMETERS with_muted boolean Include reactions from muted acccounts. Responses 200 Array of Emoji reactions GET /api/v1/pleroma/statuses/{id}/reactions/{emoji} Response samples 200 Content type application/json Copy Expand all Collapse all [ { "accounts": [ ], "count": 1, "me": false, "name": "😱" } ] React to a post with a unicode emoji AUTHORIZATIONS: oAuth (write:statuses) PATH PARAMETERS id required string (FlakeID) Status ID emoji required string A single character unicode emoji Responses 200 Status 400 Bad Request PUT /api/v1/pleroma/statuses/{id}/reactions/{emoji} Response samples 200400 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Lists Remove accounts from list AUTHORIZATIONS: oAuth (write:lists) PATH PARAMETERS id required string Example: 123 List ID QUERY PARAMETERS account_ids Array of strings Array of account IDs REQUEST BODY SCHEMA: application/json Parameters account_ids Array of strings (FlakeID) Array of account IDs Responses 200 Empty object DELETE /api/v1/lists/{id}/accounts Request samples Payload Content type application/json Copy Expand all Collapse all { "account_ids": [ "string" ] } Response samples 200 Content type application/json Copy Expand all Collapse all { } Retrieve accounts in list AUTHORIZATIONS: oAuth (read:lists) PATH PARAMETERS id required string Example: 123 List ID Responses 200 Array of Account GET /api/v1/lists/{id}/accounts Response samples 200 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Add accounts to list Add accounts to the given list. AUTHORIZATIONS: oAuth (write:lists) PATH PARAMETERS id required string Example: 123 List ID REQUEST BODY SCHEMA: application/json Parameters account_ids Array of strings (FlakeID) Array of account IDs Responses 200 Empty object POST /api/v1/lists/{id}/accounts Request samples Payload Content type application/json Copy Expand all Collapse all { "account_ids": [ "string" ] } Response samples 200 Content type application/json Copy Expand all Collapse all { } Delete a list AUTHORIZATIONS: oAuth (write:lists) PATH PARAMETERS id required string Example: 123 List ID Responses 200 Empty object DELETE /api/v1/lists/{id} Response samples 200 Content type application/json Copy Expand all Collapse all { } Retrieve a list Fetch the list with the given ID. Used for verifying the title of a list. AUTHORIZATIONS: oAuth (read:lists) PATH PARAMETERS id required string Example: 123 List ID Responses 200 List 404 Error GET /api/v1/lists/{id} Response samples 200404 Content type application/json Copy Expand all Collapse all { "id": "12249", "title": "Friends" } Update a list Change the title of a list AUTHORIZATIONS: oAuth (write:lists) PATH PARAMETERS id required string Example: 123 List ID REQUEST BODY SCHEMA: application/json Parameters title required string List title Responses 200 List 422 Error PUT /api/v1/lists/{id} Request samples Payload Content type application/json Copy Expand all Collapse all { "title": "string" } Response samples 200422 Content type application/json Copy Expand all Collapse all { "id": "12249", "title": "Friends" } Retrieve a list of lists Fetch all lists that the user owns AUTHORIZATIONS: oAuth (read:lists) Responses 200 Array of List GET /api/v1/lists Response samples 200 Content type application/json Copy Expand all Collapse all [ { "id": "123", "title": "my list" }, { "id": "1337", "title": "another list" } ] Create a list Fetch the list with the given ID. Used for verifying the title of a list. AUTHORIZATIONS: oAuth (write:lists) REQUEST BODY SCHEMA: application/json Parameters title required string List title Responses 200 List 400 Error 404 Error POST /api/v1/lists Request samples Payload Content type application/json Copy Expand all Collapse all { "title": "string" } Response samples 200400404 Content type application/json Copy Expand all Collapse all { "id": "12249", "title": "Friends" } Polls View a poll AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string (FlakeID) Example: 123 Poll ID Responses 200 Poll 404 Error GET /api/v1/polls/{id} Response samples 200404 Content type application/json Copy Expand all Collapse all { "emojis": [ ], "expired": true, "expires_at": "2019-12-05T04:05:08.302Z", "id": "34830", "multiple": false, "options": [ { }, { } ], "own_votes": [ 1 ], "voted": true, "voters_count": 10, "votes_count": 10 } Vote on a poll AUTHORIZATIONS: oAuth (write:statuses) PATH PARAMETERS id required string (FlakeID) Example: 123 Poll ID REQUEST BODY SCHEMA: application/json Parameters choices required Array of integers Array of own votes containing index for each option (starting from 0) Responses 200 Poll 404 Error 422 Error POST /api/v1/polls/{id}/votes Request samples Payload Content type application/json Copy Expand all Collapse all { "choices": [ 0, 1, 2 ] } Response samples 200404422 Content type application/json Copy Expand all Collapse all { "emojis": [ ], "expired": true, "expires_at": "2019-12-05T04:05:08.302Z", "id": "34830", "multiple": false, "options": [ { }, { } ], "own_votes": [ 1 ], "voted": true, "voters_count": 10, "votes_count": 10 } Timelines Public timeline AUTHORIZATIONS: oAuth (read:statuses) QUERY PARAMETERS local boolean or string or integer Default: false Show only local statuses? instance string Show only statuses from the given domain only_media boolean or string or integer Default: false Show only statuses with media attached? remote boolean or string or integer Default: false Show only remote statuses? with_muted boolean or string or integer (BooleanLike) Include activities by muted users exclude_visibilities Array of strings (VisibilityScope) Items Enum: "public" "unlisted" "local" "private" "direct" "list" Exclude the statuses with the given visibilities reply_visibility string Enum: "following" "self" Filter replies. Possible values: without parameter (default) shows all replies, following - replies directed to you or users you follow, self - replies directed to you. max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Status 401 Error GET /api/v1/timelines/public Response samples 200401 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Favourited statuses Statuses the user has favourited. Please note that you have to use the link headers to paginate this. You can not build the query parameters yourself. AUTHORIZATIONS: oAuth (read:favourites) QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Statuses GET /api/v1/favourites Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Hashtag timeline View public statuses containing the given hashtag AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS tag required string Content of a #hashtag, not including # symbol. QUERY PARAMETERS any Array of strings Statuses that also includes any of these tags all Array of strings Statuses that also includes all of these tags none Array of strings Statuses that do not include these tags local boolean or string or integer Default: false Show only local statuses? only_media boolean or string or integer Default: false Show only statuses with media attached? remote boolean or string or integer Default: false Show only remote statuses? with_muted boolean or string or integer (BooleanLike) Include activities by muted users exclude_visibilities Array of strings (VisibilityScope) Items Enum: "public" "unlisted" "local" "private" "direct" "list" Exclude the statuses with the given visibilities max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Status 401 Error GET /api/v1/timelines/tag/{tag} Response samples 200401 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Home timeline View statuses from followed users AUTHORIZATIONS: oAuth (read:statuses) QUERY PARAMETERS local boolean or string or integer Default: false Show only local statuses? remote boolean or string or integer Default: false Show only remote statuses? only_media boolean or string or integer Default: false Show only statuses with media attached? with_muted boolean or string or integer (BooleanLike) Include activities by muted users exclude_visibilities Array of strings (VisibilityScope) Items Enum: "public" "unlisted" "local" "private" "direct" "list" Exclude the statuses with the given visibilities reply_visibility string Enum: "following" "self" Filter replies. Possible values: without parameter (default) shows all replies, following - replies directed to you or users you follow, self - replies directed to you. max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Status GET /api/v1/timelines/home Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Bookmarked statuses Statuses the user has bookmarked AUTHORIZATIONS: oAuth (read:bookmarks) QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Statuses GET /api/v1/bookmarks Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Direct timeline View statuses with a “direct” scope addressed to the account. Using this endpoint is discouraged, please use conversations or chats. AUTHORIZATIONS: oAuth (read:statuses) QUERY PARAMETERS with_muted boolean or string or integer (BooleanLike) Include activities by muted users max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Status GET /api/v1/timelines/direct Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] List timeline View statuses in the given list timeline AUTHORIZATIONS: oAuth (read:lists) PATH PARAMETERS list_id required string Local ID of the list in the database QUERY PARAMETERS with_muted boolean or string or integer (BooleanLike) Include activities by muted users local boolean or string or integer Default: false Show only local statuses? remote boolean or string or integer Default: false Show only remote statuses? only_media boolean or string or integer Default: false Show only statuses with media attached? exclude_visibilities Array of strings (VisibilityScope) Items Enum: "public" "unlisted" "local" "private" "direct" "list" Exclude the statuses with the given visibilities max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of Status GET /api/v1/timelines/list/{list_id} Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Retrieve status information Preview card Deprecated Deprecated in favor of card property inlined on Status entity AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Card GET /api/v1/statuses/{id}/card Response samples 200 Content type application/json Copy Expand all Collapse all { "description": "string", "image": "http://example.com", "provider_name": "string", "provider_url": "http://example.com", "title": "string", "type": "link", "url": "http://example.com" } Favourited by View who favourited a given status AUTHORIZATIONS: oAuth (read:accounts) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Array of Accounts 404 Not Found GET /api/v1/statuses/{id}/favourited_by Response samples 200404 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Reblogged by View who reblogged a given status AUTHORIZATIONS: oAuth (read:accounts) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Array of Accounts 404 Not Found GET /api/v1/statuses/{id}/reblogged_by Response samples 200404 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Multiple statuses AUTHORIZATIONS: oAuth (read:statuses) QUERY PARAMETERS ids Array of strings (FlakeID) Array of status IDs with_muted boolean or string or integer (BooleanLike) Include reactions from muted acccounts. Responses 200 Array of Status GET /api/v1/statuses Response samples 200 Content type application/json Copy Expand all Collapse all [ { "account": { }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } ] Parent and child statuses View statuses above and below this status in the thread AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Context GET /api/v1/statuses/{id}/context Response samples 200 Content type application/json Copy Expand all Collapse all { "ancestors": [ { } ], "descendants": [ { } ] } Status View information about a status AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID QUERY PARAMETERS with_muted boolean or string or integer (BooleanLike) Include reactions from muted acccounts. Responses 200 Status 404 Not Found GET /api/v1/statuses/{id} Response samples 200404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Scheduled statuses View scheduled statuses AUTHORIZATIONS: oAuth (read:statuses) QUERY PARAMETERS max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Array of ScheduledStatus GET /api/v1/scheduled_statuses Response samples 200 Content type application/json Copy Expand all Collapse all [ { "id": "3221", "media_attachments": [ ], "params": { }, "scheduled_at": "2019-12-05T12:33:01.000Z" } ] Cancel a scheduled status AUTHORIZATIONS: oAuth (write:statuses) PATH PARAMETERS id required string (FlakeID) Example: 123 Poll ID Responses 200 Empty object 404 Error DELETE /api/v1/scheduled_statuses/{id} Response samples 200404 Content type application/json Copy Expand all Collapse all { } View a single scheduled status AUTHORIZATIONS: oAuth (read:statuses) PATH PARAMETERS id required string (FlakeID) Example: 123 Poll ID Responses 200 Scheduled Status 404 Error GET /api/v1/scheduled_statuses/{id} Response samples 200404 Content type application/json Copy Expand all Collapse all { "id": "3221", "media_attachments": [ { } ], "params": { "expires_in": null, "idempotency": null, "in_reply_to_id": null, "media_ids": null, "poll": null, "scheduled_at": null, "sensitive": null, "spoiler_text": null, "text": "test content", "visibility": null }, "scheduled_at": "2019-12-05T12:33:01.000Z" } Schedule a status AUTHORIZATIONS: oAuth (write:statuses) PATH PARAMETERS id required string (FlakeID) Example: 123 Poll ID REQUEST BODY SCHEMA: application/json Parameters scheduled_at string <date-time> ISO 8601 Datetime at which the status will be published. Must be at least 5 minutes into the future. Responses 200 Scheduled Status 404 Error PUT /api/v1/scheduled_statuses/{id} Request samples Payload Content type application/json Copy Expand all Collapse all { "scheduled_at": "2019-08-24T14:15:22Z" } Response samples 200404 Content type application/json Copy Expand all Collapse all { "id": "3221", "media_attachments": [ { } ], "params": { "expires_in": null, "idempotency": null, "in_reply_to_id": null, "media_ids": null, "poll": null, "scheduled_at": null, "sensitive": null, "spoiler_text": null, "text": "test content", "visibility": null }, "scheduled_at": "2019-12-05T12:33:01.000Z" } Search Search results Deprecated AUTHORIZATIONS: oAuth (read:search) QUERY PARAMETERS account_id string (FlakeID) If provided, statuses returned will be authored only by this account type string Enum: "accounts" "hashtags" "statuses" Search type q required string The search query resolve boolean or string or integer Default: false Attempt WebFinger lookup following boolean or string or integer Default: false Only include accounts that the user is following offset integer Offset with_relationships boolean or string or integer (BooleanLike) Embed relationships into accounts. If this parameter is not set account's pleroma.relationship is going to be null. max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Results GET /api/v1/search Response samples 200 Content type application/json Copy Expand all Collapse all { "accounts": [ { } ], "hashtags": [ "cofe" ], "statuses": [ { } ] } Search for matching accounts by username or display name QUERY PARAMETERS q required string What to search for limit integer Default: 40 Maximum number of results resolve boolean or string or integer Default: false Attempt WebFinger lookup. Use this when q is an exact address. following boolean or string or integer Default: false Only include accounts that the user is following Responses 200 Array of Account GET /api/v1/accounts/search Response samples 200 Content type application/json Copy Expand all Collapse all [ { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" } ] Search results AUTHORIZATIONS: oAuth (read:search) QUERY PARAMETERS account_id string (FlakeID) If provided, statuses returned will be authored only by this account type string Enum: "accounts" "hashtags" "statuses" Search type q required string What to search for resolve boolean or string or integer Default: false Attempt WebFinger lookup following boolean or string or integer Default: false Only include accounts that the user is following with_relationships boolean or string or integer (BooleanLike) Embed relationships into accounts. If this parameter is not set account's pleroma.relationship is going to be null. max_id string Return items older than this ID min_id string Return the oldest items newer than this ID since_id string Return the newest items newer than this ID offset integer Default: 0 Return items past this number of items limit integer Default: 20 Maximum number of items to return. Will be ignored if it's more than 40 Responses 200 Results GET /api/v2/search Response samples 200 Content type application/json Copy Expand all Collapse all { "accounts": [ { } ], "hashtags": [ { } ], "statuses": [ { } ] } Status actions Undo favourite Remove a status from your favourites list AUTHORIZATIONS: oAuth (write:favourites) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status 404 Not Found POST /api/v1/statuses/{id}/unfavourite Response samples 200404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Undo reblog Undo a reshare of a status AUTHORIZATIONS: oAuth (write:statuses) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status 404 Not Found POST /api/v1/statuses/{id}/unreblog Response samples 200404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Reblog Share a status AUTHORIZATIONS: oAuth (write:statuses) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID REQUEST BODY SCHEMA: application/json Parameters visibility string Enum: "public" "unlisted" "local" "private" "direct" "list" Status visibility Responses 200 Status 404 Not Found POST /api/v1/statuses/{id}/reblog Request samples Payload Content type application/json Copy Expand all Collapse all { "visibility": "public" } Response samples 200404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Pin to profile Feature one of your own public statuses at the top of your profile AUTHORIZATIONS: oAuth (write:accounts) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status 400 Bad Request 404 Not found 422 Unprocessable Entity POST /api/v1/statuses/{id}/pin Response samples 200400404422 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Favourite Add a status to your favourites list AUTHORIZATIONS: oAuth (write:favourites) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status 404 Not Found POST /api/v1/statuses/{id}/favourite Response samples 200404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Unmute conversation Start receiving notifications again for the thread that this status is part of AUTHORIZATIONS: oAuth (write:mutes) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status 400 Error POST /api/v1/statuses/{id}/unmute Response samples 200400 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Publish new status Post a new status AUTHORIZATIONS: oAuth (write:statuses) REQUEST BODY SCHEMA: application/json Parameters content_type string Nullable The MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint. expires_in integer Nullable The number of seconds the posted activity should expire in. When a posted activity expires it will be deleted from the server, and a delete request for it will be federated. This needs to be longer than an hour. in_reply_to_conversation_id string Nullable Will reply to a given conversation, addressing only the people who are part of the recipient set of that conversation. Sets the visibility to direct. in_reply_to_id string Nullable ID of the status being replied to, if status is a reply language string Nullable ISO 639 language code for this status. media_ids Array of strings Nullable Array of Attachment ids to be attached as media. poll object Nullable preview boolean or string or integer Nullable If set to true the post won't be actually posted, but the status entitiy would still be rendered back. This could be useful for previewing rich text/custom emoji, for example scheduled_at string <date-time> Nullable ISO 8601 Datetime at which to schedule a status. Providing this paramter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future. sensitive boolean or string or integer Nullable Mark status and attached media as sensitive? spoiler_text string Nullable Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field. status string Nullable Text content of the status. If media_ids is provided, this becomes optional. Attaching a poll is optional while status is provided. to Array of strings Nullable A list of nicknames (like lain@soykaf.club or lain on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the status body, only the people in the to list will be addressed. The normal rules for for post visibility are not affected by this and will still apply visibility VisibilityScope (string) or string Nullable Visibility of the posted status. Besides standard MastoAPI values (direct, private, unlisted or public) it can be used to address a List by setting it to list:LIST_ID Responses 200 Status. When scheduled_at is present, ScheduledStatus is returned instead 422 Bad Request / MRF Rejection POST /api/v1/statuses Request samples Payload Content type application/json Copy Expand all Collapse all { "poll": { "expires_in": 420, "options": [ ] }, "sensitive": "false", "status": "What time is it?" } Response samples 200422 Content type application/json Example Status Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Mute conversation Do not receive notifications for the thread that this status is part of. AUTHORIZATIONS: oAuth (write:mutes) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID QUERY PARAMETERS expires_in integer Default: 0 Expire the mute in expires_in seconds. Default 0 for infinity REQUEST BODY SCHEMA: application/json Parameters expires_in integer Nullable Default: 0 Expire the mute in expires_in seconds. Default 0 for infinity Responses 200 Status 400 Error POST /api/v1/statuses/{id}/mute Request samples Payload Content type application/json Copy Expand all Collapse all { "expires_in": 0 } Response samples 200400 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Unpin from profile Unfeature a status from the top of your profile AUTHORIZATIONS: oAuth (write:accounts) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status 400 Bad Request 404 Not found POST /api/v1/statuses/{id}/unpin Response samples 200400404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Delete Delete one of your own statuses AUTHORIZATIONS: oAuth (write:statuses) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status 403 Forbidden 404 Not Found DELETE /api/v1/statuses/{id} Response samples 200403404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Undo bookmark Remove a status from your private bookmarks AUTHORIZATIONS: oAuth (write:bookmarks) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status POST /api/v1/statuses/{id}/unbookmark Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Bookmark Privately bookmark a status AUTHORIZATIONS: oAuth (write:bookmarks) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Status ID Responses 200 Status POST /api/v1/statuses/{id}/bookmark Response samples 200 Content type application/json Copy Expand all Collapse all { "account": { "acct": "nick6", "avatar": "http://localhost:4001/images/avi.png", "avatar_static": "http://localhost:4001/images/avi.png", "bot": false, "created_at": "2020-04-07T19:48:51.000Z", "display_name": "Test テスト User 6", "emojis": [ ], "fields": [ ], "followers_count": 1, "following_count": 0, "header": "http://localhost:4001/images/banner.png", "header_static": "http://localhost:4001/images/banner.png", "id": "9toJCsKN7SmSf3aj5c", "is_locked": false, "note": "Tester Number 6", "pleroma": { }, "source": { }, "statuses_count": 1, "url": "http://localhost:4001/users/nick6", "username": "nick6" }, "application": null, "bookmarked": false, "card": null, "content": "foobar", "created_at": "2020-04-07T19:48:51.000Z", "emojis": [ ], "favourited": false, "favourites_count": 0, "id": "9toJCu5YZW7O7gfvH6", "in_reply_to_account_id": null, "in_reply_to_id": null, "language": null, "media_attachments": [ ], "mentions": [ ], "muted": false, "pinned": false, "pleroma": { "content": { }, "conversation_id": 345972, "direct_conversation_id": null, "emoji_reactions": [ ], "expires_at": null, "in_reply_to_account_acct": null, "local": true, "spoiler_text": { }, "thread_muted": false }, "poll": null, "reblog": null, "reblogged": false, "reblogs_count": 0, "replies_count": 0, "sensitive": false, "spoiler_text": "", "tags": [ ], "uri": "http://localhost:4001/objects/0f5dad44-0e9e-4610-b377-a2631e499190", "url": "http://localhost:4001/notice/9toJCu5YZW7O7gfvH6", "visibility": "private" } Emoji packs Lists local custom emoji packs QUERY PARAMETERS page integer Default: 1 Page page_size integer Default: 50 Number of emoji packs to return Responses 200 Object with pack names as keys and pack contents as values GET /api/v1/pleroma/emoji/packs Response samples 200 Content type application/json Copy Expand all Collapse all { "emojos": { "files": { }, "pack": { } } } Show emoji pack QUERY PARAMETERS name required string Example: name=cofe Pack Name page integer Default: 1 Page page_size integer Default: 30 Number of emoji to return Responses 200 Emoji Pack 400 Bad Request 404 Not Found GET /api/v1/pleroma/emoji/pack Response samples 200400404 Content type application/json Copy Expand all Collapse all { "files": { "emacs": "emacs.png", "guix": "guix.png" }, "pack": { "can-download": true, "description": "Test description", "download-sha256": "57482F30674FD3DE821FF48C81C00DA4D4AF1F300209253684ABA7075E5FC238", "homepage": "https://pleroma.social", "license": "Test license", "share-files": true } } Requests a local pack archive from the instance QUERY PARAMETERS name required string Example: name=cofe Pack Name Responses 200 Archive file 403 Forbidden 404 Not Found GET /api/v1/pleroma/emoji/packs/archive Response samples 403404 Content type application/json Copy Expand all Collapse all { "error": "Something went wrong" } Reports Get an individual report AUTHORIZATIONS: oAuth (read:reports) PATH PARAMETERS id required string (FlakeID) Example: 9umDrYheeY451cQnEe Report ID Responses 200 Report 404 Not Found GET /api/v0/pleroma/reports/{id} Response samples 200404 Content type application/json Copy Expand all Collapse all { "account": { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" }, "actor": { "acct": "foobar", "avatar": "https://mypleroma.com/images/avi.png", "avatar_static": "https://mypleroma.com/images/avi.png", "bot": false, "created_at": "2020-03-24T13:05:58.000Z", "display_name": "foobar", "emojis": [ ], "fields": [ ], "follow_requests_count": 0, "followers_count": 0, "following_count": 1, "header": "https://mypleroma.com/images/banner.png", "header_static": "https://mypleroma.com/images/banner.png", "id": "9tKi3esbG7OQgZ2920", "locked": false, "note": "cofe", "pleroma": { }, "source": { }, "statuses_count": 0, "url": "https://mypleroma.com/users/foobar", "username": "foobar" }, "content": "string", "created_at": "2019-08-24T14:15:22Z", "id": "string", "state": "open", "statuses": [ { } ] } Get a list of your own reports AUTHORIZATIONS: oAuth (read:reports) QUERY PARAMETERS state string Enum: "open" "closed" "resolved" Filter by report state limit integer The number of records to retrieve page integer Default: 1 Page number page_size integer Default: 50 Number number of log entries per page Responses 200 Response 404 Not Found GET /api/v0/pleroma/reports Response samples 200404 Content type application/json Copy Expand all Collapse all { "reports": [ { } ], "total": 0 } File a report Report problematic users to your moderators AUTHORIZATIONS: oAuth (followwrite:reports) REQUEST BODY SCHEMA: application/json Parameters account_id required string ID of the account to report comment string Nullable Reason for the report forward boolean or string or integer Nullable Default: false If the account is remote, should the report be forwarded to the remote admin? status_ids Array of strings Nullable Array of Statuses to attach to the report, for context Responses 200 Report 400 Report POST /api/v1/reports Request samples Payload Content type application/json Copy Expand all Collapse all { "account_id": "123", "comment": "bad status!", "forward": "false", "status_ids": [ "1337" ] } Response samples 200400 Content type application/json Copy Expand all Collapse all { "action_taken": false, "id": "123" } Suggestions Follow suggestions (Not implemented) Responses 200 Empty array GET /api/v1/suggestions Response samples 200 Content type application/json Copy Expand all Collapse all [ ]