{ "openapi": "3.1.0", "info": { "title": "Mastodon API", "version": "4.7.0", "description": "Unofficial documentation for the Mastodon API. Generated with [mastodon-openapi](https://github.com/abraham/mastodon-openapi) from [5842576](https://github.com/mastodon/documentation/commit/58425765225abf378b08ddf0b1d48403674e7afa). Targets [supported](https://github.com/mastodon/mastodon/security/policy#supported-versions) Mastodon versions.", "contact": { "name": "Abraham Williams", "email": "hi@abrah.am" }, "license": { "name": "GFDL-1.3", "url": "https://www.gnu.org/licenses/fdl-1.3.en.html" }, "x-logo": { "url": "https://github.com/abraham/mastodon-openapi/blob/main/mastodon-logo.webp?raw=true", "altText": "Mastodon logo" } }, "externalDocs": { "url": "https://docs.joinmastodon.org/api/", "description": "Official Mastodon API documentation" }, "servers": [ { "url": "https://{hostname}", "description": "Mastodon instance", "variables": { "hostname": { "default": "mastodon.example", "description": "Hostname of the Mastodon instance" } } } ], "security": [], "paths": { "/api/v1/accounts": { "post": { "operationId": "createAccount", "summary": "Register an account", "description": "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.\n\nVersion history:\n\n2.7.0 - added\\\n3.0.0 - added `reason` parameter\\\n3.4.0 - added `details` to failure response\\\n4.4.0 - added `date_of_birth` parameter", "tags": [ "accounts" ], "responses": { "200": { "description": "[Token]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Rate limited", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#create", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "agreement": { "type": "boolean", "description": "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." }, "email": { "type": "string", "description": "The email address to be used for login" }, "locale": { "type": "string", "description": "The language of the confirmation email that will be sent." }, "password": { "type": "string", "description": "The password to be used for login" }, "username": { "type": "string", "description": "The desired username for the account" }, "date_of_birth": { "type": "string", "description": "String ([Date]), required if the server has a minimum age requirement.", "format": "date" }, "reason": { "type": "string", "description": "If registrations require manual approval, this text will be reviewed by moderators." } }, "required": [ "agreement", "email", "locale", "password", "username" ] } } } } }, "get": { "operationId": "getAccounts", "summary": "Get multiple accounts", "description": "View information about multiple profiles.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#index", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "id", "in": "query", "description": "The IDs of the accounts.", "schema": { "type": "array", "description": "The IDs of the accounts.", "items": { "type": "string" } } } ] } }, "/api/v1/accounts/{account_id}/collections": { "get": { "operationId": "getAccountCollections", "summary": "Get all Collections from a given account", "description": "Version history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "accounts" ], "responses": { "200": { "description": "[Collections]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Collections" }, "examples": { "Collections200Example": { "$ref": "#/components/examples/Collections200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#get_collections", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:collections" ] } ], "parameters": [ { "name": "account_id", "in": "path", "required": true, "description": "account_id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results. Defaults to 40 Collections. Max 80 Collections.", "schema": { "type": "integer", "description": "Maximum number of results. Defaults to 40 Collections. Max 80 Collections.", "default": 40 } }, { "name": "offset", "in": "query", "description": "Skip the first n results. Defaults to 0.", "schema": { "type": "integer", "description": "Skip the first n results. Defaults to 0.", "default": 0 } } ] } }, "/api/v1/accounts/{account_id}/in_collections": { "get": { "operationId": "getAccountInCollections", "summary": "Get all Collections the current account is featured in", "description": "Version history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "accounts" ], "responses": { "200": { "description": "[Collections]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Collections" }, "examples": { "Collections200Example": { "$ref": "#/components/examples/Collections200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#in_collections", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:collections" ] } ], "parameters": [ { "name": "account_id", "in": "path", "required": true, "description": "account_id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results. Defaults to 40 Collections. Max 80 Collections.", "schema": { "type": "integer", "description": "Maximum number of results. Defaults to 40 Collections. Max 80 Collections.", "default": 40 } }, { "name": "offset", "in": "query", "description": "Skip the first n results. Defaults to 0.", "schema": { "type": "integer", "description": "Skip the first n results. Defaults to 0.", "default": 0 } } ] } }, "/api/v1/accounts/{id}": { "get": { "operationId": "getAccount", "summary": "Get account", "description": "View information about a profile.\n\nVersion history:\n\n0.0.0 - added\\\n2.4.0 - returns 410 if account is suspended\\\n3.3.0 - returns an Account with `suspended: true` instead of 410", "tags": [ "accounts" ], "responses": { "200": { "description": "[Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Account" }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#get", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/block": { "post": { "operationId": "postAccountBlock", "summary": "Block account", "description": "[Blocks](https://docs.joinmastodon.org/user/moderating/#block) the given account.\n\nVersion history:\n\n0.0.0 - added\\\n3.5.0 - deprecated `follow` scope. now additionally accepts `write`", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#block", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:blocks" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/endorse": { "post": { "operationId": "postAccountEndorse", "summary": "Feature account on your profile", "description": "Add the given account to the user's featured profiles.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error500Example": { "$ref": "#/components/examples/Error500Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#endorse", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/endorsements": { "get": { "operationId": "getAccountEndorsements", "summary": "Get featured accounts", "description": "Accounts that the user is currently featuring on their profile.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#endorsements", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/accounts/{id}/featured_tags": { "get": { "operationId": "getAccountFeaturedTags", "summary": "Get account's featured tags", "description": "Tags featured by this account.\n\nVersion history:\n\n3.3.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [FeaturedTag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FeaturedTag" } }, "examples": { "FeaturedTag200Example": { "$ref": "#/components/examples/FeaturedTag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#featured_tags", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/follow": { "post": { "operationId": "postAccountFollow", "summary": "Follow account", "description": "Follow the given account. Can also be used to update whether to show reblogs or enable notifications.\n\nVersion history:\n\n0.0.0 - added\\\n3.3.0 - added `notify`\\\n3.5.0 - deprecated `follow` scope. now additionally accepts `write`\\\n4.0.0 - added `languages`", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#follow", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:follows" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "languages": { "type": "array", "description": "Array of String (ISO 639-1 language two-letter code). Filter received statuses for these languages. If not provided, you will receive this account's posts in all languages.", "items": { "type": "string" } }, "notify": { "type": "boolean", "description": "Receive notifications when this account posts a status? Defaults to false.", "default": false }, "reblogs": { "type": "boolean", "description": "Receive this account's reblogs in home timeline? Defaults to true.", "default": true } } } } } } } }, "/api/v1/accounts/{id}/followers": { "get": { "operationId": "getAccountFollowers", "summary": "Get account's followers", "description": "Accounts which follow the given account, if network is not hidden by the account owner.\n\nVersion history:\n\n0.0.0 - added\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now\\\n4.0.0 - no longer requires an app token + `read:accounts`", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#followers", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/accounts/{id}/following": { "get": { "operationId": "getAccountFollowing", "summary": "Get account's following", "description": "Accounts which the given account is following, if network is not hidden by the account owner.\n\nVersion history:\n\n0.0.0 - added\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now\\\n4.0.0 - no longer requires an app token + `read:accounts`", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#following", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/accounts/{id}/identity_proofs": { "get": { "operationId": "getAccountIdentityProofs", "summary": "Identity proofs", "description": "Version history:\n\n2.8.0 - added\\\n3.5.0 - deprecated. now returns an empty array.", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [IdentityProof]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IdentityProof" } }, "examples": { "IdentityProof200Example": { "$ref": "#/components/examples/IdentityProof200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#identity_proofs", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/lists": { "get": { "operationId": "getAccountLists", "summary": "Get lists containing this account", "description": "User lists that you have added this account to.\n\nVersion history:\n\n2.1.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [List]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/List" } }, "examples": { "List200Example": { "$ref": "#/components/examples/List200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#lists", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:lists" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/mute": { "post": { "operationId": "postAccountMute", "summary": "Mute account", "description": "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).\n\nVersion history:\n\n0.0.0 - added\\\n3.3.0 - added `duration`\\\n3.5.0 - deprecated `follow` scope. now additionally accepts `write`", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#mute", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:mutes" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "duration": { "type": "integer", "description": "How long the mute should last, in seconds. Defaults to 0 (indefinite).", "default": 0 }, "notifications": { "type": "boolean", "description": "Mute notifications in addition to statuses? Defaults to true.", "default": true } } } } } } } }, "/api/v1/accounts/{id}/note": { "post": { "operationId": "postAccountNote", "summary": "Set private note on profile", "description": "Sets a private note on a user.\n\nVersion history:\n\n3.2.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#note", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "comment": { "type": "string", "description": "The comment to be set on that user. Provide an empty string or leave out this parameter to clear the currently set note." } } } } } } } }, "/api/v1/accounts/{id}/pin": { "post": { "operationId": "postAccountPin", "summary": "Feature account on your profile", "description": "Add the given account to the user's featured profiles. (Featured profiles are currently shown on the user's own public profile.)\n\nVersion history:\n\n2.5.0 - added\\\n4.0.0 - calling this method is now idempotent\\\n4.4.0 - deprecated in favor of `/api/v1/accounts/:id/endorse`", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error500Example": { "$ref": "#/components/examples/Error500Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#pin", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/remove_from_followers": { "post": { "operationId": "postAccountRemoveFromFollowers", "summary": "Remove account from followers", "description": "Remove the given account from your followers.\n\nVersion history:\n\n3.5.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#remove_from_followers", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:follows" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/statuses": { "get": { "operationId": "getAccountStatuses", "summary": "Get account's statuses", "description": "Statuses posted to the given account.\n\nVersion history:\n\n0.0.0 - added\\\n1.4.2 - add `only_media` and `exclude_replies`\\\n1.6.0 - add `pinned`\\\n2.6.0 - add `min_id`\\\n2.7.0 - add `exclude_reblogs` and allow unauthed use\\\n2.8.0 - add `tagged` parameter\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#statuses", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "exclude_reblogs", "in": "query", "description": "Filter out boosts from the response.", "schema": { "type": "boolean", "description": "Filter out boosts from the response." } }, { "name": "exclude_replies", "in": "query", "description": "Filter out statuses in reply to a different account.", "schema": { "type": "boolean", "description": "Filter out statuses in reply to a different account." } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "only_media", "in": "query", "description": "Filter out statuses without attachments.", "schema": { "type": "boolean", "description": "Filter out statuses without attachments." } }, { "name": "pinned", "in": "query", "description": "Filter for pinned statuses only. Defaults to false, which includes all statuses. Pinned statuses do not receive special priority in the order of the returned results.", "schema": { "type": "boolean", "description": "Filter for pinned statuses only. Defaults to false, which includes all statuses. Pinned statuses do not receive special priority in the order of the returned results." } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } }, { "name": "tagged", "in": "query", "description": "Filter for statuses using a specific hashtag.", "schema": { "type": "string", "description": "Filter for statuses using a specific hashtag." } } ] } }, "/api/v1/accounts/{id}/unblock": { "post": { "operationId": "postAccountUnblock", "summary": "Unblock account", "description": "Unblock the given account.\n\nVersion history:\n\n0.0.0 - added\\\n3.5.0 - deprecated `follow` scope. now additionally accepts `write`", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#unblock", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:blocks" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/unendorse": { "post": { "operationId": "postAccountUnendorse", "summary": "Unfeature account from profile", "description": "Remove the given account from the user's featured profiles.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#unendorse", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/unfollow": { "post": { "operationId": "postAccountUnfollow", "summary": "Unfollow account", "description": "Unfollow the given account.\n\nVersion history:\n\n0.0.0 - added\\\n3.5.0 - deprecated `follow` scope. now additionally accepts `write`", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#unfollow", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:follows" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/unmute": { "post": { "operationId": "postAccountUnmute", "summary": "Unmute account", "description": "Unmute the given account.\n\nVersion history:\n\n0.0.0 - added\\\n3.5.0 - deprecated `follow` scope. now additionally accepts `write`", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#unmute", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:mutes" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/{id}/unpin": { "post": { "operationId": "postAccountUnpin", "summary": "Unfeature account from profile", "description": "Remove the given account from the user's featured profiles.\n\nVersion history:\n\n2.5.0 - added\\\n4.4.0 - deprecated in favor of `/api/v1/accounts/:id/unendorse`", "tags": [ "accounts" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#unpin", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/accounts/familiar_followers": { "get": { "operationId": "getAccountFamiliarFollowers", "summary": "Find familiar followers", "description": "Obtain a list of all accounts that follow a given account, filtered for accounts you follow.\n\nVersion history:\n\n3.5.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [FamiliarFollowers]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FamiliarFollowers" } }, "examples": { "FamiliarFollowers200Example": { "$ref": "#/components/examples/FamiliarFollowers200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#familiar_followers", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:follows" ] } ], "parameters": [ { "name": "id", "in": "query", "description": "Find familiar followers for the provided account IDs.", "schema": { "type": "array", "description": "Find familiar followers for the provided account IDs.", "items": { "type": "string" } } } ] } }, "/api/v1/accounts/lookup": { "get": { "operationId": "getAccountLookup", "summary": "Lookup account ID from WebFinger address", "description": "Quickly lookup a username to see if it is available, skipping WebFinger resolution.\n\nVersion history:\n\n3.4.0 - added", "tags": [ "accounts" ], "responses": { "200": { "description": "[Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Account" }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#lookup", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ], "parameters": [ { "name": "acct", "in": "query", "required": true, "description": "The username or WebFinger address to lookup.", "schema": { "type": "string", "description": "The username or WebFinger address to lookup." } } ] } }, "/api/v1/accounts/relationships": { "get": { "operationId": "getAccountRelationships", "summary": "Check relationships to other accounts", "description": "Find out whether a given account is followed, blocked, muted, etc.\n\nVersion history:\n\n0.0.0 - added\\\n4.3.0 - added `with_suspended` parameter\n4.6.0 - added `muting_expires_at`", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Relationship" } }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#relationships", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:follows" ] } ], "parameters": [ { "name": "id", "in": "query", "description": "Check relationships for the provided account IDs.", "schema": { "type": "array", "description": "Check relationships for the provided account IDs.", "items": { "type": "string" } } }, { "name": "with_suspended", "in": "query", "description": "Whether relationships should be returned for suspended users, defaults to false.", "schema": { "type": "boolean", "description": "Whether relationships should be returned for suspended users, defaults to false.", "default": false } } ] } }, "/api/v1/accounts/search": { "get": { "operationId": "getAccountSearch", "summary": "Search for matching accounts", "description": "Search for matching accounts by username or display name.\n\nVersion history:\n\n0.0.0 - added\\\n2.8.0 - add `limit`, `offset` and `following`", "tags": [ "accounts" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#search", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ], "parameters": [ { "name": "q", "in": "query", "required": true, "description": "Search query for accounts.", "schema": { "type": "string", "description": "Search query for accounts." } }, { "name": "following", "in": "query", "description": "Limit the search to users you are following. Defaults to false.", "schema": { "type": "boolean", "description": "Limit the search to users you are following. Defaults to false.", "default": false } }, { "name": "limit", "in": "query", "description": "Maximum number of results. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "offset", "in": "query", "description": "Skip the first n results.", "schema": { "type": "integer", "description": "Skip the first n results." } }, { "name": "resolve", "in": "query", "description": "Attempt WebFinger lookup. Defaults to false. Use this when `q` is an exact address.", "schema": { "type": "boolean", "description": "Attempt WebFinger lookup. Defaults to false. Use this when `q` is an exact address.", "default": false } } ] } }, "/api/v1/accounts/update_credentials": { "patch": { "operationId": "patchAccountUpdateCredentials", "summary": "Update account credentials", "description": "Update the user's display and preferences.\n\nVersion history:\n\n1.1.1 - added\\\n2.3.0 - added `locked` parameter\\\n2.4.0 - added `source[privacy,sensitive]` parameters\\\n2.4.2 - added `source[language]` parameter\\\n2.7.0 - added `discoverable` parameter\\\n4.1.0 - added `hide_collections` parameter\\\n4.2.0 - added `indexable` parameter\\\n4.4.0 (`mastodon` [API version] 3) - added `attribution_domains` parameter\\\n4.5.0 (`mastodon` [API version] 7) - added `quote_policy` parameter\\\n4.6.1 (`mastodon` [API version] 11) - added `avatar_description` and `header_description` parameter", "tags": [ "accounts" ], "responses": { "200": { "description": "[CredentialAccount]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialAccount" }, "examples": { "CredentialAccount200Example": { "$ref": "#/components/examples/CredentialAccount200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#update_credentials", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "attribution_domains": { "type": "array", "description": "Domains of websites allowed to credit the account. Maximum of 10 domains.", "items": { "type": "string" } }, "avatar": { "type": "string", "description": "Avatar image encoded using `multipart/form-data`" }, "avatar_description": { "type": "string", "description": "A plain-text description of the avatar, for accessibility purposes." }, "bot": { "type": "boolean", "description": "Whether the account has a bot flag." }, "discoverable": { "type": "boolean", "description": "Whether the account should be shown in the profile directory." }, "display_name": { "type": "string", "description": "The display name to use for the profile." }, "fields_attributes": { "type": "object", "description": "The profile fields to be set. Inside this hash, the key is an integer cast to a string (although the exact integer does not matter), and the value is another hash including `name` and `value`. By default, max 4 fields (specified in [Instance#max_profile_fields]).", "properties": {}, "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the profile field. By default, max 255 characters (specified in [Instance#profile_field_name_limit])." }, "value": { "type": "string", "description": "The value of the profile field. By default, max 255 characters (specified in [Instance#profile_field_value_limit])." } } } }, "header": { "type": "string", "description": "Header image encoded using `multipart/form-data`" }, "header_description": { "type": "string", "description": "A plain-text description of the header, for accessibility purposes." }, "hide_collections": { "type": "boolean", "description": "Whether to hide followers and followed accounts." }, "indexable": { "type": "boolean", "description": "Whether public posts should be searchable to anyone." }, "locked": { "type": "boolean", "description": "Whether manual approval of follow requests is required." }, "note": { "type": "string", "description": "The account bio." }, "source": { "type": "object", "description": "Object containing properties", "properties": { "privacy": { "type": "string", "description": "String (Enumerable, oneOf `public`, `unlisted`, or `private`). Default post privacy for authored statuses.", "$ref": "#/components/schemas/StatusVisibilityEnum" }, "sensitive": { "type": "boolean", "description": "Whether to mark authored statuses as sensitive by default." }, "language": { "type": "string", "description": "Default language to use for authored statuses (ISO 639-1)" }, "quote_policy": { "type": "string", "description": "String (Enumerable, oneOf `public` `followers` `nobody`). Default quote policy for new posts." } } } } } } } } } }, "/api/v1/accounts/verify_credentials": { "get": { "operationId": "getAccountVerifyCredentials", "summary": "Verify account credentials", "description": "Test to make sure that the user token works.\n\nVersion history:\n\n0.0.0 - added\\\n4.3.0 - added `profile` scope", "tags": [ "accounts" ], "responses": { "200": { "description": "[CredentialAccount]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialAccount" }, "examples": { "CredentialAccount200Example": { "$ref": "#/components/examples/CredentialAccount200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/accounts/#verify_credentials", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "profile", "read:accounts" ] } ] } }, "/api/v1/announcements": { "get": { "operationId": "getAnnouncements", "summary": "View all announcements", "description": "See all currently active announcements set by admins.\n\nVersion history:\n\n3.1.0 - added", "tags": [ "announcements" ], "responses": { "200": { "description": "Array of [Announcement]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Announcement" } }, "examples": { "Announcement200Example": { "$ref": "#/components/examples/Announcement200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/announcements/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [] } ] } }, "/api/v1/announcements/{id}/dismiss": { "post": { "operationId": "postAnnouncementDismiss", "summary": "Dismiss an announcement", "description": "Allows a user to mark the announcement as read.\n\nVersion history:\n\n3.1.0 - added", "tags": [ "announcements" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/announcements/#dismiss", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/announcements/{id}/reactions/{name}": { "put": { "operationId": "updateAnnouncementReaction", "summary": "Add a reaction to an announcement", "description": "React to an announcement with an emoji.\n\nVersion history:\n\n3.1.0 - added", "tags": [ "announcements" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/announcements/#put-reactions", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:favourites" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "description": "name parameter", "schema": { "type": "string" } } ] }, "delete": { "operationId": "deleteAnnouncementReaction", "summary": "Remove a reaction from an announcement", "description": "Undo a react emoji to an announcement.\n\nVersion history:\n\n3.1.0 - added", "tags": [ "announcements" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/announcements/#delete-reactions", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:favourites" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "description": "name parameter", "schema": { "type": "string" } } ] } }, "/api/v1/annual_reports": { "get": { "operationId": "getAnnualReports", "summary": "Get all annual reports", "description": "Returns all of the current user's generated annual reports, if any.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "annual_reports" ], "responses": { "200": { "description": "[WrappedAnnualReports]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WrappedAnnualReports" }, "examples": { "WrappedAnnualReports200Example": { "$ref": "#/components/examples/WrappedAnnualReports200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/annual_reports/#index", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ] } }, "/api/v1/annual_reports/{year}": { "get": { "operationId": "getAnnualReport", "summary": "Get a single annual report", "description": "Returns the current user's generated annual report for the given year, if it exists.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "annual_reports" ], "responses": { "200": { "description": "[WrappedAnnualReports]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WrappedAnnualReports" }, "examples": { "WrappedAnnualReports200Example": { "$ref": "#/components/examples/WrappedAnnualReports200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/annual_reports/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ], "parameters": [ { "name": "year", "in": "path", "required": true, "description": "year parameter", "schema": { "type": "string" } } ] } }, "/api/v1/annual_reports/{year}/generate": { "post": { "operationId": "postAnnualReportGenerate", "summary": "Generate a new annual report {generate}", "description": "Generate the user's annual report for the specified year.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 8) - added", "tags": [ "annual_reports" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "202": { "description": "Accepted", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/annual_reports/#generate-a-new-annual-report-generate", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "year", "in": "path", "required": true, "description": "year parameter", "schema": { "type": "string" } } ] } }, "/api/v1/annual_reports/{year}/read": { "post": { "operationId": "postAnnualReportRead", "summary": "Mark an annual report as read", "description": "Marks the user's generated annual report for the given year as read.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "annual_reports" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/annual_reports/#read", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "year", "in": "path", "required": true, "description": "year parameter", "schema": { "type": "string" } } ] } }, "/api/v1/annual_reports/{year}/state": { "get": { "operationId": "getAnnualReportState", "summary": "Get the state of an annual report", "description": "Returns the state of the annual report for the current user and given year.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 8) - added", "tags": [ "annual_reports" ], "responses": { "200": { "description": "Hash with a single `state` key with a value of String (Enumerable, oneOf `available`, `generating`, `eligible`, or `ineligible`)", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/annual_reports/#get-state", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ], "parameters": [ { "name": "year", "in": "path", "required": true, "description": "year parameter", "schema": { "type": "string" } } ] } }, "/api/v1/apps": { "post": { "operationId": "createApp", "summary": "Create an application", "description": "Create a new application to obtain OAuth2 credentials.\n\nVersion history:\n\n0.0.0 - added\\\n2.7.2 - now returns `vapid_key`\\\n4.3.0 - deprecated `vapid_key`, please see [api/v2/instance]\\\n4.3.0 - added support for multiple `redirect_uris` in Form data parameters\\\n4.3.0 - added `redirect_uris` response property\\\n4.3.0 - deprecated `redirect_uri` response property, since this can be a non-URI if multiple `redirect_uris` are registered, use `redirect_uris` instead\\\n4.3.0 - changed entity type from [Application] to [CredentialApplication]\\\n4.4.0 - added `client_secret_expires_at`", "tags": [ "apps" ], "responses": { "200": { "description": "[CredentialApplication]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialApplication" }, "examples": { "CredentialApplication200Example": { "$ref": "#/components/examples/CredentialApplication200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/apps/#create", "description": "Official Mastodon API documentation" }, "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "client_name": { "type": "string", "description": "A name for your application" }, "redirect_uris": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "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": { "type": "string", "format": "scopes", "description": "Space separated list of scopes. If none is provided, defaults to `read`. See [OAuth Scopes] for a list of possible scopes.", "default": "read" }, "website": { "type": "string", "description": "A URL to the homepage of your app" } }, "required": [ "client_name", "redirect_uris" ] } } } } } }, "/api/v1/apps/verify_credentials": { "get": { "operationId": "getAppVerifyCredentials", "summary": "Verify your app works", "description": "Confirm that the app's OAuth2 credentials work.\n\nVersion history:\n\n2.0.0 - added\\\n2.7.2 - now returns `vapid_key`\\\n4.3.0 - deprecated `vapid_key`, please see [api/v2/instance]\\\n4.3.0 - removed needing `read` scope to access this API, now any valid App token can be used\\\n4.3.0 - added `scopes` and `redirect_uris` properties", "tags": [ "apps" ], "responses": { "200": { "description": "[Application]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Application" }, "examples": { "Application200Example": { "$ref": "#/components/examples/Application200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/apps/#verify_credentials", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [] } ] } }, "/api/v1_alpha/async_refreshes/{id}": { "get": { "operationId": "getAsyncRefreshV1Alpha", "summary": "Get Status of Async Refresh", "description": "Sometimes an API request might not return the expected results or not all possible results as either a background job is already running to (re-)create these results or the request triggers a background job to create or fetch results.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "async_refreshes" ], "responses": { "200": { "description": "Hash with a single key of `async_refresh` with value of [AsyncRefresh]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AsyncRefreshResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/async_refreshes/#show", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/blocks": { "get": { "operationId": "getBlocks", "summary": "View blocked users", "description": "Returns your blocked accounts.\n\nVersion history:\n\n0.0.0 - added\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now", "tags": [ "blocks" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/blocks/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:blocks" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/bookmarks": { "get": { "operationId": "getBookmarks", "summary": "View bookmarked statuses", "description": "Statuses the user has bookmarked.\n\nVersion history:\n\n3.1.0 - added\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now", "tags": [ "bookmarks" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/bookmarks/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:bookmarks" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/collections": { "post": { "operationId": "createCollection", "summary": "Create a Collection", "description": "Create a new Collection.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "collections" ], "responses": { "200": { "description": "[WrappedCollection]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WrappedCollection" }, "examples": { "WrappedCollection200Example": { "$ref": "#/components/examples/WrappedCollection200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomError422" }, "examples": { "CustomError422422Example": { "$ref": "#/components/examples/CustomError422422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#create", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:collections" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "A name for this Collection, max. 40 characters. String is taken \"as is\", which means there is currently no special handling of URLs and hashtags and no support for custom emoji." }, "account_ids": { "type": "array", "description": "IDs of the accounts to feature in this Collection", "items": { "type": "string" } }, "description": { "type": "string", "description": "A longer description of this Collection, max. 100 characters. String is taken \"as is\", which means there is currently no special handling of URLs a nd hashtags and no support for custom emoji." }, "discoverable": { "type": "boolean", "description": "Whether this Collection should appear on the user's profile, in search results and other discovery mechanisms" }, "language": { "type": "string", "description": "One of Mastodon's supported language codes (two letter ISO 639-1 plus exceptions)" }, "sensitive": { "type": "boolean", "description": "Whether this Collection should be marked as sensitive" }, "tag_name": { "type": "string", "description": "A single hashtag that describes the Collection" } }, "required": [ "name" ] } } } } } }, "/api/v1/collections/{collection_id}/items": { "post": { "operationId": "postCollectionItems", "summary": "Add an account to a Collection", "description": "Add an account to a Collection.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "collections" ], "responses": { "200": { "description": "[WrappedCollectionItem]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WrappedCollectionItem" }, "examples": { "WrappedCollectionItem200Example": { "$ref": "#/components/examples/WrappedCollectionItem200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#add_account", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:collections" ] } ], "parameters": [ { "name": "collection_id", "in": "path", "required": true, "description": "collection_id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "account_id": { "type": "string", "description": "ID of the account to add to this Collection" } } } } } } } }, "/api/v1/collections/{collection_id}/items/{id}": { "delete": { "operationId": "deleteCollectionItem", "summary": "Remove account from a Collection", "description": "Remove an account from a Collection.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "collections" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#remove_account", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:collections" ] } ], "parameters": [ { "name": "collection_id", "in": "path", "required": true, "description": "collection_id parameter", "schema": { "type": "string" } }, { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/collections/{collection_id}/items/{id}/revoke": { "post": { "operationId": "postCollectionItemRevoke", "summary": "Revoke inclusion in a Collection", "description": "Remove the current user from a Collection created by a different user.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "collections" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#revoke_item", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:collections" ] } ], "parameters": [ { "name": "collection_id", "in": "path", "required": true, "description": "collection_id parameter", "schema": { "type": "string" } }, { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/collections/{id}": { "get": { "operationId": "getCollection", "summary": "Get a single Collection", "description": "Version history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "collections" ], "responses": { "200": { "description": "[CollectionWithAccounts]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionWithAccounts" }, "examples": { "CollectionWithAccounts200Example": { "$ref": "#/components/examples/CollectionWithAccounts200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#get_collection", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:collections" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "patch": { "operationId": "updateCollection", "summary": "Update a Collection", "description": "Update an existing Collection.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "collections" ], "responses": { "200": { "description": "[WrappedCollection]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WrappedCollection" }, "examples": { "WrappedCollection200Example": { "$ref": "#/components/examples/WrappedCollection200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomError422" }, "examples": { "CustomError422422Example": { "$ref": "#/components/examples/CustomError422422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#update_collection", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:collections" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string", "description": "A longer description of this Collection, max. 100 characters" }, "discoverable": { "type": "boolean", "description": "Whether this Collection should appear in search results and other discovery mechanisms" }, "language": { "type": "string", "description": "One of Mastodon's supported language codes (two letter ISO 639-1 plus exceptions)" }, "name": { "type": "string", "description": "A name for this Collection, max. 40 characters" }, "sensitive": { "type": "boolean", "description": "Whether this Collection should be marked as sensitive" }, "tag_name": { "type": "string", "description": "A single hashtag that describes the Collection" } } } } } } }, "delete": { "operationId": "deleteCollection", "summary": "Delete a Collection", "description": "Delete a Collection.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 10) - added", "tags": [ "collections" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/collections/#delete_collection", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:collections" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/conversations": { "get": { "operationId": "getConversations", "summary": "View all conversations", "description": "Version history:\n\n2.6.0 - added\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now", "tags": [ "conversations" ], "responses": { "200": { "description": "Array of [Conversation]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Conversation" } }, "examples": { "Conversation200Example": { "$ref": "#/components/examples/Conversation200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/conversations/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 conversations. Max 40 conversations.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 conversations. Max 40 conversations.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/conversations/{id}": { "delete": { "operationId": "deleteConversation", "summary": "Remove a conversation", "description": "Removes a conversation from your list of conversations.\n\nVersion history:\n\n2.6.0 - added", "tags": [ "conversations" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/conversations/#delete", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:conversations" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/conversations/{id}/read": { "post": { "operationId": "postConversationRead", "summary": "Mark a conversation as read", "description": "Version history:\n\n2.6.0 - added", "tags": [ "conversations" ], "responses": { "200": { "description": "[Conversation]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Conversation" }, "examples": { "Conversation200Example": { "$ref": "#/components/examples/Conversation200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/conversations/#read", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:conversations" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/custom_emojis": { "get": { "operationId": "getCustomEmojis", "summary": "View all custom emoji", "description": "Returns custom emojis that are available on the server.\n\nVersion history:\n\n2.0.0 - added\\\n3.0.0 - optional `category` added to response", "tags": [ "custom_emojis" ], "responses": { "200": { "description": "Array of [CustomEmoji]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CustomEmoji" } }, "examples": { "CustomEmoji200Example": { "$ref": "#/components/examples/CustomEmoji200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/custom_emojis/#get", "description": "Official Mastodon API documentation" } } }, "/api/v1/directory": { "get": { "operationId": "getDirectory", "summary": "View profile directory", "description": "List accounts visible in the directory.\n\nVersion history:\n\n3.0.0 - added", "tags": [ "directory" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/directory/#get", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "limit", "in": "query", "description": "How many accounts to load. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "How many accounts to load. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "local", "in": "query", "description": "If true, returns only local accounts.", "schema": { "type": "boolean", "description": "If true, returns only local accounts." } }, { "name": "offset", "in": "query", "description": "Skip the first n results.", "schema": { "type": "integer", "description": "Skip the first n results." } }, { "name": "order", "in": "query", "description": "Use `active` to sort by most recently posted statuses (default) or `new` to sort by most recently created profiles.", "schema": { "type": "string", "description": "Use `active` to sort by most recently posted statuses (default) or `new` to sort by most recently created profiles." } } ] } }, "/api/v1/domain_blocks": { "get": { "operationId": "getDomainBlocks", "summary": "Get domain blocks", "description": "View domains the user has blocked.", "tags": [ "domain_blocks" ], "responses": { "200": { "description": "Array of String", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } }, "example": [ "nsfw.social", "artalley.social" ] } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/domain_blocks/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:blocks", "follow" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 100 domain blocks. Max 200 domain blocks.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 100 domain blocks. Max 200 domain blocks.", "default": 100 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] }, "post": { "operationId": "createDomainBlock", "summary": "Block a domain", "description": "Block a domain to change interactions with that domain's server:", "tags": [ "domain_blocks" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/domain_blocks/#block", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:blocks", "follow" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain to block." } }, "required": [ "domain" ] } } } } }, "delete": { "operationId": "deleteDomainBlocks", "summary": "Unblock a domain", "description": "Remove a domain block, if it exists in the user's array of blocked domains.\n\nVersion history:\n\n1.4.0 - added", "tags": [ "domain_blocks" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/domain_blocks/#unblock", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:blocks", "follow" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain to unblock." } }, "required": [ "domain" ] } } } } } }, "/api/v1/emails/confirmations": { "post": { "operationId": "createEmailConfirmations", "summary": "Resend confirmation email", "description": "Resend a new confirmation email. If an email is provided, updates the unconfirmed user's email before resending the confirmation email.\n\nVersion history:\n\n3.4.0 - added", "tags": [ "emails" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/emails/#confirmation", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "string", "description": "If provided, updates the unconfirmed user's email before resending the confirmation email." } } } } } } } }, "/api/v1/endorsements": { "get": { "operationId": "getEndorsements", "summary": "View currently featured profiles", "description": "Accounts that the user is currently featuring on their profile.\n\nVersion history:\n\n2.5.0 - added", "tags": [ "endorsements" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/endorsements/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/favourites": { "get": { "operationId": "getFavourites", "summary": "View favourited statuses", "description": "Statuses the user has favourited.", "tags": [ "favourites" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/favourites/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:favourites" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/featured_tags": { "get": { "operationId": "getFeaturedTags", "summary": "View your featured tags", "description": "List all hashtags featured on your profile.\n\nVersion history:\n\n3.0.0 - added", "tags": [ "featured_tags" ], "responses": { "200": { "description": "Array of [FeaturedTag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FeaturedTag" } }, "examples": { "FeaturedTag200Example": { "$ref": "#/components/examples/FeaturedTag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/featured_tags/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ] }, "post": { "operationId": "createFeaturedTag", "summary": "Feature a tag", "description": "Promote a hashtag on your profile.\n\nVersion history:\n\n3.0.0 - added", "tags": [ "featured_tags" ], "responses": { "200": { "description": "[FeaturedTag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeaturedTag" }, "examples": { "FeaturedTag200Example": { "$ref": "#/components/examples/FeaturedTag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/featured_tags/#feature", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The hashtag to be featured, without the hash sign." } }, "required": [ "name" ] } } } } } }, "/api/v1/featured_tags/{id}": { "delete": { "operationId": "deleteFeaturedTag", "summary": "Unfeature a tag", "description": "Stop promoting a hashtag on your profile.\n\nVersion history:\n\n3.0.0 - added", "tags": [ "featured_tags" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/featured_tags/#unfeature", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/featured_tags/suggestions": { "get": { "operationId": "getFeaturedTagSuggestions", "summary": "View suggested tags to feature", "description": "Shows up to 10 recently-used tags.\n\nVersion history:\n\n3.0.0 - added", "tags": [ "featured_tags" ], "responses": { "200": { "description": "Array of [Tag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "examples": { "Tag200Example": { "$ref": "#/components/examples/Tag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/featured_tags/#suggestions", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ] } }, "/api/v1/filters": { "get": { "operationId": "getFilters", "summary": "View your filters", "description": "Version history:\n\n2.4.3 - added\\\n4.0.0 - deprecated. For compatibility purposes, now returns a List of V1::Filter, with each V1::Filter representing one FilterKeyword (with the `keyword` being presented in the `phrase` attribute)", "tags": [ "filters" ], "responses": { "200": { "description": "List of [V1::Filter]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/V1Filter" }, "examples": { "V1Filter200Example": { "$ref": "#/components/examples/V1Filter200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#get-v1", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "read:filters" ] } ] }, "post": { "operationId": "createFilter", "summary": "Create a filter", "description": "Version history:\n\n2.4.3 - added\\\n3.1.0 - added `account` context to filter in profile views\\\n4.0.0 - deprecated. For compatibility purposes, now returns a V1::Filter representing one FilterKeyword (with the `keyword` being presented in the `phrase` attribute). This method will create a Filter that contains only one FilterKeyword. The `title` of the Filter and the `keyword` of the FilterKeyword will be set equal to the `phrase` provided.", "tags": [ "filters" ], "responses": { "200": { "description": "[V1::Filter]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/V1Filter" }, "examples": { "V1Filter200Example": { "$ref": "#/components/examples/V1Filter200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#create-v1", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "context": { "type": "array", "description": "Where the filter should be applied. Specify at least one of `home`, `notifications`, `public`, `thread`, `account`.", "items": { "$ref": "#/components/schemas/FilterContextEnum" } }, "phrase": { "type": "string", "description": "The text to be filtered." }, "expires_in": { "type": "integer", "description": "Number of seconds from now that the filter should expire. Otherwise, `null` for a filter that doesn't expire." }, "irreversible": { "type": "boolean", "description": "Should the server irreversibly drop matching entities from home and notifications? Defaults to false.", "default": false }, "whole_word": { "type": "boolean", "description": "Should the filter consider word boundaries for this keyword? Defaults to false.", "default": false } }, "required": [ "context", "phrase" ] } } } } } }, "/api/v1/filters/{id}": { "get": { "operationId": "getFilter", "summary": "View a single filter", "description": "Version history:\n\n2.4.3 - added\\\n4.0.0 - deprecated. For compatibility purposes, now returns a V1::Filter representing one FilterKeyword (with the `keyword` being presented in the `phrase` attribute)", "tags": [ "filters" ], "responses": { "200": { "description": "[V1::Filter]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/V1Filter" }, "examples": { "V1Filter200Example": { "$ref": "#/components/examples/V1Filter200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#get-one-v1", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "read:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "put": { "operationId": "updateFilter", "summary": "Update a filter", "description": "Replaces a filter's parameters in-place.\n\nVersion history:\n\n2.4.3 - added\\\n3.1.0 - added `account` context to filter in profile views\\\n4.0.0 - deprecated. For compatibility purposes, now returns a V1::Filter representing one FilterKeyword (with the `keyword` being presented in the `phrase` attribute). This method will return an error if you attempt to change `expires_in`, `irreversible`, or `context` for a filter with multiple keywords. Changing `phrase` and `whole_word` is always safe.", "tags": [ "filters" ], "responses": { "200": { "description": "[V1::Filter]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/V1Filter" }, "examples": { "V1Filter200Example": { "$ref": "#/components/examples/V1Filter200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#update-v1", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "context": { "type": "array", "description": "Specify at least one of `home`, `notifications`, `public`, `thread`, `account`.", "items": { "$ref": "#/components/schemas/FilterContextEnum" } }, "phrase": { "type": "string", "description": "The text to be filtered." }, "expires_in": { "type": "integer", "description": "Number of seconds from now that the filter should expire. Otherwise, `null` for a filter that doesn't expire." }, "irreversible": { "type": "boolean", "description": "Should the server irreversibly drop matching entities from home and notifications? Defaults to false.", "default": false }, "whole_word": { "type": "boolean", "description": "Should the filter consider word boundaries? Defaults to false.", "default": false } }, "required": [ "context", "phrase" ] } } } } }, "delete": { "operationId": "deleteFilter", "summary": "Remove a filter", "description": "Version history:\n\n2.4.3 - added\\\n4.0.0 - deprecated. This method will delete only the FilterKeyword from its parent Filter. To delete the parent Filter, you must use the v2 filters API.", "tags": [ "filters" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#delete-v1", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v2/filters": { "get": { "operationId": "getFiltersV2", "summary": "View all filters", "description": "Obtain a list of all filter groups for the current user.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "Array of [Filter]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Filter" } }, "examples": { "Filter200Example": { "$ref": "#/components/examples/Filter200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:filters" ] } ] }, "post": { "operationId": "createFilterV2", "summary": "Create a filter", "description": "Create a filter group with the given parameters.\n\nVersion history:\n\n4.0.0 - added\\\n4.4.0 (`mastodon` [API version] 5) - added `blur` value to `filter_action` attribute", "tags": [ "filters" ], "responses": { "200": { "description": "[Filter]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Filter" }, "examples": { "Filter200Example": { "$ref": "#/components/examples/Filter200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#create", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "context": { "type": "array", "description": "Where the filter should be applied. Specify at least one of `home`, `notifications`, `public`, `thread`, `account`.", "items": { "$ref": "#/components/schemas/FilterContextEnum" } }, "title": { "type": "string", "description": "The name of the filter group." }, "expires_in": { "type": "integer", "description": "How many seconds from now should the filter expire? Defaults to never expire." }, "filter_action": { "type": "string", "description": "The policy to be applied when the filter is matched. Specify `warn`, `hide` or `blur`." }, "keywords_attributes": { "type": "array", "description": "Array of objects with properties: keyword, whole_word", "items": { "type": "object", "properties": { "keyword": { "type": "string", "description": "A keyword to be added to the newly-created filter group." }, "whole_word": { "type": "boolean", "description": "Whether the keyword should consider word boundaries." } } } } }, "required": [ "context", "title" ] } } } } } }, "/api/v2/filters/{filter_id}/keywords": { "get": { "operationId": "getFilterKeywordsV2", "summary": "View keywords added to a filter", "description": "List all keywords attached to the current filter group.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "Array of [FilterKeyword]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FilterKeyword" } }, "examples": { "FilterKeyword200Example": { "$ref": "#/components/examples/FilterKeyword200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#keywords-get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:filters" ] } ], "parameters": [ { "name": "filter_id", "in": "path", "required": true, "description": "filter_id parameter", "schema": { "type": "string" } } ] }, "post": { "operationId": "postFilterKeywordsV2", "summary": "Add a keyword to a filter", "description": "Add the given keyword to the specified filter group\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "[FilterKeyword]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilterKeyword" }, "examples": { "FilterKeyword200Example": { "$ref": "#/components/examples/FilterKeyword200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#keywords-create", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "filter_id", "in": "path", "required": true, "description": "filter_id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "keyword": { "type": "string", "description": "The keyword to be added to the filter group." }, "whole_word": { "type": "boolean", "description": "Whether the keyword should consider word boundaries." } }, "required": [ "keyword" ] } } } } } }, "/api/v2/filters/{filter_id}/statuses": { "get": { "operationId": "getFilterStatusesV2", "summary": "View all status filters", "description": "Obtain a list of all status filters within this filter group.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "Array of [FilterStatus]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FilterStatus" } }, "examples": { "FilterStatus200Example": { "$ref": "#/components/examples/FilterStatus200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#statuses-get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:filters" ] } ], "parameters": [ { "name": "filter_id", "in": "path", "required": true, "description": "filter_id parameter", "schema": { "type": "string" } } ] }, "post": { "operationId": "postFilterStatusesV2", "summary": "Add a status to a filter group", "description": "Add a status filter to the current filter group.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "[FilterStatus]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilterStatus" }, "examples": { "FilterStatus200Example": { "$ref": "#/components/examples/FilterStatus200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#statuses-add", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "filter_id", "in": "path", "required": true, "description": "filter_id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "status_id": { "type": "string", "description": "The status ID to be added to the filter group." } }, "required": [ "status_id" ] } } } } } }, "/api/v2/filters/{id}": { "get": { "operationId": "getFilterV2", "summary": "View a specific filter", "description": "Obtain a single filter group owned by the current user.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "[Filter]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Filter" }, "examples": { "Filter200Example": { "$ref": "#/components/examples/Filter200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#get-one", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "put": { "operationId": "updateFilterV2", "summary": "Update a filter", "description": "Update a filter group with the given parameters.\n\nVersion history:\n\n4.0.0 - added\\\n4.4.0 (`mastodon` [API version] 5) - added `blur` value to `filter_action` attribute", "tags": [ "filters" ], "responses": { "200": { "description": "[Filter]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Filter" }, "examples": { "Filter200Example": { "$ref": "#/components/examples/Filter200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#update", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "context": { "type": "array", "description": "Where the filter should be applied. Specify at least one of `home`, `notifications`, `public`, `thread`, `account`.", "items": { "$ref": "#/components/schemas/FilterContextEnum" } }, "expires_in": { "type": "integer", "description": "How many seconds from now should the filter expire?" }, "filter_action": { "type": "string", "description": "The policy to be applied when the filter is matched. Specify `warn`, `hide` or `blur`." }, "keywords_attributes": { "type": "array", "description": "Array of objects with properties: keyword, whole_word, id, _destroy", "items": { "type": "object", "properties": { "keyword": { "type": "string", "description": "A keyword to be added to the newly-created filter group." }, "whole_word": { "type": "boolean", "description": "Whether the keyword should consider word boundaries." }, "id": { "type": "string", "description": "Provide the ID of an existing keyword to modify it, instead of creating a new keyword." }, "_destroy": { "type": "boolean", "description": "If true, will remove the keyword with the given ID." } } } }, "title": { "type": "string", "description": "The name of the filter group." } } } } } } }, "delete": { "operationId": "deleteFilterV2", "summary": "Delete a filter", "description": "Delete a filter group with the given id.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#delete", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v2/filters/keywords/{id}": { "get": { "operationId": "getFilterKeywordV2", "summary": "View a single keyword", "description": "Get one filter keyword by the given id.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "[FilterKeyword]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilterKeyword" }, "examples": { "FilterKeyword200Example": { "$ref": "#/components/examples/FilterKeyword200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#keywords-get-one", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "put": { "operationId": "updateFilterKeywordV2", "summary": "Edit a keyword within a filter", "description": "Update the given filter keyword.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "[FilterKeyword]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilterKeyword" }, "examples": { "FilterKeyword200Example": { "$ref": "#/components/examples/FilterKeyword200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#keywords-update", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "keyword": { "type": "string", "description": "The keyword to be added to the filter group." }, "whole_word": { "type": "boolean", "description": "Whether the keyword should consider word boundaries." } }, "required": [ "keyword" ] } } } } }, "delete": { "operationId": "deleteFilterKeywordV2", "summary": "Remove keywords from a filter", "description": "Deletes the given filter keyword.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#keywords-delete", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v2/filters/statuses/{id}": { "get": { "operationId": "getFilterStatusV2", "summary": "View a single status filter", "description": "Obtain a single status filter.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "[FilterStatus]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilterStatus" }, "examples": { "FilterStatus200Example": { "$ref": "#/components/examples/FilterStatus200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#statuses-get-one", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "delete": { "operationId": "deleteFilterStatusV2", "summary": "Remove a status from a filter group", "description": "Remove a status filter from the current filter group.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "filters" ], "responses": { "200": { "description": "[FilterStatus]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilterStatus" }, "examples": { "FilterStatus200Example": { "$ref": "#/components/examples/FilterStatus200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/filters/#statuses-remove", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:filters" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/follow_requests": { "get": { "operationId": "getFollowRequests", "summary": "View pending follow requests", "description": "Version history:\n\n0.0.0 - added", "tags": [ "follow_requests" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/follow_requests/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:follows", "follow" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/follow_requests/{account_id}/authorize": { "post": { "operationId": "postFollowRequestAuthorize", "summary": "Accept follow request", "description": "Version history:\n\n0.0.0 - added\\\n3.0.0 - now returns Relationship instead of nothing", "tags": [ "follow_requests" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/follow_requests/#accept", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:follows", "follow" ] } ], "parameters": [ { "name": "account_id", "in": "path", "required": true, "description": "account_id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/follow_requests/{account_id}/reject": { "post": { "operationId": "postFollowRequestReject", "summary": "Reject follow request", "description": "Version history:\n\n0.0.0 - added\\\n3.0.0 - now returns Relationship instead of nothing", "tags": [ "follow_requests" ], "responses": { "200": { "description": "[Relationship]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Relationship" }, "examples": { "Relationship200Example": { "$ref": "#/components/examples/Relationship200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/follow_requests/#reject", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:follows", "follow" ] } ], "parameters": [ { "name": "account_id", "in": "path", "required": true, "description": "account_id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/followed_tags": { "get": { "operationId": "getFollowedTags", "summary": "View all followed tags", "description": "List your followed hashtags.\n\nVersion history:\n\n4.0.0 - added\\\n4.1.0 - add pagination headers", "tags": [ "followed_tags" ], "responses": { "200": { "description": "Array of [Tag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "examples": { "Tag200Example": { "$ref": "#/components/examples/Tag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/followed_tags/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:follows" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 100 tags. Max 200 tags.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 100 tags. Max 200 tags.", "default": 100 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/health": { "get": { "operationId": "getHealth", "summary": "Get basic health status as JSON", "description": "Version history:\n\n3.0.0 - added", "tags": [ "health" ], "responses": { "200": { "description": "Health status", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/health/#get", "description": "Official Mastodon API documentation" } } }, "/api/v1/instance": { "get": { "operationId": "getInstance", "summary": "View server information (v1)", "description": "Obtain general information about the server. See [api/v2/instance](https://docs.joinmastodon.org/methods/Instance/#v2) instead.\n\nVersion history:\n\n1.1.0 - added\\\n3.0.0 - requires user token if instance is in whitelist mode\\\n3.1.4 - added `invites_enabled` to response\\\n3.4.0 - added `rules`\\\n3.4.2 - added `configuration`\\\n4.0.0 - deprecated. added `configuration[accounts]`.", "tags": [ "instance" ], "responses": { "200": { "description": "[V1::Instance]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/V1Instance" }, "examples": { "V1Instance200Example": { "$ref": "#/components/examples/V1Instance200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#v1", "description": "Official Mastodon API documentation" }, "deprecated": true } }, "/api/v1/instance/activity": { "get": { "operationId": "getInstanceActivity", "summary": "Weekly activity", "description": "Server activity over the last 3 months, binned weekly.\n\nVersion history:\n\n2.1.2 - added\\\n3.0.0 - requires user token if server is in whitelist mode", "tags": [ "instance" ], "responses": { "200": { "description": "Array of Hash", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "week": { "type": "string", "description": "Midnight at the first day of the week." }, "statuses": { "type": "string", "description": "The number of Statuses created since the week began." }, "logins": { "type": "string", "description": "The number of user logins since the week began." }, "registrations": { "type": "string", "description": "The number of user registrations since the week began." } } } }, "example": [ { "week": "1574640000", "statuses": "37125", "logins": "14239", "registrations": "542" }, { "week": "1574035200", "statuses": "244447", "logins": "28820", "registrations": "4425" }, { "week": "1573430400", "statuses": "270615", "logins": "35388", "registrations": "8781" }, { "week": "1572825600", "statuses": "309722", "logins": "44433", "registrations": "26165" }, { "week": "1572220800", "statuses": "116227", "logins": "19739", "registrations": "2926" }, { "week": "1571616000", "statuses": "119932", "logins": "19247", "registrations": "3188" }, { "week": "1571011200", "statuses": "117892", "logins": "19164", "registrations": "3107" }, { "week": "1570406400", "statuses": "109092", "logins": "18763", "registrations": "2986" }, { "week": "1569801600", "statuses": "107554", "logins": "19614", "registrations": "2904" }, { "week": "1569196800", "statuses": "118067", "logins": "19703", "registrations": "3295" }, { "week": "1568592000", "statuses": "110199", "logins": "19791", "registrations": "3026" }, { "week": "1567987200", "statuses": "106029", "logins": "19089", "registrations": "2769" } ] } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#activity", "description": "Official Mastodon API documentation" } } }, "/api/v1/instance/domain_blocks": { "get": { "operationId": "getInstanceDomainBlocks", "summary": "View moderated servers", "description": "Obtain a list of domains that have been blocked.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "instance" ], "responses": { "200": { "description": "Array of [DomainBlock]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DomainBlock" } }, "examples": { "DomainBlock200Example": { "$ref": "#/components/examples/DomainBlock200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#domain_blocks", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [] } ] } }, "/api/v1/instance/extended_description": { "get": { "operationId": "getInstanceExtendedDescription", "summary": "View extended description", "description": "Obtain an extended description of this server.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "instance" ], "responses": { "200": { "description": "[ExtendedDescription]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExtendedDescription" }, "examples": { "ExtendedDescription200Example": { "$ref": "#/components/examples/ExtendedDescription200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#extended_description", "description": "Official Mastodon API documentation" } } }, "/api/v1/instance/peers": { "get": { "operationId": "getInstancePeers", "summary": "List of connected domains", "description": "Domains that this server is aware of.\n\nVersion history:\n\n2.1.2 - added\\\n3.0.0 - requires user token if server is in whitelist mode", "tags": [ "instance" ], "responses": { "200": { "description": "Array of String", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#peers", "description": "Official Mastodon API documentation" } } }, "/api/v1/instance/privacy_policy": { "get": { "operationId": "getInstancePrivacyPolicy", "summary": "View privacy policy", "description": "Obtain the contents of this server's privacy policy.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "instance" ], "responses": { "200": { "description": "[PrivacyPolicy]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PrivacyPolicy" }, "examples": { "PrivacyPolicy200Example": { "$ref": "#/components/examples/PrivacyPolicy200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#privacy_policy", "description": "Official Mastodon API documentation" } } }, "/api/v1/instance/rules": { "get": { "operationId": "getInstanceRules", "summary": "List of rules", "description": "Rules that the users of this service should follow.\n\nVersion history:\n\n3.4.0 - added", "tags": [ "instance" ], "responses": { "200": { "description": "Array of [Rule]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Rule" } }, "examples": { "Rule200Example": { "$ref": "#/components/examples/Rule200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#rules", "description": "Official Mastodon API documentation" } } }, "/api/v1/instance/terms_of_service": { "get": { "operationId": "getInstanceTermsOfService", "summary": "View terms of service", "description": "Obtain the contents of this server's terms of service, if configured.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "instance" ], "responses": { "200": { "description": "[TermsOfService]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TermsOfService" }, "examples": { "TermsOfService200Example": { "$ref": "#/components/examples/TermsOfService200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#terms_of_service", "description": "Official Mastodon API documentation" } } }, "/api/v1/instance/terms_of_service/{date}": { "get": { "operationId": "getInstanceTermsOfServiceByDate", "summary": "View a specific version of the terms of service", "description": "Obtain the contents of this server's terms of service, for a specified date, if configured.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "instance" ], "responses": { "200": { "description": "[TermsOfService]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TermsOfService" }, "examples": { "TermsOfService200Example": { "$ref": "#/components/examples/TermsOfService200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#terms_of_service_date", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "date", "in": "path", "required": true, "description": "date parameter", "schema": { "type": "string" } } ] } }, "/api/v1/instance/translation_languages": { "get": { "operationId": "getInstanceTranslationLanguages", "summary": "View translation languages", "description": "Translation language pairs supported by the translation engine used by the server.\n\nVersion history:\n\n4.2.0 - added", "tags": [ "instance" ], "responses": { "200": { "description": "Object with source language codes as keys and arrays of target language codes as values.", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#translation_languages", "description": "Official Mastodon API documentation" } } }, "/api/v2/instance": { "get": { "operationId": "getInstanceV2", "summary": "View server information", "description": "Obtain general information about the server.\n\nVersion history:\n\n4.0.0 - added\\\n4.1.0 - added `configuration.urls.status`\\\n4.2.0 - added `registrations.url`\\\n4.3.0 - added `configuration.vapid.public_key`, `api_versions`, `configuration.accounts.max_pinned_statuses`, `icon`\\\n4.4.0 - added `configuration.urls.about`, `configuration.urls.privacy_policy`, `configuration.urls.terms_of_service`, `registrations.min_age`, `registrations.reason_required`, `configuration.limited_federation`\\\n4.6.0 - added `thumbnail.description`", "tags": [ "instance" ], "responses": { "200": { "description": "[Instance]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Instance" }, "examples": { "Instance200Example": { "$ref": "#/components/examples/Instance200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/instance/#v2", "description": "Official Mastodon API documentation" } } }, "/api/v1/lists": { "get": { "operationId": "getLists", "summary": "View your lists", "description": "Fetch all lists that the user owns.\n\nVersion history:\n\n2.1.0 - added", "tags": [ "lists" ], "responses": { "200": { "description": "Array of [List]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/List" } }, "examples": { "List200Example": { "$ref": "#/components/examples/List200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/lists/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:lists" ] } ] }, "post": { "operationId": "createList", "summary": "Create a list", "description": "Create a new list.\n\nVersion history:\n\n2.1.0 - added\\\n3.3.0 - added `replies_policy`\\\n4.2.0 - added `exclusive`", "tags": [ "lists" ], "responses": { "200": { "description": "[List]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/List" }, "examples": { "List200Example": { "$ref": "#/components/examples/List200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/lists/#create", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:lists" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string", "description": "The title of the list to be created." }, "exclusive": { "type": "boolean", "description": "Whether members of this list need to get removed from the “Home” feed." }, "replies_policy": { "type": "string", "description": "One of `followed`, `list`, or `none`. Defaults to `list`.", "default": "list", "$ref": "#/components/schemas/ListRepliesPolicyEnum" } }, "required": [ "title" ] } } } } } }, "/api/v1/lists/{id}": { "get": { "operationId": "getList", "summary": "Show a single list", "description": "Fetch the list with the given ID.\n\nVersion history:\n\n2.1.0 - added", "tags": [ "lists" ], "responses": { "200": { "description": "[List]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/List" }, "examples": { "List200Example": { "$ref": "#/components/examples/List200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/lists/#get-one", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:lists" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "put": { "operationId": "updateList", "summary": "Update a list", "description": "Change the properties of a list.\n\nVersion history:\n\n2.1.0 - added\\\n3.3.0 - added `replies_policy`\n4.2.0 - added `exclusive`", "tags": [ "lists" ], "responses": { "200": { "description": "[List]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/List" }, "examples": { "List200Example": { "$ref": "#/components/examples/List200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/lists/#update", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:lists" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string", "description": "The title of the list to be created." }, "exclusive": { "type": "boolean", "description": "Whether members of this list need to get removed from the “Home” feed." }, "replies_policy": { "type": "string", "description": "One of `followed`, `list`, or `none`. Defaults to `list`.", "default": "list", "$ref": "#/components/schemas/ListRepliesPolicyEnum" } }, "required": [ "title" ] } } } } }, "delete": { "operationId": "deleteList", "summary": "Delete a list", "description": "Version history:\n\n2.1.0 - added", "tags": [ "lists" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/lists/#delete", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:lists" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/lists/{id}/accounts": { "get": { "operationId": "getListAccounts", "summary": "View accounts in a list", "description": "Version history:\n\n2.1.0 - added\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now", "tags": [ "lists" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/lists/#accounts", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:lists" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results. Defaults to 40 accounts. Max 80 accounts. Set to 0 in order to get all accounts without pagination.", "schema": { "type": "integer", "description": "Maximum number of results. Defaults to 40 accounts. Max 80 accounts. Set to 0 in order to get all accounts without pagination.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "min_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] }, "post": { "operationId": "postListAccounts", "summary": "Add accounts to a list", "description": "Add accounts to the given list. Note that the user must be following these accounts.\n\nVersion history:\n\n2.1.0 - added", "tags": [ "lists" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/lists/#accounts-add", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:lists" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "account_ids": { "type": "array", "description": "The accounts that should be added to the list.", "items": { "type": "string" } } }, "required": [ "account_ids" ] } } } } }, "delete": { "operationId": "deleteListAccounts", "summary": "Remove accounts from list", "description": "Remove accounts from the given list.\n\nVersion history:\n\n2.1.0 - added", "tags": [ "lists" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/lists/#accounts-remove", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:lists" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "account_ids": { "type": "array", "description": "The accounts that should be removed from the list.", "items": { "type": "string" } } }, "required": [ "account_ids" ] } } } } } }, "/api/v1/markers": { "get": { "operationId": "getMarkers", "summary": "Get saved timeline positions", "description": "Get current positions in timelines.\n\nVersion history:\n\n3.0.0 - added", "tags": [ "markers" ], "responses": { "200": { "description": "Hash of String (Enumerable, anyOf `home` or `notifications`) key and associated [Marker] value", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/Marker" }, "propertyNames": { "enum": [ "home", "notifications" ] } }, "example": { "notifications": { "last_read_id": "35098814", "version": 361, "updated_at": "2019-11-26T22:37:25.239Z" }, "home": { "last_read_id": "103206604258487607", "version": 468, "updated_at": "2019-11-26T22:37:25.235Z" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/markers/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "timeline", "in": "query", "description": "Specify the timeline(s) for which markers should be fetched. Possible values: `home`, `notifications`. If not provided, an empty object will be returned.", "schema": { "type": "array", "description": "Specify the timeline(s) for which markers should be fetched. Possible values: `home`, `notifications`. If not provided, an empty object will be returned.", "items": { "$ref": "#/components/schemas/FilterContextEnum" } } } ] }, "post": { "operationId": "createMarker", "summary": "Save your position in a timeline", "description": "Save current position in timeline.\n\nVersion history:\n\n3.0.0 - added", "tags": [ "markers" ], "responses": { "200": { "description": "Hash of String (Enumerable, anyOf `home` or `notifications`) key and associated [Marker] value", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/Marker" }, "propertyNames": { "enum": [ "home", "notifications" ] } }, "example": { "home": { "last_read_id": "103194548672408537", "version": 462, "updated_at": "2019-11-24T19:39:39.337Z" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/markers/#create", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "home": { "type": "object", "description": "Object containing properties", "properties": { "last_read_id": { "type": "string", "description": "ID of the last status read in the home timeline." } } }, "notifications": { "type": "object", "description": "Object containing properties", "properties": { "last_read_id": { "type": "string", "description": "ID of the last notification read." } } } } } } } } } }, "/api/v1/media": { "post": { "operationId": "createMedia", "summary": "Upload media as an attachment (v1)", "description": "Creates an attachment to be used with a new status. This method will return after the full sized media is done processing.\n\nVersion history:\n\n0.0.0 - added\\\n2.3.0 - add `focus` parameter\\\n3.1.3 - deprecated in favor of [POST /api/v2/media], which is equal to v1 in all aspects, except it returns HTTP 202, and the returned JSON object has a url of null. This is because while the thumbnail is prepared synchronously, the full version of the media attachment will be processed in the background.\\\n3.2.0 - add `thumbnail` parameter", "tags": [ "media" ], "responses": { "200": { "description": "[MediaAttachment]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MediaAttachment" }, "examples": { "MediaAttachment200Example": { "$ref": "#/components/examples/MediaAttachment200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/media/#v1", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "write:media" ] } ], "parameters": [], "requestBody": { "description": "Multipart form data parameters", "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "description": "The file to be attached, encoded using multipart form data. The file must have a MIME type.", "format": "binary" }, "description": { "type": "string", "description": "A plain-text description of the media, for accessibility purposes." }, "focus": { "type": "string", "description": "Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0. See [Focal points for cropping media thumbnails] for more information." }, "thumbnail": { "type": "string", "description": "The custom thumbnail of the media to be attached, encoded using multipart form data.", "format": "binary" } }, "required": [ "file" ] } } } } } }, "/api/v1/media/{id}": { "get": { "operationId": "getMedia", "summary": "Get media attachment", "description": "Get a media attachment, before it is attached to a status and posted, but after it is accepted for processing. Use this method to check that the full-sized media has finished processing.\n\nVersion history:\n\n3.1.3 - added", "tags": [ "media" ], "responses": { "200": { "description": "[MediaAttachment]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MediaAttachment" }, "examples": { "MediaAttachment200Example": { "$ref": "#/components/examples/MediaAttachment200Example" } } } } }, "206": { "description": "Partial content", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/media/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:media" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "delete": { "operationId": "deleteMedia", "summary": "Delete media attachment", "description": "Delete a media attachment that is not currently attached to a status.\n\nVersion history:\n\n- 4.4.0 (`mastodon` [API version] 4) - added", "tags": [ "media" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/media/#delete", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:media" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "put": { "operationId": "updateMedia", "summary": "Update media attachment", "description": "Update a MediaAttachment's parameters, before it is attached to a status and posted.\n\nVersion history:\n\n0.0.0 - added\\\n2.3.0 - add `focus` parameter\\\n3.2.0 - added `thumbnail`", "tags": [ "media" ], "responses": { "200": { "description": "[MediaAttachment]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MediaAttachment" }, "examples": { "MediaAttachment200Example": { "$ref": "#/components/examples/MediaAttachment200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/media/#update", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:media" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "Multipart form data parameters", "required": false, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "description": { "type": "string", "description": "A plain-text description of the media, for accessibility purposes." }, "focus": { "type": "string", "description": "Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0. See [Focal points for cropping media thumbnails] for more information." }, "thumbnail": { "type": "string", "description": "The custom thumbnail of the media to be attached, encoded using multipart form data.", "format": "binary" } } } } } } } }, "/api/v2/media": { "post": { "operationId": "createMediaV2", "summary": "Upload media as an attachment (async)", "description": "Creates a media attachment to be used with a new status. The full sized media will be processed asynchronously in the background for large uploads.\n\nVersion history:\n\n3.1.3 - added\\\n3.2.0 - add `thumbnail` parameter\\\n4.0.0 - Smaller media formats (image) will be processed synchronously and return 200 instead of 202. Larger media formats (video, gifv, audio) will continue to be processed asynchronously and return 202.", "tags": [ "media" ], "responses": { "200": { "description": "[MediaAttachment], but without a URL", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MediaAttachment" }, "examples": { "MediaAttachment200Example": { "$ref": "#/components/examples/MediaAttachment200Example" } } } } }, "202": { "description": "Accepted", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MediaAttachment" }, "examples": { "MediaAttachment202Example": { "$ref": "#/components/examples/MediaAttachment202Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error500Example": { "$ref": "#/components/examples/Error500Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/media/#v2", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:media" ] } ], "parameters": [], "requestBody": { "description": "Multipart form data parameters", "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "description": "The file to be attached, encoded using multipart form data. The file must have a MIME type.", "format": "binary" }, "description": { "type": "string", "description": "A plain-text description of the media, for accessibility purposes." }, "focus": { "type": "string", "description": "Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0. See [Focal points for cropping media thumbnails] for more information." }, "thumbnail": { "type": "string", "description": "The custom thumbnail of the media to be attached, encoded using multipart form data.", "format": "binary" } }, "required": [ "file" ] } } } } } }, "/api/v1/mutes": { "get": { "operationId": "getMutes", "summary": "View muted accounts", "description": "Accounts the user has muted.\n\nVersion history:\n\n0.0.0 - added\\\n3.3.0 - added `mute_expires_at`", "tags": [ "mutes" ], "responses": { "200": { "description": "Array of [MutedAccount]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MutedAccount" } }, "examples": { "MutedAccount200Example": { "$ref": "#/components/examples/MutedAccount200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/mutes/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:mutes", "follow" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/notifications": { "get": { "operationId": "getNotifications", "summary": "Get all notifications", "description": "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.\n\nVersion history:\n\n0.0.0 - added\\\n2.6.0 - added `min_id`\\\n2.9.0 - added `account_id`\\\n3.1.0 - added `follow_request` type\\\n3.3.0 - added `status` type; both `min_id` and `max_id` can be used at the same time now\\\n3.5.0 - added `types`; add `update` and `admin.sign_up` types\\\n4.0.0 - added `admin.report` type\\\n4.1.0 - notification limit changed from 15 (max 30) to 40 (max 80)\\\n4.3.0 - added `include_filtered` parameter\\\n4.6.0 (`mastodon` [API version] 10) - added `supported_types` optional parameter", "tags": [ "notifications" ], "responses": { "200": { "description": "Array of [Notification]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Notification" } }, "examples": { "Notification200Example": { "$ref": "#/components/examples/Notification200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ], "parameters": [ { "name": "account_id", "in": "query", "description": "Return only notifications received from the specified account.", "schema": { "type": "string", "description": "Return only notifications received from the specified account." } }, { "name": "exclude_types", "in": "query", "description": "Types to exclude from the results.", "schema": { "type": "array", "description": "Types to exclude from the results.", "items": { "$ref": "#/components/schemas/NotificationTypeEnum" } } }, { "name": "include_filtered", "in": "query", "description": "Whether to include notifications filtered by the user's [NotificationPolicy]. Defaults to false.", "schema": { "type": "boolean", "description": "Whether to include notifications filtered by the user's [NotificationPolicy]. Defaults to false.", "default": false } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 notifications. Max 80 notifications.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 notifications. Max 80 notifications.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } }, { "name": "supported_types", "in": "query", "description": "Notification types to not get fallback representation for even when some is available. Passing this parameter is required to get any notification fallback at all. When this parameter is used, and a notification which type is *not* included in `supported_types` has an available fallback representation, it will be included in the notification's `fallback` attribute.", "schema": { "type": "array", "description": "Notification types to not get fallback representation for even when some is available. Passing this parameter is required to get any notification fallback at all. When this parameter is used, and a notification which type is *not* included in `supported_types` has an available fallback representation, it will be included in the notification's `fallback` attribute.", "items": { "type": "string" } } }, { "name": "types", "in": "query", "description": "Types to include in the result.", "schema": { "type": "array", "description": "Types to include in the result.", "items": { "$ref": "#/components/schemas/NotificationTypeEnum" } } } ] } }, "/api/v1/notifications/{id}": { "get": { "operationId": "getNotification", "summary": "Get a single notification", "description": "View information about a notification with a given ID.\n\nVersion history:\n\n0.0.0 - added\\\n4.6.0 (`mastodon` [API version] 10) - added `supported_types` optional parameter", "tags": [ "notifications" ], "responses": { "200": { "description": "[Notification]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notification" }, "examples": { "Notification200Example": { "$ref": "#/components/examples/Notification200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#get-one", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "supported_types", "in": "query", "description": "Notification types to not get fallback representation for even when some is available. Passing this parameter is required to get any notification fallback at all. When this parameter is used, and a notification which type is *not* included in `supported_types` has an available fallback representation, it will be included in the notification's `fallback` attribute.", "schema": { "type": "array", "description": "Notification types to not get fallback representation for even when some is available. Passing this parameter is required to get any notification fallback at all. When this parameter is used, and a notification which type is *not* included in `supported_types` has an available fallback representation, it will be included in the notification's `fallback` attribute.", "items": { "type": "string" } } } ] } }, "/api/v1/notifications/{id}/dismiss": { "post": { "operationId": "postNotificationDismiss", "summary": "Dismiss a single notification", "description": "Dismiss a single notification from the server.\n\nVersion history:\n\n1.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#dismiss", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/notifications/clear": { "post": { "operationId": "createNotificationClear", "summary": "Dismiss all notifications", "description": "Clear all notifications from the server.\n\nVersion history:\n\n0.0.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#clear", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ] } }, "/api/v1/notifications/requests": { "get": { "operationId": "getNotificationRequests", "summary": "Get all notification requests", "description": "Notification requests for notifications filtered by the user's policy. This API returns Link headers containing links to the next/previous page.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Array of [NotificationRequest]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NotificationRequest" } }, "examples": { "NotificationRequest200Example": { "$ref": "#/components/examples/NotificationRequest200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#get-requests", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 notification requests. Max 80 notification requests.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 notification requests. Max 80 notification requests.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } } ] } }, "/api/v1/notifications/requests/{id}": { "get": { "operationId": "getNotificationRequest", "summary": "Get a single notification request", "description": "View information about a notification request with a given ID.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "[NotificationRequest]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationRequest" }, "examples": { "NotificationRequest200Example": { "$ref": "#/components/examples/NotificationRequest200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#get-one-request", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/notifications/requests/{id}/accept": { "post": { "operationId": "postNotificationRequestAccept", "summary": "Accept a single notification request", "description": "Accept a notification request, which merges the filtered notifications from that user back into the main notification and accepts any future notification from them.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#accept-request", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/notifications/requests/{id}/dismiss": { "post": { "operationId": "postNotificationRequestDismiss", "summary": "Dismiss a single notification request", "description": "Dismiss a notification request, which hides it and prevent it from contributing to the pending notification requests count.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#dismiss-request", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/notifications/requests/accept": { "post": { "operationId": "createNotificationRequestAccept", "summary": "Accept multiple notification requests", "description": "Accepts multiple notification requests, which merges the filtered notifications from those users back into the main notifications and accepts any future notification from them.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#accept-multiple-requests", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ] } }, "/api/v1/notifications/requests/dismiss": { "post": { "operationId": "createNotificationRequestDismiss", "summary": "Dismiss multiple notification requests", "description": "Dismiss multiple notification requests, which hides them and prevent them from contributing to the pending notification requests count.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#dismiss-multiple-requests", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ] } }, "/api/v1/notifications/requests/merged": { "get": { "operationId": "getNotificationRequestMerged", "summary": "Check if accepted notification requests have been merged", "description": "Check whether accepted notification requests have been merged.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Hash with a single boolean attribute `merged`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergedResponse" }, "examples": { "MergedResponse200Example": { "$ref": "#/components/examples/MergedResponse200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#requests-merged", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ] } }, "/api/v1/notifications/unread_count": { "get": { "operationId": "getNotificationUnreadCount", "summary": "Get the number of unread notifications", "description": "Get the (capped) number of unread notifications for the current user.", "tags": [ "notifications" ], "responses": { "200": { "description": "Hash with a single key of `count`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CountResponse" }, "examples": { "CountResponse200Example": { "$ref": "#/components/examples/CountResponse200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#unread-count", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ], "parameters": [ { "name": "account_id", "in": "query", "description": "Only count unread notifications received from the specified account.", "schema": { "type": "string", "description": "Only count unread notifications received from the specified account." } }, { "name": "exclude_types", "in": "query", "description": "Types of notifications that should not count towards unread notifications.", "schema": { "type": "array", "description": "Types of notifications that should not count towards unread notifications.", "items": { "type": "string" } } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 100 notifications. Max 1000 notifications.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 100 notifications. Max 1000 notifications.", "default": 100 } }, { "name": "types", "in": "query", "description": "Types of notifications that should count towards unread notifications.", "schema": { "type": "array", "description": "Types of notifications that should count towards unread notifications.", "items": { "type": "string" } } } ] } }, "/api/v2/notifications": { "get": { "operationId": "getNotificationsV2", "summary": "Get all grouped notifications", "description": "Return grouped 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.\n\nVersion history:\n\n4.3.0 (`mastodon` [API version] 2) - added\\\n4.4.0 - added `admin.sign_up` to grouped notification types\\\n4.6.0 (`mastodon` [API version] 10) - added `supported_types` optional parameter", "tags": [ "notifications" ], "responses": { "200": { "description": "[GroupedNotificationsResults]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupedNotificationsResults" }, "examples": { "GroupedNotificationsResults200Example": { "$ref": "#/components/examples/GroupedNotificationsResults200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/grouped_notifications/#get-grouped", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ], "parameters": [ { "name": "account_id", "in": "query", "description": "Return only notifications received from the specified account.", "schema": { "type": "string", "description": "Return only notifications received from the specified account." } }, { "name": "exclude_types", "in": "query", "description": "Types to exclude from the results.", "schema": { "type": "array", "description": "Types to exclude from the results.", "items": { "$ref": "#/components/schemas/NotificationTypeEnum" } } }, { "name": "expand_accounts", "in": "query", "description": "One of `full` (default) or `partial_avatars`. When set to `partial_avatars`, some accounts will not be rendered in full in the returned `accounts` list but will be instead returned in stripped-down form in the `partial_accounts` list. The most recent account in a notification group is always rendered in full in the `accounts` attribute.", "schema": { "type": "string", "description": "One of `full` (default) or `partial_avatars`. When set to `partial_avatars`, some accounts will not be rendered in full in the returned `accounts` list but will be instead returned in stripped-down form in the `partial_accounts` list. The most recent account in a notification group is always rendered in full in the `accounts` attribute." } }, { "name": "grouped_types", "in": "query", "description": "Restrict which notification types can be grouped. Use this if there are notification types for which your client does not support grouping. If omitted, the server will group notifications of all types it supports (currently, `favourite`, `follow`, `reblog` and `admin.sign_up`). If you do not want any notification grouping, use [GET `/api/v1/notifications`] instead. Notifications that would be grouped if not for this parameter will instead be returned as individual single-notification groups with a unique `group_key` that can be assumed to be of the form `ungrouped-{notification_id}`. Please note that neither the streaming API nor the individual notification APIs are aware of this parameter and will always include a “proper” `group_key` that can be different from what is returned here, meaning that you may have to ignore `group_key` for such notifications that you do not want grouped and use `ungrouped-{notification_id}` instead for consistency.", "schema": { "type": "array", "description": "Restrict which notification types can be grouped. Use this if there are notification types for which your client does not support grouping. If omitted, the server will group notifications of all types it supports (currently, `favourite`, `follow`, `reblog` and `admin.sign_up`). If you do not want any notification grouping, use [GET `/api/v1/notifications`] instead. Notifications that would be grouped if not for this parameter will instead be returned as individual single-notification groups with a unique `group_key` that can be assumed to be of the form `ungrouped-{notification_id}`. Please note that neither the streaming API nor the individual notification APIs are aware of this parameter and will always include a “proper” `group_key` that can be different from what is returned here, meaning that you may have to ignore `group_key` for such notifications that you do not want grouped and use `ungrouped-{notification_id}` instead for consistency.", "items": { "$ref": "#/components/schemas/NotificationTypeEnum" } } }, { "name": "include_filtered", "in": "query", "description": "Whether to include notifications filtered by the user's [NotificationPolicy]. Defaults to false.", "schema": { "type": "boolean", "description": "Whether to include notifications filtered by the user's [NotificationPolicy]. Defaults to false.", "default": false } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 notifications. Max 80 notification groups.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 notifications. Max 80 notification groups.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "All results returned will be about notifications strictly older than this notification ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be about notifications strictly older than this notification ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results about notifications immediately newer than this notification ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results about notifications immediately newer than this notification ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "since_id", "in": "query", "description": "All results returned will be about notifications strictly newer than this notification ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be about notifications strictly newer than this notification ID. In effect, sets a lower bound on results." } }, { "name": "supported_types", "in": "query", "description": "Notification types to not get fallback representation for even when some is available. Passing this parameter is required to get any notification fallback at all. When this parameter is used, and a notification which type is *not* included in `supported_types` has an available fallback representation, it will be included in the notification group's `fallback` attribute.", "schema": { "type": "array", "description": "Notification types to not get fallback representation for even when some is available. Passing this parameter is required to get any notification fallback at all. When this parameter is used, and a notification which type is *not* included in `supported_types` has an available fallback representation, it will be included in the notification group's `fallback` attribute.", "items": { "type": "string" } } }, { "name": "types", "in": "query", "description": "Types to include in the result.", "schema": { "type": "array", "description": "Types to include in the result.", "items": { "$ref": "#/components/schemas/NotificationTypeEnum" } } } ] } }, "/api/v2/notifications/{group_key}": { "get": { "operationId": "getNotificationV2", "summary": "Get a single notification group", "description": "View information about a specific notification group with a given group key.\n\nVersion history:\n\n4.3.0 (`mastodon` [API version] 2) - added\\\n4.6.0 (`mastodon` [API version] 10) - added `supported_types` optional parameter", "tags": [ "notifications" ], "responses": { "200": { "description": "[GroupedNotificationsResults]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupedNotificationsResults" }, "examples": { "GroupedNotificationsResults200Example": { "$ref": "#/components/examples/GroupedNotificationsResults200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/grouped_notifications/#get-notification-group", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ], "parameters": [ { "name": "group_key", "in": "path", "required": true, "description": "group_key parameter", "schema": { "type": "string" } }, { "name": "supported_types", "in": "query", "description": "Notification types to not get fallback representation for even when some is available. Passing this parameter is required to get any notification fallback at all. When this parameter is used, and a notification which type is *not* included in `supported_types` has an available fallback representation, it will be included in the notification group's `fallback` attribute.", "schema": { "type": "array", "description": "Notification types to not get fallback representation for even when some is available. Passing this parameter is required to get any notification fallback at all. When this parameter is used, and a notification which type is *not* included in `supported_types` has an available fallback representation, it will be included in the notification group's `fallback` attribute.", "items": { "type": "string" } } } ] } }, "/api/v2/notifications/{group_key}/accounts": { "get": { "operationId": "getNotificationAccountsV2", "summary": "Get accounts of all notifications in a notification group", "description": "Version history:\n\n4.3.0 (`mastodon` [API version] 2) - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/grouped_notifications/#get-group-accounts", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ], "parameters": [ { "name": "group_key", "in": "path", "required": true, "description": "group_key parameter", "schema": { "type": "string" } } ] } }, "/api/v2/notifications/{group_key}/dismiss": { "post": { "operationId": "postNotificationDismissV2", "summary": "Dismiss a single notification group", "description": "Dismiss a single notification group from the server.\n\nVersion history:\n\n4.3.0 (`mastodon` [API version] 2) - added", "tags": [ "notifications" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/grouped_notifications/#dismiss-group", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ], "parameters": [ { "name": "group_key", "in": "path", "required": true, "description": "group_key parameter", "schema": { "type": "string" } } ] } }, "/api/v2/notifications/policy": { "get": { "operationId": "getNotificationPolicyV2", "summary": "Get the filtering policy for notifications", "description": "Notifications filtering policy for the user.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "[NotificationPolicy]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationPolicy" }, "examples": { "NotificationPolicy200Example": { "$ref": "#/components/examples/NotificationPolicy200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#get-policy", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ] }, "patch": { "operationId": "patchNotificationPolicyV2", "summary": "Update the filtering policy for notifications", "description": "Update the user's notifications filtering policy.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "notifications" ], "responses": { "200": { "description": "[NotificationPolicy]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationPolicy" }, "examples": { "NotificationPolicy200Example": { "$ref": "#/components/examples/NotificationPolicy200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/notifications/#update-the-filtering-policy-for-notifications", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:notifications" ] } ] } }, "/api/v2/notifications/unread_count": { "get": { "operationId": "getNotificationUnreadCountV2", "summary": "Get the number of unread notifications", "description": "Get the (capped) number of unread notification groups for the current user.", "tags": [ "notifications" ], "responses": { "200": { "description": "Hash with a single key of `count`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CountResponse" }, "examples": { "CountResponse200Example": { "$ref": "#/components/examples/CountResponse200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/grouped_notifications/#unread-group-count", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:notifications" ] } ], "parameters": [ { "name": "account_id", "in": "query", "description": "Only count unread notifications received from the specified account.", "schema": { "type": "string", "description": "Only count unread notifications received from the specified account." } }, { "name": "exclude_types", "in": "query", "description": "Types of notifications that should not count towards unread notifications.", "schema": { "type": "array", "description": "Types of notifications that should not count towards unread notifications.", "items": { "type": "string" } } }, { "name": "grouped_types", "in": "query", "description": "Restrict which notification types can be grouped. Use this if there are notification types for which your client does not support grouping. If omitted, the server will group notifications of all types it supports (currently, `favourite`, `follow` and `reblog`). If you do not want any notification grouping, use [GET `/api/v1/notifications/unread_count`] instead.", "schema": { "type": "array", "description": "Restrict which notification types can be grouped. Use this if there are notification types for which your client does not support grouping. If omitted, the server will group notifications of all types it supports (currently, `favourite`, `follow` and `reblog`). If you do not want any notification grouping, use [GET `/api/v1/notifications/unread_count`] instead.", "items": { "type": "string" } } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 100 notifications. Max 1000 notifications.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 100 notifications. Max 1000 notifications.", "default": 100 } }, { "name": "types", "in": "query", "description": "Types of notifications that should count towards unread notifications.", "schema": { "type": "array", "description": "Types of notifications that should count towards unread notifications.", "items": { "type": "string" } } } ] } }, "/oauth/authorize": { "get": { "operationId": "getOauthAuthorize", "summary": "Authorize a user", "description": "Displays an authorization form to the user. If approved, it will create and return an authorization code, then redirect to the desired `redirect_uri`, or show the authorization code if `urn:ietf:wg:oauth:2.0:oob` was requested. The authorization code can be used while requesting a token to obtain access to user-level methods.\n\nVersion history:\n\n0.1.0 - added\\\n2.6.0 - added `force_login`\\\n3.5.0 - added `lang`\\\n4.3.0 - added support for PKCE parameters", "tags": [ "oauth" ], "responses": { "200": { "description": "String (URL) or HTML response", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "400": { "description": "Client error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error400Example": { "$ref": "#/components/examples/Error400Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/oauth/#authorize", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "client_id", "in": "query", "required": true, "description": "The client ID, obtained during app registration.", "schema": { "type": "string", "description": "The client ID, obtained during app registration." } }, { "name": "redirect_uri", "in": "query", "required": true, "description": "Set a URI to redirect the user to. If this parameter is set to `urn:ietf:wg:oauth:2.0:oob` then the authorization code will be shown instead. Must match one of the `redirect_uris` declared during app registration.", "schema": { "type": "string", "description": "Set a URI to redirect the user to. If this parameter is set to `urn:ietf:wg:oauth:2.0:oob` then the authorization code will be shown instead. Must match one of the `redirect_uris` declared during app registration." } }, { "name": "response_type", "in": "query", "required": true, "description": "Should be set equal to `code`.", "schema": { "type": "string", "description": "Should be set equal to `code`." } }, { "name": "code_challenge", "in": "query", "description": "The [PKCE code challenge] for the authorization request.", "schema": { "type": "string", "description": "The [PKCE code challenge] for the authorization request." } }, { "name": "code_challenge_method", "in": "query", "description": "Must be `S256`, as this is the only code challenge method that is supported by Mastodon for PKCE.", "schema": { "type": "string", "description": "Must be `S256`, as this is the only code challenge method that is supported by Mastodon for PKCE." } }, { "name": "force_login", "in": "query", "description": "Forces the user to re-login, which is necessary for authorizing with multiple accounts from the same instance.", "schema": { "type": "boolean", "description": "Forces the user to re-login, which is necessary for authorizing with multiple accounts from the same instance." } }, { "name": "lang", "in": "query", "description": "The ISO 639-1 two-letter language code to use while rendering the authorization form.", "schema": { "type": "string", "description": "The ISO 639-1 two-letter language code to use while rendering the authorization form." } }, { "name": "scope", "in": "query", "description": "List of requested [OAuth scopes], separated by spaces (or by pluses, if using query parameters). Must be a subset of `scopes` declared during app registration. If not provided, defaults to `read`.", "schema": { "type": "string", "description": "List of requested [OAuth scopes], separated by spaces (or by pluses, if using query parameters). Must be a subset of `scopes` declared during app registration. If not provided, defaults to `read`.", "default": "read" } }, { "name": "state", "in": "query", "description": "Arbitrary value to pass through to your server when the user authorizes or rejects the authorization request.", "schema": { "type": "string", "description": "Arbitrary value to pass through to your server when the user authorizes or rejects the authorization request." } } ] } }, "/oauth/revoke": { "post": { "operationId": "postOauthRevoke", "summary": "Revoke a token", "description": "Revoke an access token to make it no longer valid for use.\n\nVersion history:\n\n0.1.0 - added", "tags": [ "oauth" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/oauth/#revoke", "description": "Official Mastodon API documentation" }, "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "client_id": { "type": "string", "description": "The client ID, obtained during app registration." }, "client_secret": { "type": "string", "description": "The client secret, obtained during app registration." }, "token": { "type": "string", "description": "The previously obtained token, to be invalidated." } }, "required": [ "client_id", "client_secret", "token" ] } } } } } }, "/oauth/token": { "post": { "operationId": "postOauthToken", "summary": "Obtain a token", "description": "Obtain an access token, to be used during API calls that are not public.\n\nVersion history:\n\n0.1.0 - added\\\n4.3.0 - added support for PKCE parameter", "tags": [ "oauth" ], "responses": { "200": { "description": "[Token]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" }, "examples": { "Token200Example": { "$ref": "#/components/examples/Token200Example" } } } } }, "400": { "description": "Client error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error400Example": { "$ref": "#/components/examples/Error400Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/oauth/#token", "description": "Official Mastodon API documentation" }, "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "client_id": { "type": "string", "description": "The client ID, obtained during app registration." }, "client_secret": { "type": "string", "description": "The client secret, obtained during app registration." }, "code": { "type": "string", "description": "A user authorization code, obtained from the redirect after an [Authorization request] is approved. May alternatively be displayed to the user if `urn:ietf:wg:oauth:2.0:oob` is used as the `redirect_uri`." }, "grant_type": { "type": "string", "description": "Set equal to `authorization_code` if `code` is provided in order to gain user-level access. Otherwise, set equal to `client_credentials` to obtain app-level access only." }, "redirect_uri": { "type": "string", "description": "Must match the `redirect_uri` used during the [Authorization request]." }, "code_verifier": { "type": "string", "description": "Required if [PKCE] is used during the authorization request. This is the code verifier which was used to create the `code_challenge` using the `code_challenge_method` for the authorization request." }, "scope": { "type": "string", "description": "When `grant_type` is set to `client_credentials`, the list of requested OAuth scopes, separated by spaces (or pluses, if using query parameters). Must be a subset of the scopes requested at the time the application was created. If omitted, it defaults to `read`. Has no effect when `grant_type` is `authorization_code`.", "default": "read" } }, "required": [ "client_id", "client_secret", "code", "grant_type", "redirect_uri" ] } } } } } }, "/oauth/userinfo": { "get": { "operationId": "getOauthUserinfo", "summary": "Retrieve user information", "description": "Retrieves standardised OIDC [claims](https://www.iana.org/assignments/jwt/jwt.xhtml#claims) about the currently authenticated user.\\\n\nVersion history:\n\n4.4.0 - added", "tags": [ "oauth" ], "responses": { "200": { "description": "OK", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/oauth/#userinfo", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "profile" ] } ] } }, "/api/oembed": { "get": { "operationId": "getOembed", "summary": "Get OEmbed info as JSON", "description": "Version history:\n\n1.0.0 - added", "tags": [ "oembed" ], "responses": { "200": { "description": "OEmbed metadata", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OEmbedResponse" }, "examples": { "OEmbedResponse200Example": { "$ref": "#/components/examples/OEmbedResponse200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/oembed/#get", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "url", "in": "query", "required": true, "description": "URL of a status.", "schema": { "type": "string", "description": "URL of a status." } }, { "name": "maxheight", "in": "query", "description": "Height of the iframe. Defaults to null", "schema": { "type": "integer", "description": "Height of the iframe. Defaults to null", "default": "null" } }, { "name": "maxwidth", "in": "query", "description": "Width of the iframe. Defaults to 400", "schema": { "type": "integer", "description": "Width of the iframe. Defaults to 400", "default": 400 } } ] } }, "/api/v1/polls/{id}": { "get": { "operationId": "getPoll", "summary": "View a poll", "description": "View a poll attached to a status.\n\nVersion history:\n\n2.8.0 - added", "tags": [ "polls" ], "responses": { "200": { "description": "[Poll]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Poll" }, "examples": { "Poll200Example": { "$ref": "#/components/examples/Poll200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/polls/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/polls/{id}/votes": { "post": { "operationId": "postPollVotes", "summary": "Vote on a poll", "description": "Vote on a poll attached to a status.\n\nVersion history:\n\n2.8.0 - added", "tags": [ "polls" ], "responses": { "200": { "description": "[Poll]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Poll" }, "examples": { "Poll200Example": { "$ref": "#/components/examples/Poll200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/polls/#vote", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "choices": { "type": "array", "description": "Provide your own votes as an index for each option (starting from 0).", "items": { "type": "integer" } } }, "required": [ "choices" ] } } } } } }, "/api/v1/preferences": { "get": { "operationId": "getPreferences", "summary": "View user preferences", "description": "Preferences defined by the user in their account settings.\n\nVersion history:\n\n2.8.0 - added\\\n4.1.0 - added `reading:autoplay:gifs`\\\n4.5.0 (`mastodon` [API version] 7) - added `posting:default:quoted_policy`", "tags": [ "preferences" ], "responses": { "200": { "description": "Preferences by key and value", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/preferences/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:accounts" ] } ] } }, "/api/v1/profile": { "get": { "operationId": "getProfile", "summary": "Get current user profile", "description": "Version history:\n\n4.6.0 (`mastodon` [API version] 8) - added\\\n4.6.0 (`mastodon` [API version] 9) - added `avatar_description` and `header_description`", "tags": [ "profile" ], "responses": { "200": { "description": "[Profile]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Profile" }, "examples": { "Profile200Example": { "$ref": "#/components/examples/Profile200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/profile/#get-current-user-profile", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "profile", "read:accounts" ] } ] }, "patch": { "operationId": "patchProfile", "summary": "Update current user profile", "description": "Update the current user's profile.\n\nVersion history:\n\n4.6.0 (`mastodon` [API version] 8) - added", "tags": [ "profile" ], "responses": { "200": { "description": "[Profile]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Profile" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/profile/#update-current-user-profile", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "attribution_domains": { "type": "array", "description": "Domains of websites allowed to credit the account. Maximum of 10 domains.", "items": { "type": "string" } }, "avatar": { "type": "string", "description": "Avatar image encoded using `multipart/form-data`" }, "avatar_description": { "type": "string", "description": "A plain-text description of the avatar, for accessibility purposes." }, "bot": { "type": "boolean", "description": "Whether the account has a bot flag." }, "discoverable": { "type": "boolean", "description": "Whether the account should be shown in the profile directory and be available for other discovery features, like being included in Collections." }, "display_name": { "type": "string", "description": "The display name to use for the profile." }, "fields_attributes": { "type": "object", "description": "The profile fields to be set. Each hash includes `name` and `value`. By default, max 4 fields (specified in [Instance#max_profile_fields]).", "properties": {}, "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the profile field. By default, max 255 characters (specified in [Instance#profile_field_name_limit])." }, "value": { "type": "string", "description": "The value of the profile field. By default, max 255 characters (specified in [Instance#profile_field_value_limit])." } } } }, "header": { "type": "string", "description": "Header image encoded using `multipart/form-data`" }, "header_description": { "type": "string", "description": "A plain-text description of the header, for accessibility purposes." }, "hide_collections": { "type": "boolean", "description": "Whether to hide followers and followed accounts. This field predates the Collections feature and has nothing to do with it, despite the name." }, "indexable": { "type": "boolean", "description": "Whether public posts should be searchable to anyone." }, "locked": { "type": "boolean", "description": "Whether manual approval of follow requests is required." }, "note": { "type": "string", "description": "The account bio." }, "show_featured": { "type": "boolean", "description": "Whether a “Featured” tab should be shown on this profile." }, "show_media": { "type": "boolean", "description": "Whether a “Media” tab with media attachments should be shown on this profile." }, "show_media_replies": { "type": "boolean", "description": "Whether media attachments in replies should be shown in the “Media” tab of this profile." } } } } } } } }, "/api/v1/profile/avatar": { "delete": { "operationId": "deleteProfileAvatar", "summary": "Delete profile avatar", "description": "Version history:\n\n4.2.0 - added\n\nDeletes the avatar associated with the user's profile.", "tags": [ "profile" ], "responses": { "200": { "description": "[CredentialAccount]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialAccount" }, "examples": { "CredentialAccount200Example": { "$ref": "#/components/examples/CredentialAccount200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/profile/#delete-profile-avatar", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ] } }, "/api/v1/profile/header": { "delete": { "operationId": "deleteProfileHeader", "summary": "Delete profile header", "description": "Version history:\n\n4.2.0 - added\n\nDeletes the header image associated with the user's profile.", "tags": [ "profile" ], "responses": { "200": { "description": "[CredentialAccount]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialAccount" }, "examples": { "CredentialAccount200Example": { "$ref": "#/components/examples/CredentialAccount200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/profile/#delete-profile-header", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ] } }, "/api/v1/push/subscription": { "post": { "operationId": "createPushSubscription", "summary": "Subscribe to push notifications", "description": "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.\n\nVersion history:\n\n2.4.0 - added\\\n3.3.0 - added `data[alerts][status]`\\\n3.4.0 - added `data[policy]`\\\n3.5.0 - added `data[alerts][update]` and `data[alerts][admin.sign_up]`\\\n4.0.0 - added `data[alerts][admin.report]`\\\n4.3.0 - added stricter request parameter validation, invalid endpoint URLs and subscription keys will now result in an error, previously these would be accepted, but silently fail.\\\n4.4.0 - added `subscription[standard]`\\\n4.5.0 (`mastodon` [API version] 7)- added `data[alerts][quote]` and `data[alerts][quoted_update]`", "tags": [ "push" ], "responses": { "200": { "description": "[WebPushSubscription]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebPushSubscription" }, "examples": { "WebPushSubscription200Example": { "$ref": "#/components/examples/WebPushSubscription200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/push/#create", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "push" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "subscription": { "type": "object", "description": "Object containing properties", "properties": { "keys": { "type": "object", "properties": { "p256dh": { "type": "string", "description": "User agent public key. Base64 encoded string of a public key from a ECDH keypair using the `prime256v1` curve." }, "auth": { "type": "string", "description": "Auth secret. Base64 encoded string of 16 bytes of random data." } } }, "endpoint": { "type": "string", "description": "The endpoint URL that is called when a notification event occurs." }, "standard": { "type": "boolean", "description": "Follow standardized webpush (RFC8030+RFC8291+RFC8292) ? Else follow legacy webpush (unpublished version, 4th draft of RFC8291 and 1st draft of RFC8292). Defaults to false." } } }, "data": { "type": "object", "description": "Object containing properties", "properties": { "alerts": { "type": "object", "properties": { "mention": { "type": "boolean", "description": "Receive mention notifications? Defaults to false." }, "quote": { "type": "boolean", "description": "Receive quote notifications? Defaults to false." }, "status": { "type": "boolean", "description": "Receive new subscribed account notifications? Defaults to false." }, "reblog": { "type": "boolean", "description": "Receive reblog notifications? Defaults to false." }, "follow": { "type": "boolean", "description": "Receive follow notifications? Defaults to false." }, "follow_request": { "type": "boolean", "description": "Receive follow request notifications? Defaults to false." }, "favourite": { "type": "boolean", "description": "Receive favourite notifications? Defaults to false." }, "poll": { "type": "boolean", "description": "Receive poll notifications? Defaults to false." }, "update": { "type": "boolean", "description": "Receive status edited notifications? Defaults to false." }, "quoted_update": { "type": "boolean", "description": "Receive quoted status edit notifications? Defaults to false." }, "admin.sign_up": { "type": "boolean", "description": "Receive new user signup notifications? Defaults to false. Must have a role with the appropriate permissions." }, "admin.report": { "type": "boolean", "description": "Receive new report notifications? Defaults to false. Must have a role with the appropriate permissions." } } }, "policy": { "type": "string", "description": "Specify whether to receive push notifications from `all`, `followed`, `follower`, or `none` users." } } } }, "required": [ "subscription" ] } } } } }, "get": { "operationId": "getPushSubscription", "summary": "Get current subscription", "description": "View the PushSubscription currently associated with this access token.\n\nVersion history:\n\n2.4.0 - added", "tags": [ "push" ], "responses": { "200": { "description": "[WebPushSubscription]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebPushSubscription" }, "examples": { "WebPushSubscription200Example": { "$ref": "#/components/examples/WebPushSubscription200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/push/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "push" ] } ] }, "put": { "operationId": "putPushSubscription", "summary": "Change types of notifications", "description": "Updates the current push subscription. Only the data part can be updated. To change fundamentals, a new subscription must be created instead.\n\nVersion history:\n\n2.4.0 - added\\\n3.3.0 - added `data[alerts][status]`\\\n3.4.0 - added `policy`\\\n3.5.0 - added `data[alerts][update]` and `data[alerts][admin.sign_up]`\\\n4.0.0 - added `data[alerts][admin.report]`", "tags": [ "push" ], "responses": { "200": { "description": "[WebPushSubscription]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebPushSubscription" }, "examples": { "WebPushSubscription200Example": { "$ref": "#/components/examples/WebPushSubscription200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/push/#update", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "push" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "description": "Object containing properties", "properties": { "alerts": { "type": "object", "properties": { "mention": { "type": "boolean", "description": "Receive mention notifications? Defaults to false." }, "status": { "type": "boolean", "description": "Receive new subscribed account notifications? Defaults to false." }, "reblog": { "type": "boolean", "description": "Receive reblog notifications? Defaults to false." }, "follow": { "type": "boolean", "description": "Receive follow notifications? Defaults to false." }, "follow_request": { "type": "boolean", "description": "Receive follow request notifications? Defaults to false." }, "favourite": { "type": "boolean", "description": "Receive favourite notifications? Defaults to false." }, "poll": { "type": "boolean", "description": "Receive poll notifications? Defaults to false." }, "update": { "type": "boolean", "description": "Receive status edited notifications? Defaults to false." }, "admin.sign_up": { "type": "boolean", "description": "Receive new user signup notifications? Defaults to false. Must have a role with the appropriate permissions." }, "admin.report": { "type": "boolean", "description": "Receive new report notifications? Defaults to false. Must have a role with the appropriate permissions." } } } } }, "policy": { "type": "string", "description": "Specify whether to receive push notifications from `all`, `followed`, `follower`, or `none` users." } } } } } } }, "delete": { "operationId": "deletePushSubscription", "summary": "Remove current subscription", "description": "Removes the current Web Push API subscription.\n\nVersion history:\n\n2.4.0 - added", "tags": [ "push" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/push/#delete", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "push" ] } ] } }, "/api/v1/reports": { "post": { "operationId": "createReport", "summary": "File a report", "description": "Report problematic accounts and contents to your moderators.\n\nVersion history:\n\n1.1 - added\\\n2.3.0 - add `forward` parameter\\\n3.5.0 - add `category` and `rule_ids` parameters\\\n4.0.0 - `category` is now optional if `rule_ids` is provided\\\n4.2.0 - add `legal` category\\\n4.6.0 - add `collection_ids` parameter", "tags": [ "reports" ], "responses": { "200": { "description": "[Report]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Report" }, "examples": { "Report200Example": { "$ref": "#/components/examples/Report200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/reports/#post", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:reports" ] } ], "parameters": [], "requestBody": { "description": "JSON request body parameters", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "account_id": { "type": "string", "description": "ID of the account to report." }, "category": { "type": "string", "description": "Specify if the report is due to `spam`, `legal` (illegal content), `violation` of enumerated instance rules, or some `other` reason. Defaults to `other`. Will be set to `violation` if `rule_ids[]` is provided (regardless of any category value you provide).", "default": "other", "$ref": "#/components/schemas/ReportCategoryEnum" }, "collection_ids": { "type": "array", "description": "You can attach Collections to the report to provide additional context.", "items": { "type": "string" } }, "comment": { "type": "string", "description": "The reason for the report. Default maximum of 1000 characters." }, "forward": { "type": "boolean", "description": "If the account is remote, should the report be forwarded to the remote admin? Defaults to false.", "default": false }, "rule_ids": { "type": "array", "description": "For `violation` category reports, specify the ID of the exact rules broken. Rules and their IDs are available via [GET /api/v1/instance/rules] and [GET /api/v1/instance]. See [Handling and sorting IDs] for more information.", "items": { "type": "string" } }, "status_ids": { "type": "array", "description": "You can attach statuses to the report to provide additional context.", "items": { "type": "string" } } }, "required": [ "account_id" ] } } } } } }, "/api/v1/scheduled_statuses": { "get": { "operationId": "getScheduledStatuses", "summary": "View scheduled statuses", "description": "Version history:\n\n2.7.0 - added\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now", "tags": [ "scheduled_statuses" ], "responses": { "200": { "description": "Array of [ScheduledStatus]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ScheduledStatus" } }, "examples": { "ScheduledStatus200Example": { "$ref": "#/components/examples/ScheduledStatus200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/scheduled_statuses/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } } ] } }, "/api/v1/scheduled_statuses/{id}": { "get": { "operationId": "getScheduledStatus", "summary": "View a single scheduled status", "description": "Version history:\n\n2.7.0 - added", "tags": [ "scheduled_statuses" ], "responses": { "200": { "description": "[ScheduledStatus]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduledStatus" }, "examples": { "ScheduledStatus200Example": { "$ref": "#/components/examples/ScheduledStatus200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/scheduled_statuses/#get-one", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "put": { "operationId": "updateScheduledStatus", "summary": "Update a scheduled status's publishing date", "description": "Version history:\n\n2.7.0 - added", "tags": [ "scheduled_statuses" ], "responses": { "200": { "description": "[ScheduledStatus]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduledStatus" }, "examples": { "ScheduledStatus200Example": { "$ref": "#/components/examples/ScheduledStatus200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/scheduled_statuses/#update", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "scheduled_at": { "type": "string", "description": "[Datetime] at which the status will be published. Must be at least 5 minutes into the future.", "format": "date-time" } } } } } } }, "delete": { "operationId": "deleteScheduledStatus", "summary": "Cancel a scheduled status", "description": "Version history:\n\n2.7.0 - added", "tags": [ "scheduled_statuses" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/scheduled_statuses/#cancel", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v2/search": { "get": { "operationId": "getSearchV2", "summary": "Perform a search", "description": "Perform a search for content in accounts, statuses and hashtags with the given parameters. Note that the availability of results depends on the specific backend search configuration of the server being queried. By default, accounts and hashtags are always searchable, while statuses depend on an ElasticSearch backend being present and the API request being authenticated (full text search is not available to unauthenticated users).\n\nVersion history:\n\n2.4.1 - added, limit hardcoded to 5\\\n2.8.0 - add `type`, `limit`, `offset`, `min_id`, `max_id`, `account_id`\\\n3.0.0 - add `exclude_unreviewed` param\\\n3.3.0 - `min_id` and `max_id` can be used together\\\n4.0.0 - no longer requires a user token. Without a valid user token, you cannot use the `resolve` or `offset` parameters.", "tags": [ "search" ], "responses": { "200": { "description": "[Search]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Search" }, "examples": { "Search200Example": { "$ref": "#/components/examples/Search200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/search/#v2", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:search" ] } ], "parameters": [ { "name": "q", "in": "query", "required": true, "description": "The search query.", "schema": { "type": "string", "description": "The search query." } }, { "name": "account_id", "in": "query", "description": "If provided, will only return statuses authored by this account.", "schema": { "type": "string", "description": "If provided, will only return statuses authored by this account." } }, { "name": "exclude_unreviewed", "in": "query", "description": "Filter out unreviewed tags? Defaults to false. Use true when trying to find trending tags.", "schema": { "type": "boolean", "description": "Filter out unreviewed tags? Defaults to false. Use true when trying to find trending tags.", "default": false } }, { "name": "following", "in": "query", "description": "Only include accounts that the user is following? Defaults to false.", "schema": { "type": "boolean", "description": "Only include accounts that the user is following? Defaults to false.", "default": false } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return, per type. Defaults to 20 results per category. Max 40 results per category.", "schema": { "type": "integer", "description": "Maximum number of results to return, per type. Defaults to 20 results per category. Max 40 results per category.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "offset", "in": "query", "description": "Skip the first n results. Only applies when `type` is also present (ignored otherwise).", "schema": { "type": "integer", "description": "Skip the first n results. Only applies when `type` is also present (ignored otherwise)." } }, { "name": "resolve", "in": "query", "description": "Only relevant if `type` includes `accounts` or if `q` is a HTTPS URL. In the first case, if `true` and (a) the search query is for a remote account (e.g., `someaccount@someother.server`) and (b) the local server does not know about the account, [WebFinger] is used to try and resolve the account at `someother.server`. This provides the best recall at higher latency. If `false`, only accounts the server knows about are returned. In the second case, if `true`, resolving the URL and returning the matching status, account or Collection is attempted. If `false`, this resolving logic is circumvented and a regular search is performed instead.", "schema": { "type": "boolean", "description": "Only relevant if `type` includes `accounts` or if `q` is a HTTPS URL. In the first case, if `true` and (a) the search query is for a remote account (e.g., `someaccount@someother.server`) and (b) the local server does not know about the account, [WebFinger] is used to try and resolve the account at `someother.server`. This provides the best recall at higher latency. If `false`, only accounts the server knows about are returned. In the second case, if `true`, resolving the URL and returning the matching status, account or Collection is attempted. If `false`, this resolving logic is circumvented and a regular search is performed instead." } }, { "name": "type", "in": "query", "description": "Specify whether to search for only `accounts`, `hashtags`, `statuses`", "schema": { "type": "string", "description": "Specify whether to search for only `accounts`, `hashtags`, `statuses`" } } ] } }, "/api/v1/statuses": { "post": { "operationId": "createStatus", "summary": "Post a new status", "description": "Publish a status with the given parameters.\n\nVersion history:\n\n0.0.0 - added\\\n2.7.0 - `scheduled_at` added\\\n2.8.0 - `poll` added\\\n4.5.0 (`mastodon` [API version] 7) - `quoted_status_id` and `quote_approval_policy` added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]. When `scheduled_at` is present, [ScheduledStatus] is returned instead.", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/Status" }, { "$ref": "#/components/schemas/ScheduledStatus" } ] }, "example": { "id": "103254962155278888", "created_at": "2019-12-05T11:34:47.196Z", "content": "

test content

", "application": { "name": "test app", "website": null } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#create", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "Idempotency-Key", "in": "header", "description": "Provide this header with any arbitrary string to prevent duplicate submissions of the same status. Consider using a hash or UUID generated client-side. Idempotency keys are stored for up to 1 hour.", "schema": { "type": "object", "description": "Provide this header with any arbitrary string to prevent duplicate submissions of the same status. Consider using a hash or UUID generated client-side. Idempotency keys are stored for up to 1 hour." } } ], "requestBody": { "description": "JSON request body parameters for creating a status. Different types of statuses have different requirements.", "required": true, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/TextStatus" }, { "$ref": "#/components/schemas/MediaStatus" }, { "$ref": "#/components/schemas/PollStatus" } ] } } } } }, "get": { "operationId": "getStatuses", "summary": "View multiple statuses", "description": "Obtain information about multiple statuses.\n\nVersion history:\n\n4.3.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#index", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "query", "description": "The IDs of the Statuses in the database.", "schema": { "type": "array", "description": "The IDs of the Statuses in the database.", "items": { "type": "string" } } } ] } }, "/api/v1/statuses/{id}": { "get": { "operationId": "getStatus", "summary": "View a single status", "description": "Obtain information about a status.\n\nVersion history:\n\n0.0.0 - added\\\n2.7.0 - public statuses no longer require token", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] }, "delete": { "operationId": "deleteStatus", "summary": "Delete a status", "description": "Delete one of your own statuses.\n\nVersion history:\n\n0.0.0 - added\\\n2.9.0 - return source properties, for use with delete and redraft\\\n4.4.0 (`mastodon` [API version] 4) - added `delete_media` optional parameter", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status] with source `text` and `poll` or `media_attachments`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#delete", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "delete_media", "in": "query", "description": "Whether to immediately delete the post's media attachments. If omitted or `false`, media attachments may be kept for approximately 24 hours so they can be re-used in a new post.", "schema": { "type": "boolean", "description": "Whether to immediately delete the post's media attachments. If omitted or `false`, media attachments may be kept for approximately 24 hours so they can be re-used in a new post." } } ] }, "put": { "operationId": "updateStatus", "summary": "Edit a status", "description": "Edit a given status to change its text, sensitivity, media attachments, or poll. Notes:\n\nVersion history:\n\n3.5.0 - added\\\n4.0.0 - add `language`\\\n4.5.0 (`mastodon` [API version] 7) - add `quote_approval_policy`", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#edit", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "language": { "type": "string", "description": "ISO 639-1 language code for the status." }, "media_attributes[]": { "type": "array", "description": "Each array includes id, description, and focus.", "items": { "type": "string" } }, "media_ids": { "type": "array", "description": "Include Attachment IDs to be attached as media. If provided, `status` becomes optional, and `poll` cannot be used.", "items": { "type": "string" } }, "poll": { "type": "object", "description": "Object containing properties", "properties": { "options": { "type": "array", "description": "Possible answers to the poll. If provided, `media_ids` cannot be used, and `poll[expires_in]` must be provided.", "items": { "type": "string" } }, "expires_in": { "type": "integer", "description": "Duration that the poll should be open, in seconds. If provided, `media_ids` cannot be used, and `poll[options]` must be provided." }, "multiple": { "type": "boolean", "description": "Allow multiple choices? Defaults to false." }, "hide_totals": { "type": "boolean", "description": "Hide vote counts until the poll ends? Defaults to false." } } }, "quote_approval_policy": { "type": "string", "description": "String (Enumerable, oneOf). Sets who is allowed to quote the status. Ignored if `visibility` is `private` or `direct`, in which case the policy will always be set to `nobody`. Changing the policy does not invalidate past quotes. `public` = Anyone is allowed to quote this status and will have their quote automatically accepted, unless they are blocked. `followers` = Only followers and the author are allowed to quote this status, and will have their quote automatically accepted. `nobody` = Only the author is allowed to quote the status." }, "sensitive": { "type": "boolean", "description": "Whether the status should be marked as sensitive." }, "spoiler_text": { "type": "string", "description": "The plain text subject or content warning of the status." }, "status": { "type": "string", "description": "The plain text content of the status." } } } } } } } }, "/api/v1/statuses/{id}/bookmark": { "post": { "operationId": "postStatusBookmark", "summary": "Bookmark a status", "description": "Privately bookmark a status.\n\nVersion history:\n\n3.1.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#bookmark", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:bookmarks" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/context": { "get": { "operationId": "getStatusContext", "summary": "Get parent and child statuses in context", "description": "View statuses above and below this status in the thread.\n\nVersion history:\n\n0.0.0 - added\\\n4.0.0 - limit unauthenticated requests\\\n4.5.0 - added experimental `Mastodon-Async-Refresh` header", "tags": [ "statuses" ], "responses": { "200": { "description": "[Context]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Mastodon-Async-Refresh": { "$ref": "#/components/headers/Mastodon-Async-Refresh" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Context" }, "examples": { "Context200Example": { "$ref": "#/components/examples/Context200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#context", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/favourite": { "post": { "operationId": "postStatusFavourite", "summary": "Favourite a status", "description": "Add a status to your favourites list.\n\nVersion history:\n\n0.0.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#favourite", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:favourites" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/favourited_by": { "get": { "operationId": "getStatusFavouritedBy", "summary": "See who favourited a status", "description": "View who favourited a given status.\n\nVersion history:\n\n0.0.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#favourited_by", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/statuses/{id}/history": { "get": { "operationId": "getStatusHistory", "summary": "View edit history of a status", "description": "Get all known versions of a status, including the initial and current states.\n\nVersion history:\n\n3.5.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "Array of [StatusEdit]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/StatusEdit" } }, "examples": { "StatusEdit200Example": { "$ref": "#/components/examples/StatusEdit200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#history", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/interaction_policy": { "put": { "operationId": "updateStatusInteractionPolicy", "summary": "Edit a status' interaction policies", "description": "Edit a given status to change its interaction policies. Currently, this means changing its quote approval policy.\n\nVersion history:\n\n4.5.0 (`mastodon` [API version] 7) - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#edit_interaction_policy", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "quote_approval_policy": { "type": "string", "description": "String (Enumerable, oneOf). Sets who is allowed to quote the status. Ignored if `visibility` is `private` or `direct`, in which case the policy will always be set to `nobody`. Changing the policy does not invalidate past quotes. `public` = Anyone is allowed to quote this status and will have their quote automatically accepted, unless they are blocked. `followers` = Only followers and the author are allowed to quote this status, and will have their quote automatically accepted. `nobody` = Only the author is allowed to quote the status." } } } } } } } }, "/api/v1/statuses/{id}/mute": { "post": { "operationId": "postStatusMute", "summary": "Mute a conversation", "description": "Do not receive notifications for the thread that this status is part of. Must be a thread in which you are a participant.\n\nVersion history:\n\n1.4.2 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#mute", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:mutes" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/pin": { "post": { "operationId": "postStatusPin", "summary": "Pin status to profile", "description": "Feature one of your own public statuses at the top of your profile.\n\nVersion history:\n\n1.6.0 - added\\\n3.5.0 - you can now pin private posts", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#pin", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/quotes": { "get": { "operationId": "getStatusQuotes", "summary": "See quotes of a status", "description": "View quotes of a status.\n\nVersion history:\n\n4.5.0 (`mastodon` [API version] 7) - added", "tags": [ "statuses" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#quotes", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/statuses/{id}/quotes/{quoting_status_id}/revoke": { "post": { "operationId": "postStatusQuoteRevoke", "summary": "Revoke a quote post", "description": "Revoke quote authorization of status `quoting_status_id`, detaching status `id`.\n\nVersion history:\n\n4.5.0 (`mastodon` [API version] 7) - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#revoke_quote", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "quoting_status_id", "in": "path", "required": true, "description": "quoting_status_id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/reblog": { "post": { "operationId": "postStatusReblog", "summary": "Boost a status", "description": "Reshare a status on your own profile.\n\nVersion history:\n\n0.0.0 - added\\\n2.8.0 - add `visibility` parameter", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#boost", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "visibility": { "type": "string", "description": "String (Enumerable, oneOf `public`, `unlisted`, or `private`). Defaults to public.", "default": "public", "$ref": "#/components/schemas/StatusVisibilityEnum" } } } } } } } }, "/api/v1/statuses/{id}/reblogged_by": { "get": { "operationId": "getStatusRebloggedBy", "summary": "See who boosted a status", "description": "View who boosted a given status.\n\nVersion history:\n\n0.0.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#reblogged_by", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } }, { "name": "max_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } }, { "name": "since_id", "in": "query", "description": "Internal parameter. Use HTTP `Link` header for pagination.", "schema": { "type": "string", "description": "Internal parameter. Use HTTP `Link` header for pagination." } } ] } }, "/api/v1/statuses/{id}/source": { "get": { "operationId": "getStatusSource", "summary": "View status source", "description": "Obtain the source properties for a status so that it can be edited.\n\nVersion history:\n\n3.5.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[StatusSource]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatusSource" }, "examples": { "StatusSource200Example": { "$ref": "#/components/examples/StatusSource200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#source", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/translate": { "post": { "operationId": "postStatusTranslate", "summary": "Translate a status", "description": "Translate the status content into some language. Only statuses with Public and Unlisted visibility can be translated.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Translation]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Translation" }, "examples": { "Translation200Example": { "$ref": "#/components/examples/Translation200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error403Example": { "$ref": "#/components/examples/Error403Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Service unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#translate", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ], "requestBody": { "description": "JSON request body parameters", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "lang": { "type": "string", "description": "String (ISO 639-1 language code). The status content will be translated into this language. Defaults to the user's current locale (which in turn falls back to server default)." } } } } } } } }, "/api/v1/statuses/{id}/unbookmark": { "post": { "operationId": "postStatusUnbookmark", "summary": "Undo bookmark of a status", "description": "Remove a status from your private bookmarks.\n\nVersion history:\n\n3.1.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#unbookmark", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:bookmarks" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/unfavourite": { "post": { "operationId": "postStatusUnfavourite", "summary": "Undo favourite of a status", "description": "Remove a status from your favourites list.\n\nVersion history:\n\n0.0.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#unfavourite", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:favourites" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/unmute": { "post": { "operationId": "postStatusUnmute", "summary": "Unmute a conversation", "description": "Start receiving notifications again for the thread that this status is part of.\n\nVersion history:\n\n1.4.2 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#unmute", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:mutes" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/unpin": { "post": { "operationId": "postStatusUnpin", "summary": "Unpin status from profile", "description": "Unfeature a status from the top of your profile.\n\nVersion history:\n\n1.6.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#unpin", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/statuses/{id}/unreblog": { "post": { "operationId": "postStatusUnreblog", "summary": "Undo boost of a status", "description": "Undo a reshare of a status.\n\nVersion history:\n\n0.0.0 - added", "tags": [ "statuses" ], "responses": { "200": { "description": "[Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Status" }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } }, "links": { "getStatus": { "$ref": "#/components/links/getStatusById" }, "deleteStatus": { "$ref": "#/components/links/deleteStatusById" }, "getStatusContext": { "$ref": "#/components/links/getStatusContextById" }, "postStatusTranslate": { "$ref": "#/components/links/postStatusTranslateById" }, "getStatusRebloggedBy": { "$ref": "#/components/links/getStatusRebloggedByById" }, "getStatusQuotes": { "$ref": "#/components/links/getStatusQuotesById" }, "getStatusFavouritedBy": { "$ref": "#/components/links/getStatusFavouritedByById" }, "postStatusFavourite": { "$ref": "#/components/links/postStatusFavouriteById" }, "postStatusUnfavourite": { "$ref": "#/components/links/postStatusUnfavouriteById" }, "postStatusReblog": { "$ref": "#/components/links/postStatusReblogById" }, "postStatusUnreblog": { "$ref": "#/components/links/postStatusUnreblogById" }, "postStatusBookmark": { "$ref": "#/components/links/postStatusBookmarkById" }, "postStatusUnbookmark": { "$ref": "#/components/links/postStatusUnbookmarkById" }, "postStatusQuoteRevoke": { "$ref": "#/components/links/postStatusQuoteRevokeById" }, "postStatusMute": { "$ref": "#/components/links/postStatusMuteById" }, "postStatusUnmute": { "$ref": "#/components/links/postStatusUnmuteById" }, "postStatusPin": { "$ref": "#/components/links/postStatusPinById" }, "postStatusUnpin": { "$ref": "#/components/links/postStatusUnpinById" }, "updateStatus": { "$ref": "#/components/links/updateStatusById" }, "updateStatusInteractionPolicy": { "$ref": "#/components/links/updateStatusInteractionPolicyById" }, "getStatusHistory": { "$ref": "#/components/links/getStatusHistoryById" }, "getStatusSource": { "$ref": "#/components/links/getStatusSourceById" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/statuses/#unreblog", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:statuses" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/streaming/direct": { "get": { "operationId": "getStreamingDirect", "summary": "Watch for direct messages", "description": "Returns events for received direct messages.\n\nVersion history:\n\n2.4.0 - added\\\n2.6.0 - now returns `conversation` instead of `update`", "tags": [ "streaming" ], "responses": { "200": { "description": "`conversation`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#direct", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ] } }, "/api/v1/streaming/hashtag": { "get": { "operationId": "getStreamingHashtag", "summary": "Watch the public timeline for a hashtag", "description": "Returns all public statuses for a particular hashtag\n\nVersion history:\n\n1.0.0 - added\\\n3.5.0 - now returns `status.update`\\\n4.2.0 - changed to require a User token, removing Public and App token access [#23989]", "tags": [ "streaming" ], "responses": { "200": { "description": "`update`, `delete`, `status.update`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#hashtag", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "tag", "in": "query", "required": true, "description": "The name of the hashtag to watch.", "schema": { "type": "string", "description": "The name of the hashtag to watch." } } ] } }, "/api/v1/streaming/hashtag/local": { "get": { "operationId": "getStreamingHashtagLocal", "summary": "Watch the local timeline for a hashtag", "description": "Returns all local public statuses for a particular hashtag\n\nVersion history:\n\n1.1.0 - added\\\n3.5.0 - now returns `status.update`\\\n4.2.0 - changed to require a User token, removing Public and App token access [#23989]", "tags": [ "streaming" ], "responses": { "200": { "description": "`update`, `delete`, `status.update`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#hashtag-local", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "tag", "in": "query", "required": true, "description": "The name of the hashtag to watch.", "schema": { "type": "string", "description": "The name of the hashtag to watch." } } ] } }, "/api/v1/streaming/health": { "get": { "operationId": "getStreamingHealth", "summary": "Check if the server is alive", "description": "Verify that the streaming service is alive before connecting to it\n\nVersion history:\n\n2.5.0 - added", "tags": [ "streaming" ], "responses": { "200": { "description": "String", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#health", "description": "Official Mastodon API documentation" } } }, "/api/v1/streaming/list": { "get": { "operationId": "getStreamingList", "summary": "Watch for list updates", "description": "Returns statuses for a list\n\nVersion history:\n\n2.1.0 - added\\\n3.5.0 - now returns `status.update`\\\n4.2.0 - changed to require a User token, removing Public and App token access [#23989]", "tags": [ "streaming" ], "responses": { "200": { "description": "`update`, `delete`, `status.update`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#list", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "list", "in": "query", "required": true, "description": "The ID of the list to watch.", "schema": { "type": "string", "description": "The ID of the list to watch." } } ] } }, "/api/v1/streaming/public": { "get": { "operationId": "getStreamingPublic", "summary": "Watch the federated timeline", "description": "Returns all public statuses\n\nVersion history:\n\n1.0.0 - added\\\n2.4.0 - add `only_media` parameter\\\n3.5.0 - now returns `status.update`\\\n4.2.0 - changed to require a User token, removing Public and App token access [#23989]", "tags": [ "streaming" ], "responses": { "200": { "description": "`update`, `delete`, `status.update`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#public", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "only_media", "in": "query", "description": "If true, return only statuses with media attachments.", "schema": { "type": "boolean", "description": "If true, return only statuses with media attachments." } } ] } }, "/api/v1/streaming/public/local": { "get": { "operationId": "getStreamingPublicLocal", "summary": "Watch the local timeline", "description": "Returns all local public statuses\n\nVersion history:\n\n1.1.0 - added\\\n2.4.0 - add `only_media` parameter\\\n3.5.0 - now returns `status.update`\\\n4.2.0 - changed to require a User token, removing Public and App token access [#23989]", "tags": [ "streaming" ], "responses": { "200": { "description": "`update`, `delete`, `status.update`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#public-local", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "only_media", "in": "query", "description": "If true, return only statuses with media attachments.", "schema": { "type": "boolean", "description": "If true, return only statuses with media attachments." } } ] } }, "/api/v1/streaming/public/remote": { "get": { "operationId": "getStreamingPublicRemote", "summary": "Watch for remote statuses", "description": "Returns all public statuses from remote servers.\n\nVersion history:\n\n3.1.4 - added\\\n3.5.0 - now returns `status.update`\\\n4.2.0 - changed to require a User token, removing Public and App token access [#23989]", "tags": [ "streaming" ], "responses": { "200": { "description": "`update`, `delete`, `status.update`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#public-remote", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "only_media", "in": "query", "description": "If true, return only statuses with media attachments.", "schema": { "type": "boolean", "description": "If true, return only statuses with media attachments." } } ] } }, "/api/v1/streaming/user": { "get": { "operationId": "getStreamingUser", "summary": "Watch your home timeline and notifications", "description": "Returns events that are relevant to the authorized user, i.e. home timeline and notifications\n\nVersion history:\n\n1.0.0 - added\\\n1.4.2 - now returns `notification`\\\n2.4.3 - now returns `filters_changed`\\\n3.1.0 - now returns `announcement`, `announcement.reaction`, `announcement.delete`\\\n3.5.0 - now returns `status.update`", "tags": [ "streaming" ], "responses": { "200": { "description": "`update`, `delete`, `notification`, `filters_changed`, `announcement`, `announcement.reaction`, `announcement.delete`, `status.update`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#user", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses", "read:notifications" ] } ] } }, "/api/v1/streaming/user/notification": { "get": { "operationId": "getStreamingUserNotification", "summary": "Watch your notifications", "description": "Returns events for received notifications\n\nVersion history:\n\n1.4.2 - added", "tags": [ "streaming" ], "responses": { "200": { "description": "`notification`", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "text/event-stream": {} } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/streaming/#notification", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses", "read:notifications" ] } ] } }, "/api/v1/suggestions": { "get": { "operationId": "getSuggestions", "summary": "View follow suggestions (v1)", "description": "Accounts the user has had past positive interactions with, but is not yet following.\n\nVersion history:\n\n2.4.3 - added\\\n3.4.0 - deprecated", "tags": [ "suggestions" ], "responses": { "200": { "description": "Array of [Account]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "examples": { "Account200Example": { "$ref": "#/components/examples/Account200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/suggestions/#v1", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "read" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } } ] } }, "/api/v1/suggestions/{account_id}": { "delete": { "operationId": "deleteSuggestion", "summary": "Remove a suggestion", "description": "Remove an account from follow suggestions.\n\nVersion history:\n\n2.4.3 - added", "tags": [ "suggestions" ], "responses": { "200": { "description": "Empty", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/suggestions/#remove", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read" ] } ], "parameters": [ { "name": "account_id", "in": "path", "required": true, "description": "account_id parameter", "schema": { "type": "string" } } ] } }, "/api/v2/suggestions": { "get": { "operationId": "getSuggestionsV2", "summary": "View follow suggestions (v2)", "description": "Accounts that are promoted by staff, or that the user has had past positive interactions with, but is not yet following.\n\nVersion history:\n\n3.4.0 - added", "tags": [ "suggestions" ], "responses": { "200": { "description": "Array of [Suggestion]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Suggestion" } }, "examples": { "Suggestion200Example": { "$ref": "#/components/examples/Suggestion200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/suggestions/#v2", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts.", "default": 40 } } ] } }, "/api/v1/tags/{id}/feature": { "post": { "operationId": "postTagFeature", "summary": "Feature a hashtag", "description": "Feature the hashtag on your profile.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "tags" ], "responses": { "200": { "description": "[Tag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" }, "examples": { "Tag200Example": { "$ref": "#/components/examples/Tag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/tags/#feature", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/tags/{id}/unfeature": { "post": { "operationId": "postTagUnfeature", "summary": "Unfeature a hashtag", "description": "Stop featuring the hashtag on your profile.\n\nVersion history:\n\n4.4.0 - added", "tags": [ "tags" ], "responses": { "200": { "description": "[Tag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" }, "examples": { "Tag200Example": { "$ref": "#/components/examples/Tag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/tags/#unfeature", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:accounts" ] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "id parameter", "schema": { "type": "string" } } ] } }, "/api/v1/tags/{name}": { "get": { "operationId": "getTag", "summary": "View information about a single tag", "description": "Show a hashtag and its associated information\n\nVersion history:\n\n4.0.0 - added", "tags": [ "tags" ], "responses": { "200": { "description": "[Tag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" }, "examples": { "Tag200Example": { "$ref": "#/components/examples/Tag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/tags/#get", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "description": "name parameter", "schema": { "type": "string" } } ] } }, "/api/v1/tags/{name}/follow": { "post": { "operationId": "postTagFollow", "summary": "Follow a hashtag", "description": "Follow a hashtag. Posts containing a followed hashtag will be inserted into your home timeline.\n\nVersion history:\n\n4.0.0 - added\\\n4.1.0 - this action is now idempotent", "tags": [ "tags" ], "responses": { "200": { "description": "[Tag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" }, "examples": { "Tag200Example": { "$ref": "#/components/examples/Tag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error422Example": { "$ref": "#/components/examples/Error422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/tags/#follow", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:follows" ] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "description": "name parameter", "schema": { "type": "string" } } ] } }, "/api/v1/tags/{name}/unfollow": { "post": { "operationId": "postTagUnfollow", "summary": "Unfollow a hashtag", "description": "Unfollow a hashtag. Posts containing this hashtag will no longer be inserted into your home timeline.\n\nVersion history:\n\n4.0.0 - added", "tags": [ "tags" ], "responses": { "200": { "description": "[Tag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tag" }, "examples": { "Tag200Example": { "$ref": "#/components/examples/Tag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/tags/#unfollow", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "write:follows" ] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "description": "name parameter", "schema": { "type": "string" } } ] } }, "/api/v1/timelines/direct": { "get": { "operationId": "getTimelineDirect", "summary": "View direct timeline", "description": "View statuses with a \"direct\" privacy, from your account or in your notifications.\n\nVersion history:\n\nx.x.x - added\\\n2.6.0 - add `min_id`. deprecated in favor of [Conversations API]\\\n3.0.0 - removed", "tags": [ "timelines" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/timelines/#direct", "description": "Official Mastodon API documentation" }, "deprecated": true, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } } ] } }, "/api/v1/timelines/home": { "get": { "operationId": "getTimelineHome", "summary": "View home timeline", "description": "View statuses from followed users and hashtags.\n\nVersion history:\n\n0.0.0 - added\\\n2.6.0 - add `min_id`\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now\\\n4.0.0 - as users can now follow hashtags, statuses from non-followed users may appear in the timeline", "tags": [ "timelines" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "206": { "description": "Partial content", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/timelines/#home", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } } ] } }, "/api/v1/timelines/link": { "get": { "operationId": "getTimelineLink", "summary": "View link timeline", "description": "View public statuses containing a link to the specified currently-trending article. This only lists statuses from people who have opted in to discoverability features.\n\nVersion history:\n\n4.3.0 - added\\\n4.5.0 - add [access control settings]", "tags": [ "timelines" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/timelines/#link", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "url", "in": "query", "required": true, "description": "The URL of the trending article.", "schema": { "type": "string", "description": "The URL of the trending article." } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } } ] } }, "/api/v1/timelines/list/{list_id}": { "get": { "operationId": "getTimelineList", "summary": "View list timeline", "description": "View statuses in the given list timeline.\n\nVersion history:\n\n2.1.0 - added\\\n2.6.0 - add `min_id`\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now", "tags": [ "timelines" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/timelines/#list", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:lists" ] } ], "parameters": [ { "name": "list_id", "in": "path", "required": true, "description": "list_id parameter", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } } ] } }, "/api/v1/timelines/public": { "get": { "operationId": "getTimelinePublic", "summary": "View public timeline", "description": "View public statuses.\n\nVersion history:\n\n0.0.0 - added\\\n2.3.0 - added `only_media`\\\n2.6.0 - add `min_id`\\\n3.0.0 - auth is required if public preview is disabled\\\n3.1.4 - added `remote`\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now\\\n4.5.0 - add [access control settings]", "tags": [ "timelines" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/timelines/#public", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "local", "in": "query", "description": "Show only local statuses? Defaults to false.", "schema": { "type": "boolean", "description": "Show only local statuses? Defaults to false.", "default": false } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "only_media", "in": "query", "description": "Show only statuses with media attached? Defaults to false.", "schema": { "type": "boolean", "description": "Show only statuses with media attached? Defaults to false.", "default": false } }, { "name": "remote", "in": "query", "description": "Show only remote statuses? Defaults to false.", "schema": { "type": "boolean", "description": "Show only remote statuses? Defaults to false.", "default": false } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } } ] } }, "/api/v1/timelines/tag/{hashtag}": { "get": { "operationId": "getTimelineTagByHashtag", "summary": "View hashtag timeline", "description": "View public statuses containing the given hashtag.\n\nVersion history:\n\n0.0.0 - added\\\n2.3.0 - added `only_media`\\\n2.6.0 - add `min_id`\\\n2.7.0 - add `any[]`, `all[]`, `none[]` for additional tags\\\n3.0.0 - auth is required if public preview is disabled\\\n3.3.0 - both `min_id` and `max_id` can be used at the same time now. add `remote`\\\n4.5.0 - add [access control settings]", "tags": [ "timelines" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" }, "Link": { "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/timelines/#tag", "description": "Official Mastodon API documentation" }, "security": [ { "OAuth2": [ "read:statuses" ] } ], "parameters": [ { "name": "hashtag", "in": "path", "required": true, "description": "hashtag parameter", "schema": { "type": "string" } }, { "name": "all", "in": "query", "description": "Return statuses that contain all of these additional tags.", "schema": { "type": "array", "description": "Return statuses that contain all of these additional tags.", "items": { "type": "string" } } }, { "name": "any", "in": "query", "description": "Return statuses that contain any of these additional tags.", "schema": { "type": "array", "description": "Return statuses that contain any of these additional tags.", "items": { "type": "string" } } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "local", "in": "query", "description": "Return only local statuses? Defaults to false.", "schema": { "type": "boolean", "description": "Return only local statuses? Defaults to false.", "default": false } }, { "name": "max_id", "in": "query", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results.", "schema": { "type": "string", "description": "All results returned will be lesser than this ID. In effect, sets an upper bound on results." } }, { "name": "min_id", "in": "query", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward.", "schema": { "type": "string", "description": "Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward." } }, { "name": "none", "in": "query", "description": "Return statuses that contain none of these additional tags.", "schema": { "type": "array", "description": "Return statuses that contain none of these additional tags.", "items": { "type": "string" } } }, { "name": "only_media", "in": "query", "description": "Return only statuses with media attachments? Defaults to false.", "schema": { "type": "boolean", "description": "Return only statuses with media attachments? Defaults to false.", "default": false } }, { "name": "remote", "in": "query", "description": "Return only remote statuses? Defaults to false.", "schema": { "type": "boolean", "description": "Return only remote statuses? Defaults to false.", "default": false } }, { "name": "since_id", "in": "query", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results.", "schema": { "type": "string", "description": "All results returned will be greater than this ID. In effect, sets a lower bound on results." } } ] } }, "/api/v1/trends/links": { "get": { "operationId": "getTrendLinks", "summary": "View trending links", "description": "Links that have been shared more than others.\n\nVersion history:\n\n3.5.0 - added", "tags": [ "trends" ], "responses": { "200": { "description": "Array of [Trends::Link]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TrendsLink" } }, "examples": { "TrendsLink200Example": { "$ref": "#/components/examples/TrendsLink200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/trends/#links", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 10 links. Max 20 links.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 10 links. Max 20 links.", "default": 10 } }, { "name": "offset", "in": "query", "description": "Skip the first n results.", "schema": { "type": "integer", "description": "Skip the first n results." } } ] } }, "/api/v1/trends/statuses": { "get": { "operationId": "getTrendStatuses", "summary": "View trending statuses", "description": "Statuses that have been interacted with more than others.\n\nVersion history:\n\n3.5.0 - added", "tags": [ "trends" ], "responses": { "200": { "description": "Array of [Status]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "examples": { "Status200Example": { "$ref": "#/components/examples/Status200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/trends/#statuses", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses.", "default": 20 } }, { "name": "offset", "in": "query", "description": "Skip the first n results.", "schema": { "type": "integer", "description": "Skip the first n results." } } ] } }, "/api/v1/trends/tags": { "get": { "operationId": "getTrendTags", "summary": "View trending tags", "description": "Tags that are being used more frequently within the past week.\n\nVersion history:\n\n3.0.0 - added\\\n3.5.0 - method signature changed from `GET /api/v1/trends` to `GET /api/v1/trends/tags`. The former is a deprecated alias that may be removed in the future.", "tags": [ "trends" ], "responses": { "200": { "description": "Array of [Tag]", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "examples": { "Tag200Example": { "$ref": "#/components/examples/Tag200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/trends/#tags", "description": "Official Mastodon API documentation" }, "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return. Defaults to 10 tags. Max 20 tags.", "schema": { "type": "integer", "description": "Maximum number of results to return. Defaults to 10 tags. Max 20 tags.", "default": 10 } }, { "name": "offset", "in": "query", "description": "Skip the first n results.", "schema": { "type": "integer", "description": "Skip the first n results." } } ] } }, "/.well-known/oauth-authorization-server": { "get": { "operationId": "getWellKnownOauthAuthorizationServer", "summary": "Discover OAuth Server Configuration", "description": "Returns the OAuth 2 Authorization Server Metadata for the Mastodon server, as defined by [RFC 8414](https://datatracker.ietf.org/doc/html/rfc8414#section-3.2).\n\nVersion history:\n\n4.3.0 - added\\\n4.4.0 - added `userinfo_endpoint`", "tags": [ "well-known" ], "responses": { "200": { "description": "JSON as per the above description", "headers": { "X-RateLimit-Limit": { "$ref": "#/components/headers/X-RateLimit-Limit" }, "X-RateLimit-Remaining": { "$ref": "#/components/headers/X-RateLimit-Remaining" }, "X-RateLimit-Reset": { "$ref": "#/components/headers/X-RateLimit-Reset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoverOauthServerConfigurationResponse" }, "examples": { "DiscoverOauthServerConfigurationResponse200Example": { "$ref": "#/components/examples/DiscoverOauthServerConfigurationResponse200Example" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error401Example": { "$ref": "#/components/examples/Error401Example" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error404Example": { "$ref": "#/components/examples/Error404Example" } } } } }, "410": { "description": "Gone" }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationError" }, "examples": { "ValidationError422Example": { "$ref": "#/components/examples/ValidationError422Example" } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error429Example": { "$ref": "#/components/examples/Error429Example" } } } } }, "503": { "description": "Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "Error503Example": { "$ref": "#/components/examples/Error503Example" } } } } } }, "externalDocs": { "url": "https://docs.joinmastodon.org/methods/oauth/#authorization-server-metadata", "description": "Official Mastodon API documentation" } } } }, "components": { "schemas": { "OAuthScope": { "type": "string", "description": "OAuth scope for API access", "enum": [ "profile", "read", "write", "push", "follow", "admin:read", "admin:write", "read:accounts", "read:blocks", "read:bookmarks", "read:collections", "read:favourites", "read:filters", "read:follows", "read:lists", "read:mutes", "read:notifications", "read:search", "read:statuses", "write:accounts", "write:blocks", "write:bookmarks", "write:collections", "write:conversations", "write:favourites", "write:filters", "write:follows", "write:lists", "write:media", "write:mutes", "write:notifications", "write:reports", "write:statuses", "admin:read:accounts", "admin:read:canonical_email_blocks", "admin:read:domain_allows", "admin:read:domain_blocks", "admin:read:email_domain_blocks", "admin:read:ip_blocks", "admin:read:reports", "admin:write:accounts", "admin:write:canonical_email_blocks", "admin:write:domain_allows", "admin:write:domain_blocks", "admin:write:email_domain_blocks", "admin:write:ip_blocks", "admin:write:reports" ] }, "OAuthScopes": { "type": "array", "description": "Array of OAuth scopes", "items": { "$ref": "#/components/schemas/OAuthScope" } }, "Account": { "type": "object", "description": "Represents a user of Mastodon and their associated profile.", "properties": { "acct": { "description": "The WebFinger account URI. Equal to `username` for local users, or `username@domain` for remote users.", "type": "string" }, "avatar": { "description": "An image icon that is shown next to statuses and in the profile.", "type": "string", "format": "uri" }, "avatar_static": { "description": "A static version of the avatar. Equal to `avatar` if its value is a static image; different if `avatar` is an animated GIF.", "type": "string", "format": "uri" }, "bot": { "description": "Indicates that the account may perform automated actions, may not be monitored, or identifies as a robot. This is determined by the account's `actor_type` being set to 'Application' or 'Service'.", "type": "boolean" }, "created_at": { "description": "When the account was created.", "type": "string", "format": "date-time" }, "display_name": { "description": "The profile's display name.", "type": "string" }, "emojis": { "description": "Custom emoji entities to be used when rendering the profile.", "type": "array", "items": { "$ref": "#/components/schemas/CustomEmoji" } }, "fields": { "description": "Additional metadata attached to a profile as name-value pairs.", "type": "array", "items": { "$ref": "#/components/schemas/Field" } }, "followers_count": { "description": "The reported followers of this profile.", "type": "integer" }, "following_count": { "description": "The reported follows of this profile.", "type": "integer" }, "group": { "description": "Indicates that the account represents a Group actor.", "type": "boolean" }, "header": { "description": "An image banner that is shown above the profile and in profile cards. Will end `/headers/original/missing.png` if the user has not set a header image.", "type": "string", "format": "uri" }, "header_static": { "description": "A static version of the header. Equal to `header` if its value is a static image; different if `header` is an animated GIF.", "type": "string", "format": "uri" }, "id": { "description": "The account id.", "type": "string" }, "indexable": { "description": "Whether the account allows indexing by search engines.", "type": "boolean" }, "locked": { "description": "Whether the account manually approves follow requests.", "type": "boolean" }, "note": { "description": "The profile's bio or description.", "type": "string" }, "statuses_count": { "description": "How many statuses are attached to this account.", "type": "integer" }, "uri": { "description": "The user's ActivityPub actor identifier (used for federation).", "type": "string", "format": "uri" }, "username": { "description": "The username of the account, not including domain.", "type": "string" }, "avatar_description": { "description": "A textual description of the avatar image.", "type": [ "string", "null" ] }, "discoverable": { "description": "Whether the account has opted into discovery features such as the profile directory.", "type": [ "boolean", "null" ] }, "feature_approval": { "description": "Summary of the account's policy with regards to being featured in a [Collection](https://docs.joinmastodon.org/entities/Collection/) and how it applies to the user making the request.", "oneOf": [ { "$ref": "#/components/schemas/FeatureApproval" }, { "type": "null" } ] }, "header_description": { "description": "A textual description of the header image.", "type": [ "string", "null" ] }, "hide_collections": { "description": "Whether the user hides the contents of their follows and followers collections.", "type": [ "boolean", "null" ] }, "last_status_at": { "description": "When the most recent status was posted.", "type": [ "string", "null" ], "format": "date" }, "limited": { "description": "An extra attribute returned only when an account is silenced. If true, indicates that the account should be hidden behind a warning screen.", "type": [ "boolean", "null" ] }, "memorial": { "description": "An extra attribute returned only when an account is memorialized (when `memorial` is true).", "type": [ "boolean", "null" ] }, "moved": { "description": "Indicates that the profile is currently inactive and that its user has moved to a new account.", "oneOf": [ { "$ref": "#/components/schemas/Account" }, { "type": "null" } ] }, "noindex": { "description": "Whether the local user has opted out of being indexed by search engines.", "type": [ "boolean", "null" ] }, "roles": { "description": "An array of roles assigned to the user that are publicly visible (highlighted roles only), if the account is local. Will be an empty array if no roles are highlighted or null if the account is remote.", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/AccountRole" } }, "show_featured": { "description": "Whether the account wishes to have a “Featured” tab on their profile.", "type": [ "boolean", "null" ] }, "show_media": { "description": "Whether the account wishes to have a “Media” tab with media attachments on their profile.", "type": [ "boolean", "null" ] }, "show_media_replies": { "description": "Whether the account wishes to have replies in the “Media” tab on their profile.", "type": [ "boolean", "null" ] }, "suspended": { "description": "An extra attribute returned only when an account is suspended.", "type": [ "boolean", "null" ] }, "url": { "description": "The location of the user's profile page (web interface URL).", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "acct", "avatar", "avatar_static", "bot", "created_at", "display_name", "emojis", "fields", "followers_count", "following_count", "group", "header", "header_static", "id", "indexable", "locked", "note", "statuses_count", "uri", "username" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Account/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "23634", "username": "noiob", "acct": "noiob@awoo.space", "display_name": "ikea shark fan account", "locked": false, "bot": false, "created_at": "2017-02-08T02:00:53.274Z", "note": "

:ms_rainbow_flag:​ :ms_bisexual_flagweb:​ :ms_nonbinary_flag:​ #awoo.space #admin ~ #bi ~ #nonbinary ~ compsci student ~ likes video #games and weird/ old electronics and will post obsessively about both ~ avatar by @dzuk

", "url": "https://awoo.space/@noiob", "avatar": "https://files.mastodon.social/accounts/avatars/000/023/634/original/6ca8804dc46800ad.png", "avatar_static": "https://files.mastodon.social/accounts/avatars/000/023/634/original/6ca8804dc46800ad.png", "avatar_description": "a shark", "header": "https://files.mastodon.social/accounts/headers/000/023/634/original/256eb8d7ac40f49a.png", "header_static": "https://files.mastodon.social/accounts/headers/000/023/634/original/256eb8d7ac40f49a.png", "header_description": "sharks in the sea", "followers_count": 547, "following_count": 404, "statuses_count": 28468, "last_status_at": "2019-11-17", "indexable": true, "show_media": true, "show_media_replies": true, "show_featured": true, "roles": [], "emojis": [ { "shortcode": "ms_rainbow_flag", "url": "https://files.mastodon.social/custom_emojis/images/000/028/691/original/6de008d6281f4f59.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/028/691/static/6de008d6281f4f59.png", "visible_in_picker": true }, { "shortcode": "ms_bisexual_flag", "url": "https://files.mastodon.social/custom_emojis/images/000/050/744/original/02f94a5fca7eaf78.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/050/744/static/02f94a5fca7eaf78.png", "visible_in_picker": true }, { "shortcode": "ms_nonbinary_flag", "url": "https://files.mastodon.social/custom_emojis/images/000/105/099/original/8106088bd4782072.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/105/099/static/8106088bd4782072.png", "visible_in_picker": true } ], "fields": [ { "name": "Pronouns", "value": "they/them", "verified_at": null }, { "name": "Alt", "value": "@noiob", "verified_at": null }, { "name": "Bots", "value": "@darksouls, @nierautomata, @fedi, code for @awoobot", "verified_at": null }, { "name": "Website", "value": "http://shork.xyz", "verified_at": "2019-11-10T10:31:10.744+00:00" } ], "feature_approval": { "automatic": [ "public" ], "manual": [], "current_user": "automatic" } } }, "CredentialAccount": { "type": "object", "description": "Additional entity definition for CredentialAccount", "properties": { "acct": { "description": "The WebFinger account URI. Equal to `username` for local users, or `username@domain` for remote users.", "type": "string" }, "avatar": { "description": "An image icon that is shown next to statuses and in the profile.", "type": "string", "format": "uri" }, "avatar_static": { "description": "A static version of the avatar. Equal to `avatar` if its value is a static image; different if `avatar` is an animated GIF.", "type": "string", "format": "uri" }, "bot": { "description": "Indicates that the account may perform automated actions, may not be monitored, or identifies as a robot. This is determined by the account's `actor_type` being set to 'Application' or 'Service'.", "type": "boolean" }, "created_at": { "description": "When the account was created.", "type": "string", "format": "date-time" }, "display_name": { "description": "The profile's display name.", "type": "string" }, "emojis": { "description": "Custom emoji entities to be used when rendering the profile.", "type": "array", "items": { "$ref": "#/components/schemas/CustomEmoji" } }, "fields": { "description": "Additional metadata attached to a profile as name-value pairs.", "type": "array", "items": { "$ref": "#/components/schemas/Field" } }, "followers_count": { "description": "The reported followers of this profile.", "type": "integer" }, "following_count": { "description": "The reported follows of this profile.", "type": "integer" }, "group": { "description": "Indicates that the account represents a Group actor.", "type": "boolean" }, "header": { "description": "An image banner that is shown above the profile and in profile cards. Will end `/headers/original/missing.png` if the user has not set a header image.", "type": "string", "format": "uri" }, "header_static": { "description": "A static version of the header. Equal to `header` if its value is a static image; different if `header` is an animated GIF.", "type": "string", "format": "uri" }, "id": { "description": "The account id.", "type": "string" }, "indexable": { "description": "Whether the account allows indexing by search engines.", "type": "boolean" }, "locked": { "description": "Whether the account manually approves follow requests.", "type": "boolean" }, "note": { "description": "The profile's bio or description.", "type": "string" }, "role": { "description": "The complete role assigned to the currently authorized user, including permissions and highlighted status.", "$ref": "#/components/schemas/Role" }, "source": { "description": "An extra attribute that contains source values to be used with API methods that [verify credentials](https://docs.joinmastodon.org/methods/accounts/#verify_credentials) and [update credentials](https://docs.joinmastodon.org/methods/accounts/#update_credentials).", "type": "object", "properties": { "fields": { "description": "Metadata about the account.", "type": "array", "items": { "$ref": "#/components/schemas/Field" } }, "follow_requests_count": { "description": "The number of pending follow requests.", "type": "integer" }, "indexable": { "description": "Whether public posts should be searchable to anyone.", "type": "boolean" }, "note": { "description": "Profile bio, in plain text instead of HTML.", "type": "string" }, "privacy": { "description": "The default post privacy to be used for new statuses.", "type": "string", "$ref": "#/components/schemas/StatusVisibilityEnum" }, "sensitive": { "description": "Whether new statuses should be marked sensitive by default.", "type": "boolean" }, "attribution_domains": { "description": "Domains of websites allowed to credit the account.", "type": [ "array", "null" ], "items": { "type": "string" } }, "discoverable": { "description": "Whether the account has opted into discovery features such as the profile directory.", "type": [ "boolean", "null" ] }, "hide_collections": { "description": "Whether the user hides the contents of their follows and followers collections.", "type": [ "boolean", "null" ] }, "language": { "description": "The default posting language for new statuses.", "type": [ "string", "null" ], "format": "iso-639-1" }, "quote_policy": { "description": "The default quote policy to be used for new statuses.", "type": [ "string", "null" ], "$ref": "#/components/schemas/ScheduledStatusParamsQuoteApprovalPolicyEnum" } }, "required": [ "fields", "follow_requests_count", "indexable", "note", "privacy", "sensitive" ] }, "statuses_count": { "description": "How many statuses are attached to this account.", "type": "integer" }, "uri": { "description": "The user's ActivityPub actor identifier (used for federation).", "type": "string", "format": "uri" }, "username": { "description": "The username of the account, not including domain.", "type": "string" }, "avatar_description": { "description": "A textual description of the avatar image.", "type": [ "string", "null" ] }, "discoverable": { "description": "Whether the account has opted into discovery features such as the profile directory.", "type": [ "boolean", "null" ] }, "feature_approval": { "description": "Summary of the account's policy with regards to being featured in a [Collection](https://docs.joinmastodon.org/entities/Collection/) and how it applies to the user making the request.", "oneOf": [ { "$ref": "#/components/schemas/FeatureApproval" }, { "type": "null" } ] }, "header_description": { "description": "A textual description of the header image.", "type": [ "string", "null" ] }, "hide_collections": { "description": "Whether the user hides the contents of their follows and followers collections.", "type": [ "boolean", "null" ] }, "last_status_at": { "description": "When the most recent status was posted.", "type": [ "string", "null" ], "format": "date" }, "limited": { "description": "An extra attribute returned only when an account is silenced. If true, indicates that the account should be hidden behind a warning screen.", "type": [ "boolean", "null" ] }, "memorial": { "description": "An extra attribute returned only when an account is memorialized (when `memorial` is true).", "type": [ "boolean", "null" ] }, "moved": { "description": "Indicates that the profile is currently inactive and that its user has moved to a new account.", "oneOf": [ { "$ref": "#/components/schemas/Account" }, { "type": "null" } ] }, "noindex": { "description": "Whether the local user has opted out of being indexed by search engines.", "type": [ "boolean", "null" ] }, "roles": { "description": "An array of roles assigned to the user that are publicly visible (highlighted roles only), if the account is local. Will be an empty array if no roles are highlighted or null if the account is remote.", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/AccountRole" } }, "show_featured": { "description": "Whether the account wishes to have a “Featured” tab on their profile.", "type": [ "boolean", "null" ] }, "show_media": { "description": "Whether the account wishes to have a “Media” tab with media attachments on their profile.", "type": [ "boolean", "null" ] }, "show_media_replies": { "description": "Whether the account wishes to have replies in the “Media” tab on their profile.", "type": [ "boolean", "null" ] }, "suspended": { "description": "An extra attribute returned only when an account is suspended.", "type": [ "boolean", "null" ] }, "url": { "description": "The location of the user's profile page (web interface URL).", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "acct", "avatar", "avatar_static", "bot", "created_at", "display_name", "emojis", "fields", "followers_count", "following_count", "group", "header", "header_static", "id", "indexable", "locked", "note", "role", "source", "statuses_count", "uri", "username" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Account/#CredentialAccount", "description": "Official Mastodon API documentation" } }, "MutedAccount": { "type": "object", "description": "Additional entity definition for MutedAccount", "properties": { "acct": { "description": "The WebFinger account URI. Equal to `username` for local users, or `username@domain` for remote users.", "type": "string" }, "avatar": { "description": "An image icon that is shown next to statuses and in the profile.", "type": "string", "format": "uri" }, "avatar_static": { "description": "A static version of the avatar. Equal to `avatar` if its value is a static image; different if `avatar` is an animated GIF.", "type": "string", "format": "uri" }, "bot": { "description": "Indicates that the account may perform automated actions, may not be monitored, or identifies as a robot. This is determined by the account's `actor_type` being set to 'Application' or 'Service'.", "type": "boolean" }, "created_at": { "description": "When the account was created.", "type": "string", "format": "date-time" }, "display_name": { "description": "The profile's display name.", "type": "string" }, "emojis": { "description": "Custom emoji entities to be used when rendering the profile.", "type": "array", "items": { "$ref": "#/components/schemas/CustomEmoji" } }, "fields": { "description": "Additional metadata attached to a profile as name-value pairs.", "type": "array", "items": { "$ref": "#/components/schemas/Field" } }, "followers_count": { "description": "The reported followers of this profile.", "type": "integer" }, "following_count": { "description": "The reported follows of this profile.", "type": "integer" }, "group": { "description": "Indicates that the account represents a Group actor.", "type": "boolean" }, "header": { "description": "An image banner that is shown above the profile and in profile cards. Will end `/headers/original/missing.png` if the user has not set a header image.", "type": "string", "format": "uri" }, "header_static": { "description": "A static version of the header. Equal to `header` if its value is a static image; different if `header` is an animated GIF.", "type": "string", "format": "uri" }, "id": { "description": "The account id.", "type": "string" }, "indexable": { "description": "Whether the account allows indexing by search engines.", "type": "boolean" }, "locked": { "description": "Whether the account manually approves follow requests.", "type": "boolean" }, "note": { "description": "The profile's bio or description.", "type": "string" }, "statuses_count": { "description": "How many statuses are attached to this account.", "type": "integer" }, "uri": { "description": "The user's ActivityPub actor identifier (used for federation).", "type": "string", "format": "uri" }, "username": { "description": "The username of the account, not including domain.", "type": "string" }, "avatar_description": { "description": "A textual description of the avatar image.", "type": [ "string", "null" ] }, "discoverable": { "description": "Whether the account has opted into discovery features such as the profile directory.", "type": [ "boolean", "null" ] }, "feature_approval": { "description": "Summary of the account's policy with regards to being featured in a [Collection](https://docs.joinmastodon.org/entities/Collection/) and how it applies to the user making the request.", "oneOf": [ { "$ref": "#/components/schemas/FeatureApproval" }, { "type": "null" } ] }, "header_description": { "description": "A textual description of the header image.", "type": [ "string", "null" ] }, "hide_collections": { "description": "Whether the user hides the contents of their follows and followers collections.", "type": [ "boolean", "null" ] }, "last_status_at": { "description": "When the most recent status was posted.", "type": [ "string", "null" ], "format": "date" }, "limited": { "description": "An extra attribute returned only when an account is silenced. If true, indicates that the account should be hidden behind a warning screen.", "type": [ "boolean", "null" ] }, "memorial": { "description": "An extra attribute returned only when an account is memorialized (when `memorial` is true).", "type": [ "boolean", "null" ] }, "moved": { "description": "Indicates that the profile is currently inactive and that its user has moved to a new account.", "oneOf": [ { "$ref": "#/components/schemas/Account" }, { "type": "null" } ] }, "mute_expires_at": { "description": "When a timed mute will expire, if applicable.", "type": [ "string", "null" ], "format": "date-time" }, "noindex": { "description": "Whether the local user has opted out of being indexed by search engines.", "type": [ "boolean", "null" ] }, "roles": { "description": "An array of roles assigned to the user that are publicly visible (highlighted roles only), if the account is local. Will be an empty array if no roles are highlighted or null if the account is remote.", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/AccountRole" } }, "show_featured": { "description": "Whether the account wishes to have a “Featured” tab on their profile.", "type": [ "boolean", "null" ] }, "show_media": { "description": "Whether the account wishes to have a “Media” tab with media attachments on their profile.", "type": [ "boolean", "null" ] }, "show_media_replies": { "description": "Whether the account wishes to have replies in the “Media” tab on their profile.", "type": [ "boolean", "null" ] }, "suspended": { "description": "An extra attribute returned only when an account is suspended.", "type": [ "boolean", "null" ] }, "url": { "description": "The location of the user's profile page (web interface URL).", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "acct", "avatar", "avatar_static", "bot", "created_at", "display_name", "emojis", "fields", "followers_count", "following_count", "group", "header", "header_static", "id", "indexable", "locked", "note", "statuses_count", "uri", "username" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Account/#MutedAccount", "description": "Official Mastodon API documentation" } }, "AccountRole": { "type": "object", "description": "Additional entity definition for AccountRole", "properties": { "color": { "description": "The hex code assigned to this role. If no hex code is assigned, the string will be empty.", "type": "string" }, "id": { "description": "The ID of the Role in the database.", "type": "string" }, "name": { "description": "The name of the role.", "type": "string" } }, "required": [ "color", "id", "name" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Account/#attributes", "description": "Official Mastodon API documentation" } }, "Field": { "type": "object", "description": "Additional entity definition for Field", "properties": { "name": { "description": "The key of a given field's key-value pair. This is the raw string before processing, not HTML.", "type": "string" }, "value": { "description": "The value associated with the `name` key. This is the raw string before processing, not HTML.", "type": "string" }, "verified_at": { "description": "Timestamp of when the server verified a URL value for a rel=\"me\" link.", "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "name", "value" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Account/#Field", "description": "Official Mastodon API documentation" } }, "PartialAccountWithAvatar": { "type": "object", "description": "Additional entity definition for PartialAccountWithAvatar", "properties": { "acct": { "description": "The WebFinger account URI. Equal to `username` for local users, or `username@domain` for remote users.", "type": "string" }, "avatar": { "description": "An image icon that is shown next to statuses and in the profile.", "type": "string", "format": "uri" }, "avatar_static": { "description": "A static version of the avatar. Equal to `avatar` if its value is a static image; different if `avatar` is an animated GIF.", "type": "string", "format": "uri" }, "bot": { "description": "Indicates that the account may perform automated actions, may not be monitored, or identifies as a robot.", "type": "boolean" }, "id": { "description": "The account id.", "type": "string" }, "locked": { "description": "Whether the account manually approves follow requests.", "type": "boolean" }, "url": { "description": "The location of the user's profile page.", "type": "string", "format": "uri" }, "avatar_description": { "description": "A textual description of the avatar image.", "type": [ "string", "null" ] } }, "required": [ "acct", "avatar", "avatar_static", "bot", "id", "locked", "url" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Account/#attributes", "description": "Official Mastodon API documentation" } }, "AccountWarning": { "type": "object", "description": "Moderation warning against a particular account.", "properties": { "action": { "description": "Action taken against the account.", "type": "string", "$ref": "#/components/schemas/AccountWarningActionEnum" }, "created_at": { "description": "When the event took place.", "type": "string", "format": "date-time" }, "id": { "description": "The ID of the account warning.", "type": "string" }, "target_account": { "description": "Account against which a moderation decision has been taken. If this `AccountWarning` is present in a [Notification](/entities/Notification/) then this is always the same as the authenticated account that requested the notification.", "$ref": "#/components/schemas/Account" }, "text": { "description": "Message from the moderator to the target account.", "type": "string" }, "appeal": { "description": "Appeal submitted by the target account, if any.", "oneOf": [ { "$ref": "#/components/schemas/Appeal" }, { "type": "null" } ] }, "status_ids": { "description": "List of status IDs that are relevant to the warning. When `action` is `mark_statuses_as_sensitive` or `delete_statuses`, those are the affected statuses. If the action is `delete_statuses` then they have been irrevocably deleted (irrespective of the appeal state), and will be inaccessible to the client.", "type": [ "array", "null" ], "items": { "type": "string" } } }, "required": [ "action", "created_at", "id", "target_account", "text" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/AccountWarning/#attributes", "description": "Official Mastodon API documentation" } }, "AdminAccount": { "type": "object", "description": "Admin-level information about a given account.", "properties": { "account": { "description": "User-level information about the account.", "$ref": "#/components/schemas/Account" }, "approved": { "description": "Whether the account is currently approved.", "type": "boolean" }, "confirmed": { "description": "Whether the account has confirmed their email address.", "type": "boolean" }, "created_at": { "description": "When the account was first discovered.", "type": "string", "format": "date-time" }, "disabled": { "description": "Whether the account is currently disabled.", "type": "boolean" }, "email": { "description": "The email address associated with the account.", "type": "string", "format": "email" }, "id": { "description": "The ID of the account in the database.", "type": "string" }, "ips": { "description": "All known IP addresses associated with this account.", "type": "array", "items": { "$ref": "#/components/schemas/AdminIp" } }, "locale": { "description": "The locale of the account.", "type": "string", "format": "iso-639-1" }, "role": { "description": "The current role of the account.", "$ref": "#/components/schemas/Role" }, "sensitized": { "description": "Whether the account is currently marked sensitive.", "type": "boolean" }, "silenced": { "description": "Whether the account is currently silenced.", "type": "boolean" }, "suspended": { "description": "Whether the account is currently suspended.", "type": "boolean" }, "username": { "description": "The username of the account.", "type": "string" }, "created_by_application_id": { "description": "The ID of the [Application](https://docs.joinmastodon.org/entities/application/) that created this account, if applicable.", "type": [ "string", "null" ] }, "domain": { "description": "The domain of the account, if it is remote.", "type": [ "string", "null" ] }, "invite_request": { "description": "The reason given when requesting an invite (for instances that require manual approval of registrations)", "type": [ "string", "null" ] }, "invited_by_account_id": { "description": "The ID of the [Account](https://docs.joinmastodon.org/entities/account/) that invited this user, if applicable.", "type": [ "string", "null" ] }, "ip": { "description": "The IP address last used to login to this account.", "type": [ "string", "null" ] } }, "required": [ "account", "approved", "confirmed", "created_at", "disabled", "email", "id", "ips", "locale", "role", "sensitized", "silenced", "suspended", "username" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Account/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "108965278956942133", "username": "admin", "domain": null, "created_at": "2022-09-08T23:03:26.762Z", "email": "admin@mastodon.local", "ip": "192.168.42.1", "role": { "id": 3, "name": "Owner", "color": "", "position": 1000, "permissions": 1, "highlighted": true, "created_at": "2022-09-08T22:48:07.983Z", "updated_at": "2022-09-08T22:48:07.983Z" }, "confirmed": true, "suspended": false, "silenced": false, "sensitized": true, "disabled": false, "approved": true, "locale": null, "invite_request": null, "ips": [ { "ip": "192.168.42.1", "used_at": "2022-09-15T01:38:58.851Z" } ], "account": { "id": "108965278956942133", "username": "admin", "acct": "admin", "display_name": "", "locked": false, "bot": false, "discoverable": null, "group": false, "created_at": "2022-09-08T00:00:00.000Z", "note": "", "url": "http://mastodon.local/@admin", "avatar": "http://mastodon.local/avatars/original/missing.png", "avatar_static": "http://mastodon.local/avatars/original/missing.png", "header": "http://mastodon.local/headers/original/missing.png", "header_static": "http://mastodon.local/headers/original/missing.png", "followers_count": 0, "following_count": 0, "statuses_count": 0, "last_status_at": null, "emojis": [], "fields": [] } } }, "AdminCanonicalEmailBlock": { "type": "object", "description": "Represents a canonical email block (hashed).", "properties": { "canonical_email_hash": { "description": "The SHA256 hash of the canonical email address.", "type": "string" }, "id": { "description": "The ID of the email block in the database.", "type": "string" } }, "required": [ "canonical_email_hash", "id" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_CanonicalEmailBlock/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "2", "canonical_email_hash": "b344e55d11b3fc25d0d53194e0475838bf17e9be67ce3e6469956222d9a34f9c" } }, "AdminCohort": { "type": "object", "description": "Represents a retention metric.", "properties": { "data": { "description": "Retention data for users who registered during the given period.", "type": "array", "items": { "$ref": "#/components/schemas/CohortData" } }, "frequency": { "description": "The size of the bucket for the returned data.", "type": "string", "$ref": "#/components/schemas/AdminCohortFrequencyEnum" }, "period": { "description": "The timestamp for the start of the period, at midnight.", "type": "string", "format": "date-time" } }, "required": [ "data", "frequency", "period" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Cohort/#attributes", "description": "Official Mastodon API documentation" }, "example": { "period": "2022-09-01T00:00:00+00:00", "frequency": "month", "data": [ { "date": "2022-09-01T00:00:00+00:00", "rate": 1, "value": "2" } ] } }, "CohortData": { "type": "object", "description": "Additional entity definition for CohortData", "properties": { "date": { "description": "The timestamp for the start of the bucket, at midnight.", "type": "string", "format": "date-time" }, "rate": { "description": "The percentage rate of users who registered in the specified `period` and were active for the given `date` bucket.", "type": "number" }, "value": { "description": "How many users registered in the specified `period` and were active for the given `date` bucket.", "type": "string" } }, "required": [ "date", "rate", "value" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Cohort/#CohortData", "description": "Official Mastodon API documentation" } }, "AdminDimension": { "type": "object", "description": "Represents qualitative data about the server.", "properties": { "data": { "description": "The data available for the requested dimension.", "type": "array", "items": { "$ref": "#/components/schemas/AdminDimensionData" } }, "key": { "description": "The unique keystring for the requested dimension.", "type": "string" } }, "required": [ "data", "key" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Dimension/#attributes", "description": "Official Mastodon API documentation" } }, "AdminDimensionData": { "type": "object", "description": "Nested entity extracted from Admin::Dimension.data", "properties": { "human_key": { "description": "A human-readable key for this data item.", "type": "string" }, "key": { "description": "The unique keystring for this data item.", "type": "string" }, "value": { "description": "The value for this data item.", "type": "string" }, "human_value": { "description": "A human-readable formatted value for this data item.", "type": "string" }, "unit": { "description": "The units associated with this data item's value, if applicable.", "type": "string" } }, "required": [ "human_key", "key", "value" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Dimension/#data-attributes", "description": "Official Mastodon API documentation" } }, "AdminDomainAllow": { "type": "object", "description": "Represents a domain allowed to federate.", "properties": { "created_at": { "description": "When the domain was allowed to federate.", "type": "string", "format": "date-time" }, "domain": { "description": "The domain that is allowed to federate.", "type": "string" }, "id": { "description": "The ID of the DomainAllow in the database.", "type": "string" } }, "required": [ "created_at", "domain", "id" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_DomainAllow/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1", "domain": "mastodon.social", "created_at": "2022-09-14T21:23:02.755Z" } }, "AdminDomainBlock": { "type": "object", "description": "Represents a domain limited from federating.", "properties": { "created_at": { "description": "When the domain was blocked from federating.", "type": "string", "format": "date-time" }, "digest": { "description": "The sha256 hex digest of the domain that is not allowed to federated.", "type": "string" }, "domain": { "description": "The domain that is not allowed to federate.", "type": "string" }, "id": { "description": "The ID of the DomainBlock in the database.", "type": "string" }, "obfuscate": { "description": "Whether to obfuscate public displays of this domain block", "type": "boolean" }, "reject_media": { "description": "Whether to reject media attachments from this domain", "type": "boolean" }, "reject_reports": { "description": "Whether to reject reports from this domain", "type": "boolean" }, "severity": { "description": "The policy to be applied by this domain block.", "type": "string", "$ref": "#/components/schemas/AdminDomainBlockSeverityEnum" }, "private_comment": { "description": "", "type": [ "string", "null" ] }, "public_comment": { "description": "", "type": [ "string", "null" ] } }, "required": [ "created_at", "digest", "domain", "id", "obfuscate", "reject_media", "reject_reports", "severity" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_DomainBlock/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1", "domain": "example.com", "digest": "a379a6f6eeafb9a55e378c118034e2751e682fab9f2d30ab13d2125586ce1947", "created_at": "2022-11-16T08:15:34.238Z", "severity": "noop", "reject_media": false, "reject_reports": false, "private_comment": null, "public_comment": null, "obfuscate": false } }, "AdminEmailDomainBlock": { "type": "object", "description": "Represents an email domain that cannot be used to sign up.", "properties": { "created_at": { "description": "When the email domain was disallowed from signups.", "type": "string", "format": "date-time" }, "domain": { "description": "The email domain that is not allowed to be used for signups.", "type": "string" }, "history": { "description": "Usage statistics for given days (typically the past week).", "type": "array", "items": { "$ref": "#/components/schemas/AdminEmailDomainBlockHistory" } }, "id": { "description": "The ID of the EmailDomainBlock in the database.", "type": "string" } }, "required": [ "created_at", "domain", "history", "id" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_EmailDomainBlock/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1", "domain": "foo", "created_at": "2022-11-16T06:09:36.176Z", "history": [ { "day": "1668556800", "accounts": "0", "uses": "0" }, { "day": "1668470400", "accounts": "0", "uses": "0" }, { "day": "1668384000", "accounts": "0", "uses": "0" }, { "day": "1668297600", "accounts": "0", "uses": "0" }, { "day": "1668211200", "accounts": "0", "uses": "0" }, { "day": "1668124800", "accounts": "0", "uses": "0" }, { "day": "1668038400", "accounts": "0", "uses": "0" } ] } }, "AdminEmailDomainBlockHistory": { "type": "object", "description": "Nested entity extracted from Admin::EmailDomainBlock.history", "properties": { "accounts": { "description": "The counted accounts signup attempts using that email domain within that day.", "type": "string" }, "day": { "description": "UNIX timestamp on midnight of the given day.", "type": "string" }, "uses": { "description": "The counted IP signup attempts of that email domain within that day.", "type": "string" } }, "required": [ "accounts", "day", "uses" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_EmailDomainBlock/#admin", "description": "Official Mastodon API documentation" } }, "AdminIp": { "type": "object", "description": "Represents an IP address associated with a user.", "properties": { "ip": { "description": "The IP address.", "type": "string" }, "used_at": { "description": "The timestamp of when the IP address was last used for this account.", "type": "string", "format": "date-time" } }, "required": [ "ip", "used_at" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Ip/#attributes", "description": "Official Mastodon API documentation" }, "example": { "ip": "192.168.42.1", "used_at": "2022-09-15T01:38:58.851Z" } }, "AdminIpBlock": { "type": "object", "description": "Represents an IP address range that cannot be used to sign up.", "properties": { "comment": { "description": "The recorded reason for this IP block.", "type": "string" }, "created_at": { "description": "When the IP block was created.", "type": "string", "format": "date-time" }, "id": { "description": "The ID of the DomainBlock in the database.", "type": "string" }, "ip": { "description": "The IP address range that is not allowed to federate.", "type": "string" }, "severity": { "description": "The associated policy with this IP block.", "type": "string", "$ref": "#/components/schemas/AdminIpBlockSeverityEnum" }, "expires_at": { "description": "When the IP block will expire.", "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "comment", "created_at", "id", "ip", "severity" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_IpBlock/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1", "ip": "8.8.8.8/32", "severity": "no_access", "comment": "", "created_at": "2022-11-16T07:22:00.501Z", "expires_at": null } }, "AdminMeasure": { "type": "object", "description": "Represents quantitative data about the server.", "properties": { "data": { "description": "The data available for the requested measure, split into daily buckets.", "type": "array", "items": { "$ref": "#/components/schemas/AdminMeasureData" } }, "key": { "description": "The unique keystring for the requested measure.", "type": "string" }, "total": { "description": "The numeric total associated with the requested measure.", "type": "string" }, "human_value": { "description": "A human-readable formatted value for this data item.", "type": [ "string", "null" ] }, "previous_total": { "description": "The numeric total associated with the requested measure, in the previous period. Previous period is calculated by subtracting the start_at and end_at dates, then offsetting both start and end dates backwards by the length of the time period.", "type": [ "string", "null" ] }, "unit": { "description": "The units associated with this data item's value, if applicable.", "type": [ "string", "null" ] } }, "required": [ "data", "key", "total" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Measure/#attributes", "description": "Official Mastodon API documentation" } }, "AdminMeasureData": { "type": "object", "description": "Nested entity extracted from Admin::Measure.data", "properties": { "date": { "description": "The requested day or midnight on the requested day in the time period.", "type": "string", "format": "date-time" }, "value": { "description": "The numeric value for the requested measure.", "type": "string" } }, "required": [ "date", "value" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Measure/#admin", "description": "Official Mastodon API documentation" } }, "AdminReport": { "type": "object", "description": "Admin-level information about a filed report.", "properties": { "account": { "description": "The account which filed the report.", "$ref": "#/components/schemas/AdminAccount" }, "action_taken": { "description": "Whether an action was taken to resolve this report.", "type": "boolean" }, "category": { "description": "The category under which the report is classified.", "type": "string", "$ref": "#/components/schemas/ReportCategoryEnum" }, "comment": { "description": "An optional reason for reporting.", "type": "string" }, "created_at": { "description": "The time the report was filed.", "type": "string", "format": "date-time" }, "forwarded": { "description": "Whether a report was forwarded to a remote instance.", "type": "boolean" }, "id": { "description": "The ID of the report in the database.", "type": "string" }, "rules": { "description": "Rules attached to the report, for context.", "type": "array", "items": { "$ref": "#/components/schemas/Rule" } }, "statuses": { "description": "Statuses attached to the report, for context.", "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "target_account": { "description": "The account being reported.", "$ref": "#/components/schemas/AdminAccount" }, "updated_at": { "description": "The time of last action on this report.", "type": "string", "format": "date-time" }, "action_taken_at": { "description": "When an action was taken, if this report is currently resolved.", "type": [ "string", "null" ], "format": "date-time" }, "action_taken_by_account": { "description": "The account of the moderator who handled the report.", "oneOf": [ { "$ref": "#/components/schemas/AdminAccount" }, { "type": "null" } ] }, "assigned_account": { "description": "The account of the moderator assigned to this report.", "oneOf": [ { "$ref": "#/components/schemas/AdminAccount" }, { "type": "null" } ] } }, "required": [ "account", "action_taken", "category", "comment", "created_at", "forwarded", "id", "rules", "statuses", "target_account", "updated_at" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Admin_Report/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1", "action_taken": false, "action_taken_at": null, "category": "spam", "comment": "", "forwarded": false, "created_at": "2022-09-09T21:19:23.085Z", "updated_at": "2022-09-09T21:19:23.085Z", "account": { "id": "108965218747268792", "username": "admin", "domain": null, "created_at": "2022-09-08T22:48:07.985Z", "email": "admin@mastodon.local", "account": { "id": "108965218747268792", "username": "admin", "acct": "admin" } }, "target_account": { "id": "108965430868193066", "username": "goody", "domain": null, "created_at": "2022-09-08T23:42:04.731Z", "email": "goody@mastodon.local", "account": { "id": "108965430868193066", "username": "goody", "acct": "goody" } }, "assigned_account": null, "action_taken_by_account": null, "statuses": [], "rules": [] } }, "Announcement": { "type": "object", "description": "Represents an announcement set by an administrator.", "properties": { "all_day": { "description": "Whether the announcement should start and end on dates only instead of datetimes. Will be false if there is no `starts_at` or `ends_at` time.", "type": "boolean" }, "content": { "description": "The text of the announcement.", "type": "string" }, "emojis": { "description": "Custom emoji used in the announcement text.", "type": "array", "items": { "$ref": "#/components/schemas/CustomEmoji" } }, "id": { "description": "The ID of the announcement in the database.", "type": "string" }, "mentions": { "description": "Accounts mentioned in the announcement text.", "type": "array", "items": { "$ref": "#/components/schemas/AnnouncementAccount" } }, "published_at": { "description": "When the announcement was published.", "type": "string", "format": "date-time" }, "reactions": { "description": "Emoji reactions attached to the announcement.", "type": "array", "items": { "$ref": "#/components/schemas/Reaction" } }, "statuses": { "description": "Statuses linked in the announcement text.", "type": "array", "items": { "$ref": "#/components/schemas/AnnouncementStatus" } }, "tags": { "description": "Tags linked in the announcement text.", "type": "array", "items": { "$ref": "#/components/schemas/StatusTag" } }, "updated_at": { "description": "When the announcement was last updated.", "type": "string", "format": "date-time" }, "ends_at": { "description": "When the announcement will end.", "type": [ "string", "null" ], "format": "date-time" }, "read": { "description": "Whether the announcement has been read by the current user.", "type": [ "boolean", "null" ] }, "starts_at": { "description": "When the announcement will start.", "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "all_day", "content", "emojis", "id", "mentions", "published_at", "reactions", "statuses", "tags", "updated_at" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Announcement/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "8", "content": "

Looks like there was an issue processing audio attachments without embedded art since yesterday due to an experimental new feature. That issue has now been fixed, so you may see older posts with audio from other servers pop up in your feeds now as they are being finally properly processed. Sorry!

", "starts_at": null, "ends_at": null, "all_day": false, "published_at": "2020-07-03T01:27:38.726Z", "updated_at": "2020-07-03T01:27:38.752Z", "read": true, "mentions": [], "statuses": [], "tags": [], "emojis": [], "reactions": [ { "name": "bongoCat", "count": 9, "me": false, "url": "https://files.mastodon.social/custom_emojis/images/000/067/715/original/fdba57dff7576d53.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/067/715/static/fdba57dff7576d53.png" }, { "name": "thonking", "count": 1, "me": false, "url": "https://files.mastodon.social/custom_emojis/images/000/098/690/original/a8d36edc4a7032e8.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/098/690/static/a8d36edc4a7032e8.png" }, { "name": "AAAAAA", "count": 1, "me": false, "url": "https://files.mastodon.social/custom_emojis/images/000/071/387/original/AAAAAA.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/071/387/static/AAAAAA.png" }, { "name": "🤔", "count": 1, "me": true } ] } }, "AnnouncementAccount": { "type": "object", "description": "Additional entity definition for Announcement::Account", "properties": { "acct": { "description": "The webfinger acct: URI of the mentioned user. Equivalent to `username` for local users, or `username@domain` for remote users.", "type": "string" }, "id": { "description": "The account ID of the mentioned user.", "type": "string" }, "url": { "description": "The location of the mentioned user's profile.", "type": "string", "format": "uri" }, "username": { "description": "The username of the mentioned user.", "type": "string" } }, "required": [ "acct", "id", "url", "username" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Announcement/#announcement", "description": "Official Mastodon API documentation" } }, "AnnouncementStatus": { "type": "object", "description": "Additional entity definition for Announcement::Status", "properties": { "id": { "description": "The ID of an attached Status in the database.", "type": "string" }, "url": { "description": "The URL of an attached Status.", "type": "string", "format": "uri" } }, "required": [ "id", "url" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Announcement/#announcement", "description": "Official Mastodon API documentation" } }, "AnnualReport": { "type": "object", "description": "Represents a summary of a user's activity during a given year.", "properties": { "year": { "description": "The year this report is from.", "type": "integer" }, "account_id": { "description": "The account ID the report is about.", "type": [ "string", "null" ] }, "data": { "description": "The raw data contained in the report. The schema of that data is dependent on the value of `schema_version`.", "type": [ "object", "null" ], "properties": { "archetype": { "description": "Archetype the user corresponds to. This is meant to represent a playful and very coarse overview of the user's posting habits over the year.", "type": "string", "enum": [ "lurker", "booster", "pollster", "replier", "oracle" ] }, "type_distribution": { "description": "Provides a breakdown of the user's posts statistics over the year. Only available in schema version 1.", "type": "object" }, "top_statuses": { "description": "Provides a breakdown of the user's most-interacted statuses by type of interaction (reblogs, favourites, replies) over the year.", "type": [ "object", "null" ] }, "most_used_apps": { "description": "Provides a breakdown of the apps the user used the most for posting statuses over the year. Only available in schema version 1.", "type": "array", "items": { "type": "object" } }, "commonly_interacted_with_accounts": { "description": "Provides a breakdown of the accounts the user have the most frequently replied to over the year. Only available in schema version 1.", "type": "array", "items": { "type": "object" } }, "time_series": { "description": "Provides a breakdown of new statuses, follows and followers per month.", "type": [ "array", "null" ], "items": { "type": "object" } }, "top_hashtags": { "description": "Provides a breakdown of the user's most frequently used hashtags over the year.", "type": [ "array", "null" ], "items": { "type": "object" } }, "most_reblogged_accounts": { "description": "Provides a breakdown of the accounts the user has reblogged the most over the year. Only available in schema version 1.", "type": "array", "items": { "type": "object" } }, "percentiles": { "description": "Which percentile of the most prolific posters on the same server the user is in. Only available in schema version 1.", "type": "number" } }, "required": [ "archetype", "type_distribution", "most_used_apps", "commonly_interacted_with_accounts", "most_reblogged_accounts", "percentiles" ] }, "schema_version": { "description": "The schema version of the report, defines how to interpret `data`.", "type": [ "integer", "null" ] }, "share_url": { "description": "An optional link to a shareable version of the report.", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "year" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/AnnualReport/#attributes", "description": "Official Mastodon API documentation" }, "example": { "year": 2025, "data": { "archetype": "oracle", "time_series": [ { "month": 12, "statuses": 7123, "followers": 48 } ], "top_hashtags": [ { "name": "Mastodon", "count": 12 } ], "top_statuses": { "by_reblogs": "114348347829110933", "by_replies": null, "by_favourites": null } }, "schema_version": 2, "share_url": "https://example.com/@Foobar/wrapstodon/2025/7fa0231c0f206390", "account_id": "55911" } }, "WrappedAnnualReports": { "type": "object", "description": "Additional entity definition for WrappedAnnualReports", "properties": { "accounts": { "description": "Full Account entities for the accounts mentioned in the reports.", "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "annual_reports": { "description": "Full AnnualReport entities for the reports.", "type": "array", "items": { "$ref": "#/components/schemas/AnnualReport" } }, "statuses": { "description": "Full Status entities for the statuses mentioned in the reports.", "type": "array", "items": { "$ref": "#/components/schemas/Status" } } }, "required": [ "accounts", "annual_reports", "statuses" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/AnnualReport/#attributes", "description": "Official Mastodon API documentation" } }, "Appeal": { "type": "object", "description": "Appeal against a moderation action.", "properties": { "state": { "description": "State of the appeal.", "type": "string", "$ref": "#/components/schemas/AppealStateEnum" }, "text": { "description": "Text of the appeal from the moderated account to the moderators.", "type": "string" } }, "required": [ "state", "text" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Appeal/#attributes", "description": "Official Mastodon API documentation" } }, "Application": { "type": "object", "description": "Represents an application that interfaces with the REST API, for example to access account information or post statuses.", "properties": { "id": { "description": "The numeric ID of the application.", "type": "string" }, "name": { "description": "The name of the application.", "type": "string" }, "redirect_uri": { "description": "The registered redirection URI(s) for the application stored as a single string. Multiple URIs are separated by whitespace characters. May contain `\\n` characters when multiple redirect URIs are registered.", "deprecated": true, "type": "string" }, "redirect_uris": { "description": "The registered redirection URI(s) for the application.", "type": "array", "items": { "type": "string", "format": "uri" } }, "scopes": { "description": "The scopes for the application. This is the registered `scopes` string split on whitespace.", "$ref": "#/components/schemas/OAuthScopes" }, "vapid_key": { "description": "Used for Push Streaming API. Returned with [POST /api/v1/apps](https://docs.joinmastodon.org/methods/apps/#create). Equivalent to [WebPushSubscription#server_key](https://docs.joinmastodon.org/entities/WebPushSubscription/#server_key) and [Instance#vapid_public_key](https://docs.joinmastodon.org/entities/Instance/#vapid_public_key)", "deprecated": true, "type": "string" }, "website": { "description": "The website associated with the application.", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "id", "name", "redirect_uri", "redirect_uris", "scopes", "vapid_key" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Application/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "12348", "name": "Test Application", "website": "https://app.example", "scopes": [ "read", "write", "push" ], "redirect_uri": "https://app.example/callback\nhttps://app.example/register", "redirect_uris": [ "https://app.example/callback", "https://app.example/register" ] } }, "CredentialApplication": { "type": "object", "description": "Additional entity definition for CredentialApplication", "properties": { "client_id": { "description": "Client ID key, to be used for obtaining OAuth tokens.", "type": "string" }, "client_secret": { "description": "Client secret key, to be used for obtaining OAuth tokens.", "type": "string" }, "id": { "description": "The numeric ID of the application.", "type": "string" }, "name": { "description": "The name of the application.", "type": "string" }, "redirect_uri": { "description": "The registered redirection URI(s) for the application stored as a single string. Multiple URIs are separated by whitespace characters. May contain `\\n` characters when multiple redirect URIs are registered.", "deprecated": true, "type": "string" }, "redirect_uris": { "description": "The registered redirection URI(s) for the application.", "type": "array", "items": { "type": "string", "format": "uri" } }, "scopes": { "description": "The scopes for the application. This is the registered `scopes` string split on whitespace.", "$ref": "#/components/schemas/OAuthScopes" }, "vapid_key": { "description": "Used for Push Streaming API. Returned with [POST /api/v1/apps](https://docs.joinmastodon.org/methods/apps/#create). Equivalent to [WebPushSubscription#server_key](https://docs.joinmastodon.org/entities/WebPushSubscription/#server_key) and [Instance#vapid_public_key](https://docs.joinmastodon.org/entities/Instance/#vapid_public_key)", "deprecated": true, "type": "string" }, "client_secret_expires_at": { "description": "When the client secret key will expire. Presently this always returns `0` indicating that OAuth Clients do not expire.", "type": [ "integer", "null" ] }, "website": { "description": "The website associated with the application.", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "client_id", "client_secret", "id", "name", "redirect_uri", "redirect_uris", "scopes", "vapid_key" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Application/#attributes", "description": "Official Mastodon API documentation" } }, "AsyncRefresh": { "type": "object", "description": "Status of an asynchronous refresh.", "properties": { "id": { "description": "The ID of the async refresh", "type": "string" }, "status": { "description": "Status of the async refresh.", "type": "string", "$ref": "#/components/schemas/AsyncRefreshStatusEnum" }, "result_count": { "description": "Optional number of results already created/fetched as part of this async refresh.", "type": [ "integer", "null" ] } }, "required": [ "id", "status" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/AsyncRefresh/#attributes", "description": "Official Mastodon API documentation" }, "example": { "async_refresh": { "id": "ImNvbnRleHQ6MTEzNjQwNTczMzAzNzg1MTc4OnJlZnJlc2gi--c526259eb4a1f3ef0d4b91cf8c99bf501330a815", "status": "running", "result_count": 2 } } }, "Collection": { "type": "object", "description": "Represents a curated collection of accounts that a user recommends others to follow.", "properties": { "account_id": { "description": "The id of the account that curates this Collection.", "type": "string" }, "created_at": { "description": "When the Collection was created.", "type": "string", "format": "date-time" }, "discoverable": { "description": "Whether the Collection should show up on the owner's profile, in search results and recommendations.", "type": "boolean" }, "id": { "description": "The collection id.", "type": "string" }, "item_count": { "description": "The number of items in this Collection.", "type": "integer" }, "items": { "description": "The items in this Collection.", "type": "array", "items": { "$ref": "#/components/schemas/CollectionItem" } }, "local": { "description": "Whether the Collection was created on this server or resides on a remote server.", "type": "boolean" }, "name": { "description": "The name of the Collection.", "type": "string" }, "sensitive": { "description": "Whether the Collection has been marked as including sensitive content.", "type": "boolean" }, "updated_at": { "description": "When the Collection was last updated.", "type": "string", "format": "date-time" }, "uri": { "description": "The Collection's ActivityPub identifier (used for federation).", "type": "string", "format": "uri" }, "description": { "description": "An optional description of the Collection.", "type": [ "string", "null" ] }, "language": { "description": "Primary language of this Collection.", "type": [ "string", "null" ], "format": "iso-639-1" }, "tag": { "description": "A single hashtag that describes this Collection.", "oneOf": [ { "$ref": "#/components/schemas/ShallowTag" }, { "type": "null" } ] }, "url": { "description": "The url of the Collection's HTML page (web interface URL).", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "account_id", "created_at", "discoverable", "id", "item_count", "items", "local", "name", "sensitive", "updated_at", "uri" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Collection/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "116131056935959117", "account_id": "113668893442515793", "uri": "https://example.com/ap/113668893442515793/collections/116131056935959117", "url": "https://example.com/collections/116131056935959117", "name": "Excellent people", "description": "Well worth following", "language": "en", "local": true, "sensitive": false, "discoverable": true, "tag": { "name": "discovery", "url": "https://example.com/tags/discovery" }, "item_count": 2, "items": [ { "id": "116141056635954112", "account_id": "112658193342215767", "state": "accepted", "created_at": "2026-02-25T11:35:01.394Z" }, { "id": "116141051635254139", "account_id": "117628196343117789", "state": "pending", "created_at": "2026-02-25T11:35:01.394Z" } ], "created_at": "2026-02-25T11:35:01.394Z", "updated_at": "2026-02-25T11:37:38.182Z" } }, "WrappedCollection": { "type": "object", "description": "Additional entity definition for WrappedCollection", "properties": { "collection": { "description": "The actual Collection.", "$ref": "#/components/schemas/Collection" } }, "required": [ "collection" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Collection/#attributes", "description": "Official Mastodon API documentation" } }, "Collections": { "type": "object", "description": "Additional entity definition for Collections", "properties": { "collections": { "description": "A list of Collections.", "type": "array", "items": { "$ref": "#/components/schemas/Collection" } } }, "required": [ "collections" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Collection/#attributes", "description": "Official Mastodon API documentation" } }, "CollectionItem": { "type": "object", "description": "Represents a single item in a Collection.", "properties": { "created_at": { "description": "When the item was added to the collection.", "type": "string", "format": "date-time" }, "id": { "description": "The item id.", "type": "string" }, "state": { "description": "The current state of the item.", "type": "string", "$ref": "#/components/schemas/CollectionItemStateEnum" }, "account_id": { "description": "The id of the account this item represents.", "type": [ "string", "null" ] } }, "required": [ "created_at", "id", "state" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/CollectionItem/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "116141056635954112", "account_id": "112658193342215767", "state": "accepted", "created_at": "2026-02-25T11:35:01.394Z" } }, "WrappedCollectionItem": { "type": "object", "description": "Additional entity definition for WrappedCollectionItem", "properties": { "collection_item": { "description": "The actual Collection item.", "$ref": "#/components/schemas/CollectionItem" } }, "required": [ "collection_item" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/CollectionItem/#attributes", "description": "Official Mastodon API documentation" } }, "CollectionWithAccounts": { "type": "object", "description": "A curated Collection of accounts that a user recommends others to follow plus the full account data", "properties": { "accounts": { "description": "Full account entities for the owner of the Collection and every account within the Collection.", "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "collection": { "description": "The actual Collection.", "$ref": "#/components/schemas/Collection" } }, "required": [ "accounts", "collection" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/CollectionWithAccounts/#attributes", "description": "Official Mastodon API documentation" }, "example": { "accounts": [ { "id": "113668893442515793" }, { "id": "112658193342215767" }, { "id": "117628196343117789" } ], "collection": { "id": "116131056935959117", "account_id": "113668893442515793", "uri": "https://example.com/ap/113668893442515793/collections/116131056935959117", "url": "https://example.com/collections/116131056935959117", "name": "Excellent people", "description": "Well worth following", "language": "en", "local": true, "sensitive": false, "discoverable": true, "tag": { "name": "discovery", "url": "https://example.com/tags/discovery" }, "item_count": 2, "items": [ { "id": "116141056635954112", "account_id": "112658193342215767", "state": "accepted", "created_at": "2026-02-25T11:35:01.394Z" }, { "id": "116141051635254139", "account_id": "117628196343117789", "state": "pending", "created_at": "2026-02-25T11:35:01.394Z" } ], "created_at": "2026-02-25T11:35:01.394Z", "updated_at": "2026-02-25T11:37:38.182Z" } } }, "Context": { "type": "object", "description": "Represents the tree around a given status. Used for reconstructing threads of statuses.", "properties": { "ancestors": { "description": "Parents in the thread.", "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "descendants": { "description": "Children in the thread.", "type": "array", "items": { "$ref": "#/components/schemas/Status" } } }, "required": [ "ancestors", "descendants" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Context/#attributes", "description": "Official Mastodon API documentation" }, "example": { "ancestors": [ { "id": "103188938570975982", "created_at": "2019-11-23T19:44:00.124Z", "in_reply_to_id": null }, { "id": "103188971072973252", "created_at": "2019-11-23T19:52:23.398Z", "in_reply_to_id": "103188938570975982" }, { "id": "103188982235527758", "created_at": "2019-11-23T19:55:08.208Z", "in_reply_to_id": "103188971072973252" } ], "descendants": [ { "id": "103189026958574542", "created_at": "2019-11-23T20:06:36.011Z", "in_reply_to_id": "103189005915505698" } ] } }, "Conversation": { "type": "object", "description": "Represents a conversation with \"direct message\" visibility.", "properties": { "accounts": { "description": "Participants in the conversation.", "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "id": { "description": "The ID of the conversation in the database.", "type": "string" }, "unread": { "description": "Is the conversation currently marked as unread?", "type": "boolean" }, "last_status": { "description": "The last status in the conversation.", "oneOf": [ { "$ref": "#/components/schemas/Status" }, { "type": "null" } ] } }, "required": [ "accounts", "id", "unread" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Conversation/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "418450", "unread": true, "accounts": [ { "id": "482403", "username": "amic", "acct": "amic@nulled.red" } ], "last_status": { "id": "103196583826321184", "created_at": "2019-11-25T04:08:24.000Z", "in_reply_to_id": "103196540587943467", "in_reply_to_account_id": "14715" } } }, "CustomEmoji": { "type": "object", "description": "Represents a custom emoji.", "properties": { "shortcode": { "description": "The name of the custom emoji.", "type": "string" }, "static_url": { "description": "A link to a static copy of the custom emoji.", "type": "string", "format": "uri" }, "url": { "description": "A link to the custom emoji.", "type": "string", "format": "uri" }, "visible_in_picker": { "description": "Whether this Emoji should be visible in the picker or unlisted.", "type": "boolean" }, "category": { "description": "Used for sorting custom emoji in the picker.", "type": [ "string", "null" ] } }, "required": [ "shortcode", "static_url", "url", "visible_in_picker" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/CustomEmoji/#attributes", "description": "Official Mastodon API documentation" }, "example": { "shortcode": "blobaww", "url": "https://files.mastodon.social/custom_emojis/images/000/011/739/original/blobaww.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/011/739/static/blobaww.png", "visible_in_picker": true, "category": "Blobs" } }, "DomainBlock": { "type": "object", "description": "Represents a domain that is blocked by the instance.", "properties": { "digest": { "description": "The SHA256 hash digest of the domain string.", "type": "string" }, "domain": { "description": "The domain which is blocked. This may be obfuscated or partially censored.", "type": "string" }, "severity": { "description": "The level to which the domain is blocked.", "type": "string", "$ref": "#/components/schemas/DomainBlockSeverityEnum" }, "comment": { "description": "An optional reason for the domain block.", "type": [ "string", "null" ] } }, "required": [ "digest", "domain", "severity" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/DomainBlock/#attributes", "description": "Official Mastodon API documentation" }, "example": { "domain": "daji******.com", "digest": "3752f63a7079d60c2de5dceb8bd7608e86a15544eb78a494a482041c3684b37f", "severity": "suspend", "comment": "Inappropriate content" } }, "Error": { "type": "object", "description": "Represents an error message.", "properties": { "error": { "description": "The error message.", "type": "string" }, "error_description": { "description": "A longer description of the error, mainly provided with the OAuth API.", "type": [ "string", "null" ] } }, "required": [ "error" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Error/#attributes", "description": "Official Mastodon API documentation" }, "example": { "error": "invalid_grant", "error_description": "The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client." } }, "422-Unprocessable": { "type": "object", "description": "Additional entity definition for 422 - Unprocessable", "properties": {}, "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Error/#attributes", "description": "Official Mastodon API documentation" } }, "ExtendedDescription": { "type": "object", "description": "Represents an extended description for the instance, to be shown on its about page.", "properties": { "content": { "description": "The rendered HTML content of the extended description.", "type": "string" }, "updated_at": { "description": "A timestamp of when the extended description was last updated.", "type": "string", "format": "date-time" } }, "required": [ "content", "updated_at" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/ExtendedDescription/#attributes", "description": "Official Mastodon API documentation" }, "example": { "updated_at": "2022-11-03T04:09:07Z", "content": "

For inquiries not related specifically to the operation of this server, such as press inquiries, please contact press@joinmastodon.org.

\n\n

Funding

\n\n

This server is crowdfunded by Patreon donations. For a list of sponsors, see joinmastodon.org.

\n\n

Reporting and moderation

\n\n

When reporting accounts, please make sure to include at least a few posts that show rule-breaking behaviour, when applicable. If there is any additional context that might help make a decision, please also include it in the comment. This is especially important when the content is in a language nobody on the moderation team speaks.

\n\n

We usually handle reports within 24 hours. Please mind that you are not notified when a report you have made has led to a punitive action, and that not all punitive actions are externally visible. For first time offenses, we may opt to delete offending content, escalating to harsher measures on repeat offenses.

\n\n

Impressum

\n\n

Mastodon gGmbH
\nMühlenstraße 8a
\n14167 Berlin
\nGermany

\n\n

E-Mail-Adresse: hello@joinmastodon.org

\n\n

Vertretungsberechtigt: Eugen Rochko (Geschäftsführer)

\n\n

Umsatzsteuer Identifikationsnummer (USt-ID): DE344258260

\n\n

Handelsregister
\nGeführt bei: Amtsgericht Charlottenburg
\nNummer: HRB 230086 B

\n" } }, "FamiliarFollowers": { "type": "object", "description": "Represents a subset of your follows who also follow some other user.", "properties": { "accounts": { "description": "Accounts you follow that also follow this account.", "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "id": { "description": "The ID of the Account in the database.", "type": "string" } }, "required": [ "accounts", "id" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/FamiliarFollowers/#attributes", "description": "Official Mastodon API documentation" }, "example": [ { "id": "1", "accounts": [ { "id": "1087990", "username": "moss", "acct": "moss@goblin.camp" }, { "id": "1092723", "username": "vivianrose", "acct": "vivianrose" } ] }, { "id": "2", "accounts": [] } ] }, "FeatureApproval": { "type": "object", "description": "Summary of an account's policy with regards to being featured in a Collection and how it applies to the requesting user.", "properties": { "automatic": { "description": "Describes who is expected to be able to feature the account in a Collection and have this authorized automatically. An empty list means that nobody is expected to be able to feature this account with automatic approval. Other values may be added in the future, so unknown values should be treated as `unsupported_policy`.", "type": "array", "items": { "$ref": "#/components/schemas/FeatureApprovalAutomaticEnum" } }, "current_user": { "description": "Describes how this account's feature approval policy applies to the current user.", "type": "string", "$ref": "#/components/schemas/FeatureApprovalCurrentUserEnum" }, "manual": { "description": "Describes who is expected to have attempts of featuring this account in a Collection be manually reviewed by the account owner before being accepted. An empty list means that nobody is expected to be able to feature this account with manual approval. Other values may be added in the future, so unknown values should be treated as `unsupported_policy`.", "type": "array", "items": { "$ref": "#/components/schemas/QuoteApprovalAutomaticEnum" } } }, "required": [ "automatic", "current_user", "manual" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/FeatureApproval/#attributes", "description": "Official Mastodon API documentation" }, "example": { "automatic": [ "public" ], "manual": [], "current_user": "automatic" } }, "FeaturedTag": { "type": "object", "description": "Represents a hashtag that is featured on an account profile.", "properties": { "id": { "description": "The ID of the featured tag.", "type": "string" }, "name": { "description": "The name of the hashtag being featured.", "type": "string" }, "statuses_count": { "description": "The number of authored statuses containing this hashtag.", "type": "string" }, "url": { "description": "A link to all statuses by a user that contain this hashtag.", "type": "string", "format": "uri" }, "last_status_at": { "description": "The date of the last authored status containing this hashtag.", "type": [ "string", "null" ], "format": "date" } }, "required": [ "id", "name", "statuses_count", "url" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/FeaturedTag/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "627", "name": "nowplaying", "url": "https://mastodon.social/@trwnh/tagged/nowplaying", "statuses_count": "70", "last_status_at": "2022-08-29" } }, "Filter": { "type": "object", "description": "Represents a user-defined filter for determining which statuses should not be shown to the user.", "properties": { "context": { "description": "The contexts in which the filter should be applied.", "type": "array", "items": { "$ref": "#/components/schemas/FilterContextEnum" } }, "filter_action": { "description": "The action to be taken when a status matches this filter.", "type": "string", "$ref": "#/components/schemas/FilterFilterActionEnum" }, "id": { "description": "The ID of the Filter in the database.", "type": "string" }, "title": { "description": "A title given by the user to name the filter.", "type": "string" }, "expires_at": { "description": "When the filter should no longer be applied.", "type": [ "string", "null" ], "format": "date-time" }, "keywords": { "description": "The keywords grouped under this filter. Omitted when part of a [FilterResult](https://docs.joinmastodon.org/entities/FilterResult/).", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/FilterKeyword" } }, "statuses": { "description": "The statuses grouped under this filter. Omitted when part of a [FilterResult](https://docs.joinmastodon.org/entities/FilterResult/).", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/FilterStatus" } } }, "required": [ "context", "filter_action", "id", "title" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Filter/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "19972", "title": "Test filter", "context": [ "home" ], "expires_at": "2022-09-20T17:27:39.296Z", "filter_action": "warn", "keywords": [ { "id": "1197", "keyword": "bad word", "whole_word": false } ], "statuses": [ { "id": "1", "status_id": "109031743575371913" } ] } }, "FilterKeyword": { "type": "object", "description": "Represents a keyword that, if matched, should cause the filter action to be taken.", "properties": { "id": { "description": "The ID of the FilterKeyword in the database.", "type": "string" }, "keyword": { "description": "The phrase to be matched against.", "type": "string" }, "whole_word": { "description": "Should the filter consider word boundaries? See [implementation guidelines for filters](https://docs.joinmastodon.org/api/guidelines/#filters).", "type": "boolean" } }, "required": [ "id", "keyword", "whole_word" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/FilterKeyword/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1197", "keyword": "bad word", "whole_word": false } }, "FilterResult": { "type": "object", "description": "Represents a filter whose keywords matched a given status.", "properties": { "filter": { "description": "The filter that was matched.", "$ref": "#/components/schemas/Filter" }, "keyword_matches": { "description": "The keyword within the filter that was matched.", "type": [ "array", "null" ], "items": { "type": "string" } }, "status_matches": { "description": "The status ID within the filter that was matched.", "type": [ "array", "null" ], "items": { "type": "string" } } }, "required": [ "filter" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/FilterResult/#attributes", "description": "Official Mastodon API documentation" }, "example": { "filter": { "id": "3", "title": "Hide completely", "context": [ "home" ], "expires_at": "2022-09-20T17:27:39.296Z", "filter_action": "hide" }, "keyword_matches": [ "bad word" ], "status_matches": [ "109031743575371913" ] } }, "FilterStatus": { "type": "object", "description": "Represents a status ID that, if matched, should cause the filter action to be taken.", "properties": { "id": { "description": "The ID of the FilterStatus in the database.", "type": "string" }, "status_id": { "description": "The ID of the Status that will be filtered.", "type": "string" } }, "required": [ "id", "status_id" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/FilterStatus/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1", "status_id": "109031743575371913" } }, "IdentityProof": { "type": "object", "description": "Represents a proof from an external identity provider.", "properties": { "profile_url": { "description": "The account owner's profile URL on the identity provider.", "type": "string", "format": "uri" }, "proof_url": { "description": "A link to a statement of identity proof, hosted by the identity provider.", "type": "string", "format": "uri" }, "provider": { "description": "The name of the identity provider.", "type": "string" }, "provider_username": { "description": "The account owner's username on the identity provider's service.", "type": "string" }, "updated_at": { "description": "When the identity proof was last updated.", "type": "string", "format": "date-time" } }, "required": [ "profile_url", "proof_url", "provider", "provider_username", "updated_at" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/IdentityProof/#attributes", "description": "Official Mastodon API documentation" } }, "Instance": { "type": "object", "description": "Represents the software instance of Mastodon running on this domain.", "properties": { "api_versions": { "description": "Machine-readable API version information that allows clients to determine which API endpoints and features are available on this server. This provides a more reliable method for capability detection than parsing human-readable version strings, especially for forks and development builds. It contains at least a `mastodon` attribute, and other implementations may have their own additional attributes.", "type": "object", "properties": { "mastodon": { "description": "API version number that increments with substantial API changes. Clients can use this value to determine API compatibility rather than parsing complex version strings like \"4.4+hometown-123\" from forks or nightly builds. This number increases independently of the human-readable version number.", "type": "integer" } }, "required": [ "mastodon" ] }, "configuration": { "description": "Configured values and limits for this website.", "type": "object", "properties": { "accounts": { "description": "Limits related to accounts.", "type": "object", "properties": { "max_featured_tags": { "description": "The maximum number of featured tags allowed for each account.", "type": "integer" }, "max_pinned_statuses": { "description": "The maximum number of pinned statuses for each account.", "type": "integer" }, "max_avatar_description_length": { "description": "The maximum length allowed for an account's avatar description.", "type": [ "integer", "null" ] }, "max_display_name_length": { "description": "The maximum length allowed for an account's display name.", "type": [ "integer", "null" ] }, "max_header_description_length": { "description": "The maximum length allowed for an account's profile header description.", "type": [ "integer", "null" ] }, "max_note_length": { "description": "The maximum length allowed for an account's bio.", "type": [ "integer", "null" ] }, "max_profile_fields": { "description": "The maximum number of custom profile fields allowed to be set.", "type": [ "integer", "null" ] }, "profile_field_name_limit": { "description": "The maximum size of a profile field name, in characters.", "type": [ "integer", "null" ] }, "profile_field_value_limit": { "description": "The maximum size of a profile field value, in characters.", "type": [ "integer", "null" ] } }, "required": [ "max_featured_tags", "max_pinned_statuses" ] }, "media_attachments": { "description": "Hints for which attachments will be accepted.", "type": "object", "properties": { "image_matrix_limit": { "description": "The maximum number of pixels (width times height) for image uploads.", "type": "integer" }, "image_size_limit": { "description": "The maximum size of any uploaded image, in bytes.", "type": "integer" }, "supported_mime_types": { "description": "Contains MIME types that can be uploaded.", "type": "array", "items": { "type": "string" } }, "video_frame_rate_limit": { "description": "The maximum frame rate for any uploaded video.", "type": "integer" }, "video_matrix_limit": { "description": "The maximum number of pixels (width times height) for video uploads.", "type": "integer" }, "video_size_limit": { "description": "The maximum size of any uploaded video, in bytes.", "type": "integer" }, "description_limit": { "description": "The maximum size of a description, in characters.", "type": [ "integer", "null" ] } }, "required": [ "image_matrix_limit", "image_size_limit", "supported_mime_types", "video_frame_rate_limit", "video_matrix_limit", "video_size_limit" ] }, "polls": { "description": "Limits related to polls.", "type": "object", "properties": { "max_characters_per_option": { "description": "Each poll option is allowed to have this many characters.", "type": "integer" }, "max_expiration": { "description": "The longest allowed poll duration, in seconds.", "type": "integer" }, "max_options": { "description": "Each poll is allowed to have up to this many options.", "type": "integer" }, "min_expiration": { "description": "The shortest allowed poll duration, in seconds.", "type": "integer" } }, "required": [ "max_characters_per_option", "max_expiration", "max_options", "min_expiration" ] }, "statuses": { "description": "Limits related to authoring statuses.", "type": "object", "properties": { "characters_reserved_per_url": { "description": "Each URL in a status will be assumed to be exactly this many characters.", "type": "integer" }, "max_characters": { "description": "The maximum number of allowed characters per status.", "type": "integer" }, "max_media_attachments": { "description": "The maximum number of media attachments that can be added to a status.", "type": "integer" } }, "required": [ "characters_reserved_per_url", "max_characters", "max_media_attachments" ] }, "translation": { "description": "Hints related to translation.", "type": "object", "properties": { "enabled": { "description": "Whether the Translations API is available on this server.", "type": "boolean" } }, "required": [ "enabled" ] }, "urls": { "description": "URLs of interest for clients apps.", "type": "object", "properties": { "about": { "description": "The URL of the server's about page.", "type": [ "string", "null" ], "format": "uri" }, "privacy_policy": { "description": "The URL of the server's privacy policy.", "type": [ "string", "null" ], "format": "uri" }, "status": { "description": "The URL of the server's status page, if configured.", "type": [ "string", "null" ], "format": "uri" }, "streaming": { "description": "The Websockets URL for connecting to the streaming API.", "type": [ "string", "null" ], "format": "uri" }, "terms_of_service": { "description": "The URL of the server's current terms of service, if any.", "type": [ "string", "null" ], "format": "uri" } } }, "limited_federation": { "description": "Whether federation is limited to explicitly allowed domains.", "type": [ "boolean", "null" ] }, "timelines_access": { "description": "Access restrictions on different timelines.", "type": [ "object", "null" ], "properties": { "live_feeds": { "description": "Access restrictions on [public feeds](https://docs.joinmastodon.org/methods/timelines/#public).", "type": [ "object", "null" ], "properties": { "local": { "description": "Access restrictions for local posts in the public feed.", "type": [ "string", "null" ], "enum": [ "public", "authenticated", "disabled" ] }, "remote": { "description": "Access restrictions for remote posts in the public feed.", "type": [ "string", "null" ], "enum": [ "public", "authenticated", "disabled" ] } } }, "hashtag_feeds": { "description": "Access restrictions on [hashtag feeds](https://docs.joinmastodon.org/methods/timelines/#tag).", "type": [ "object", "null" ], "properties": { "local": { "description": "Access restrictions for local posts in hashtag feeds.", "type": [ "string", "null" ], "enum": [ "public", "authenticated" ] }, "remote": { "description": "Access restrictions for remote posts in hashtag feeds.", "type": [ "string", "null" ], "enum": [ "public", "authenticated", "disabled" ] } } }, "trending_link_feeds": { "description": "Access restrictions on [trending link feeds](https://docs.joinmastodon.org/methods/timelines/#link).", "type": [ "object", "null" ], "properties": { "local": { "description": "Access restrictions for local posts in the trending link feeds.", "type": [ "string", "null" ], "enum": [ "public", "authenticated" ] }, "remote": { "description": "Access restrictions for remote posts in trending link feeds.", "type": [ "string", "null" ], "enum": [ "public", "authenticated", "disabled" ] } } } } }, "vapid": { "type": "object", "description": "vapid object", "properties": { "public_key": { "description": "The server's VAPID public key, used for push notifications, the same as [WebPushSubscription#server_key](https://docs.joinmastodon.org/entities/WebPushSubscription/#server_key).", "type": "string" } }, "required": [ "public_key" ] } }, "required": [ "accounts", "media_attachments", "polls", "statuses", "translation", "urls" ] }, "contact": { "description": "Hints related to contacting a representative of the website.", "type": "object", "properties": { "email": { "description": "An email address that can be messaged regarding inquiries or issues.", "type": "string", "format": "email" }, "account": { "description": "An account that can be contacted natively over the network regarding inquiries or issues.", "oneOf": [ { "$ref": "#/components/schemas/Account" }, { "type": "null" } ] } }, "required": [ "email" ] }, "description": { "description": "A short, plain-text description defined by the admin.", "type": "string" }, "domain": { "description": "The WebFinger domain name of the server.", "type": "string" }, "icon": { "description": "The list of available size variants for this server's configured icon.", "type": "array", "items": { "$ref": "#/components/schemas/InstanceIcon" } }, "languages": { "description": "Primary languages of the website and its staff.", "type": "array", "items": { "type": "string", "format": "iso-639-1" } }, "registrations": { "description": "Information about registering for this website.", "type": "object", "properties": { "approval_required": { "description": "Whether registrations require moderator approval.", "type": "boolean" }, "enabled": { "description": "Whether registrations are enabled. This will be `false` if `registrations_mode` is `none` or if the server is in `single_user_mode`.", "type": "boolean" }, "message": { "description": "A custom message to be shown when registrations are closed. Will be `null` if registrations are open.", "type": [ "string", "null" ] }, "min_age": { "description": "A minimum age required to register, if configured.", "type": [ "integer", "null" ] }, "reason_required": { "description": "Whether registrations require the user to provide a reason for joining. Only applicable when `registrations[approval_required]` is true.", "type": [ "boolean", "null" ] }, "url": { "description": "A custom URL for account registration, when using external authentication.", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "approval_required", "enabled" ] }, "rules": { "description": "An itemized list of rules for this website.", "type": "array", "items": { "$ref": "#/components/schemas/Rule" } }, "source_url": { "description": "The URL for the source code of the software running on this server, per the AGPL license requirements.", "type": "string", "format": "uri" }, "thumbnail": { "description": "An image used to represent this server.", "type": "object", "properties": { "url": { "description": "The URL for the thumbnail image.", "type": "string", "format": "uri" }, "blurhash": { "description": "A hash computed by [the BlurHash algorithm](https://github.com/woltapp/blurhash), for generating colorful preview thumbnails when media has not been downloaded yet.", "type": [ "string", "null" ] }, "description": { "description": "The thumbnail's alt text (a description of the image to help people with visual impairments understand its content).", "type": [ "string", "null" ] }, "versions": { "description": "Links to scaled resolution images, for high DPI screens.", "type": [ "object", "null" ], "properties": { "@1x": { "description": "The URL for the thumbnail image at 1x resolution.", "type": [ "string", "null" ], "format": "uri" }, "@2x": { "description": "The URL for the thumbnail image at 2x resolution.", "type": [ "string", "null" ], "format": "uri" } } } }, "required": [ "url" ] }, "title": { "description": "The title of the website.", "type": "string" }, "usage": { "description": "Usage data for this server.", "type": "object", "properties": { "users": { "description": "Usage data related to users on this server.", "type": "object", "properties": { "active_month": { "description": "The number of active users in the past 4 weeks. This is set to zero for server with `configuration[limited_federation]`.", "type": "integer" } }, "required": [ "active_month" ] } }, "required": [ "users" ] }, "version": { "description": "The version of Mastodon installed on the server.", "type": "string" }, "wrapstodon": { "description": "The current Wrapstodon ([Annual report](https://docs.joinmastodon.org/methods/annual_reports/) campaign identifier (year), if any.", "type": [ "string", "null" ] } }, "required": [ "api_versions", "configuration", "contact", "description", "domain", "icon", "languages", "registrations", "rules", "source_url", "thumbnail", "title", "usage", "version" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Instance/#attributes", "description": "Official Mastodon API documentation" }, "example": { "domain": "mastodon.social", "title": "Mastodon", "version": "4.5.0-nightly.2025-07-11", "source_url": "https://github.com/mastodon/mastodon", "description": "The original server operated by the Mastodon gGmbH non-profit", "usage": { "users": { "active_month": 279347 } }, "thumbnail": { "url": "https://files.mastodon.social/site_uploads/files/000/000/001/@1x/57c12f441d083cde.png", "description": "Colourful illustration of a Mastodon (a sort of elephant) carrying a bindle and joining a group of other Mastodons. The other Mastodons have many different colours and are holding up a Welcome sign.", "blurhash": "UeKUpFxuo~R%0nW;WCnhF6RjaJt757oJodS$", "versions": { "@1x": "https://files.mastodon.social/site_uploads/files/000/000/001/@1x/57c12f441d083cde.png", "@2x": "https://files.mastodon.social/site_uploads/files/000/000/001/@2x/57c12f441d083cde.png" } }, "icon": [ { "src": "https://mastodon.social/packs/assets/android-chrome-36x36-DLiBQg3N.png", "size": "36x36" }, { "src": "https://mastodon.social/packs/assets/android-chrome-48x48-C7lKWFwX.png", "size": "48x48" }, { "src": "https://mastodon.social/packs/assets/android-chrome-72x72-9LRpA3QN.png", "size": "72x72" }, { "src": "https://mastodon.social/packs/assets/android-chrome-96x96-BKKwkkY-.png", "size": "96x96" }, { "src": "https://mastodon.social/packs/assets/android-chrome-144x144-D-ewI-KZ.png", "size": "144x144" }, { "src": "https://mastodon.social/packs/assets/android-chrome-192x192-jYKJbpas.png", "size": "192x192" }, { "src": "https://mastodon.social/packs/assets/android-chrome-256x256-DXt2vsq7.png", "size": "256x256" }, { "src": "https://mastodon.social/packs/assets/android-chrome-384x384-CbK7cG33.png", "size": "384x384" }, { "src": "https://mastodon.social/packs/assets/android-chrome-512x512-Dz2ThkhV.png", "size": "512x512" } ], "languages": [ "en" ], "configuration": { "urls": { "streaming": "wss://streaming.mastodon.social", "status": "https://status.mastodon.social", "about": "https://mastodon.social/about", "privacy_policy": "https://mastodon.social/privacy-policy", "terms_of_service": null }, "vapid": { "public_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=" }, "accounts": { "max_display_name_lenth": 30, "max_note_length": 500, "max_featured_tags": 10, "max_pinned_statuses": 5, "max_profile_fields": 4, "profile_field_name_limit": 255, "profile_field_value_limit": 255 }, "statuses": { "max_characters": 500, "max_media_attachments": 4, "characters_reserved_per_url": 23 }, "media_attachments": { "description_limit": 1500, "image_matrix_limit": 33177600, "image_size_limit": 16777216, "supported_mime_types": [ "image/jpeg", "image/png", "image/gif", "image/heic", "image/heif", "image/webp", "image/avif", "video/webm", "video/mp4", "video/quicktime", "video/ogg", "audio/wave", "audio/wav", "audio/x-wav", "audio/x-pn-wave", "audio/vnd.wave", "audio/ogg", "audio/vorbis", "audio/mpeg", "audio/mp3", "audio/webm", "audio/flac", "audio/aac", "audio/m4a", "audio/x-m4a", "audio/mp4", "audio/3gpp", "video/x-ms-asf" ], "video_frame_rate_limit": 120, "video_matrix_limit": 8294400, "video_size_limit": 103809024 }, "polls": { "max_options": 4, "max_characters_per_option": 50, "min_expiration": 300, "max_expiration": 2629746 }, "translation": { "enabled": true }, "timelines_access": { "live_feeds": { "local": "public", "remote": "public" }, "hashtag_feeds": { "local": "public", "remote": "public" }, "trending_link_feeds": { "local": "public", "remote": "public" } }, "limited_federation": false }, "registrations": { "enabled": true, "approval_required": false, "reason_required": false, "message": null, "min_age": 16, "url": null }, "api_versions": { "mastodon": 6 }, "contact": { "email": "staff@mastodon.social", "account": { "id": "13179", "username": "Mastodon", "acct": "Mastodon", "display_name": "Mastodon", "locked": false, "bot": false, "discoverable": true, "indexable": false, "group": false, "created_at": "2016-11-23T00:00:00.000Z", "note": "

Free, open-source decentralized social media platform.

", "url": "https://mastodon.social/@Mastodon", "uri": "https://mastodon.social/users/Mastodon", "avatar": "https://files.mastodon.social/accounts/avatars/000/013/179/original/b4ceb19c9c54ec7e.png", "avatar_static": "https://files.mastodon.social/accounts/avatars/000/013/179/original/b4ceb19c9c54ec7e.png", "header": "https://files.mastodon.social/accounts/headers/000/013/179/original/1375be116fbe0f1d.png", "header_static": "https://files.mastodon.social/accounts/headers/000/013/179/original/1375be116fbe0f1d.png", "followers_count": 843930, "following_count": 34, "statuses_count": 344, "last_status_at": "2025-07-10", "hide_collections": false, "noindex": false, "emojis": [], "roles": [], "fields": [ { "name": "Homepage", "value": "https://joinmastodon.org", "verified_at": "2018-10-31T04:11:00.076+00:00" }, { "name": "Patreon", "value": "https://patreon.com/mastodon", "verified_at": null }, { "name": "GitHub", "value": "https://github.com/mastodon", "verified_at": "2023-07-21T13:27:45.996+00:00" } ] } }, "rules": [ { "id": "1", "text": "Sexually explicit or violent media must be marked as sensitive or with a content warning", "hint": "This includes content that is particularly provocative even if it may not show specific body parts, as well as dead bodies, bloody injuries, and other gore. Particularly obscene content may be prohibited entirely. Profile pictures and header images may not contain sexually explicit or violent media.", "translations": { "de": { "text": "Sexuell explizite Darstellungen oder solche von Gewalt müssen mit einer Inhaltswarnung versehen werden.", "hint": "Das beinhaltet ausdrücklich provokative Inhalte, auch wenn keine bestimmten Körperteile zu sehen sind, sowie Leichname, blutige Verletzungen und vergleichbare extreme Darstellungen. Besonders obszöne Inhalte können vollständig verboten werden. Profil- und Titelbilder dürfen keine sexuell expliziten oder Gewaltdarstellungen abbilden." }, "es": { "text": "El contenido sexual explícito o violento debe marcarse como sensible o con una advertencia de contenido.", "hint": "Esto incluye contenido especialmente provocativo, aunque no muestre partes específicas del cuerpo, así como cadáveres, heridas sangrientas y otras escenas sangrientas. Los contenidos especialmente obscenos pueden prohibirse por completo. Las fotos de perfil y las imágenes de cabecera no pueden contener contenido sexual explícito o violento." }, "fr": { "text": "Le contenu érotique, pornographique ou violent doit être marqué comme sensible ou avoir un avertissement de contenu.", "hint": "Cela inclut le contenu particulièrement provocateur même s’il ne montre pas particulièrement de parties intimes, ainsi que les photos de cadavres, de blessures sanglantes et autres scènes dérangeantes. Le contenu particulièrement obscène peut être complètement interdit. Les images de profil et d’en-tête ne doivent pas contenir de contenu sexuellement explicite ou violent." }, "nl": { "text": "Seksueel expliciet of gewelddadig beeldmateriaal moet als ‘gevoelig’ gemarkeerd worden, of met een inhoudswaarschuwing gemarkeerd.", "hint": "Dit omvat ook inhoud die gedeeltelijk aanstootgevend is zelfs als het geen lichaamsdelen toont, en ook dode lichamen, bloederige verwondingen en andere gruwelijkheden. Zeer obscene inhoud kan helemaal verboden worden. Profielfoto’s en headerafbeeldingen mogen geen seksueel expliciete of geweldadige inhoud hebben." }, "ru": { "text": "Сексуально откровенные или жестокие изображения или видео должны быть помечены как чувствительные или скрыты под спойлер.", "hint": "Это включает в себя особенно провоцирующий контент, даже если он не показывает определённые части тела, а также мёртвые тела, окровавленные раны и прочую кровь. Особенно жестокий контент может быть запрещён полностью. Аватары и обложки профилей не должны содержать сексуально откровенные или жестокие изображения." }, "zh-CN": { "text": "色情或暴力媒体必须标记为敏感或有内容警告", "hint": "这包括特别挑逗性的内容,即使它可能没有显示特定的身体部位,以及尸体、血腥伤害和其他血腥内容。特别淫秽的内容可能会被完全禁止。个人资料图片和头像不得包含色情或暴力内容。" }, "zh-TW": { "text": "性暗示或暴力媒體必須標示為敏感或附帶內容警示", "hint": "這包括特別挑釁的內容,即使它可能沒有顯示特定的身體部位,以及屍體、血腥傷害和其他血腥內容。特別猥褻的內容可能會被完全禁止。個人檔案圖片和標題圖片不得包含色情或暴力媒體。" } } }, { "id": "2", "text": "No racism, sexism, homophobia, transphobia, ableism, xenophobia, or casteism.", "hint": "Transphobic behavior such as intentional misgendering and deadnaming is strictly prohibited. Promotion of \"conversion therapy\" is strictly prohibited. Criticism of governments and religions is permissible unless being used as a proxy for discrimination.", "translations": { "de": { "text": "Kein(e) Rassismus, Sexismus, Homophobie, Transphobie, Behindertenfeindlichkeit, Fremdenfeindlichkeit oder Kasteismus.", "hint": "Transphobes Verhalten wie die absichtliche Verwendung von falschen Anreden und Pronomen sowie Deadnaming ist strengstens verboten. Die Werbung für Konversionstherapien ist strengstens verboten. Die Kritik an Regierungen und Religionen ist zulässig, sofern sie nicht stellvertretend für Diskriminierung verwendet wird." }, "es": { "text": "Prohibido el racismo, sexismo, homofobia, transfobia, ableísmo, xenofobia o casticismo.", "hint": "Queda terminantemente prohibido el comportamiento transfóbico, como el uso intencionado de nombres falsos o el \"deadnaming\". La promoción de la \"terapia de conversión\" está estrictamente prohibida. Se permiten las críticas a gobiernos y religiones, a menos que se utilicen como excusa para la discriminación." }, "fr": { "text": "Pas de racisme, sexisme, homophobie, transphobie, validisme, xénophobie ou discrimination de caste.", "hint": "Les comportements intentionnellement transphobes, comme le mégenrage ou le morinommage (“deadnaming”) est strictement interdit. La promotion des “thérapies de conversion” est strictement interdite. La critique des gouvernements et religions est autorisée, sauf dans les cas ou elle est utilisée comme paravent pour de la discrimination." }, "nl": { "text": "Geen racisme, seksisme, homofobie, transfobie, validisme, xenofobie of kastendiscriminatie.", "hint": "Transfobisch gedrag zoals opzettelijk misgenderen en deadnaming is ten strengste verboden. Het promoten van “conversie therapie” is ten strengste verboden. Kritiek op overheden en religies is toegestaan tenzij het wordt gebruikt als proxy voor racisme." }, "ru": { "text": "Запрещается расизм, сексизм, гомофобия, трансфобия, эйблизм, ксенофобия и кастовость.", "hint": "Трансфобное поведение, такое как осознанный мисгендеринг и деднейминг, строго запрещено. Продвижение \"конверсионной терапии\" строго запрещено. Критика правительств и религий разрешена, кроме случаев, когда она используется как оправдание для дискриминации." }, "zh-CN": { "text": "禁止种族主义、性别歧视、仇视同性恋、仇视变性者、异能者、仇外心理或种姓歧视。", "hint": "严禁变性仇视行为,如故意误用性别和死名。严禁宣传 “转换疗法”。允许批评政府和宗教,除非被用作歧视的代名词。" }, "zh-TW": { "text": "禁止種族主義、性別主義、恐同主義、恐變性主義、能力主義、仇外主義或種性主義。", "hint": "嚴禁變性仇視行為,例如故意誤用性別和暱稱。嚴禁宣傳「扭轉治療」。允許批評政府和宗教,除非被用來代表歧視。" } } }, { "id": "3", "text": "No incitement of violence or promotion of violent ideologies", "hint": "Calling for people or groups to be assassinated, murdered, or attacked physically is strictly prohibited. Support for violent groups or events is prohibited.", "translations": { "de": { "text": "Keine Anstiftung zu Gewalt oder Förderung gewalttätiger Ideologien.", "hint": "Der Aufruf zum Mord oder körperlichen Attacken auf Personen oder Gruppen ist strengstens verboten. Die Unterstützung gewalttätiger Gruppen oder Veranstaltungen ist verboten." }, "es": { "text": "Prohibida la incitación a la violencia o la promoción de ideologías violentas.", "hint": "Está estrictamente prohibido hacer llamamientos para que se asesine, mate o agreda físicamente a personas o grupos. Está prohibido apoyar a grupos o acontecimientos violentos." }, "fr": { "text": "Pas d’incitation à la violence ou de promotion d’idéologies violentes.", "hint": "L’appel au meutre, à la violence ou à l’action physique envers des personnes ou des groupes de personnes est strictement interdit. Le soutien à des groupes ou évènements violents est interdit." }, "nl": { "text": "Niet aanzetten tot geweld of verspreiden van gewelddadige ideologieën.", "hint": "Mensen of groepen aanzetten tot moord, aanslagen of fysieke aanvallen is ten strengste verboden. Steun voor gewelddadige groeperingen of evenementen is verboden." }, "ru": { "text": "Запрещается подстрекательство к жестокости или продвижение жестоких идеологий.", "hint": "Призывы к покушениям, убийствам и физическим атакам на людей или группы людей строго запрещены. Поддержка жестоких сообществ или событий запрещена." }, "zh-CN": { "text": "不得煽动暴力或宣扬暴力意识形态", "hint": "严禁呼吁暗杀、谋杀或人身攻击他人或团体。禁止支持暴力团体或事件。" }, "zh-TW": { "text": "嚴禁煽動暴力或宣揚暴力意識形態", "hint": "嚴禁呼籲暗殺、謀殺或人身攻擊他人或團體。嚴禁支持暴力團體或事件。" } } }, { "id": "4", "text": "No harassment, block evasion, dogpiling, or doxxing of others", "hint": "Repeat attempts to communicate with users who have blocked you or creation of accounts solely to harass or insult individuals is strictly prohibited. Coordinated activity to attack other users is prohibited. Posting of private personal information about others is prohibited.", "translations": { "de": { "text": "Keine Belästigungen, Umgehung von Blockierungen, Dogpiling oder Doxxing.", "hint": "Wiederholte Kommunikationsversuche mit Profilen, die dich blockiert haben, oder die Erstellung neuer Konten, die ausschließlich dazu dienen, andere zu belästigen oder zu beleidigen, sind strengstens verboten. Koordinierte Angriffe auf andere Profile sind verboten. Die Veröffentlichung von privaten und persönlichen Informationen anderer ist verboten." }, "es": { "text": "No acosar, evadir bloqueos, \"dogpiling\" (abuso en línea por grupos de acosadores) o doxeo de otros.", "hint": "Está estrictamente prohibido intentar comunicarse repetidamente con usuarios que te hayan bloqueado o crear cuentas con el único fin de acosar o insultar a otras personas. Queda prohibida la actividad coordinada para atacar a otros usuarios. Está prohibido publicar información personal privada sobre otras personas." }, "fr": { "text": "Pas de harcèlement, d’esquive de blocage, de “dogpiling”, ou de divulgation de données personnelles d’autrui.", "hint": "Les tentatives répétées de communiquer avec des utilisateur·ices qui vont ont bloqué ainsi que la création de comptes pour harceler ou insulter autrui sont strictement interdites. Les attaques coordonnées contre autrui sont interdites. La publication de données personnelles d’autrui est interdite." }, "nl": { "text": "Geen intimidatie, omzeilen van blokkades, groepsaanvallen of het verspreiden van privégegevens van anderen.", "hint": "Herhaalde pogingen tot communiceren met gebruikers die je hebben geblokkeerd, of het maken van accounts enkel om personen te intimideren of beledigen is ten strengste verboden. Gecoördineerde activiteit om andere gebruikers aan te vallen is verboden. Het plaatsen van privé-gegevens van anderen is verboden." }, "ru": { "text": "Запрещается травля, избегание блокировок, набеги и разглашение личной информации других лиц.", "hint": "Повторяющиеся попытки взаимодействовать с пользователями, которые вас заблокировали, и создание учётных записей исключительно ради травли или оскорблений, строго запрещены. Скоординированная активность с целью атаки на других пользователей запрещена. Публикация личной информации других лиц запрещена." }, "zh-CN": { "text": "不得骚扰、回避封禁、诽谤或攻击他人", "hint": "严禁重复尝试与已封禁您的用户交流,或仅为骚扰或侮辱他人而创建账户。严禁协同攻击其他用户。禁止发布他人的私人个人信息。" }, "zh-TW": { "text": "嚴禁騷擾、迴避封鎖、煽動或誣衊他人", "hint": "嚴禁重複嘗試與已封鎖您的使用者溝通,或純粹為了騷擾或侮辱他人而建立帳號。禁止攻擊其他使用者的協調活動。禁止張貼他人的私人個人資訊。" } } }, { "id": "7", "text": "Do not share information widely-known to be false and misleading", "hint": "False and misleading information and links from low-quality sources may not be posted, especially if they are likely to mislead or confuse others or endanger their safety.", "translations": { "de": { "text": "Verbreitet keine Informationen, von denen allgemein bekannt ist, dass sie falsch oder irreführend.", "hint": "Falsche und irreführende Informationen sowie Links aus unseriösen Quellen dürfen nicht gepostet werden, insbesondere wenn sie geeignet sind, andere in die Irre zu führen oder deren Sicherheit zu gefährden." }, "es": { "text": "No compartas información ampliamente conocida por ser falsa y engañosa.", "hint": "No está permitido publicar información falsa y engañosa ni enlaces de fuentes de baja calidad, especialmente si pueden inducir a error o confusión a otras personas o poner en peligro su seguridad." }, "fr": { "text": "Ne partagez pas d’informations connues pour être fausses ou trompeuses.", "hint": "Les informations fausses ou trompeuses, ainsi que les liens vers des sources de mauvaise qualité ne doivent pas être publiées, particulièrement si elles risquent de tromper, d’induire en erreur, de semer la confusion ou de mettre des personnes en danger." }, "nl": { "text": "Deel geen informatie die algemeen bekend staat als onjuist en misleidend.", "hint": "Onjuiste en misleidende informatie en links naar onbetrouwbare bronnen mogen niet geplaatst worden, zeker als deze waarschijnlijk anderen misleiden of verwarren, of hun veiligheid in gevaar brengt." }, "ru": { "text": "Не публикуйте заведомо ложную и вводящую в заблуждение информацию.", "hint": "Запрещена публикация ложной и вводящей в заблуждение информации и ссылок из низкокачественных источников, особенно если это может сбить других людей с толку, запутать их, или подвергнуть их опасности." }, "zh-CN": { "text": "不得分享众所周知的虚假和误导性信息\r\n", "hint": "不得发布虚假和误导性信息以及来自低质量来源的链接,尤其是可能误导或混淆他人或危及他人安全的信息。" }, "zh-TW": { "text": "請勿分享廣為人知的虛假和誤導資訊", "hint": "不得張貼虛假和誤導資訊以及來自低品質來源的連結,尤其是可能誤導或混淆他人或危害他人安全的資訊。" } } }, { "id": "1008", "text": "Content created by others must be attributed, and use of generative AI must be disclosed", "hint": "Content created by others must clearly provide a reference to the author, creator, or source. For adult content, this should include performers. Accounts may not solely post AI-generated content.", "translations": { "de": { "text": "Von anderen erstellte Inhalte müssen gekennzeichnet und die Nutzung generativer KI offengelegt werden.", "hint": "Von anderen erstellte Inhalte müssen durch einen eindeutigen Verweis auf den/die Autor*in oder die Quelle gekennzeichnet werden. Bei nicht jugendfreien Inhalten sollte dies auch die Darsteller*innen einschließen. Konten dürfen nicht ausschließlich KI-generierte Inhalte posten." }, "es": { "text": "Los contenidos creados por terceros deben ser atribuidos y el uso de IA debe ser revelado.", "hint": "Los contenidos creados por terceros deben proporcionar claramente una referencia al autor, creador o fuente. En el caso de los contenidos para adultos, debe incluirse a los artistas. Las cuentas no pueden publicar únicamente contenidos generados por IA." }, "fr": { "text": "Le contenu crée par autrui doit être attribué, et l’utilisation d’IA générative doit être marqué comme tel.", "hint": "Le contenu créé par autrui doit fournir une référence explicite à son auteur·ice, créateur·ice ou sa source. Cela inclut les acteur·ice de contenu pour adulte. Les comptes publiant exclusivement du contenu généré par IA sont interdits." }, "nl": { "text": "Inhoud gemaakt door anderen moet worden toegeschreven, en het gebruik van generatieve AI moet worden aangegeven.", "hint": "Inhoud gemaakt door anderen moet een duidelijke referentie naar de auteur, maker of bron bevatten. Voor Content created by others must clearly provide a reference to the author, creator, or source. Voor inhoud voor volwassenen, moet het model worden vermeld. Accounts mogen niet uitsluitend door AI gegenereerde inhoud plaatsen." }, "ru": { "text": "Контент, созданный другими, должен публиковаться с указанием авторства, а использование генеративного ИИ должно быть раскрыто.", "hint": "Контент, созданный другими, должен явным образом сопровождаться отсылкой к автору, создателю или источнику. Для контента для взрослых это включает в себя актёров. Учётные записи не могут публиковать исключительно контент, сгенерированный с помощью ИИ." }, "zh-CN": { "text": "他人创建的内容必须注明出处,使用人工智能产生的内容必须公开和披露说明", "hint": "他人创建的内容必须明确注明作者、创建者或来源。对于成人内容,应包括表演者。账户不得仅发布人工智能生成的内容。" }, "zh-TW": { "text": "由他人創作的內容必須註明來源,使用人工智能產生的內容必須公開和披露說明", "hint": "他人創作的內容必須清楚提供作者、創作人或來源的參照。對於成人內容,這應該包括表演者。帳戶不得僅發佈人工智能產生的內容。" } } } ] } }, "InstanceIcon": { "type": "object", "description": "Additional entity definition for InstanceIcon", "properties": { "size": { "description": "The size of this icon.", "type": "string" }, "src": { "description": "The URL of this icon.", "type": "string" } }, "required": [ "size", "src" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Instance/#attributes", "description": "Official Mastodon API documentation" } }, "List": { "type": "object", "description": "Represents a list of some users that the authenticated user follows.", "properties": { "exclusive": { "description": "Whether members of the list should be removed from the “Home” feed.", "type": "boolean" }, "id": { "description": "The ID of the list.", "type": "string" }, "replies_policy": { "description": "Which replies should be shown in the list.", "type": "string", "$ref": "#/components/schemas/ListRepliesPolicyEnum" }, "title": { "description": "The user-defined title of the list.", "type": "string" } }, "required": [ "exclusive", "id", "replies_policy", "title" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/List/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "12249", "title": "Friends", "replies_policy": "list", "exclusive": false } }, "Marker": { "type": "object", "description": "Represents the last read position within a user's timelines.", "properties": { "last_read_id": { "description": "The ID of the most recently viewed entity.", "type": "string" }, "updated_at": { "description": "The timestamp of when the marker was set.", "type": "string", "format": "date-time" }, "version": { "description": "An incrementing counter, used for locking to prevent write conflicts.", "type": "integer" } }, "required": [ "last_read_id", "updated_at", "version" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Marker/#attributes", "description": "Official Mastodon API documentation" }, "example": { "last_read_id": "103194548672408537", "version": 462, "updated_at": "2019-11-24T19:39:39.337Z" } }, "MediaAttachment": { "type": "object", "description": "Represents a file or media attachment that can be added to a status.", "properties": { "id": { "description": "The ID of the attachment in the database.", "type": "string" }, "type": { "description": "The type of the attachment.", "type": "string", "$ref": "#/components/schemas/MediaAttachmentTypeEnum" }, "blurhash": { "description": "A hash computed by [the BlurHash algorithm](https://github.com/woltapp/blurhash), for generating colorful preview thumbnails when media has not been downloaded yet.", "type": [ "string", "null" ] }, "description": { "description": "Alternate text that describes what is in the media attachment, to be used for the visually impaired or when media attachments do not load.", "type": [ "string", "null" ] }, "meta": { "description": "Metadata returned by Paperclip.", "type": [ "object", "null" ], "properties": { "small": { "description": "Details about the small preview version of the attachment.", "oneOf": [ { "$ref": "#/components/schemas/MetaDetails" }, { "type": "null" } ] }, "original": { "description": "Details about the original version of the attachment.", "oneOf": [ { "$ref": "#/components/schemas/MetaDetails" }, { "type": "null" } ] }, "focus": { "description": "Coordinates that may be used for smart thumbnail cropping -- see [Focal points for cropped media thumbnails](https://docs.joinmastodon.org/api/guidelines/#focal-points) for more.", "type": [ "object", "null" ], "properties": { "x": { "description": "Horizontal focal point", "type": [ "number", "null" ] }, "y": { "description": "Vertical focal point", "type": [ "number", "null" ] } } } } }, "preview_url": { "description": "The location of a scaled-down preview of the attachment.", "type": [ "string", "null" ], "format": "uri" }, "remote_url": { "description": "The location of the full-size original attachment on the remote website.", "type": [ "string", "null" ], "format": "uri" }, "url": { "description": "The location of the original full-size attachment. Url may be null if the file is still being processed. See [`POST /api/v2/media`](https://docs.joinmastodon.org/methods/media/#v2).", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "id", "type" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/MediaAttachment/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "22345792", "type": "image", "url": "https://files.mastodon.social/media_attachments/files/022/345/792/original/57859aede991da25.jpeg", "preview_url": "https://files.mastodon.social/media_attachments/files/022/345/792/small/57859aede991da25.jpeg", "remote_url": null, "text_url": "https://mastodon.social/media/2N4uvkuUtPVrkZGysms", "meta": { "original": { "width": 640, "height": 480, "size": "640x480", "aspect": 1.3333333333333333 }, "small": { "width": 461, "height": 346, "size": "461x346", "aspect": 1.3323699421965318 }, "focus": { "x": -0.27, "y": 0.51 } }, "description": "test media description", "blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}" } }, "MetaDetails": { "type": "object", "description": "Additional entity definition for MetaDetails", "properties": { "aspect": { "description": "The media aspect ratio of the video or image attachment.", "type": [ "number", "null" ] }, "bitrate": { "description": "The media bitrate of the video or audio attachment.", "type": [ "integer", "null" ] }, "duration": { "description": "The duration of the video attachment.", "type": [ "number", "null" ] }, "frame_rate": { "description": "The frame rate of the video attachment.", "type": [ "string", "null" ] }, "height": { "description": "The height of the attachment in pixels.", "type": [ "integer", "null" ] }, "width": { "description": "The width of the attachment in pixels.", "type": [ "integer", "null" ] } }, "externalDocs": { "url": "https://docs.joinmastodon.org/entities/MediaAttachment/#attributes", "description": "Official Mastodon API documentation" } }, "Notification": { "type": "object", "description": "Represents a notification of an event relevant to the user.", "properties": { "account": { "description": "The account that performed the action that generated the notification.", "$ref": "#/components/schemas/Account" }, "created_at": { "description": "The timestamp of the notification.", "type": "string", "format": "date-time" }, "group_key": { "description": "Group key shared by similar notifications, to be used in the grouped notifications feature. Should be considered opaque, but ungrouped notifications can be assumed to have a `group_key` of the form `ungrouped-{notification_id}`.", "type": "string" }, "id": { "description": "The id of the notification in the database.", "type": "string" }, "type": { "description": "The type of event that resulted in the notification.", "type": "string", "$ref": "#/components/schemas/NotificationTypeEnum" }, "collection": { "description": "Collection that was the object of the notification. Attached when `type` of the notification is `added_to_collection` or `collection_update`.", "oneOf": [ { "$ref": "#/components/schemas/Collection" }, { "type": "null" } ] }, "event": { "description": "Summary of the event that caused follow relationships to be severed. Attached when `type` of the notification is `severed_relationships`.", "oneOf": [ { "$ref": "#/components/schemas/RelationshipSeveranceEvent" }, { "type": "null" } ] }, "fallback": { "description": "Fallback information available for some notification types that clients may not support. Only available for some notification types, and only if the `supported_types` parameter is used when querying.", "oneOf": [ { "$ref": "#/components/schemas/NotificationFallback" }, { "type": "null" } ] }, "moderation_warning": { "description": "Moderation warning that caused the notification. Attached when `type` of the notification is `moderation_warning`.", "oneOf": [ { "$ref": "#/components/schemas/AccountWarning" }, { "type": "null" } ] }, "report": { "description": "Report that was the object of the notification. Attached when `type` of the notification is `admin.report`.", "oneOf": [ { "$ref": "#/components/schemas/Report" }, { "type": "null" } ] }, "status": { "description": "Status that was the object of the notification. Attached when `type` of the notification is `favourite`, `reblog`, `status`, `mention`, `poll`, `update`, `quote` or `quoted_update`. In the case of `quoted_update`, your quote of the edited status is attached, not the status that was edited.", "oneOf": [ { "$ref": "#/components/schemas/Status" }, { "type": "null" } ] } }, "required": [ "account", "created_at", "group_key", "id", "type" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Notification/#attributes", "description": "Official Mastodon API documentation" } }, "NotificationFallback": { "type": "object", "description": "Represents a notification of an event relevant to the user.", "properties": { "title": { "description": "Localized fallback title for the notification, for instance “Alice added you to a collection”.", "type": "string" }, "details": { "description": "Localized details for the notifications, to be displayed when clicking the notification, for instance.", "type": [ "string", "null" ] }, "summary": { "description": "Localized fallback summary for the notification, for instance “You're on an app that does not support the most recent version of Mastodon. Sign in to the Mastodon web app for full functionality.”", "type": [ "string", "null" ] } }, "required": [ "title" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/NotificationFallback/#attributes", "description": "Official Mastodon API documentation" } }, "NotificationPolicy": { "type": "object", "description": "Represents the notification filtering policy of the user.", "properties": { "for_limited_accounts": { "description": "Whether to `accept`, `filter` or `drop` notifications from accounts that were limited by a moderator. `drop` will prevent creation of the notification object altogether (without preventing the underlying activity), `filter` will cause it to be marked as filtered, and `accept` will not affect its processing.", "type": "string" }, "for_new_accounts": { "description": "Whether to `accept`, `filter` or `drop` notifications from accounts created in the past 30 days. `drop` will prevent creation of the notification object altogether (without preventing the underlying activity), `filter` will cause it to be marked as filtered, and `accept` will not affect its processing.", "type": "string" }, "for_not_followers": { "description": "Whether to `accept`, `filter` or `drop` notifications from accounts that are not following the user. `drop` will prevent creation of the notification object altogether (without preventing the underlying activity), `filter` will cause it to be marked as filtered, and `accept` will not affect its processing.", "type": "string" }, "for_not_following": { "description": "Whether to `accept`, `filter` or `drop` notifications from accounts the user is not following. `drop` will prevent creation of the notification object altogether (without preventing the underlying activity), `filter` will cause it to be marked as filtered, and `accept` will not affect its processing.", "type": "string" }, "for_private_mentions": { "description": "Whether to `accept`, `filter` or `drop` notifications from private mentions. `drop` will prevent creation of the notification object altogether (without preventing the underlying activity), `filter` will cause it to be marked as filtered, and `accept` will not affect its processing. Replies to private mentions initiated by the user, as well as accounts the user follows, are always allowed, regardless of this value.", "type": "string" }, "summary": { "description": "Summary of the filtered notifications", "type": "object", "properties": { "pending_notifications_count": { "description": "Number of total non-dismissed filtered notifications. May be inaccurate.", "type": "integer" }, "pending_requests_count": { "description": "Number of different accounts from which the user has non-dismissed filtered notifications. Capped at 100.", "type": "integer" } }, "required": [ "pending_notifications_count", "pending_requests_count" ] } }, "required": [ "for_limited_accounts", "for_new_accounts", "for_not_followers", "for_not_following", "for_private_mentions", "summary" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/NotificationPolicy/#attributes", "description": "Official Mastodon API documentation" }, "example": { "for_not_following": "accept", "for_not_followers": "accept", "for_new_accounts": "accept", "for_private_mentions": "drop", "for_limited_accounts": "filter", "summary": { "pending_requests_count": 0, "pending_notifications_count": 0 } } }, "NotificationRequest": { "type": "object", "description": "Represents a group of filtered notifications from a specific user.", "properties": { "account": { "description": "The account that performed the action that generated the filtered notifications.", "$ref": "#/components/schemas/Account" }, "created_at": { "description": "The timestamp of the notification request, i.e. when the first filtered notification from that user was created.", "type": "string", "format": "date-time" }, "id": { "description": "The id of the notification request in the database.", "type": "string" }, "notifications_count": { "description": "How many of this account's notifications were filtered.", "type": "string" }, "updated_at": { "description": "The timestamp of when the notification request was last updated.", "type": "string", "format": "date-time" }, "last_status": { "description": "Most recent status associated with a filtered notification from that account.", "oneOf": [ { "$ref": "#/components/schemas/Status" }, { "type": "null" } ] } }, "required": [ "account", "created_at", "id", "notifications_count", "updated_at" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/NotificationRequest/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "112456967201894256", "created_at": "2024-05-17T14:45:41.171Z", "updated_at": "2024-05-17T14:45:41.171Z", "notifications_count": "1", "account": { "id": "971724", "username": "zsc", "acct": "zsc" }, "last_status": { "id": "103186126728896492", "created_at": "2019-11-23T07:49:01.940Z", "in_reply_to_id": "103186038209478945", "in_reply_to_account_id": "14715", "content": "

@trwnh sup!

", "account": { "id": "971724", "username": "zsc", "acct": "zsc" }, "mentions": [ { "id": "14715", "username": "trwnh", "url": "https://mastodon.social/@trwnh", "acct": "trwnh" } ] } } }, "Poll": { "type": "object", "description": "Represents a poll attached to a status.", "properties": { "emojis": { "description": "Custom emoji to be used for rendering poll options.", "type": "array", "items": { "$ref": "#/components/schemas/CustomEmoji" } }, "expired": { "description": "Is the poll currently expired?", "type": "boolean" }, "id": { "description": "The ID of the poll in the database.", "type": "string" }, "multiple": { "description": "Does the poll allow multiple-choice answers?", "type": "boolean" }, "options": { "description": "Possible answers for the poll.", "type": "array", "items": { "$ref": "#/components/schemas/PollOption" } }, "votes_count": { "description": "How many votes have been received.", "type": "integer" }, "expires_at": { "description": "When the poll ends.", "type": [ "string", "null" ], "format": "date-time" }, "own_votes": { "description": "When called with a user token, which options has the authorized user chosen? Contains an array of index values for `options`.", "type": [ "array", "null" ], "items": { "type": "integer" } }, "voted": { "description": "When called with a user token, has the authorized user voted?", "type": [ "boolean", "null" ] }, "voters_count": { "description": "How many unique accounts have voted on a multiple-choice poll.", "type": [ "integer", "null" ] } }, "required": [ "emojis", "expired", "id", "multiple", "options", "votes_count" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Poll/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "34830", "expires_at": "2019-12-05T04:05:08.302Z", "expired": true, "multiple": false, "votes_count": 10, "voters_count": null, "voted": true, "own_votes": [ 1 ], "options": [ { "title": "accept", "votes_count": 6 }, { "title": "deny", "votes_count": 4 } ], "emojis": [] } }, "PollOption": { "type": "object", "description": "Additional entity definition for Poll::Option", "properties": { "title": { "description": "The text value of the poll option.", "type": "string" }, "votes_count": { "description": "The total number of received votes for this option.", "type": [ "integer", "null" ] } }, "required": [ "title" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Poll/#poll", "description": "Official Mastodon API documentation" } }, "Preferences": { "type": "object", "description": "Represents a user's preferences.", "properties": { "posting:default:sensitive": { "description": "Default sensitivity flag for new posts. Equivalent to [CredentialAccount#source\\[sensitive\\]](https://docs.joinmastodon.org/entities/Account/#source-sensitive).", "type": "boolean" }, "posting:default:visibility": { "description": "Default visibility for new posts. Equivalent to [CredentialAccount#source\\[privacy\\]](https://docs.joinmastodon.org/entities/Account/#source-privacy).", "type": "string", "$ref": "#/components/schemas/StatusVisibilityEnum" }, "reading:expand:media": { "description": "Whether media attachments should be automatically displayed or blurred/hidden.", "type": "string", "$ref": "#/components/schemas/PreferencesReadingExpandMediaEnum" }, "reading:expand:spoilers": { "description": "Whether CWs should be expanded by default.", "type": "boolean" }, "posting:default:language": { "description": "Default language for new posts. Equivalent to [CredentialAccount#source\\[language\\]](https://docs.joinmastodon.org/entities/Account/#source-language)", "type": [ "string", "null" ], "format": "iso-639-1" } }, "required": [ "posting:default:sensitive", "posting:default:visibility", "reading:expand:media", "reading:expand:spoilers" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Preferences/#attributes", "description": "Official Mastodon API documentation" }, "example": { "posting:default:visibility": "public", "posting:default:sensitive": false, "posting:default:language": null, "reading:expand:media": "default", "reading:expand:spoilers": false } }, "PreviewCard": { "type": "object", "description": "Represents a rich preview card that is generated using OpenGraph tags from a URL.", "properties": { "author_name": { "description": "The author of the original resource. Deprecated since 4.3.0, clients should use `authors` instead.", "type": "string" }, "author_url": { "description": "A link to the author of the original resource. Deprecated since 4.3.0, clients should use `authors` instead.", "type": "string", "format": "uri" }, "authors": { "description": "Fediverse account of the authors of the original resource.", "type": "array", "items": { "$ref": "#/components/schemas/PreviewCardAuthor" } }, "description": { "description": "Description of preview.", "type": "string" }, "embed_url": { "description": "Used for photo embeds, instead of custom `html`.", "type": "string", "format": "uri" }, "height": { "description": "Height of preview, in pixels.", "type": "integer" }, "html": { "description": "HTML to be used for generating the preview card.", "type": "string" }, "provider_name": { "description": "The provider of the original resource.", "type": "string" }, "provider_url": { "description": "A link to the provider of the original resource.", "type": "string", "format": "uri" }, "title": { "description": "Title of linked resource.", "type": "string" }, "type": { "description": "The type of the preview card.", "type": "string", "$ref": "#/components/schemas/TrendsLinkTypeEnum" }, "url": { "description": "Location of linked resource.", "type": "string", "format": "uri" }, "width": { "description": "Width of preview, in pixels.", "type": "integer" }, "blurhash": { "description": "A hash computed by [the BlurHash algorithm](https://github.com/woltapp/blurhash), for generating colorful preview thumbnails when media has not been downloaded yet.", "type": [ "string", "null" ] }, "image": { "description": "Preview thumbnail.", "type": [ "string", "null" ], "format": "uri" }, "missing_attribution": { "description": "True if the linked article claims to be written by the current user without the user having the article's domain in their [`attribution_domains`](https://docs.joinmastodon.org/entities/Account/#source[attribution_domains])). This is used to prompt them to review and add the domain.", "type": [ "boolean", "null" ] }, "published_at": { "description": "UNIX timestamp of publication date.", "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "author_name", "author_url", "authors", "description", "embed_url", "height", "html", "provider_name", "provider_url", "title", "type", "url", "width" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/PreviewCard/#attributes", "description": "Official Mastodon API documentation" } }, "TrendsLink": { "type": "object", "description": "Additional entity definition for Trends::Link", "properties": { "author_name": { "description": "The author of the original resource. Deprecated since 4.3.0, clients should use `authors` instead.", "type": "string" }, "author_url": { "description": "A link to the author of the original resource. Deprecated since 4.3.0, clients should use `authors` instead.", "type": "string", "format": "uri" }, "authors": { "description": "Fediverse account of the authors of the original resource.", "type": "array", "items": { "$ref": "#/components/schemas/PreviewCardAuthor" } }, "description": { "description": "Description of preview.", "type": "string" }, "embed_url": { "description": "Used for photo embeds, instead of custom `html`.", "type": "string", "format": "uri" }, "height": { "description": "Height of preview, in pixels.", "type": "integer" }, "history": { "description": "Usage statistics for given days (typically the past week).", "type": "array", "items": { "type": "object", "properties": { "accounts": { "description": "The counted accounts using the link within that day.", "type": "string" }, "day": { "description": "UNIX timestamp on midnight of the given day.", "type": "string" }, "uses": { "description": "The counted statuses using the link within that day.", "type": "string" } }, "required": [ "accounts", "day", "uses" ] } }, "html": { "description": "HTML to be used for generating the preview card.", "type": "string" }, "provider_name": { "description": "The provider of the original resource.", "type": "string" }, "provider_url": { "description": "A link to the provider of the original resource.", "type": "string", "format": "uri" }, "title": { "description": "Title of linked resource.", "type": "string" }, "type": { "description": "The type of the preview card.", "type": "string", "$ref": "#/components/schemas/TrendsLinkTypeEnum" }, "url": { "description": "Location of linked resource.", "type": "string", "format": "uri" }, "width": { "description": "Width of preview, in pixels.", "type": "integer" }, "blurhash": { "description": "A hash computed by [the BlurHash algorithm](https://github.com/woltapp/blurhash), for generating colorful preview thumbnails when media has not been downloaded yet.", "type": [ "string", "null" ] }, "image": { "description": "Preview thumbnail.", "type": [ "string", "null" ], "format": "uri" }, "missing_attribution": { "description": "True if the linked article claims to be written by the current user without the user having the article's domain in their [`attribution_domains`](https://docs.joinmastodon.org/entities/Account/#source[attribution_domains])). This is used to prompt them to review and add the domain.", "type": [ "boolean", "null" ] }, "published_at": { "description": "UNIX timestamp of publication date.", "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "author_name", "author_url", "authors", "description", "embed_url", "height", "history", "html", "provider_name", "provider_url", "title", "type", "url", "width" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/PreviewCard/#trends", "description": "Official Mastodon API documentation" } }, "PreviewCardAuthor": { "type": "object", "description": "Represents an author in a rich preview card.", "properties": { "name": { "description": "The original resource author's name. Replaces the deprecated `author_name` attribute of the preview card.", "type": "string" }, "url": { "description": "A link to the author of the original resource. Replaces the deprecated `author_url` attribute of the preview card.", "type": "string", "format": "uri" }, "account": { "description": "The fediverse account of the author.", "oneOf": [ { "$ref": "#/components/schemas/Account" }, { "type": "null" } ] } }, "required": [ "name", "url" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/PreviewCardAuthor/#attributes", "description": "Official Mastodon API documentation" } }, "PrivacyPolicy": { "type": "object", "description": "Represents the privacy policy of the instance.", "properties": { "content": { "description": "The rendered HTML content of the privacy policy.", "type": "string" }, "updated_at": { "description": "A timestamp of when the privacy policy was last updated.", "type": "string", "format": "date-time" } }, "required": [ "content", "updated_at" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/PrivacyPolicy/#attributes", "description": "Official Mastodon API documentation" }, "example": { "updated_at": "2022-10-07T00:00:00+00:00", "content": "

This privacy policy describes how example.com ("example.com", "we", "us") collects,\nprotects and uses the personally identifiable information you may provide\nthrough the example.com website or its API.

\n\n

What information do we collect?

\n\n\n\n
\n\n

This document is CC-BY-SA. Originally adapted from the Discourse privacy\npolicy.

\n" } }, "Profile": { "type": "object", "description": "Represents the current user's profile, with source values for all the editable fields.", "properties": { "attribution_domains": { "description": "Domains of websites allowed to credit the account.", "type": "array", "items": { "type": "string" } }, "avatar_description": { "description": "A textual description of the avatar, to be used for the visually impaired or when avatars do not load.", "type": "string" }, "bot": { "description": "Indicates that the account may perform automated actions, may not be monitored, or identifies as a robot. This is determined by the account's `actor_type` being set to 'Application' or 'Service'.", "type": "boolean" }, "display_name": { "description": "The profile's display name.", "type": "string" }, "fields": { "description": "Metadata about the account. Those contain the raw unprocessed names and values.", "type": "array", "items": { "$ref": "#/components/schemas/Field" } }, "header_description": { "description": "A textual description of the profile header, to be used for the visually impaired or when avatars do not load.", "type": "string" }, "id": { "description": "The account id.", "type": "string" }, "indexable": { "description": "Whether the account allows indexing by search engines.", "type": "boolean" }, "locked": { "description": "Whether the account manually approves follow requests.", "type": "boolean" }, "note": { "description": "The profile's bio or description. Unlike for [Account](https://docs.joinmastodon.org/entities/Account/), this is the raw unprocessed text, not the rendered HTML.", "type": "string" }, "show_featured": { "description": "Whether the account wishes to have a “Featured” tab on their profile.", "type": "boolean" }, "show_media": { "description": "Whether the account wishes to have a “Media” tab with media attachments on their profile.", "type": "boolean" }, "show_media_replies": { "description": "Whether the account wishes to have replies in the “Media” tab on their profile.", "type": "boolean" }, "avatar": { "description": "An image icon that is shown next to statuses and in the profile. Unlike for [Account](https://docs.joinmastodon.org/entities/Account/), this is nullable and will be null if the avatar is unset.", "type": [ "string", "null" ], "format": "uri" }, "avatar_static": { "description": "A static version of the avatar. Unlike for [Account](https://docs.joinmastodon.org/entities/Account/), this is nullable and will be null if the avatar is unset.", "type": [ "string", "null" ], "format": "uri" }, "discoverable": { "description": "Whether the account has opted into discovery features such as the profile directory.", "type": [ "boolean", "null" ] }, "header": { "description": "An image banner that is shown above the profile and in profile cards. Unlike for [Account](https://docs.joinmastodon.org/entities/Account/), this is nullable and will be null if the header is unset.", "type": [ "string", "null" ], "format": "uri" }, "header_static": { "description": "A static version of the header. Unlike for [Account](https://docs.joinmastodon.org/entities/Account/), this is nullable and will be null if the header is unset.", "type": [ "string", "null" ], "format": "uri" }, "hide_collections": { "description": "Whether the user hides the contents of their follows and followers collections.", "type": [ "boolean", "null" ] } }, "required": [ "attribution_domains", "avatar_description", "bot", "display_name", "fields", "header_description", "id", "indexable", "locked", "note", "show_featured", "show_media", "show_media_replies" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Profile/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "116222600881276277", "display_name": "Documentation user", "note": "I'm only here as an example for documentation", "fields": [ { "name": "pronouns", "value": "it/its", "verified_at": null } ], "avatar": null, "avatar_static": null, "avatar_description": "", "header": null, "header_static": null, "header_description": "", "locked": false, "bot": false, "hide_collections": null, "discoverable": true, "indexable": true, "show_media": true, "show_media_replies": true, "show_featured": true, "attribution_domains": [ "articles.example.com" ], "featured_tags": [ { "id": "1", "name": "foo", "url": "https://example.com/@darrel_metz0/tagged/foo", "statuses_count": "0", "last_status_at": null } ] } }, "Quote": { "type": "object", "description": "Represents a quote or a quote placeholder, with the current authorization status.", "properties": { "state": { "description": "The state of the quote. Unknown values should be treated as `unauthorized`.", "type": "string", "$ref": "#/components/schemas/QuoteStateEnum" }, "quoted_status": { "description": "The status being quoted, if the quote has been accepted. This will be `null`, unless the `state` attribute is `accepted`, `blocked_account`, `blocked_domain`, or `muted_account`, or the wrapping [Status](https://docs.joinmastodon.org/entities/status/) entity has been obtained by calling `DELETE /api/v1/statuses/:id`..", "oneOf": [ { "$ref": "#/components/schemas/Status" }, { "type": "null" } ] } }, "required": [ "state" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Quote/#attributes", "description": "Official Mastodon API documentation" }, "example": { "state": "accepted", "quoted_status": { "id": "103270115826048975", "created_at": "2019-12-08T03:48:33.901Z", "in_reply_to_id": null, "in_reply_to_account_id": null, "sensitive": false, "spoiler_text": "", "visibility": "public", "language": "en", "uri": "https://mastodon.social/users/Gargron/statuses/103270115826048975", "url": "https://mastodon.social/@Gargron/103270115826048975", "replies_count": 5, "reblogs_count": 6, "favourites_count": 11, "favourited": false, "reblogged": false, "muted": false, "bookmarked": false, "content": "

"I lost my inheritance with one wrong digit on my sort code"

https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code

", "reblog": null, "application": { "name": "Web", "website": null }, "account": { "id": "1", "username": "Gargron", "acct": "Gargron", "display_name": "Eugen", "locked": false, "bot": false, "discoverable": true, "group": false, "created_at": "2016-03-16T14:34:26.392Z", "note": "

Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.

", "url": "https://mastodon.social/@Gargron", "avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", "avatar_static": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", "header": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png", "header_static": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png", "followers_count": 322930, "following_count": 459, "statuses_count": 61323, "last_status_at": "2019-12-10T08:14:44.811Z", "emojis": [], "fields": [] }, "media_attachments": [], "mentions": [], "tags": [], "emojis": [], "card": null, "poll": null } } }, "QuoteApproval": { "type": "object", "description": "Summary of a status' quote approval policy and how it applies to the requesting user.", "properties": { "automatic": { "description": "Describes who is expected to be able to quote that status and have the quote automatically authorized. An empty list means that nobody is expected to be able to quote this post. Other values may be added in the future, so unknown values should be treated as `unsupported_policy`.", "type": "array", "items": { "$ref": "#/components/schemas/QuoteApprovalAutomaticEnum" } }, "current_user": { "description": "Describes how this status' quote policy applies to the current user.", "type": "string", "$ref": "#/components/schemas/QuoteApprovalCurrentUserEnum" }, "manual": { "description": "Describes who is expected to have their quotes of this status be manually reviewed by the author before being accepted. An empty list means that nobody is expected to be able to quote this post. Other values may be added in the future, so unknown values should be treated as `unsupported_policy`.", "type": "array", "items": { "$ref": "#/components/schemas/QuoteApprovalAutomaticEnum" } } }, "required": [ "automatic", "current_user", "manual" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/QuoteApproval/#attributes", "description": "Official Mastodon API documentation" }, "example": { "automatic": [ "public" ], "manual": [], "current_user": "automatic" } }, "Reaction": { "type": "object", "description": "Represents an emoji reaction to an Announcement.", "properties": { "count": { "description": "The total number of users who have added this reaction.", "type": "integer" }, "name": { "description": "The emoji used for the reaction. Either a unicode emoji, or a custom emoji's shortcode.", "type": "string" }, "me": { "description": "If there is a currently authorized user: Have you added this reaction?", "type": [ "boolean", "null" ] }, "static_url": { "description": "If the reaction is a custom emoji: A link to a non-animated version of the custom emoji.", "type": [ "string", "null" ], "format": "uri" }, "url": { "description": "If the reaction is a custom emoji: A link to the custom emoji.", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "count", "name" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Reaction/#attributes", "description": "Official Mastodon API documentation" }, "example": [ { "name": "bongoCat", "count": 9, "me": false, "url": "https://files.mastodon.social/custom_emojis/images/000/067/715/original/fdba57dff7576d53.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/067/715/static/fdba57dff7576d53.png" }, { "name": "🤔", "count": 1, "me": true } ] }, "Relationship": { "type": "object", "description": "Represents the relationship between accounts, such as following / blocking / muting / etc.", "properties": { "blocked_by": { "description": "Is this user blocking you?", "type": "boolean" }, "blocking": { "description": "Are you blocking this user?", "type": "boolean" }, "domain_blocking": { "description": "Are you blocking this user's domain?", "type": "boolean" }, "endorsed": { "description": "Are you featuring this user on your profile?", "type": "boolean" }, "followed_by": { "description": "Are you followed by this user?", "type": "boolean" }, "following": { "description": "Are you following this user?", "type": "boolean" }, "id": { "description": "The account ID.", "type": "string" }, "muting": { "description": "Are you muting this user?", "type": "boolean" }, "muting_notifications": { "description": "Are you muting notifications from this user?", "type": "boolean" }, "note": { "description": "The authenticated user's personal comment about this account", "type": "string" }, "notifying": { "description": "Have you enabled notifications for this user?", "type": "boolean" }, "requested": { "description": "Do you have a pending follow request for this user?", "type": "boolean" }, "requested_by": { "description": "Has this user requested to follow you?", "type": "boolean" }, "showing_reblogs": { "description": "Are you receiving this user's boosts in your home timeline?", "type": "boolean" }, "languages": { "description": "Which languages are you following from this user?", "type": [ "array", "null" ], "items": { "type": "string", "format": "iso-639-1" } }, "muting_expires_at": { "description": "Date at which the mute expires, if there is any.", "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "blocked_by", "blocking", "domain_blocking", "endorsed", "followed_by", "following", "id", "muting", "muting_notifications", "note", "notifying", "requested", "requested_by", "showing_reblogs" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Relationship/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1", "following": true, "showing_reblogs": true, "notifying": false, "followed_by": true, "blocking": false, "blocked_by": false, "muting": false, "muting_notifications": false, "muting_expires_at": null, "requested": false, "requested_by": false, "domain_blocking": false, "endorsed": false, "note": "" } }, "RelationshipSeveranceEvent": { "type": "object", "description": "Summary of a moderation or block event that caused follow relationships to be severed.", "properties": { "created_at": { "description": "When the event took place.", "type": "string", "format": "date-time" }, "followers_count": { "description": "Number of followers that were removed as result of the event.", "type": "integer" }, "following_count": { "description": "Number of accounts the user stopped following as result of the event.", "type": "integer" }, "id": { "description": "The ID of the relationship severance event in the database.", "type": "string" }, "purged": { "description": "Whether the list of severed relationships is unavailable because the underlying issue has been purged.", "type": "boolean" }, "target_name": { "description": "Name of the target of the moderation/block event. This is either a domain name or a user handle, depending on the event type.", "type": "string" }, "type": { "description": "Type of event.", "type": "string", "$ref": "#/components/schemas/RelationshipSeveranceEventTypeEnum" } }, "required": [ "created_at", "followers_count", "following_count", "id", "purged", "target_name", "type" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/RelationshipSeveranceEvent/#attributes", "description": "Official Mastodon API documentation" } }, "Report": { "type": "object", "description": "Reports filed against users and/or statuses, to be taken action on by moderators.", "properties": { "action_taken": { "description": "Whether an action was taken yet.", "type": "boolean" }, "category": { "description": "The generic reason for the report.", "type": "string", "$ref": "#/components/schemas/ReportCategoryEnum" }, "comment": { "description": "The reason for the report.", "type": "string" }, "created_at": { "description": "When the report was created.", "type": "string", "format": "date-time" }, "forwarded": { "description": "Whether the report was forwarded to a remote domain.", "type": "boolean" }, "id": { "description": "The ID of the report in the database.", "type": "string" }, "target_account": { "description": "The account that was reported.", "$ref": "#/components/schemas/Account" }, "action_taken_at": { "description": "When an action was taken against the report.", "type": [ "string", "null" ], "format": "date-time" }, "collection_ids": { "description": "IDs of Featured Collections that have been attached to this report for additional context.", "type": [ "array", "null" ], "items": { "type": "string" } }, "rule_ids": { "description": "IDs of the rules that have been cited as a violation by this report.", "type": [ "array", "null" ], "items": { "type": "string" } }, "status_ids": { "description": "IDs of statuses that have been attached to this report for additional context.", "type": [ "array", "null" ], "items": { "type": "string" } } }, "required": [ "action_taken", "category", "comment", "created_at", "forwarded", "id", "target_account" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Report/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "48914", "action_taken": false, "action_taken_at": null, "category": "spam", "comment": "Spam account", "forwarded": false, "created_at": "2022-08-25T09:56:16.763Z", "status_ids": [ "108882889550545820" ], "collection_ids": [], "rule_ids": null, "target_account": { "id": "108366849347798387", "username": "Baluke", "acct": "Baluke", "display_name": "Baluke Dental Studios", "locked": false, "bot": false, "discoverable": false, "group": false, "created_at": "2022-05-26T00:00:00.000Z", "note": "

Baluke Dental Studios is a full service dental lab offering fabrication, staining, and digital services. Advanced technologies and a meticulous process ensure reduced chair time, lower costs, and better patient outcomes with beautiful smiles. Talk to a representative today.

https://baluke.com/

", "url": "https://mastodon.social/@Baluke", "avatar": "https://files.mastodon.social/accounts/avatars/108/366/849/347/798/387/original/dbcfe99ed5def0f4.png", "avatar_static": "https://files.mastodon.social/accounts/avatars/108/366/849/347/798/387/original/dbcfe99ed5def0f4.png", "header": "https://static-cdn.mastodon.social/headers/original/missing.png", "header_static": "https://static-cdn.mastodon.social/headers/original/missing.png", "followers_count": 0, "following_count": 0, "statuses_count": 38, "last_status_at": "2022-08-25", "emojis": [], "fields": [] } } }, "Role": { "type": "object", "description": "Represents a custom user role that grants permissions.", "properties": { "color": { "description": "The hex code assigned to this role. If no hex code is assigned, the string will be empty.", "type": "string" }, "highlighted": { "description": "Whether the role is publicly visible as a badge on user profiles.", "type": "boolean" }, "id": { "description": "The ID of the Role in the database.", "type": "string" }, "name": { "description": "The name of the role.", "type": "string" }, "permissions": { "description": "A bitmask that represents the sum of all permissions granted to the role. This is a potentially large integer in decimal representation. The absence of special permissions is denoted by `'0'`.", "type": "string" }, "collection_limit": { "description": "Maximum number of Collections that users with this role are allowed to create.", "type": [ "integer", "null" ] } }, "required": [ "color", "highlighted", "id", "name", "permissions" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Role/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "3", "name": "Owner", "color": "#ff3838", "permissions": "1048575", "highlighted": true, "collection_limit": 10 } }, "Rule": { "type": "object", "description": "Represents a rule that server users should follow.", "properties": { "hint": { "description": "Longer-form description of the rule.", "type": "string" }, "id": { "description": "An identifier for the rule.", "type": "string" }, "text": { "description": "The rule to be followed.", "type": "string" }, "translations": { "description": "Available translations for this rule's `text` and `hint`, as a Hash where keys are locale codes and values are hashes with `text` and `hint` keys.", "type": [ "object", "null" ] } }, "required": [ "hint", "id", "text" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Rule/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "2", "text": "No racism, sexism, homophobia, transphobia, ableism, xenophobia, or casteism.", "hint": "Transphobic behavior such as intentional misgendering and deadnaming is strictly prohibited. Promotion of \"conversion therapy\" is strictly prohibited. Criticism of governments and religions is permissible unless being used as a proxy for discrimination.", "translations": { "fr": { "text": "Pas de racisme, sexisme, homophobie, transphobie, validisme, xénophobie ou casteisme.", "hint": "Les comportements transhobes tels que le deadnaming intentionel sont formellement interdits. La promotion des « thérapies de conversion » est formellement interdite. La critique des gouvernements et des religions est permise à moins qu'elle ne soit utilisée comme excuse pour de la discrimination." } } } }, "ScheduledStatus": { "type": "object", "description": "Represents a status that will be published at a future scheduled date.", "properties": { "id": { "description": "ID of the scheduled status in the database.", "type": "string" }, "media_attachments": { "description": "Media that will be attached when the status is posted.", "type": "array", "items": { "$ref": "#/components/schemas/MediaAttachment" } }, "params": { "description": "The parameters that were used when scheduling the status, to be used when the status is posted.", "type": "object", "properties": { "application_id": { "description": "Internal ID of the Application that posted the status. Provided for historical compatibility only and can be ignored.", "deprecated": true, "type": "integer" }, "text": { "description": "Text to be used as status content.", "type": "string" }, "visibility": { "description": "The visibility that the status will have once it is posted.", "type": "string", "$ref": "#/components/schemas/StatusVisibilityEnum" }, "with_rate_limit": { "description": "Whether status creation is subject to rate limiting. Provided for historical compatibility only and can be ignored.", "deprecated": true, "type": "boolean" }, "idempotency": { "description": "Idempotency key to prevent duplicate statuses.", "type": [ "string", "null" ] }, "in_reply_to_id": { "description": "ID of the Status that will be replied to.", "type": [ "integer", "null" ] }, "language": { "description": "The language that will be used for the status.", "type": [ "string", "null" ], "format": "iso-639-1" }, "media_ids": { "description": "IDs of the MediaAttachments that will be attached to the status.", "type": [ "array", "null" ], "items": { "type": "string" } }, "poll": { "description": "Poll to be attached to the status.", "type": [ "object", "null" ], "properties": { "options": { "description": "The poll options to be used.", "type": "array", "items": { "type": "string" } }, "expires_in": { "description": "How many seconds the poll should last before closing.", "type": "integer" }, "multiple": { "description": "Whether the poll allows multiple choices.", "type": "boolean" }, "hide_totals": { "description": "Whether the poll should hide total votes until after voting has ended.", "type": "boolean" } }, "required": [ "options", "expires_in", "multiple", "hide_totals" ] }, "quote_approval_policy": { "description": "The quote policy for the Status.", "type": [ "string", "null" ], "$ref": "#/components/schemas/ScheduledStatusParamsQuoteApprovalPolicyEnum" }, "quoted_status_id": { "description": "ID of the Status being quoted.", "type": [ "string", "null" ] }, "scheduled_at": { "description": "When the status will be scheduled. This will be null because the status is only scheduled once.", "type": "null" }, "sensitive": { "description": "Whether the status will be marked as sensitive.", "type": [ "boolean", "null" ] }, "spoiler_text": { "description": "The text of the content warning or summary for the status.", "type": [ "string", "null" ] } }, "required": [ "application_id", "text", "visibility", "with_rate_limit" ] }, "scheduled_at": { "description": "The timestamp for when the status will be posted.", "type": "string", "format": "date-time" } }, "required": [ "id", "media_attachments", "params", "scheduled_at" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/ScheduledStatus/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "1", "scheduled_at": "2022-09-29T00:00:00.000Z", "params": { "text": "test post", "media_ids": null, "sensitive": null, "spoiler_text": null, "visibility": null, "language": null, "scheduled_at": null, "poll": null, "idempotency": null, "with_rate_limit": false, "in_reply_to_id": null, "application_id": 3, "quoted_status_id": null, "quote_approval_policy": "followers" }, "media_attachments": [] } }, "Search": { "type": "object", "description": "Represents the results of a search.", "properties": { "accounts": { "description": "Accounts which match the given query", "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "hashtags": { "description": "Hashtags which match the given query", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "statuses": { "description": "Statuses which match the given query", "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "collections": { "description": "Collections which match the given query", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/Collection" } } }, "required": [ "accounts", "hashtags", "statuses" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Search/#attributes", "description": "Official Mastodon API documentation" }, "example": { "accounts": [ { "id": "180744", "username": "catstar", "acct": "catstar@catgram.jp", "display_name": "catstar" }, { "id": "214293", "username": "catsareweird", "acct": "catsareweird", "display_name": "Cats Are Weird" } ], "statuses": [ { "id": "103085519055545958", "created_at": "2019-11-05T13:23:09.000Z", "content": "

cats
cats never change

" }, { "id": "101068121469614510", "created_at": "2018-11-14T06:31:48.000Z", "spoiler_text": "Cats", "content": "

Cats are inherently good at self-care.

#cats

" } ], "hashtags": [ { "name": "cats", "url": "https://mastodon.social/tags/cats", "history": [ { "day": "1574553600", "uses": "10", "accounts": "9" } ] }, { "name": "catsofmastodon", "url": "https://mastodon.social/tags/catsofmastodon", "history": [ { "day": "1574553600", "uses": "6", "accounts": "5" } ] } ], "collections": [ { "id": "123456789012345678", "name": "Cats", "description": "Posters who are cats" } ] } }, "ShallowQuote": { "type": "object", "description": "Represents a quote or a quote placeholder, with the current authorization status.", "properties": { "state": { "description": "The state of the quote. Unknown values should be treated as `unauthorized`.", "type": "string", "$ref": "#/components/schemas/QuoteStateEnum" }, "quoted_status_id": { "description": "The identifier of the status being quoted. This will be `null`, unless the `state` attribute is one of `accepted`, `blocked_account`, `blocked_domain` or `muted_account`, or the wrapping [Status](https://docs.joinmastodon.org/entities/status/) entity has been obtained by calling `DELETE /api/v1/statuses/:id`.", "type": [ "string", "null" ] } }, "required": [ "state" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/ShallowQuote/#attributes", "description": "Official Mastodon API documentation" }, "example": { "state": "accepted", "quoted_status_id": "103270115826048975" } }, "ShallowTag": { "type": "object", "description": "Minimal representation of a hashtag.", "properties": { "name": { "description": "The value of the hashtag after the # sign.", "type": "string" }, "url": { "description": "A link to the hashtag on the local server.", "type": "string", "format": "uri" } }, "required": [ "name", "url" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/ShallowTag/#attributes", "description": "Official Mastodon API documentation" }, "example": { "name": "nowplaying", "url": "https://mastodon.social/tags/nowplaying" } }, "Status": { "type": "object", "description": "Represents a status posted by an account.", "properties": { "account": { "description": "The account that authored this status.", "$ref": "#/components/schemas/Account" }, "content": { "description": "HTML-encoded status content.", "type": "string" }, "created_at": { "description": "The date when this status was created.", "type": "string", "format": "date-time" }, "emojis": { "description": "Custom emoji to be used when rendering status content.", "type": "array", "items": { "$ref": "#/components/schemas/CustomEmoji" } }, "favourites_count": { "description": "How many favourites this status has received.", "type": "integer" }, "id": { "description": "ID of the status in the database.", "type": "string" }, "media_attachments": { "description": "Media that is attached to this status.", "type": "array", "items": { "$ref": "#/components/schemas/MediaAttachment" } }, "mentions": { "description": "Mentions of users within the status content.", "type": "array", "items": { "$ref": "#/components/schemas/StatusMention" } }, "reblogs_count": { "description": "How many boosts this status has received.", "type": "integer" }, "replies_count": { "description": "How many replies this status has received.", "type": "integer" }, "sensitive": { "description": "Is this status marked as sensitive content?", "type": "boolean" }, "spoiler_text": { "description": "Subject or summary line, below which status content is collapsed until expanded.", "type": "string" }, "tags": { "description": "Hashtags used within the status content.", "type": "array", "items": { "$ref": "#/components/schemas/StatusTag" } }, "uri": { "description": "URI of the status used for federation.", "type": "string" }, "visibility": { "description": "Visibility of this status.", "type": "string", "$ref": "#/components/schemas/StatusVisibilityEnum" }, "application": { "description": "The application used to post this status.", "type": [ "object", "null" ], "properties": { "name": { "description": "The name of the application that posted this status.", "type": "string" }, "website": { "description": "The website associated with the application that posted this status.", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "name" ] }, "bookmarked": { "description": "If the current token has an authorized user: Have you bookmarked this status?", "type": [ "boolean", "null" ] }, "card": { "description": "Preview card for links included within status content.", "oneOf": [ { "$ref": "#/components/schemas/PreviewCard" }, { "type": "null" } ] }, "edited_at": { "description": "Timestamp of when the status was last edited.", "type": [ "string", "null" ], "format": "date-time" }, "favourited": { "description": "If the current token has an authorized user: Have you favourited this status?", "type": [ "boolean", "null" ] }, "filtered": { "description": "If the current token has an authorized user: The filter and keywords that matched this status.", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/FilterResult" } }, "in_reply_to_account_id": { "description": "Might be the ID of the account that authored the status being replied to. This sometimes skips over self-replies. If status A was posted by account 1, and account 2 posts statuses B, C, and D as a chain of replies to status A, statuses B, C, and D will all have `in_reply_to_account_id` = 1 (instead of C and D having `in_reply_to_account_id` = 2). However, if status A was posted by account 1, and account 1 posts status B as a direct reply to A, B will have an `in_reply_to_account_id` = 1 (instead of null).", "type": [ "string", "null" ] }, "in_reply_to_id": { "description": "ID of the status being replied to.", "type": [ "string", "null" ] }, "language": { "description": "Primary language of this status.", "type": [ "string", "null" ], "format": "iso-639-1" }, "muted": { "description": "If the current token has an authorized user: Have you muted notifications for this status's conversation?", "type": [ "boolean", "null" ] }, "pinned": { "description": "If the current token has an authorized user: Have you pinned this status? Only appears if the status is pinnable.", "type": [ "boolean", "null" ] }, "poll": { "description": "The poll attached to the status.", "oneOf": [ { "$ref": "#/components/schemas/Poll" }, { "type": "null" } ] }, "quote": { "description": "Information about the status being quoted, if any", "oneOf": [ { "$ref": "#/components/schemas/Quote" }, { "$ref": "#/components/schemas/ShallowQuote" }, { "type": "null" } ] }, "quote_approval": { "description": "Summary of the post quote's approval policy and how it applies to the user making the request, that is, whether the user can be expected to be allowed to quote that post", "oneOf": [ { "$ref": "#/components/schemas/QuoteApproval" }, { "type": "null" } ] }, "quotes_count": { "description": "How many accepted quotes this status has.", "type": [ "integer", "null" ] }, "reblog": { "description": "The status being reblogged.", "oneOf": [ { "$ref": "#/components/schemas/Status" }, { "type": "null" } ] }, "reblogged": { "description": "If the current token has an authorized user: Have you boosted this status?", "type": [ "boolean", "null" ] }, "tagged_collections": { "description": "If `content` includes links to Collections that the server recognized, this includes the actual Collections.", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/Collection" } }, "text": { "description": "Plain-text source of a status. Returned instead of `content` when status is deleted, so the user may redraft from the source text without the client having to reverse-engineer the original text from the HTML content.", "type": [ "string", "null" ] }, "url": { "description": "A link to the status's HTML representation.", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "account", "content", "created_at", "emojis", "favourites_count", "id", "media_attachments", "mentions", "reblogs_count", "replies_count", "sensitive", "spoiler_text", "tags", "uri", "visibility" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Status/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "103270115826048975", "created_at": "2019-12-08T03:48:33.901Z", "in_reply_to_id": null, "in_reply_to_account_id": null, "sensitive": false, "spoiler_text": "", "visibility": "public", "language": "en", "uri": "https://mastodon.social/users/Gargron/statuses/103270115826048975", "url": "https://mastodon.social/@Gargron/103270115826048975", "replies_count": 5, "reblogs_count": 6, "favourites_count": 11, "quotes_count": 2, "favourited": false, "reblogged": false, "muted": false, "bookmarked": false, "content": "

"I lost my inheritance with one wrong digit on my sort code"

https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code

", "reblog": null, "application": { "name": "Web", "website": null }, "account": { "id": "1", "username": "Gargron", "acct": "Gargron", "display_name": "Eugen", "locked": false, "bot": false, "discoverable": true, "group": false, "created_at": "2016-03-16T14:34:26.392Z", "note": "

Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.

", "url": "https://mastodon.social/@Gargron", "avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", "avatar_static": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", "header": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png", "header_static": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png", "followers_count": 322930, "following_count": 459, "statuses_count": 61323, "last_status_at": "2019-12-10T08:14:44.811Z", "emojis": [], "fields": [ { "name": "Patreon", "value": "https://www.patreon.com/mastodon", "verified_at": null }, { "name": "Homepage", "value": "https://zeonfederated.com", "verified_at": "2019-07-15T18:29:57.191+00:00" } ] }, "media_attachments": [], "mentions": [], "tags": [], "emojis": [], "quote": null, "card": { "url": "https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code", "title": "‘I lost my £193,000 inheritance – with one wrong digit on my sort code’", "description": "When Peter Teich’s money went to another Barclays customer, the bank offered £25 as a token gesture", "type": "link", "author_name": "", "author_url": "", "provider_name": "", "provider_url": "", "html": "", "width": 0, "height": 0, "image": null, "embed_url": "" }, "poll": null, "quote_approval": { "automatic": [], "manual": [], "current_user": "automatic" } } }, "StatusMention": { "type": "object", "description": "Additional entity definition for Status::Mention", "properties": { "acct": { "description": "The webfinger acct: URI of the mentioned user. Equivalent to `username` for local users, or `username@domain` for remote users.", "type": "string" }, "id": { "description": "The account ID of the mentioned user.", "type": "string" }, "url": { "description": "The location of the mentioned user's profile.", "type": "string", "format": "uri" }, "username": { "description": "The username of the mentioned user.", "type": "string" } }, "required": [ "acct", "id", "url", "username" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Status/#status", "description": "Official Mastodon API documentation" } }, "StatusTag": { "type": "object", "description": "Additional entity definition for Status::Tag", "properties": { "name": { "description": "The value of the hashtag after the # sign.", "type": "string" }, "url": { "description": "A link to the hashtag on the instance.", "type": "string", "format": "uri" } }, "required": [ "name", "url" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Status/#status", "description": "Official Mastodon API documentation" } }, "StatusEdit": { "type": "object", "description": "Represents a revision of a status that has been edited.", "properties": { "account": { "description": "The account that published this revision.", "$ref": "#/components/schemas/Account" }, "content": { "description": "The content of the status at this revision.", "type": "string" }, "created_at": { "description": "The timestamp of when the revision was published.", "type": "string", "format": "date-time" }, "emojis": { "description": "Any custom emoji that are used in the current revision.", "type": "array", "items": { "$ref": "#/components/schemas/CustomEmoji" } }, "media_attachments": { "description": "The current state of the media attachments at this revision.", "type": "array", "items": { "$ref": "#/components/schemas/MediaAttachment" } }, "sensitive": { "description": "Whether the status was marked sensitive at this revision.", "type": "boolean" }, "spoiler_text": { "description": "The content of the subject or content warning at this revision.", "type": "string" }, "poll": { "description": "The current state of the poll options at this revision. Note that edits changing the poll options will be collapsed together into one edit, since this action resets the poll.", "type": [ "object", "null" ], "properties": { "options": { "description": "The poll options at this revision.", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text for a poll option.", "type": "string" } }, "required": [ "title" ] } } }, "required": [ "options" ] }, "quote": { "description": "Information about the status being quoted, if any", "oneOf": [ { "$ref": "#/components/schemas/Quote" }, { "$ref": "#/components/schemas/ShallowQuote" }, { "type": "null" } ] } }, "required": [ "account", "content", "created_at", "emojis", "media_attachments", "sensitive", "spoiler_text" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/StatusEdit/#attributes", "description": "Official Mastodon API documentation" }, "example": { "content": "

this is a status that has been edited three times. this time a poll has been added.

", "spoiler_text": "", "sensitive": false, "created_at": "2022-09-05T00:03:32.480Z", "poll": { "options": [ { "title": "cool" }, { "title": "uncool" }, { "title": "spiderman (this option has been changed)" } ] }, "account": { "id": "14715", "username": "trwnh", "acct": "trwnh", "display_name": "infinite love ⴳ" }, "media_attachments": [], "emojis": [] } }, "StatusSource": { "type": "object", "description": "Represents a status's source as plain text.", "properties": { "id": { "description": "ID of the status in the database.", "type": "string" }, "spoiler_text": { "description": "The plain text used to compose the status's subject or content warning.", "type": "string" }, "text": { "description": "The plain text used to compose the status.", "type": "string" } }, "required": [ "id", "spoiler_text", "text" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/StatusSource/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "108942703571991143", "text": "this is a status that will be edited", "spoiler_text": "" } }, "Suggestion": { "type": "object", "description": "Represents a suggested account to follow and an associated reason for the suggestion.", "properties": { "account": { "description": "The account being recommended to follow.", "$ref": "#/components/schemas/Account" }, "sources": { "description": "A list of reasons this account is being suggested. This replaces `source`", "type": "array", "items": { "$ref": "#/components/schemas/SuggestionSourcesEnum" } } }, "required": [ "account", "sources" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Suggestion/#attributes", "description": "Official Mastodon API documentation" }, "example": { "source": "staff", "account": { "id": "109031732217496096", "username": "alice", "acct": "alice" } } }, "Tag": { "type": "object", "description": "Represents a hashtag used within the content of a status.", "properties": { "history": { "description": "Usage statistics for given days (typically the past week).", "type": "array", "items": { "$ref": "#/components/schemas/TagHistory" } }, "id": { "description": "ID of the hashtag in the database. Useful for constructing URLs for the moderation tools & Admin API.", "type": "string" }, "name": { "description": "The value of the hashtag after the # sign.", "type": "string" }, "url": { "description": "A link to the hashtag on the instance.", "type": "string", "format": "uri" }, "featuring": { "description": "Whether the current token's authorized user is featuring this tag on their profile.", "type": [ "boolean", "null" ] }, "following": { "description": "Whether the current token's authorized user is following this tag.", "type": [ "boolean", "null" ] } }, "required": [ "history", "id", "name", "url" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Tag/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "802", "name": "nowplaying", "url": "https://mastodon.social/tags/nowplaying", "history": [ { "day": "1574553600", "uses": "200", "accounts": "31" }, { "day": "1574467200", "uses": "272", "accounts": "39" }, { "day": "1574380800", "uses": "345", "accounts": "40" }, { "day": "1574294400", "uses": "366", "accounts": "46" }, { "day": "1574208000", "uses": "226", "accounts": "32" }, { "day": "1574121600", "uses": "217", "accounts": "42" }, { "day": "1574035200", "uses": "214", "accounts": "34" } ], "following": false, "featuring": false } }, "TagHistory": { "type": "object", "description": "Nested entity extracted from Tag.history", "properties": { "accounts": { "description": "The total of accounts using the tag within that day.", "type": "string" }, "day": { "description": "UNIX timestamp on midnight of the given day.", "type": "string" }, "uses": { "description": "The counted usage of the tag within that day.", "type": "string" } }, "required": [ "accounts", "day", "uses" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Tag/#attributes", "description": "Official Mastodon API documentation" } }, "AdminTag": { "type": "object", "description": "Additional entity definition for Admin::Tag", "properties": { "requires_review": { "description": "Whether the hashtag has not been reviewed yet to approve or deny its trending.", "type": "boolean" }, "trendable": { "description": "Whether the hashtag has been approved to trend.", "type": "boolean" }, "usable": { "description": "Whether the hashtag has not been disabled from auto-linking.", "type": "boolean" } }, "required": [ "requires_review", "trendable", "usable" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Tag/#admin", "description": "Official Mastodon API documentation" } }, "TermsOfService": { "type": "object", "description": "Represents the terms of service of the instance.", "properties": { "content": { "description": "The rendered HTML content of the terms of service.", "type": "string" }, "effective": { "description": "Whether these terms of service are currently in effect.", "type": "boolean" }, "effective_date": { "description": "The date these terms of service are coming or have come in effect.", "type": "string", "format": "date" }, "succeeded_by": { "description": "If there are newer terms of service, their effective date.", "type": [ "string", "null" ], "format": "date" } }, "required": [ "content", "effective", "effective_date" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/TermsOfService/#attributes", "description": "Official Mastodon API documentation" }, "example": { "effective_date": "2025-04-15", "effective": true, "content": "

Foo bar newer

\n", "succeeded_by": null } }, "Token": { "type": "object", "description": "Represents an OAuth token used for authenticating with the API and performing actions.", "properties": { "access_token": { "description": "An OAuth token to be used for authorization.", "type": "string" }, "created_at": { "description": "When the token was generated.", "type": "number" }, "scope": { "description": "The OAuth scopes granted by this token, space-separated.", "type": "string" }, "token_type": { "description": "The OAuth token type. Mastodon uses `Bearer` tokens.", "type": "string" } }, "required": [ "access_token", "created_at", "scope", "token_type" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Token/#attributes", "description": "Official Mastodon API documentation" }, "example": { "access_token": "ZA-Yj3aBD8U8Cm7lKUp-lm9O9BmDgdhHzDeqsY8tlL0", "token_type": "Bearer", "scope": "read write follow push", "created_at": 1573979017 } }, "Translation": { "type": "object", "description": "Represents the result of machine translating some status content", "properties": { "content": { "description": "HTML-encoded translated content of the status.", "type": "string" }, "detected_source_language": { "description": "The language of the source text, as auto-detected by the machine translation provider.", "type": "string", "format": "iso-639-1" }, "language": { "description": "The resulting language the text was translated into.", "type": "string" }, "media_attachments": { "description": "The translated media descriptions of the status.", "type": "array", "items": { "$ref": "#/components/schemas/TranslationAttachment" } }, "provider": { "description": "The service that provided the machine translation.", "type": "string" }, "spoiler_text": { "description": "The translated spoiler warning of the status.", "type": "string" }, "poll": { "description": "The translated poll of the status.", "oneOf": [ { "$ref": "#/components/schemas/TranslationPoll" }, { "type": "null" } ] } }, "required": [ "content", "detected_source_language", "language", "media_attachments", "provider", "spoiler_text" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Translation/#attributes", "description": "Official Mastodon API documentation" } }, "TranslationPoll": { "type": "object", "description": "Additional entity definition for Translation::Poll", "properties": { "id": { "description": "The ID of the poll.", "type": "string" }, "options": { "description": "The translated poll options.", "type": "array", "items": { "$ref": "#/components/schemas/TranslationPollOption" } } }, "required": [ "id", "options" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Translation/#translation", "description": "Official Mastodon API documentation" } }, "TranslationPollOption": { "type": "object", "description": "Additional entity definition for Translation::Poll::Option", "properties": { "title": { "description": "The translated title of the poll option.", "type": "string" } }, "required": [ "title" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Translation/#translation", "description": "Official Mastodon API documentation" } }, "TranslationAttachment": { "type": "object", "description": "Additional entity definition for Translation::Attachment", "properties": { "description": { "description": "The translated description of the attachment.", "type": "string" }, "id": { "description": "The id of the attachment.", "type": "string" } }, "required": [ "description", "id" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/Translation/#translation", "description": "Official Mastodon API documentation" } }, "V1Filter": { "type": "object", "description": "Represents a user-defined filter for determining which statuses should not be shown to the user. Contains a single keyword or phrase.", "properties": { "context": { "description": "The contexts in which the filter should be applied.", "type": "array", "items": { "$ref": "#/components/schemas/FilterContextEnum" } }, "id": { "description": "The ID of the filter in the database.", "type": "string" }, "irreversible": { "description": "Should matching entities in home and notifications be dropped by the server? See [implementation guidelines for filters](https://docs.joinmastodon.org/api/guidelines/#filters).", "type": "boolean" }, "phrase": { "description": "The text to be filtered.", "type": "string" }, "whole_word": { "description": "Should the filter consider word boundaries? See [implementation guidelines for filters](https://docs.joinmastodon.org/api/guidelines/#filters).", "type": "boolean" }, "expires_at": { "description": "When the filter should no longer be applied.", "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "context", "id", "irreversible", "phrase", "whole_word" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/V1_Filter/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": "8449", "phrase": "test", "context": [ "home", "notifications", "public", "thread" ], "whole_word": false, "expires_at": "2019-11-26T09:08:06.254Z", "irreversible": true } }, "V1Instance": { "type": "object", "description": "Represents the software instance of Mastodon running on this domain.", "properties": { "approval_required": { "description": "Whether registrations require moderator approval.", "type": "boolean" }, "configuration": { "description": "Configured values and limits for this website.", "type": "object", "properties": { "accounts": { "description": "Limits related to accounts.", "type": "object", "properties": { "max_featured_tags": { "description": "The maximum number of featured tags allowed for each account.", "type": "integer" } }, "required": [ "max_featured_tags" ] }, "media_attachments": { "description": "Hints for which attachments will be accepted.", "type": "object", "properties": { "image_matrix_limit": { "description": "The maximum number of pixels (width times height) for image uploads.", "type": "integer" }, "image_size_limit": { "description": "The maximum size of any uploaded image, in bytes.", "type": "integer" }, "supported_mime_types": { "description": "Contains MIME types that can be uploaded.", "type": "array", "items": { "type": "string" } }, "video_frame_rate_limit": { "description": "The maximum frame rate for any uploaded video.", "type": "integer" }, "video_matrix_limit": { "description": "The maximum number of pixels (width times height) for video uploads.", "type": "integer" }, "video_size_limit": { "description": "The maximum size of any uploaded video, in bytes.", "type": "integer" } }, "required": [ "image_matrix_limit", "image_size_limit", "supported_mime_types", "video_frame_rate_limit", "video_matrix_limit", "video_size_limit" ] }, "polls": { "description": "Limits related to polls.", "type": "object", "properties": { "max_characters_per_option": { "description": "Each poll option is allowed to have this many characters.", "type": "integer" }, "max_expiration": { "description": "The longest allowed poll duration, in seconds.", "type": "integer" }, "max_options": { "description": "Each poll is allowed to have up to this many options.", "type": "integer" }, "min_expiration": { "description": "The shortest allowed poll duration, in seconds.", "type": "integer" } }, "required": [ "max_characters_per_option", "max_expiration", "max_options", "min_expiration" ] }, "statuses": { "description": "Limits related to authoring statuses.", "type": "object", "properties": { "characters_reserved_per_url": { "description": "Each URL in a status will be assumed to be exactly this many characters.", "type": "integer" }, "max_characters": { "description": "The maximum number of allowed characters per status.", "type": "integer" }, "max_media_attachments": { "description": "The maximum number of media attachments that can be added to a status.", "type": "integer" } }, "required": [ "characters_reserved_per_url", "max_characters", "max_media_attachments" ] } }, "required": [ "accounts", "media_attachments", "polls", "statuses" ] }, "description": { "description": "An HTML-permitted description of the Mastodon site.", "type": "string" }, "email": { "description": "An email that may be contacted for any inquiries.", "type": "string", "format": "email" }, "invites_enabled": { "description": "Whether invites are enabled.", "type": "boolean" }, "languages": { "description": "Primary languages of the website and its staff.", "type": "array", "items": { "type": "string", "format": "iso-639-1" } }, "registrations": { "description": "Whether registrations are enabled.", "type": "boolean" }, "rules": { "description": "An itemized list of rules for this website.", "type": "array", "items": { "$ref": "#/components/schemas/Rule" } }, "short_description": { "description": "A short, plain-text description defined by the admin.", "type": "string" }, "stats": { "description": "Statistics about how much information the instance contains.", "type": "object", "properties": { "domain_count": { "description": "Total domains discovered by this instance.", "type": "integer" }, "status_count": { "description": "Total statuses on this instance.", "type": "integer" }, "user_count": { "description": "Total users on this instance.", "type": "integer" } }, "required": [ "domain_count", "status_count", "user_count" ] }, "title": { "description": "The title of the website.", "type": "string" }, "uri": { "description": "The WebFinger domain name of the instance (not a URI/URL).", "type": "string" }, "urls": { "description": "URLs of interest for clients apps.", "type": "object", "properties": { "streaming_api": { "description": "The Websockets URL for connecting to the streaming API.", "type": "string", "format": "uri" } }, "required": [ "streaming_api" ] }, "version": { "description": "The version of Mastodon installed on the instance.", "type": "string" }, "contact_account": { "description": "A user that can be contacted, as an alternative to `email`.", "oneOf": [ { "$ref": "#/components/schemas/Account" }, { "type": "null" } ] }, "thumbnail": { "description": "Banner image for the website.", "type": [ "string", "null" ], "format": "uri" } }, "required": [ "approval_required", "configuration", "description", "email", "invites_enabled", "languages", "registrations", "rules", "short_description", "stats", "title", "uri", "urls", "version" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/V1_Instance/#attributes", "description": "Official Mastodon API documentation" }, "example": { "uri": "mastodon.social", "title": "Mastodon", "short_description": "The original server operated by the Mastodon gGmbH non-profit", "description": "", "email": "staff@mastodon.social", "version": "3.5.3", "urls": { "streaming_api": "wss://mastodon.social" }, "stats": { "user_count": 812303, "status_count": 38151616, "domain_count": 25255 }, "thumbnail": "https://files.mastodon.social/site_uploads/files/000/000/001/original/vlcsnap-2018-08-27-16h43m11s127.png", "languages": [ "en" ], "registrations": false, "approval_required": false, "invites_enabled": true, "configuration": { "accounts": { "max_featured_tags": 10 }, "statuses": { "max_characters": 500, "max_media_attachments": 4, "characters_reserved_per_url": 23 }, "media_attachments": { "supported_mime_types": [ "image/jpeg", "image/png", "image/gif", "image/webp", "video/webm", "video/mp4", "video/quicktime", "video/ogg", "audio/wave", "audio/wav", "audio/x-wav", "audio/x-pn-wave", "audio/vnd.wave", "audio/ogg", "audio/vorbis", "audio/mpeg", "audio/mp3", "audio/webm", "audio/flac", "audio/aac", "audio/m4a", "audio/x-m4a", "audio/mp4", "audio/3gpp", "video/x-ms-asf" ], "image_size_limit": 10485760, "image_matrix_limit": 16777216, "video_size_limit": 41943040, "video_frame_rate_limit": 60, "video_matrix_limit": 2304000 }, "polls": { "max_options": 4, "max_characters_per_option": 50, "min_expiration": 300, "max_expiration": 2629746 } }, "contact_account": { "id": "1", "username": "Gargron", "acct": "Gargron", "display_name": "Eugen", "locked": false, "bot": false, "discoverable": true, "group": false, "created_at": "2016-03-16T00:00:00.000Z", "note": "

Founder, CEO and lead developer @Mastodon, Germany.

", "url": "https://mastodon.social/@Gargron", "avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/dc4286ceb8fab734.jpg", "avatar_static": "https://files.mastodon.social/accounts/avatars/000/000/001/original/dc4286ceb8fab734.jpg", "header": "https://files.mastodon.social/accounts/headers/000/000/001/original/3b91c9965d00888b.jpeg", "header_static": "https://files.mastodon.social/accounts/headers/000/000/001/original/3b91c9965d00888b.jpeg", "followers_count": 118944, "following_count": 305, "statuses_count": 72309, "last_status_at": "2022-08-24", "emojis": [], "fields": [ { "name": "Patreon", "value": "https://www.patreon.com/mastodon", "verified_at": null } ] }, "rules": [ { "id": "1", "text": "Sexually explicit or violent media must be marked as sensitive when posting" }, { "id": "2", "text": "No racism, sexism, homophobia, transphobia, xenophobia, or casteism" }, { "id": "3", "text": "No incitement of violence or promotion of violent ideologies" }, { "id": "4", "text": "No harassment, dogpiling or doxxing of other users" }, { "id": "5", "text": "No content illegal in Germany" }, { "id": "7", "text": "Do not share intentionally false or misleading information" } ] } }, "V1NotificationPolicy": { "type": "object", "description": "Represents the notification filtering policy of the user.", "properties": { "filter_new_accounts": { "description": "Whether to filter notifications from accounts created in the past 30 days.", "type": "boolean" }, "filter_not_followers": { "description": "Whether to filter notifications from accounts that are not following the user.", "type": "boolean" }, "filter_not_following": { "description": "Whether to filter notifications from accounts the user is not following.", "type": "boolean" }, "filter_private_mentions": { "description": "Whether to filter notifications from private mentions. Replies to private mentions initiated by the user, as well as accounts the user follows, are never filtered.", "type": "boolean" }, "summary": { "description": "Summary of the filtered notifications", "type": "object", "properties": { "pending_notifications_count": { "description": "Number of total non-dismissed filtered notifications. May be inaccurate.", "type": "integer" }, "pending_requests_count": { "description": "Number of different accounts from which the user has non-dismissed filtered notifications. Capped at 100.", "type": "integer" } }, "required": [ "pending_notifications_count", "pending_requests_count" ] } }, "required": [ "filter_new_accounts", "filter_not_followers", "filter_not_following", "filter_private_mentions", "summary" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/V1_NotificationPolicy/#attributes", "description": "Official Mastodon API documentation" }, "example": { "filter_not_following": false, "filter_not_followers": false, "filter_new_accounts": false, "filter_private_mentions": true, "summary": { "pending_requests_count": 0, "pending_notifications_count": 0 } } }, "WebPushSubscription": { "type": "object", "description": "Represents a subscription to the push streaming server.", "properties": { "alerts": { "description": "Which alerts should be delivered to the `endpoint`.", "type": "object", "properties": { "admin.report": { "description": "Receive a push notification when a new report has been filed?", "type": "boolean" }, "admin.sign_up": { "description": "Receive a push notification when a new user has signed up?", "type": "boolean" }, "favourite": { "description": "Receive a push notification when a status you created has been favourited by someone else?", "type": "boolean" }, "follow": { "description": "Receive a push notification when someone has followed you?", "type": "boolean" }, "follow_request": { "description": "Receive a push notification when someone has requested to followed you?", "type": "boolean" }, "mention": { "description": "Receive a push notification when someone else has mentioned you in a status?", "type": "boolean" }, "poll": { "description": "Receive a push notification when a poll you voted in or created has ended?", "type": "boolean" }, "reblog": { "description": "Receive a push notification when a status you created has been boosted by someone else?", "type": "boolean" }, "status": { "description": "Receive a push notification when a subscribed account posts a status?", "type": "boolean" }, "update": { "description": "Receive a push notification when a status you interacted with has been edited?", "type": "boolean" } }, "required": [ "admin.report", "admin.sign_up", "favourite", "follow", "follow_request", "mention", "poll", "reblog", "status", "update" ] }, "endpoint": { "description": "Where push alerts will be sent to.", "type": "string", "format": "uri" }, "id": { "description": "The ID of the Web Push subscription in the database.", "type": "integer" }, "server_key": { "description": "The streaming server's VAPID key.", "type": "string" }, "standard": { "description": "If the push messages follow the standardized specifications (RFC8030+RFC8291+RFC8292). Else they follow a legacy version of the specifications (4th draft of RFC8291 and 1st draft of RFC8292).", "type": [ "boolean", "null" ] } }, "required": [ "alerts", "endpoint", "id", "server_key" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/WebPushSubscription/#attributes", "description": "Official Mastodon API documentation" }, "example": { "id": 328183, "endpoint": "https://yourdomain.example/listener", "standard": true, "alerts": { "follow": false, "favourite": false, "reblog": false, "mention": true, "poll": false }, "server_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=" } }, "GroupedNotificationsResults": { "type": "object", "description": "### Attributes", "properties": { "accounts": { "description": "Accounts referenced by grouped notifications.", "type": "array", "items": { "$ref": "#/components/schemas/Account" } }, "notification_groups": { "description": "The grouped notifications themselves.", "type": "array", "items": { "$ref": "#/components/schemas/NotificationGroup" } }, "statuses": { "description": "Statuses referenced by grouped notifications.", "type": "array", "items": { "$ref": "#/components/schemas/Status" } }, "partial_accounts": { "description": "Partial accounts referenced by grouped notifications. Those are only returned when requesting grouped notifications with `expand_accounts=partial_avatars`.", "type": [ "array", "null" ], "items": { "$ref": "#/components/schemas/PartialAccountWithAvatar" } } }, "required": [ "accounts", "notification_groups", "statuses" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/GroupedNotificationsResults/#attributes", "description": "Official Mastodon API documentation" } }, "NotificationGroup": { "type": "object", "description": "### Attributes", "properties": { "group_key": { "description": "Group key identifying the grouped notifications. Should be treated as an opaque value.", "type": "string" }, "most_recent_notification_id": { "description": "ID of the most recent notification in the group.", "type": "integer" }, "notifications_count": { "description": "Total number of individual notifications that are part of this notification group.", "type": "integer" }, "sample_account_ids": { "description": "IDs of some of the accounts who most recently triggered notifications in this group.", "type": "array", "items": { "type": "string" } }, "type": { "description": "The type of event that resulted in the notifications in this group.", "type": "string", "$ref": "#/components/schemas/NotificationTypeEnum" }, "collection": { "description": "Collection that was the object of the notification. Attached when `type` of the notification is `added_to_collection` or `collection_update`.", "oneOf": [ { "$ref": "#/components/schemas/Collection" }, { "type": "null" } ] }, "event": { "description": "Summary of the event that caused follow relationships to be severed. Attached when `type` of the notification is `severed_relationships`.", "oneOf": [ { "$ref": "#/components/schemas/RelationshipSeveranceEvent" }, { "type": "null" } ] }, "fallback": { "description": "Fallback information available for some notification types that clients may not support. Only available for some notification types, and only if the `supported_types` parameter is used when querying.", "oneOf": [ { "$ref": "#/components/schemas/NotificationFallback" }, { "type": "null" } ] }, "latest_page_notification_at": { "description": "Date at which the most recent notification from this group within the current page has been created. This is only returned when paginating through notification groups.", "type": [ "string", "null" ], "format": "date-time" }, "moderation_warning": { "description": "Moderation warning that caused the notification. Attached when `type` of the notification is `moderation_warning`.", "oneOf": [ { "$ref": "#/components/schemas/AccountWarning" }, { "type": "null" } ] }, "page_max_id": { "description": "ID of the newest notification from this group represented within the current page. This is only returned when paginating through notification groups. Useful when polling new notifications.", "type": [ "string", "null" ] }, "page_min_id": { "description": "ID of the oldest notification from this group represented within the current page. This is only returned when paginating through notification groups. Useful when polling new notifications.", "type": [ "string", "null" ] }, "report": { "description": "Report that was the object of the notification. Attached when `type` of the notification is `admin.report`.", "oneOf": [ { "$ref": "#/components/schemas/Report" }, { "type": "null" } ] }, "status_id": { "description": "ID of the [Status](https://docs.joinmastodon.org/entities/Status/) that was the object of the notification. Attached when `type` of the notification is `favourite`, `reblog`, `status`, `mention`, `poll`, `update`, `quote` or `quoted_update`. In the case of `quoted_update`, your quote of the edited status is attached, not the status that was edited.", "type": [ "string", "null" ] } }, "required": [ "group_key", "most_recent_notification_id", "notifications_count", "sample_account_ids", "type" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/NotificationGroup/#attributes", "description": "Official Mastodon API documentation" } }, "DiscoverOauthServerConfigurationResponse": { "type": "object", "description": "Response schema for Discover OAuth Server Configuration", "properties": { "app_registration_endpoint": { "description": "app_registration_endpoint field", "type": "string", "format": "uri" }, "authorization_endpoint": { "description": "authorization_endpoint field", "type": "string", "format": "uri" }, "code_challenge_methods_supported": { "description": "Array of code_challenge_methods_supported", "type": "array", "items": { "type": "string" } }, "grant_types_supported": { "description": "Array of grant_types_supported", "type": "array", "items": { "type": "string" } }, "issuer": { "description": "issuer field", "type": "string", "format": "uri" }, "response_modes_supported": { "description": "Array of response_modes_supported", "type": "array", "items": { "type": "string" } }, "response_types_supported": { "description": "Array of response_types_supported", "type": "array", "items": { "type": "string" } }, "revocation_endpoint": { "description": "revocation_endpoint field", "type": "string", "format": "uri" }, "scopes_supported": { "description": "Array of scopes_supported", "$ref": "#/components/schemas/OAuthScopes" }, "service_documentation": { "description": "service_documentation field", "type": "string", "format": "uri" }, "token_endpoint": { "description": "token_endpoint field", "type": "string", "format": "uri" }, "token_endpoint_auth_methods_supported": { "description": "Array of token_endpoint_auth_methods_supported", "type": "array", "items": { "type": "string" } }, "userinfo_endpoint": { "description": "userinfo_endpoint field", "type": "string", "format": "uri" } }, "required": [ "app_registration_endpoint", "authorization_endpoint", "code_challenge_methods_supported", "grant_types_supported", "issuer", "response_modes_supported", "response_types_supported", "revocation_endpoint", "scopes_supported", "service_documentation", "token_endpoint", "token_endpoint_auth_methods_supported", "userinfo_endpoint" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/DiscoverOauthServerConfigurationResponse/#attributes", "description": "Official Mastodon API documentation" }, "example": { "issuer": "https://social.example/", "service_documentation": "https://docs.joinmastodon.org/", "authorization_endpoint": "https://social.example/oauth/authorize", "token_endpoint": "https://social.example/oauth/token", "app_registration_endpoint": "https://social.example/api/v1/apps", "revocation_endpoint": "https://social.example/oauth/revoke", "userinfo_endpoint": "https://social.example/oauth/userinfo", "scopes_supported": [ "read", "write", "write:accounts", "write:blocks", "write:bookmarks", "write:conversations", "write:favourites", "write:filters", "write:follows", "write:lists", "write:media", "write:mutes", "write:notifications", "write:reports", "write:statuses", "read:accounts", "read:blocks", "read:bookmarks", "read:favourites", "read:filters", "read:follows", "read:lists", "read:mutes", "read:notifications", "read:search", "read:statuses", "follow", "push", "profile", "admin:read", "admin:read:accounts", "admin:read:reports", "admin:read:domain_allows", "admin:read:domain_blocks", "admin:read:ip_blocks", "admin:read:email_domain_blocks", "admin:read:canonical_email_blocks", "admin:write", "admin:write:accounts", "admin:write:reports", "admin:write:domain_allows", "admin:write:domain_blocks", "admin:write:ip_blocks", "admin:write:email_domain_blocks", "admin:write:canonical_email_blocks" ], "response_types_supported": [ "code" ], "response_modes_supported": [ "query", "fragment", "form_post" ], "code_challenge_methods_supported": [ "S256" ], "grant_types_supported": [ "authorization_code", "client_credentials" ], "token_endpoint_auth_methods_supported": [ "client_secret_basic", "client_secret_post" ] } }, "OEmbedResponse": { "type": "object", "description": "Response schema for Get OEmbed info as JSON", "properties": { "author_name": { "description": "author_name field", "type": "string" }, "author_url": { "description": "author_url field", "type": "string", "format": "uri" }, "cache_age": { "description": "cache_age field", "type": "integer" }, "html": { "description": "html field", "type": "string" }, "provider_name": { "description": "provider_name field", "type": "string" }, "provider_url": { "description": "provider_url field", "type": "string", "format": "uri" }, "title": { "description": "title field", "type": "string" }, "type": { "description": "type field", "type": "string" }, "version": { "description": "version field", "type": "string" }, "width": { "description": "width field", "type": "integer" }, "height": { "description": "height field", "type": [ "string", "null" ] } }, "required": [ "author_name", "author_url", "cache_age", "html", "provider_name", "provider_url", "title", "type", "version", "width" ], "externalDocs": { "url": "https://docs.joinmastodon.org/entities/OEmbedResponse/#attributes", "description": "Official Mastodon API documentation" }, "example": { "type": "rich", "version": "1.0", "title": "New status by trwnh", "author_name": "infinite love ⴳ", "author_url": "https://mastodon.social/@trwnh", "provider_name": "mastodon.social", "provider_url": "https://mastodon.social/", "cache_age": 86400, "html": "", "width": 400, "height": null } }, "ValidationError": { "type": "object", "description": "Represents a validation error with field-specific details.", "properties": { "error": { "type": "string", "description": "The overall validation error message." }, "details": { "type": "object", "description": "Detailed validation errors for each field.", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "error": { "type": "string", "description": "The error code (e.g., ERR_BLANK, ERR_INVALID)." }, "description": { "type": "string", "description": "Human-readable description of the error." } }, "required": [ "error", "description" ] } } } }, "required": [ "error", "details" ] }, "AsyncRefreshResponse": { "type": "object", "description": "Response containing an AsyncRefresh object", "properties": { "async_refresh": { "$ref": "#/components/schemas/AsyncRefresh" } }, "required": [ "async_refresh" ] }, "CustomError422": { "type": "object", "properties": { "error": { "type": "object", "properties": { "details": { "type": "object", "properties": { "name": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string" }, "error": { "type": "string" } }, "required": [ "description", "error" ] } } }, "required": [ "name" ] }, "error": { "type": "string" } }, "required": [ "details", "error" ] } }, "required": [ "error" ] }, "CountResponse": { "type": "object", "description": "Response containing a count value", "properties": { "count": { "type": "integer" } }, "required": [ "count" ] }, "MergedResponse": { "type": "object", "description": "Response containing a merged value", "properties": { "merged": { "type": "boolean" } }, "required": [ "merged" ] }, "BaseStatus": { "type": "object", "description": "Common fields for all status creation requests", "properties": { "in_reply_to_id": { "type": "string", "description": "ID of the status being replied to, if status is a reply." }, "language": { "type": "string", "description": "ISO 639-1 language code for this status." }, "quote_approval_policy": { "type": "string", "description": "String (Enumerable, oneOf). Sets who is allowed to quote the status. When omitted, the user's [default setting] will be used instead. Ignored if `visibility` is `private` or `direct`, in which case the policy will always be set to `nobody`. `public` = Anyone is allowed to quote this status and will have their quote automatically accepted, unless they are blocked. `followers` = Only followers and the author are allowed to quote this status, and will have their quote automatically accepted. `nobody` = Only the author is allowed to quote the status." }, "quoted_status_id": { "type": "string", "description": "ID of the status being quoted, if any. Will raise an error if the status does not exist, the author does not have access to it, or quoting is denied by Mastodon's understanding of the attached quote policy. All posts except Private Mentions (`direct` visibility) are quotable by their author. Quoting a `private` post will restrict the quoting post's `visibility` to `private` or `direct` (if the given `visibility` is `public` or `unlisted`, `private` will be used instead). An error will be returned when making a quote post with `direct` visibility and the quote author is not explicitly mentioned. If the `status` text doesn't include a link to the quoted post, Mastodon will prepend a `

RE: …

` paragraph for backward compatibility (such a paragraph will be hidden by Mastodon's web interface)." }, "scheduled_at": { "type": "string", "description": "[Datetime] at which to schedule a status. Providing this parameter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future.", "format": "date-time" }, "sensitive": { "type": "boolean", "description": "Mark status and attached media as sensitive? Defaults to false.", "default": false }, "spoiler_text": { "type": "string", "description": "Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field." }, "visibility": { "type": "string", "description": "Sets the visibility of the posted status to `public`, `unlisted`, `private`, `direct`.", "$ref": "#/components/schemas/StatusVisibilityEnum" } } }, "TextStatus": { "description": "Create a text-only status", "allOf": [ { "$ref": "#/components/schemas/BaseStatus" }, { "type": "object", "required": [ "status" ], "properties": { "status": { "type": "string", "description": "The text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided." } } } ] }, "MediaStatus": { "description": "Create a status with media attachments. Status text is optional.", "allOf": [ { "$ref": "#/components/schemas/BaseStatus" }, { "type": "object", "required": [ "media_ids" ], "properties": { "media_ids": { "type": "array", "description": "Include Attachment IDs to be attached as media. If provided, `status` becomes optional, and `poll` cannot be used.", "items": { "type": "string" } }, "status": { "type": "string", "description": "The text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided." } } } ] }, "PollStatus": { "description": "Create a status with a poll. Cannot be combined with media.", "allOf": [ { "$ref": "#/components/schemas/BaseStatus" }, { "type": "object", "required": [ "poll" ], "properties": { "poll": { "type": "object", "description": "Object containing properties", "properties": { "options": { "type": "array", "description": "Possible answers to the poll. If provided, `media_ids` cannot be used, and `poll[expires_in]` must be provided.", "items": { "type": "string" } }, "expires_in": { "type": "integer", "description": "Duration that the poll should be open, in seconds. If provided, `media_ids` cannot be used, and `poll[options]` must be provided." }, "multiple": { "type": "boolean", "description": "Allow multiple choices? Defaults to false." }, "hide_totals": { "type": "boolean", "description": "Hide vote counts until the poll ends? Defaults to false." } } }, "status": { "type": "string", "description": "The text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided." } } } ] }, "StatusVisibilityEnum": { "type": "string", "enum": [ "public", "unlisted", "private", "direct" ] }, "ScheduledStatusParamsQuoteApprovalPolicyEnum": { "type": "string", "enum": [ "public", "followers", "nobody" ] }, "AccountWarningActionEnum": { "type": "string", "enum": [ "none", "disable", "mark_statuses_as_sensitive", "delete_statuses", "sensitive", "silence", "suspend" ] }, "AdminCohortFrequencyEnum": { "type": "string", "enum": [ "day", "month" ] }, "AdminDomainBlockSeverityEnum": { "type": "string", "enum": [ "silence", "suspend", "noop" ] }, "AdminIpBlockSeverityEnum": { "type": "string", "enum": [ "sign_up_requires_approval", "sign_up_block", "no_access" ] }, "ReportCategoryEnum": { "type": "string", "enum": [ "spam", "legal", "violation", "other" ] }, "AppealStateEnum": { "type": "string", "enum": [ "approved", "rejected", "pending" ] }, "AsyncRefreshStatusEnum": { "type": "string", "enum": [ "running", "finished" ] }, "CollectionItemStateEnum": { "type": "string", "enum": [ "pending", "accepted", "rejected", "revoked" ] }, "DomainBlockSeverityEnum": { "type": "string", "enum": [ "silence", "suspend" ] }, "FeatureApprovalAutomaticEnum": { "type": "string", "enum": [ "public", "followers", "following", "unsupported_policy", "disabled" ] }, "FeatureApprovalCurrentUserEnum": { "type": "string", "enum": [ "automatic", "manual", "denied", "unknown", "missing" ] }, "QuoteApprovalAutomaticEnum": { "type": "string", "enum": [ "public", "followers", "following", "unsupported_policy" ] }, "FilterContextEnum": { "type": "string", "enum": [ "home", "notifications", "public", "thread", "account" ] }, "FilterFilterActionEnum": { "type": "string", "enum": [ "warn", "hide", "blur" ] }, "ListRepliesPolicyEnum": { "type": "string", "enum": [ "followed", "list", "none" ] }, "MediaAttachmentTypeEnum": { "type": "string", "enum": [ "unknown", "image", "gifv", "video", "audio" ] }, "NotificationTypeEnum": { "type": "string", "enum": [ "mention", "status", "reblog", "follow", "follow_request", "favourite", "poll", "update", "admin.sign_up", "admin.report", "severed_relationships", "moderation_warning", "quote", "quoted_update", "added_to_collection", "collection_update" ] }, "PreferencesReadingExpandMediaEnum": { "type": "string", "enum": [ "default", "show_all", "hide_all" ] }, "TrendsLinkTypeEnum": { "type": "string", "enum": [ "link", "photo", "video", "rich" ] }, "QuoteStateEnum": { "type": "string", "enum": [ "pending", "accepted", "rejected", "revoked", "deleted", "unauthorized", "blocked_account", "blocked_domain", "muted_account" ] }, "QuoteApprovalCurrentUserEnum": { "type": "string", "enum": [ "automatic", "manual", "denied", "unknown" ] }, "RelationshipSeveranceEventTypeEnum": { "type": "string", "enum": [ "domain_block", "user_domain_block", "account_suspension" ] }, "SuggestionSourcesEnum": { "type": "string", "enum": [ "featured", "most_followed", "most_interactions", "similar_to_recently_followed", "friends_of_friends" ] } }, "securitySchemes": { "OAuth2": { "type": "oauth2", "description": "OAuth 2.0 authentication", "flows": { "authorizationCode": { "authorizationUrl": "/oauth/authorize", "tokenUrl": "/oauth/token", "scopes": { "profile": "Access to the current user profile information only", "read": "Read access", "write": "Write access", "push": "Push notifications", "follow": "Follow/unfollow accounts", "admin:read": "Administrative read access", "admin:write": "Administrative write access", "read:accounts": "Read access to accounts", "read:blocks": "Read access to blocks", "read:bookmarks": "Read access to bookmarks", "read:collections": "Read access to collections", "read:favourites": "Read access to favourites", "read:filters": "Read access to filters", "read:follows": "Read access to follows", "read:lists": "Read access to lists", "read:mutes": "Read access to mutes", "read:notifications": "Read access to notifications", "read:search": "Read access to search", "read:statuses": "Read access to statuses", "write:accounts": "Write access to accounts", "write:blocks": "Write access to blocks", "write:bookmarks": "Write access to bookmarks", "write:collections": "Write access to collections", "write:conversations": "Write access to conversations", "write:favourites": "Write access to favourites", "write:filters": "Write access to filters", "write:follows": "Write access to follows", "write:lists": "Write access to lists", "write:media": "Write access to media", "write:mutes": "Write access to mutes", "write:notifications": "Write access to notifications", "write:reports": "Write access to reports", "write:statuses": "Write access to statuses", "admin:read:accounts": "Administrative read access to accounts", "admin:read:canonical_email_blocks": "Administrative read access to canonical_email_blocks", "admin:read:domain_allows": "Administrative read access to domain_allows", "admin:read:domain_blocks": "Administrative read access to domain_blocks", "admin:read:email_domain_blocks": "Administrative read access to email_domain_blocks", "admin:read:ip_blocks": "Administrative read access to ip_blocks", "admin:read:reports": "Administrative read access to reports", "admin:write:accounts": "Administrative write access to accounts", "admin:write:canonical_email_blocks": "Administrative write access to canonical_email_blocks", "admin:write:domain_allows": "Administrative write access to domain_allows", "admin:write:domain_blocks": "Administrative write access to domain_blocks", "admin:write:email_domain_blocks": "Administrative write access to email_domain_blocks", "admin:write:ip_blocks": "Administrative write access to ip_blocks", "admin:write:reports": "Administrative write access to reports" } }, "clientCredentials": { "tokenUrl": "/oauth/token", "scopes": { "write:accounts": "Write access to accounts", "read": "Read access", "read:statuses": "Read access to statuses" } } } } }, "headers": { "X-RateLimit-Limit": { "description": "Number of requests permitted per time period", "schema": { "type": "integer" } }, "X-RateLimit-Remaining": { "description": "Number of requests you can still make", "schema": { "type": "integer" } }, "X-RateLimit-Reset": { "description": "Timestamp when your rate limit will reset", "schema": { "type": "string", "format": "date-time" } }, "Link": { "description": "Pagination links for browsing older or newer results. Format: Link: ; rel=\"next\", ; rel=\"prev\". See [RFC 8288](https://www.rfc-editor.org/rfc/rfc8288) for more information.", "schema": { "type": "string" } }, "Mastodon-Async-Refresh": { "description": "Indicates an async refresh is in progress. Format: id=\"\", retry=, result_count=. The retry value indicates seconds to wait before retrying. The result_count is optional and indicates results already fetched.", "schema": { "type": "string" } } }, "examples": { "Error401Example": { "summary": "Example for Error", "value": { "error": "The access token is invalid" } }, "Error404Example": { "summary": "Example for Error", "value": { "error": "Record not found" } }, "ValidationError422Example": { "summary": "Example for ValidationError", "value": { "error": "Validation failed: Password can't be blank, Username must contain only letters, numbers and underscores, Agreement must be accepted", "details": { "password": [ { "error": "ERR_BLANK", "description": "can't be blank" } ], "username": [ { "error": "ERR_INVALID", "description": "must contain only letters, numbers and underscores" } ], "agreement": [ { "error": "ERR_ACCEPTED", "description": "must be accepted" } ] } } }, "Error429Example": { "summary": "Example for Error", "value": { "error": "Too many requests" } }, "Error503Example": { "summary": "Example for Error", "value": { "error": "Remote data could not be fetched" } }, "Account200Example": { "summary": "Example for Account", "value": [ { "id": "1", "username": "Gargron", "acct": "Gargron", "display_name": "Eugen", "locked": false, "bot": false, "created_at": "2016-03-16T14:34:26.392Z", "note": "

Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.

", "url": "https://mastodon.social/@Gargron", "avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", "avatar_static": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", "header": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png", "header_static": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png", "followers_count": 318699, "following_count": 453, "statuses_count": 61013, "last_status_at": "2019-11-30T20:02:08.277Z", "emojis": [], "fields": [ { "name": "Patreon", "value": "https://www.patreon.com/mastodon", "verified_at": null }, { "name": "Homepage", "value": "https://zeonfederated.com", "verified_at": "2019-07-15T18:29:57.191+00:00" } ] } ] }, "Collections200Example": { "summary": "Example for Collections", "value": { "collections:": [ { "id": "116131056935959117", "account_id": "113668893442515793", "uri": "https://example.com/ap/113668893442515793/collections/116131056935959117", "url": "https://example.com/collections/116131056935959117", "name": "Nice accounts", "description": "These accounts are very nice", "language": "en", "local": true, "sensitive": false, "discoverable": true, "tag": { "name": "accounts", "url": "https://example.com/tags/accounts" }, "item_count": 2, "items": [], "created_at": "2026-02-25T11:35:01.394Z", "updated_at": "2026-02-25T11:35:01.394Z" } ] } }, "Relationship200Example": { "summary": "Example for Relationship", "value": { "id": "3", "following": false, "showing_reblogs": false, "notifying": false, "followed_by": false, "blocking": true, "blocked_by": false, "muting": false, "muting_notifications": false, "requested": false, "domain_blocking": false, "endorsed": false } }, "Error422Example": { "summary": "Example for Error", "value": { "error": "This method requires an authenticated user" } }, "Error403Example": { "summary": "Example for Error", "value": { "error": "This action is outside the authorized scopes" } }, "Error500Example": { "summary": "Example for Error", "value": { "error": "Error processing thumbnail for uploaded media" } }, "FeaturedTag200Example": { "summary": "Example for FeaturedTag", "value": [ { "id": "627", "name": "nowplaying", "statuses_count": 36, "last_status_at": "2019-11-15T07:14:43.524Z" } ] }, "IdentityProof200Example": { "summary": "Example for IdentityProof", "value": [ { "provider": "Keybase", "provider_username": "gargron", "updated_at": "2019-07-21T20:14:39.596Z", "proof_url": "https://keybase.io/gargron/sigchain#5cfc20c7018f2beefb42a68836da59a792e55daa4d118498c9b1898de7e845690f", "profile_url": "https://keybase.io/gargron" } ] }, "List200Example": { "summary": "Example for List", "value": [ { "id": "13694", "title": "dev" } ] }, "Status200Example": { "summary": "Example for Status", "value": [ { "id": "108880211901672326", "created_at": "2022-08-24T22:29:46.493Z", "in_reply_to_id": "108880209317577809", "in_reply_to_account_id": "103641", "sensitive": false } ] }, "FamiliarFollowers200Example": { "summary": "Example for FamiliarFollowers", "value": [ { "id": "1", "accounts": [ { "id": "1087990", "username": "moss", "acct": "moss@goblin.camp" }, { "id": "1092723", "username": "vivianrose", "acct": "vivianrose" } ] }, { "id": "2", "accounts": [] } ] }, "CredentialAccount200Example": { "summary": "Example for CredentialAccount", "value": { "fields_attributes": { "0": { "name": "Website", "value": "https://trwnh.com" }, "1": { "name": "Sponsor", "value": "https://liberapay.com/at" } } } }, "Announcement200Example": { "summary": "Example for Announcement", "value": [ { "id": "8", "content": "

Looks like there was an issue processing audio attachments without embedded art since yesterday due to an experimental new feature. That issue has now been fixed, so you may see older posts with audio from other servers pop up in your feeds now as they are being finally properly processed. Sorry!

", "starts_at": null, "ends_at": null, "all_day": false, "published_at": "2020-07-03T01:27:38.726Z", "updated_at": "2020-07-03T01:27:38.752Z", "read": true, "mentions": [], "statuses": [], "tags": [], "emojis": [], "reactions": [ { "name": "bongoCat", "count": 9, "me": false, "url": "https://files.mastodon.social/custom_emojis/images/000/067/715/original/fdba57dff7576d53.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/067/715/static/fdba57dff7576d53.png" }, { "name": "thonking", "count": 1, "me": false, "url": "https://files.mastodon.social/custom_emojis/images/000/098/690/original/a8d36edc4a7032e8.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/098/690/static/a8d36edc4a7032e8.png" }, { "name": "AAAAAA", "count": 1, "me": false, "url": "https://files.mastodon.social/custom_emojis/images/000/071/387/original/AAAAAA.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/071/387/static/AAAAAA.png" }, { "name": "🤔", "count": 1, "me": true } ] } ] }, "WrappedAnnualReports200Example": { "summary": "Example for WrappedAnnualReports", "value": { "annual_reports": [ { "year": 2025, "data": { "archetype": "oracle", "time_series": [ { "month": 12, "statuses": 7123, "followers": 48 } ], "top_hashtags": [ { "name": "Mastodon", "count": 12 } ], "top_statuses": { "by_reblogs": "114348347829110933", "by_replies": null, "by_favourites": null } }, "schema_version": 2, "share_url": "https://example.com/@Foobar/wrapstodon/2025/7fa0231c0f206390", "account_id": "55911" }, { "year": 2026, "data": { "archetype": "oracle", "time_series": [ { "month": 12, "statuses": 6241, "followers": 42 } ], "top_hashtags": [ { "name": "Cats", "count": 13 } ], "top_statuses": { "by_reblogs": "116680004222523313", "by_replies": null, "by_favourites": null } }, "schema_version": 2, "share_url": "https://example.com/@Foobar/wrapstodon/2026/dd6a5b58ec0e3c12", "account_id": "55911" } ], "accounts": [], "statuses": [] } }, "CredentialApplication200Example": { "summary": "Example for CredentialApplication", "value": { "id": "563419", "name": "Test Application", "website": "https://app.example", "scopes": [ "read", "write", "push" ], "redirect_uri": "urn:ietf:wg:oauth:2.0:oob", "redirect_uris": [ "urn:ietf:wg:oauth:2.0:oob" ], "client_id": "TWhM-tNSuncnqN7DBJmoyeLnk6K3iJJ71KKXxgL1hPM", "client_secret": "ZEaFUFmF0umgBX1qKJDjaU99Q31lDkOU8NutzTOoliw", "client_secret_expires_at": 0 } }, "Application200Example": { "summary": "Example for Application", "value": { "id": "563419", "name": "Test Application", "website": "https://app.example", "scopes": [ "read", "write", "push" ], "redirect_uri": "https://app.example/callback\nhttps://app.example/register", "redirect_uris": [ "https://app.example/callback", "https://app.example/register" ], "vapid_key": "BMAIjoaMYTDbJtfrfocuzO8pzDHI47dzmw0rha6Y=" } }, "WrappedCollection200Example": { "summary": "Example for WrappedCollection", "value": { "collection": { "id": "116131056935959117", "account_id": "113668893442515793", "uri": "https://example.com/ap/113668893442515793/collections/116131056935959117", "url": "https://example.com/collections/116131056935959117", "name": "Nice accounts", "description": "These accounts are very nice", "language": "en", "local": true, "sensitive": false, "discoverable": true, "tag": { "name": "accounts", "url": "https://example.com/tags/accounts" }, "item_count": 2, "items": [], "created_at": "2026-02-25T11:35:01.394Z", "updated_at": "2026-02-25T11:35:01.394Z" } } }, "CustomError422422Example": { "summary": "Example for CustomError422", "value": { "error": { "error": "Validation failed: Name is too long (maximum is 40 characters)", "details": { "name": [ { "error": "ERR_TOO_LONG", "description": "is too long (maximum is 40 characters)" } ] } } } }, "WrappedCollectionItem200Example": { "summary": "Example for WrappedCollectionItem", "value": { "collection_item": { "id": "116151066915353115", "account_id": "112658193342215767", "state": "accepted", "created_at": "2026-02-25T11:35:01.394Z" } } }, "CollectionWithAccounts200Example": { "summary": "Example for CollectionWithAccounts", "value": { "accounts": [], "collection": { "id": "116131056935959117", "account_id": "113668893442515793", "uri": "https://example.com/ap/113668893442515793/collections/116131056935959117", "url": "https://example.com/collections/116131056935959117", "name": "Nice accounts", "description": "These accounts are very nice", "language": "en", "local": true, "sensitive": false, "discoverable": true, "tag": { "name": "accounts", "url": "https://example.com/tags/accounts" }, "item_count": 2, "items": [], "created_at": "2026-02-25T11:35:01.394Z", "updated_at": "2026-02-25T11:35:01.394Z" } } }, "Conversation200Example": { "summary": "Example for Conversation", "value": [ { "id": "418450", "unread": true, "accounts": [ { "id": "482403", "username": "amic", "acct": "amic@nulled.red" } ], "last_status": { "id": "103196583826321184", "created_at": "2019-11-25T04:08:24.000Z", "in_reply_to_id": "103196540587943467", "in_reply_to_account_id": "14715" } }, { "id": "418374", "unread": false, "accounts": [ { "id": "464472", "username": "freon", "acct": "freon@letsalllovela.in" } ], "last_status": { "id": "103195253010396431", "created_at": "2019-11-24T22:29:56.331Z", "in_reply_to_id": "103195239650546339", "in_reply_to_account_id": "14715" } } ] }, "CustomEmoji200Example": { "summary": "Example for CustomEmoji", "value": [ { "shortcode": "aaaa", "url": "https://files.mastodon.social/custom_emojis/images/000/007/118/original/aaaa.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/007/118/static/aaaa.png", "visible_in_picker": true }, { "shortcode": "AAAAAA", "url": "https://files.mastodon.social/custom_emojis/images/000/071/387/original/AAAAAA.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/071/387/static/AAAAAA.png", "visible_in_picker": true }, { "shortcode": "blobaww", "url": "https://files.mastodon.social/custom_emojis/images/000/011/739/original/blobaww.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/011/739/static/blobaww.png", "visible_in_picker": true, "category": "Blobs" }, { "shortcode": "yikes", "url": "https://files.mastodon.social/custom_emojis/images/000/031/275/original/yikes.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/031/275/static/yikes.png", "visible_in_picker": true }, { "shortcode": "ziltoid", "url": "https://files.mastodon.social/custom_emojis/images/000/017/094/original/05252745eb087806.png", "static_url": "https://files.mastodon.social/custom_emojis/images/000/017/094/static/05252745eb087806.png", "visible_in_picker": true } ] }, "Tag200Example": { "summary": "Example for Tag", "value": [ { "id": "4325", "name": "nowplaying", "url": "https://mastodon.social/tags/nowplaying", "history": [ { "day": "1574553600", "uses": "200", "accounts": "31" }, { "day": "1574467200", "uses": "272", "accounts": "39" }, { "day": "1574380800", "uses": "345", "accounts": "40" }, { "day": "1574294400", "uses": "366", "accounts": "46" }, { "day": "1574208000", "uses": "226", "accounts": "32" }, { "day": "1574121600", "uses": "217", "accounts": "42" }, { "day": "1574035200", "uses": "214", "accounts": "34" } ] }, { "id": "1684", "name": "mastothemes", "url": "https://mastodon.social/tags/mastothemes", "history": [ { "day": "1574553600", "uses": "0", "accounts": "0" }, { "day": "1574467200", "uses": "0", "accounts": "0" }, { "day": "1574380800", "uses": "0", "accounts": "0" }, { "day": "1574294400", "uses": "0", "accounts": "0" }, { "day": "1574208000", "uses": "0", "accounts": "0" }, { "day": "1574121600", "uses": "0", "accounts": "0" }, { "day": "1574035200", "uses": "0", "accounts": "0" } ] } ] }, "V1Filter200Example": { "summary": "Example for V1Filter", "value": [ { "id": "6191", "phrase": ":eurovision2019:", "context": [ "home" ], "whole_word": true, "expires_at": "2019-05-21T13:47:31.333Z", "irreversible": false }, { "id": "5580", "phrase": "@twitter.com", "context": [ "home", "notifications", "public", "thread" ], "whole_word": false, "expires_at": null, "irreversible": true } ] }, "Filter200Example": { "summary": "Example for Filter", "value": [ { "id": "20060", "title": "Remove Twitter crossposts from public timeline", "context": [ "public" ], "expires_at": null, "filter_action": "hide", "keywords": [ { "id": "1311", "keyword": "from birdsite", "whole_word": true }, { "id": "1324", "keyword": "@twitter.com", "whole_word": false }, { "id": "1325", "keyword": "https://t.co/", "whole_word": false } ], "statuses": [] } ] }, "FilterKeyword200Example": { "summary": "Example for FilterKeyword", "value": [ { "id": "34979", "keyword": "baz", "whole_word": true } ] }, "FilterStatus200Example": { "summary": "Example for FilterStatus", "value": [ { "id": "897", "status_id": "109416512469928632" } ] }, "V1Instance200Example": { "summary": "Example for V1Instance", "value": { "uri": "mastodon.social", "title": "Mastodon", "short_description": "The original server operated by the Mastodon gGmbH non-profit", "description": "", "email": "staff@mastodon.social", "version": "3.5.3", "urls": { "streaming_api": "wss://mastodon.social" }, "stats": { "user_count": 812303, "status_count": 38151616, "domain_count": 25255 }, "thumbnail": "https://files.mastodon.social/site_uploads/files/000/000/001/original/vlcsnap-2018-08-27-16h43m11s127.png", "languages": [ "en" ], "registrations": false, "approval_required": false, "invites_enabled": true, "configuration": { "statuses": { "max_characters": 500, "max_media_attachments": 4, "characters_reserved_per_url": 23 }, "media_attachments": { "supported_mime_types": [ "image/jpeg", "image/png", "image/gif", "image/webp", "video/webm", "video/mp4", "video/quicktime", "video/ogg", "audio/wave", "audio/wav", "audio/x-wav", "audio/x-pn-wave", "audio/vnd.wave", "audio/ogg", "audio/vorbis", "audio/mpeg", "audio/mp3", "audio/webm", "audio/flac", "audio/aac", "audio/m4a", "audio/x-m4a", "audio/mp4", "audio/3gpp", "video/x-ms-asf" ], "image_size_limit": 10485760, "image_matrix_limit": 16777216, "video_size_limit": 41943040, "video_frame_rate_limit": 60, "video_matrix_limit": 2304000 }, "polls": { "max_options": 4, "max_characters_per_option": 50, "min_expiration": 300, "max_expiration": 2629746 } }, "contact_account": { "id": "1", "username": "Gargron", "acct": "Gargron", "display_name": "Eugen", "locked": false, "bot": false, "discoverable": true, "group": false, "created_at": "2016-03-16T00:00:00.000Z", "note": "

Founder, CEO and lead developer @Mastodon, Germany.

", "url": "https://mastodon.social/@Gargron", "avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/dc4286ceb8fab734.jpg", "avatar_static": "https://files.mastodon.social/accounts/avatars/000/000/001/original/dc4286ceb8fab734.jpg", "header": "https://files.mastodon.social/accounts/headers/000/000/001/original/3b91c9965d00888b.jpeg", "header_static": "https://files.mastodon.social/accounts/headers/000/000/001/original/3b91c9965d00888b.jpeg", "followers_count": 118944, "following_count": 305, "statuses_count": 72309, "last_status_at": "2022-08-24", "emojis": [], "fields": [ { "name": "Patreon", "value": "https://www.patreon.com/mastodon", "verified_at": null } ] }, "rules": [ { "id": "1", "text": "Sexually explicit or violent media must be marked as sensitive when posting" }, { "id": "2", "text": "No racism, sexism, homophobia, transphobia, xenophobia, or casteism" }, { "id": "3", "text": "No incitement of violence or promotion of violent ideologies" }, { "id": "4", "text": "No harassment, dogpiling or doxxing of other users" }, { "id": "5", "text": "No content illegal in Germany" }, { "id": "7", "text": "Do not share intentionally false or misleading information" } ] } }, "DomainBlock200Example": { "summary": "Example for DomainBlock", "value": [ { "domain": "birb.elfenban.de", "digest": "5d2c6e02a0cced8fb05f32626437e3d23096480b47efbba659b6d9e80c85d280", "severity": "suspend", "comment": "Third-party bots" }, { "domain": "birdbots.leptonics.com", "digest": "ce019d8d32cce8e369ac4367f4dc232103e6f489fbdd247fb99f9c8a646078a4", "severity": "suspend", "comment": "Third-party bots" } ] }, "ExtendedDescription200Example": { "summary": "Example for ExtendedDescription", "value": { "updated_at": "2022-11-03T04:09:07Z", "content": "

For inquiries not related specifically to the operation of this server, such as press inquiries, please contact press@joinmastodon.org.

\n\n

Funding

\n\n

This server is crowdfunded by Patreon donations. For a list of sponsors, see joinmastodon.org.

\n\n

Reporting and moderation

\n\n

When reporting accounts, please make sure to include at least a few posts that show rule-breaking behaviour, when applicable. If there is any additional context that might help make a decision, please also include it in the comment. This is especially important when the content is in a language nobody on the moderation team speaks.

\n\n

We usually handle reports within 24 hours. Please mind that you are not notified when a report you have made has led to a punitive action, and that not all punitive actions are externally visible. For first time offenses, we may opt to delete offending content, escalating to harsher measures on repeat offenses.

\n\n

Impressum

\n\n

Mastodon gGmbH
\nMühlenstraße 8a
\n14167 Berlin
\nGermany

\n\n

E-Mail-Adresse: hello@joinmastodon.org

\n\n

Vertretungsberechtigt: Eugen Rochko (Geschäftsführer)

\n\n

Umsatzsteuer Identifikationsnummer (USt-ID): DE344258260

\n\n

Handelsregister
\nGeführt bei: Amtsgericht Charlottenburg
\nNummer: HRB 230086 B

\n" } }, "PrivacyPolicy200Example": { "summary": "Example for PrivacyPolicy", "value": { "updated_at": "2022-10-07T00:00:00+00:00", "content": "

This privacy policy describes how example.com ("example.com", "we", "us") collects,\nprotects and uses the personally identifiable information you may provide\nthrough the example.com website or its API.

\n\n

What information do we collect?

\n\n
    \n
  • Basic account information: If you register on this server, you may be\nasked to enter a username, an e-mail address and a password.
  • \n
  • Posts, following and other public information: The list of people you\nfollow is listed publicly, the same is true for your followers.
  • \n
  • Direct and followers-only posts: All posts are stored and processed on the\nserver. You may\ntoggle an option to approve and reject new followers manually in the settings.\nPlease keep in mind that the operators of the server and any receiving\nserver may view such messages, and that recipients may screenshot, copy or\notherwise re-share them. Do not share any sensitive information over\nMastodon.
  • \n
  • IPs and other metadata: When you log in, we record the IP address you log\nin from, as well as the name of your browser application.
  • \n
\n\n
\n\n

This document is CC-BY-SA. Originally adapted from the Discourse privacy\npolicy.

\n" } }, "Rule200Example": { "summary": "Example for Rule", "value": [ { "id": "1", "text": "Sexually explicit or violent media must be marked as sensitive when posting" }, { "id": "2", "text": "No racism, sexism, homophobia, transphobia, xenophobia, or casteism" }, { "id": "3", "text": "No incitement of violence or promotion of violent ideologies" }, { "id": "4", "text": "No harassment, dogpiling or doxxing of other users" }, { "id": "5", "text": "No content illegal in Germany" }, { "id": "7", "text": "Do not share intentionally false or misleading information" } ] }, "TermsOfService200Example": { "summary": "Example for TermsOfService", "value": { "effective_date": "2025-04-15", "effective": true, "content": "

Foo bar newer

\n", "succeeded_by": null } }, "Instance200Example": { "summary": "Example for Instance", "value": { "domain": "mastodon.social", "title": "Mastodon", "version": "4.5.0-nightly.2025-07-11", "source_url": "https://github.com/mastodon/mastodon", "description": "The original server operated by the Mastodon gGmbH non-profit", "usage": { "users": { "active_month": 279347 } }, "thumbnail": { "url": "https://files.mastodon.social/site_uploads/files/000/000/001/@1x/57c12f441d083cde.png", "description": "Colourful illustration of a Mastodon (a sort of elephant) carrying a bindle and joining a group of other Mastodons. The other Mastodons have many different colours and are holding up a Welcome sign.", "blurhash": "UeKUpFxuo~R%0nW;WCnhF6RjaJt757oJodS$", "versions": { "@1x": "https://files.mastodon.social/site_uploads/files/000/000/001/@1x/57c12f441d083cde.png", "@2x": "https://files.mastodon.social/site_uploads/files/000/000/001/@2x/57c12f441d083cde.png" } }, "icon": [ { "src": "https://mastodon.social/packs/assets/android-chrome-36x36-DLiBQg3N.png", "size": "36x36" }, { "src": "https://mastodon.social/packs/assets/android-chrome-48x48-C7lKWFwX.png", "size": "48x48" }, { "src": "https://mastodon.social/packs/assets/android-chrome-72x72-9LRpA3QN.png", "size": "72x72" }, { "src": "https://mastodon.social/packs/assets/android-chrome-96x96-BKKwkkY-.png", "size": "96x96" }, { "src": "https://mastodon.social/packs/assets/android-chrome-144x144-D-ewI-KZ.png", "size": "144x144" }, { "src": "https://mastodon.social/packs/assets/android-chrome-192x192-jYKJbpas.png", "size": "192x192" }, { "src": "https://mastodon.social/packs/assets/android-chrome-256x256-DXt2vsq7.png", "size": "256x256" }, { "src": "https://mastodon.social/packs/assets/android-chrome-384x384-CbK7cG33.png", "size": "384x384" }, { "src": "https://mastodon.social/packs/assets/android-chrome-512x512-Dz2ThkhV.png", "size": "512x512" } ], "languages": [ "en" ], "configuration": { "urls": { "streaming": "wss://streaming.mastodon.social", "status": "https://status.mastodon.social", "about": "https://mastodon.social/about", "privacy_policy": "https://mastodon.social/privacy-policy", "terms_of_service": null }, "vapid": { "public_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=" }, "accounts": { "max_featured_tags": 10, "max_pinned_statuses": 5 }, "statuses": { "max_characters": 500, "max_media_attachments": 4, "characters_reserved_per_url": 23 }, "media_attachments": { "description_limit": 1500, "image_matrix_limit": 33177600, "image_size_limit": 16777216, "supported_mime_types": [ "image/jpeg", "image/png", "image/gif", "image/heic", "image/heif", "image/webp", "image/avif", "video/webm", "video/mp4", "video/quicktime", "video/ogg", "audio/wave", "audio/wav", "audio/x-wav", "audio/x-pn-wave", "audio/vnd.wave", "audio/ogg", "audio/vorbis", "audio/mpeg", "audio/mp3", "audio/webm", "audio/flac", "audio/aac", "audio/m4a", "audio/x-m4a", "audio/mp4", "audio/3gpp", "video/x-ms-asf" ], "video_frame_rate_limit": 120, "video_matrix_limit": 8294400, "video_size_limit": 103809024 }, "polls": { "max_options": 4, "max_characters_per_option": 50, "min_expiration": 300, "max_expiration": 2629746 }, "translation": { "enabled": true }, "limited_federation": false }, "registrations": { "enabled": true, "approval_required": false, "reason_required": false, "message": null, "min_age": 16, "url": null }, "api_versions": { "mastodon": 6 }, "contact": { "email": "staff@mastodon.social", "account": { "id": "13179", "username": "Mastodon", "acct": "Mastodon", "display_name": "Mastodon", "locked": false, "bot": false, "discoverable": true, "indexable": false, "group": false, "created_at": "2016-11-23T00:00:00.000Z", "note": "

Free, open-source decentralized social media platform.

", "url": "https://mastodon.social/@Mastodon", "uri": "https://mastodon.social/users/Mastodon", "avatar": "https://files.mastodon.social/accounts/avatars/000/013/179/original/b4ceb19c9c54ec7e.png", "avatar_static": "https://files.mastodon.social/accounts/avatars/000/013/179/original/b4ceb19c9c54ec7e.png", "header": "https://files.mastodon.social/accounts/headers/000/013/179/original/1375be116fbe0f1d.png", "header_static": "https://files.mastodon.social/accounts/headers/000/013/179/original/1375be116fbe0f1d.png", "followers_count": 843930, "following_count": 34, "statuses_count": 344, "last_status_at": "2025-07-10", "hide_collections": false, "noindex": false, "emojis": [], "roles": [], "fields": [ { "name": "Homepage", "value": "https://joinmastodon.org", "verified_at": "2018-10-31T04:11:00.076+00:00" }, { "name": "Patreon", "value": "https://patreon.com/mastodon", "verified_at": null }, { "name": "GitHub", "value": "https://github.com/mastodon", "verified_at": "2023-07-21T13:27:45.996+00:00" } ] } }, "rules": [ { "id": "1", "text": "Sexually explicit or violent media must be marked as sensitive or with a content warning", "hint": "This includes content that is particularly provocative even if it may not show specific body parts, as well as dead bodies, bloody injuries, and other gore. Particularly obscene content may be prohibited entirely. Profile pictures and header images may not contain sexually explicit or violent media.", "translations": { "de": { "text": "Sexuell explizite Darstellungen oder solche von Gewalt müssen mit einer Inhaltswarnung versehen werden.", "hint": "Das beinhaltet ausdrücklich provokative Inhalte, auch wenn keine bestimmten Körperteile zu sehen sind, sowie Leichname, blutige Verletzungen und vergleichbare extreme Darstellungen. Besonders obszöne Inhalte können vollständig verboten werden. Profil- und Titelbilder dürfen keine sexuell expliziten oder Gewaltdarstellungen abbilden." }, "es": { "text": "El contenido sexual explícito o violento debe marcarse como sensible o con una advertencia de contenido.", "hint": "Esto incluye contenido especialmente provocativo, aunque no muestre partes específicas del cuerpo, así como cadáveres, heridas sangrientas y otras escenas sangrientas. Los contenidos especialmente obscenos pueden prohibirse por completo. Las fotos de perfil y las imágenes de cabecera no pueden contener contenido sexual explícito o violento." }, "fr": { "text": "Le contenu érotique, pornographique ou violent doit être marqué comme sensible ou avoir un avertissement de contenu.", "hint": "Cela inclut le contenu particulièrement provocateur même s’il ne montre pas particulièrement de parties intimes, ainsi que les photos de cadavres, de blessures sanglantes et autres scènes dérangeantes. Le contenu particulièrement obscène peut être complètement interdit. Les images de profil et d’en-tête ne doivent pas contenir de contenu sexuellement explicite ou violent." }, "nl": { "text": "Seksueel expliciet of gewelddadig beeldmateriaal moet als ‘gevoelig’ gemarkeerd worden, of met een inhoudswaarschuwing gemarkeerd.", "hint": "Dit omvat ook inhoud die gedeeltelijk aanstootgevend is zelfs als het geen lichaamsdelen toont, en ook dode lichamen, bloederige verwondingen en andere gruwelijkheden. Zeer obscene inhoud kan helemaal verboden worden. Profielfoto’s en headerafbeeldingen mogen geen seksueel expliciete of geweldadige inhoud hebben." }, "ru": { "text": "Сексуально откровенные или жестокие изображения или видео должны быть помечены как чувствительные или скрыты под спойлер.", "hint": "Это включает в себя особенно провоцирующий контент, даже если он не показывает определённые части тела, а также мёртвые тела, окровавленные раны и прочую кровь. Особенно жестокий контент может быть запрещён полностью. Аватары и обложки профилей не должны содержать сексуально откровенные или жестокие изображения." }, "zh-CN": { "text": "色情或暴力媒体必须标记为敏感或有内容警告", "hint": "这包括特别挑逗性的内容,即使它可能没有显示特定的身体部位,以及尸体、血腥伤害和其他血腥内容。特别淫秽的内容可能会被完全禁止。个人资料图片和头像不得包含色情或暴力内容。" }, "zh-TW": { "text": "性暗示或暴力媒體必須標示為敏感或附帶內容警示", "hint": "這包括特別挑釁的內容,即使它可能沒有顯示特定的身體部位,以及屍體、血腥傷害和其他血腥內容。特別猥褻的內容可能會被完全禁止。個人檔案圖片和標題圖片不得包含色情或暴力媒體。" } } }, { "id": "2", "text": "No racism, sexism, homophobia, transphobia, ableism, xenophobia, or casteism.", "hint": "Transphobic behavior such as intentional misgendering and deadnaming is strictly prohibited. Promotion of \"conversion therapy\" is strictly prohibited. Criticism of governments and religions is permissible unless being used as a proxy for discrimination.", "translations": { "de": { "text": "Kein(e) Rassismus, Sexismus, Homophobie, Transphobie, Behindertenfeindlichkeit, Fremdenfeindlichkeit oder Kasteismus.", "hint": "Transphobes Verhalten wie die absichtliche Verwendung von falschen Anreden und Pronomen sowie Deadnaming ist strengstens verboten. Die Werbung für Konversionstherapien ist strengstens verboten. Die Kritik an Regierungen und Religionen ist zulässig, sofern sie nicht stellvertretend für Diskriminierung verwendet wird." }, "es": { "text": "Prohibido el racismo, sexismo, homofobia, transfobia, ableísmo, xenofobia o casticismo.", "hint": "Queda terminantemente prohibido el comportamiento transfóbico, como el uso intencionado de nombres falsos o el \"deadnaming\". La promoción de la \"terapia de conversión\" está estrictamente prohibida. Se permiten las críticas a gobiernos y religiones, a menos que se utilicen como excusa para la discriminación." }, "fr": { "text": "Pas de racisme, sexisme, homophobie, transphobie, validisme, xénophobie ou discrimination de caste.", "hint": "Les comportements intentionnellement transphobes, comme le mégenrage ou le morinommage (“deadnaming”) est strictement interdit. La promotion des “thérapies de conversion” est strictement interdite. La critique des gouvernements et religions est autorisée, sauf dans les cas ou elle est utilisée comme paravent pour de la discrimination." }, "nl": { "text": "Geen racisme, seksisme, homofobie, transfobie, validisme, xenofobie of kastendiscriminatie.", "hint": "Transfobisch gedrag zoals opzettelijk misgenderen en deadnaming is ten strengste verboden. Het promoten van “conversie therapie” is ten strengste verboden. Kritiek op overheden en religies is toegestaan tenzij het wordt gebruikt als proxy voor racisme." }, "ru": { "text": "Запрещается расизм, сексизм, гомофобия, трансфобия, эйблизм, ксенофобия и кастовость.", "hint": "Трансфобное поведение, такое как осознанный мисгендеринг и деднейминг, строго запрещено. Продвижение \"конверсионной терапии\" строго запрещено. Критика правительств и религий разрешена, кроме случаев, когда она используется как оправдание для дискриминации." }, "zh-CN": { "text": "禁止种族主义、性别歧视、仇视同性恋、仇视变性者、异能者、仇外心理或种姓歧视。", "hint": "严禁变性仇视行为,如故意误用性别和死名。严禁宣传 “转换疗法”。允许批评政府和宗教,除非被用作歧视的代名词。" }, "zh-TW": { "text": "禁止種族主義、性別主義、恐同主義、恐變性主義、能力主義、仇外主義或種性主義。", "hint": "嚴禁變性仇視行為,例如故意誤用性別和暱稱。嚴禁宣傳「扭轉治療」。允許批評政府和宗教,除非被用來代表歧視。" } } }, { "id": "3", "text": "No incitement of violence or promotion of violent ideologies", "hint": "Calling for people or groups to be assassinated, murdered, or attacked physically is strictly prohibited. Support for violent groups or events is prohibited.", "translations": { "de": { "text": "Keine Anstiftung zu Gewalt oder Förderung gewalttätiger Ideologien.", "hint": "Der Aufruf zum Mord oder körperlichen Attacken auf Personen oder Gruppen ist strengstens verboten. Die Unterstützung gewalttätiger Gruppen oder Veranstaltungen ist verboten." }, "es": { "text": "Prohibida la incitación a la violencia o la promoción de ideologías violentas.", "hint": "Está estrictamente prohibido hacer llamamientos para que se asesine, mate o agreda físicamente a personas o grupos. Está prohibido apoyar a grupos o acontecimientos violentos." }, "fr": { "text": "Pas d’incitation à la violence ou de promotion d’idéologies violentes.", "hint": "L’appel au meutre, à la violence ou à l’action physique envers des personnes ou des groupes de personnes est strictement interdit. Le soutien à des groupes ou évènements violents est interdit." }, "nl": { "text": "Niet aanzetten tot geweld of verspreiden van gewelddadige ideologieën.", "hint": "Mensen of groepen aanzetten tot moord, aanslagen of fysieke aanvallen is ten strengste verboden. Steun voor gewelddadige groeperingen of evenementen is verboden." }, "ru": { "text": "Запрещается подстрекательство к жестокости или продвижение жестоких идеологий.", "hint": "Призывы к покушениям, убийствам и физическим атакам на людей или группы людей строго запрещены. Поддержка жестоких сообществ или событий запрещена." }, "zh-CN": { "text": "不得煽动暴力或宣扬暴力意识形态", "hint": "严禁呼吁暗杀、谋杀或人身攻击他人或团体。禁止支持暴力团体或事件。" }, "zh-TW": { "text": "嚴禁煽動暴力或宣揚暴力意識形態", "hint": "嚴禁呼籲暗殺、謀殺或人身攻擊他人或團體。嚴禁支持暴力團體或事件。" } } }, { "id": "4", "text": "No harassment, block evasion, dogpiling, or doxxing of others", "hint": "Repeat attempts to communicate with users who have blocked you or creation of accounts solely to harass or insult individuals is strictly prohibited. Coordinated activity to attack other users is prohibited. Posting of private personal information about others is prohibited.", "translations": { "de": { "text": "Keine Belästigungen, Umgehung von Blockierungen, Dogpiling oder Doxxing.", "hint": "Wiederholte Kommunikationsversuche mit Profilen, die dich blockiert haben, oder die Erstellung neuer Konten, die ausschließlich dazu dienen, andere zu belästigen oder zu beleidigen, sind strengstens verboten. Koordinierte Angriffe auf andere Profile sind verboten. Die Veröffentlichung von privaten und persönlichen Informationen anderer ist verboten." }, "es": { "text": "No acosar, evadir bloqueos, \"dogpiling\" (abuso en línea por grupos de acosadores) o doxeo de otros.", "hint": "Está estrictamente prohibido intentar comunicarse repetidamente con usuarios que te hayan bloqueado o crear cuentas con el único fin de acosar o insultar a otras personas. Queda prohibida la actividad coordinada para atacar a otros usuarios. Está prohibido publicar información personal privada sobre otras personas." }, "fr": { "text": "Pas de harcèlement, d’esquive de blocage, de “dogpiling”, ou de divulgation de données personnelles d’autrui.", "hint": "Les tentatives répétées de communiquer avec des utilisateur·ices qui vont ont bloqué ainsi que la création de comptes pour harceler ou insulter autrui sont strictement interdites. Les attaques coordonnées contre autrui sont interdites. La publication de données personnelles d’autrui est interdite." }, "nl": { "text": "Geen intimidatie, omzeilen van blokkades, groepsaanvallen of het verspreiden van privégegevens van anderen.", "hint": "Herhaalde pogingen tot communiceren met gebruikers die je hebben geblokkeerd, of het maken van accounts enkel om personen te intimideren of beledigen is ten strengste verboden. Gecoördineerde activiteit om andere gebruikers aan te vallen is verboden. Het plaatsen van privé-gegevens van anderen is verboden." }, "ru": { "text": "Запрещается травля, избегание блокировок, набеги и разглашение личной информации других лиц.", "hint": "Повторяющиеся попытки взаимодействовать с пользователями, которые вас заблокировали, и создание учётных записей исключительно ради травли или оскорблений, строго запрещены. Скоординированная активность с целью атаки на других пользователей запрещена. Публикация личной информации других лиц запрещена." }, "zh-CN": { "text": "不得骚扰、回避封禁、诽谤或攻击他人", "hint": "严禁重复尝试与已封禁您的用户交流,或仅为骚扰或侮辱他人而创建账户。严禁协同攻击其他用户。禁止发布他人的私人个人信息。" }, "zh-TW": { "text": "嚴禁騷擾、迴避封鎖、煽動或誣衊他人", "hint": "嚴禁重複嘗試與已封鎖您的使用者溝通,或純粹為了騷擾或侮辱他人而建立帳號。禁止攻擊其他使用者的協調活動。禁止張貼他人的私人個人資訊。" } } }, { "id": "7", "text": "Do not share information widely-known to be false and misleading", "hint": "False and misleading information and links from low-quality sources may not be posted, especially if they are likely to mislead or confuse others or endanger their safety.", "translations": { "de": { "text": "Verbreitet keine Informationen, von denen allgemein bekannt ist, dass sie falsch oder irreführend.", "hint": "Falsche und irreführende Informationen sowie Links aus unseriösen Quellen dürfen nicht gepostet werden, insbesondere wenn sie geeignet sind, andere in die Irre zu führen oder deren Sicherheit zu gefährden." }, "es": { "text": "No compartas información ampliamente conocida por ser falsa y engañosa.", "hint": "No está permitido publicar información falsa y engañosa ni enlaces de fuentes de baja calidad, especialmente si pueden inducir a error o confusión a otras personas o poner en peligro su seguridad." }, "fr": { "text": "Ne partagez pas d’informations connues pour être fausses ou trompeuses.", "hint": "Les informations fausses ou trompeuses, ainsi que les liens vers des sources de mauvaise qualité ne doivent pas être publiées, particulièrement si elles risquent de tromper, d’induire en erreur, de semer la confusion ou de mettre des personnes en danger." }, "nl": { "text": "Deel geen informatie die algemeen bekend staat als onjuist en misleidend.", "hint": "Onjuiste en misleidende informatie en links naar onbetrouwbare bronnen mogen niet geplaatst worden, zeker als deze waarschijnlijk anderen misleiden of verwarren, of hun veiligheid in gevaar brengt." }, "ru": { "text": "Не публикуйте заведомо ложную и вводящую в заблуждение информацию.", "hint": "Запрещена публикация ложной и вводящей в заблуждение информации и ссылок из низкокачественных источников, особенно если это может сбить других людей с толку, запутать их, или подвергнуть их опасности." }, "zh-CN": { "text": "不得分享众所周知的虚假和误导性信息\r\n", "hint": "不得发布虚假和误导性信息以及来自低质量来源的链接,尤其是可能误导或混淆他人或危及他人安全的信息。" }, "zh-TW": { "text": "請勿分享廣為人知的虛假和誤導資訊", "hint": "不得張貼虛假和誤導資訊以及來自低品質來源的連結,尤其是可能誤導或混淆他人或危害他人安全的資訊。" } } }, { "id": "1008", "text": "Content created by others must be attributed, and use of generative AI must be disclosed", "hint": "Content created by others must clearly provide a reference to the author, creator, or source. For adult content, this should include performers. Accounts may not solely post AI-generated content.", "translations": { "de": { "text": "Von anderen erstellte Inhalte müssen gekennzeichnet und die Nutzung generativer KI offengelegt werden.", "hint": "Von anderen erstellte Inhalte müssen durch einen eindeutigen Verweis auf den/die Autor*in oder die Quelle gekennzeichnet werden. Bei nicht jugendfreien Inhalten sollte dies auch die Darsteller*innen einschließen. Konten dürfen nicht ausschließlich KI-generierte Inhalte posten." }, "es": { "text": "Los contenidos creados por terceros deben ser atribuidos y el uso de IA debe ser revelado.", "hint": "Los contenidos creados por terceros deben proporcionar claramente una referencia al autor, creador o fuente. En el caso de los contenidos para adultos, debe incluirse a los artistas. Las cuentas no pueden publicar únicamente contenidos generados por IA." }, "fr": { "text": "Le contenu crée par autrui doit être attribué, et l’utilisation d’IA générative doit être marqué comme tel.", "hint": "Le contenu créé par autrui doit fournir une référence explicite à son auteur·ice, créateur·ice ou sa source. Cela inclut les acteur·ice de contenu pour adulte. Les comptes publiant exclusivement du contenu généré par IA sont interdits." }, "nl": { "text": "Inhoud gemaakt door anderen moet worden toegeschreven, en het gebruik van generatieve AI moet worden aangegeven.", "hint": "Inhoud gemaakt door anderen moet een duidelijke referentie naar de auteur, maker of bron bevatten. Voor Content created by others must clearly provide a reference to the author, creator, or source. Voor inhoud voor volwassenen, moet het model worden vermeld. Accounts mogen niet uitsluitend door AI gegenereerde inhoud plaatsen." }, "ru": { "text": "Контент, созданный другими, должен публиковаться с указанием авторства, а использование генеративного ИИ должно быть раскрыто.", "hint": "Контент, созданный другими, должен явным образом сопровождаться отсылкой к автору, создателю или источнику. Для контента для взрослых это включает в себя актёров. Учётные записи не могут публиковать исключительно контент, сгенерированный с помощью ИИ." }, "zh-CN": { "text": "他人创建的内容必须注明出处,使用人工智能产生的内容必须公开和披露说明", "hint": "他人创建的内容必须明确注明作者、创建者或来源。对于成人内容,应包括表演者。账户不得仅发布人工智能生成的内容。" }, "zh-TW": { "text": "由他人創作的內容必須註明來源,使用人工智能產生的內容必須公開和披露說明", "hint": "他人創作的內容必須清楚提供作者、創作人或來源的參照。對於成人內容,這應該包括表演者。帳戶不得僅發佈人工智能產生的內容。" } } } ] } }, "MediaAttachment200Example": { "summary": "Example for MediaAttachment", "value": { "id": "22348641", "type": "image", "url": "https://files.mastodon.social/media_attachments/files/022/348/641/original/cebc6d51be03e509.jpeg", "preview_url": "https://files.mastodon.social/media_attachments/files/022/348/641/small/cebc6d51be03e509.jpeg", "remote_url": null, "text_url": "https://mastodon.social/media/4Zj6ewxzzzDi0g8JnZQ", "meta": { "focus": { "x": -0.69, "y": 0.42 }, "original": { "width": 640, "height": 480, "size": "640x480", "aspect": 1.3333333333333333 }, "small": { "width": 461, "height": 346, "size": "461x346", "aspect": 1.3323699421965318 } }, "description": "test uploaded via api", "blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}" } }, "MediaAttachment202Example": { "summary": "Example for MediaAttachment", "value": { "id": "22348641", "type": "image", "url": null, "preview_url": "https://files.mastodon.social/media_attachments/files/022/348/641/small/cebc6d51be03e509.jpeg", "remote_url": null, "text_url": "https://mastodon.social/media/4Zj6ewxzzzDi0g8JnZQ", "meta": { "focus": { "x": -0.69, "y": 0.42 }, "original": { "width": 640, "height": 480, "size": "640x480", "aspect": 1.3333333333333333 }, "small": { "width": 461, "height": 346, "size": "461x346", "aspect": 1.3323699421965318 } }, "description": "test uploaded via api", "blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}" } }, "MutedAccount200Example": { "summary": "Example for MutedAccount", "value": [ { "id": "963076", "username": "Simia91", "acct": "Simia91", "display_name": "" }, { "id": "1001524", "username": "hakogamae", "acct": "hakogamae", "display_name": "Hakogamae 🔞" } ] }, "Notification200Example": { "summary": "Example for Notification", "value": [ { "id": "34975861", "type": "mention", "created_at": "2019-11-23T07:49:02.064Z", "account": { "id": "971724", "username": "zsc", "acct": "zsc" }, "status": { "id": "103186126728896492", "created_at": "2019-11-23T07:49:01.940Z", "in_reply_to_id": "103186038209478945", "in_reply_to_account_id": "14715", "content": "

@trwnh sup!

", "account": { "id": "971724", "username": "zsc", "acct": "zsc" }, "mentions": [ { "id": "14715", "username": "trwnh", "url": "https://mastodon.social/@trwnh", "acct": "trwnh" } ] } }, { "id": "34975535", "type": "favourite", "created_at": "2019-11-23T07:29:18.903Z", "account": { "id": "297420", "username": "haskal", "acct": "haskal@cybre.space" }, "status": { "id": "103186046267791694", "created_at": "2019-11-23T07:28:34.210Z", "in_reply_to_id": "103186044372624124", "in_reply_to_account_id": "297420", "account": { "id": "14715", "username": "trwnh", "acct": "trwnh" } } } ] }, "NotificationRequest200Example": { "summary": "Example for NotificationRequest", "value": [ { "id": "112456967201894256", "created_at": "2024-05-17T14:45:41.171Z", "updated_at": "2024-05-17T14:45:41.171Z", "notifications_count": "1", "account": { "id": "971724", "username": "zsc", "acct": "zsc" }, "last_status": { "id": "103186126728896492", "created_at": "2019-11-23T07:49:01.940Z", "in_reply_to_id": "103186038209478945", "in_reply_to_account_id": "14715", "content": "

@trwnh sup!

", "account": { "id": "971724", "username": "zsc", "acct": "zsc" }, "mentions": [ { "id": "14715", "username": "trwnh", "url": "https://mastodon.social/@trwnh", "acct": "trwnh" } ] } } ] }, "MergedResponse200Example": { "summary": "Example for MergedResponse", "value": { "merged": false } }, "CountResponse200Example": { "summary": "Example for CountResponse", "value": { "count": 42 } }, "GroupedNotificationsResults200Example": { "summary": "Example for GroupedNotificationsResults", "value": { "accounts": [ { "id": "16", "username": "eve", "acct": "eve" }, { "id": "3547", "username": "alice", "acct": "alice" }, { "id": "31460", "username": "bob", "acct": "bob" }, { "id": "36509", "username": "mallory", "acct": "mallory" } ], "statuses": [ { "id": "113010503322889311", "created_at": "2024-08-23T08:57:12.057Z", "account": { "id": "55911", "username": "user", "acct": "user" } }, { "id": "113006771938929950", "created_at": "2024-08-22T17:08:15.654Z", "account": { "id": "55911", "username": "user", "acct": "user" } } ], "notification_groups": [ { "group_key": "favourite-113010503322889311-479000", "notifications_count": 2, "type": "favourite", "most_recent_notification_id": 196014, "page_min_id": "196013", "page_max_id": "196014", "latest_page_notification_at": "2024-08-23T08:59:56.743Z", "sample_account_ids": [ "16", "3547" ], "status_id": "113010503322889311" }, { "group_key": "favourite-113006771938929950-478999", "notifications_count": 2, "type": "favourite", "most_recent_notification_id": 196012, "page_min_id": "196012", "page_max_id": "196012", "latest_page_notification_at": "2024-08-23T08:16:32.112Z", "sample_account_ids": [ "31460", "36509" ], "status_id": "113006771938929950" } ] } }, "NotificationPolicy200Example": { "summary": "Example for NotificationPolicy", "value": { "for_not_following": "accept", "for_not_followers": "accept", "for_new_accounts": "accept", "for_private_mentions": "drop", "for_limited_accounts": "filter", "summary": { "pending_requests_count": 0, "pending_notifications_count": 0 } } }, "Error400Example": { "summary": "Example for Error", "value": { "error": "invalid_grant", "error_description": "The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client." } }, "Token200Example": { "summary": "Example for Token", "value": { "access_token": "ZA-Yj3aBD8U8Cm7lKUp-lm9O9BmDgdhHzDeqsY8tlL0", "token_type": "Bearer", "scope": "read write follow push", "created_at": 1573979017 } }, "OEmbedResponse200Example": { "summary": "Example for OEmbedResponse", "value": { "type": "rich", "version": "1.0", "title": "New status by trwnh", "author_name": "infinite love ⴳ", "author_url": "https://mastodon.social/@trwnh", "provider_name": "mastodon.social", "provider_url": "https://mastodon.social/", "cache_age": 86400, "html": "", "width": 400, "height": null } }, "Poll200Example": { "summary": "Example for Poll", "value": { "id": "34830", "expires_at": "2019-12-05T04:05:08.302Z", "expired": true, "multiple": false, "votes_count": 10, "voters_count": null, "voted": true, "own_votes": [ 1 ], "options": [ { "title": "accept", "votes_count": 6 }, { "title": "deny", "votes_count": 4 } ], "emojis": [] } }, "Profile200Example": { "summary": "Example for Profile", "value": { "id": "116222600881276277", "display_name": "Documentation user", "note": "I'm only here as an example for documentation", "fields": [ { "name": "pronouns", "value": "it/its", "verified_at": null } ], "avatar": null, "avatar_static": null, "avatar_description": "", "header": null, "header_static": null, "header_description": "", "locked": false, "bot": false, "hide_collections": null, "discoverable": true, "indexable": true, "show_media": true, "show_media_replies": true, "show_featured": true, "attribution_domains": [ "articles.example.com" ], "featured_tags": [ { "id": "1", "name": "foo", "url": "https://example.com/@darrel_metz0/tagged/foo", "statuses_count": "0", "last_status_at": null } ] } }, "WebPushSubscription200Example": { "summary": "Example for WebPushSubscription", "value": { "id": 328183, "endpoint": "https://yourdomain.example/listener", "standard": true, "alerts": { "follow": true, "favourite": true, "reblog": true, "mention": true, "poll": true }, "server_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=" } }, "Report200Example": { "summary": "Example for Report", "value": { "id": "48914", "action_taken": false, "action_taken_at": null, "category": "spam", "comment": "Spam account", "forwarded": false, "created_at": "2022-08-25T09:56:16.763Z", "status_ids": [ "108882889550545820" ], "rule_ids": null, "target_account": { "id": "108366849347798387", "username": "Baluke", "acct": "Baluke", "display_name": "Baluke Dental Studios", "locked": false, "bot": false, "discoverable": false, "group": false, "created_at": "2022-05-26T00:00:00.000Z", "note": "

Baluke Dental Studios is a full service dental lab offering fabrication, staining, and digital services. Advanced technologies and a meticulous process ensure reduced chair time, lower costs, and better patient outcomes with beautiful smiles. Talk to a representative today.

https://baluke.com/

", "url": "https://mastodon.social/@Baluke", "avatar": "https://files.mastodon.social/accounts/avatars/108/366/849/347/798/387/original/dbcfe99ed5def0f4.png", "avatar_static": "https://files.mastodon.social/accounts/avatars/108/366/849/347/798/387/original/dbcfe99ed5def0f4.png", "header": "https://static-cdn.mastodon.social/headers/original/missing.png", "header_static": "https://static-cdn.mastodon.social/headers/original/missing.png", "followers_count": 0, "following_count": 0, "statuses_count": 38, "last_status_at": "2022-08-25", "emojis": [], "fields": [] } } }, "ScheduledStatus200Example": { "summary": "Example for ScheduledStatus", "value": [ { "id": "3221", "scheduled_at": "2019-12-05T12:33:01.000Z", "params": { "poll": null, "text": "test content", "media_ids": null, "sensitive": null, "visibility": null, "idempotency": null, "scheduled_at": null, "spoiler_text": null, "application_id": 596551, "in_reply_to_id": null, "quoted_status_id": null, "quote_approval_policy": "followers" }, "media_attachments": [] } ] }, "Search200Example": { "summary": "Example for Search", "value": { "accounts": [ { "id": "180744", "username": "catstar", "acct": "catstar@catgram.jp", "display_name": "catstar" }, { "id": "214293", "username": "catsareweird", "acct": "catsareweird", "display_name": "Cats Are Weird" } ], "statuses": [ { "id": "103085519055545958", "created_at": "2019-11-05T13:23:09.000Z", "content": "

cats
cats never change

" }, { "id": "101068121469614510", "created_at": "2018-11-14T06:31:48.000Z", "spoiler_text": "Cats", "content": "

Cats are inherently good at self-care.

#cats

" } ], "hashtags": [ { "id": "205", "name": "cats", "url": "https://mastodon.social/tags/cats", "history": [ { "day": "1574553600", "uses": "10", "accounts": "9" } ] }, { "id": "708", "name": "catsofmastodon", "url": "https://mastodon.social/tags/catsofmastodon", "history": [ { "day": "1574553600", "uses": "6", "accounts": "5" } ] } ] } }, "Context200Example": { "summary": "Example for Context", "value": { "ancestors": [ { "id": "103188938570975982", "created_at": "2019-11-23T19:44:00.124Z", "in_reply_to_id": null, "in_reply_to_account_id": null }, { "id": "103188971072973252", "created_at": "2019-11-23T19:52:23.398Z", "in_reply_to_id": "103188938570975982", "in_reply_to_account_id": "634458" }, { "id": "103188982235527758", "created_at": "2019-11-23T19:55:08.208Z", "in_reply_to_id": "103188971072973252", "in_reply_to_account_id": "14715" } ], "descendants": [ { "id": "103189026958574542", "created_at": "2019-11-23T20:06:36.011Z", "in_reply_to_id": "103189005915505698", "in_reply_to_account_id": "634458" } ] } }, "StatusEdit200Example": { "summary": "Example for StatusEdit", "value": [ { "content": "

this is a status that will be edited

", "spoiler_text": "", "sensitive": false, "created_at": "2022-09-04T23:22:13.704Z", "account": { "id": "14715", "username": "trwnh", "acct": "trwnh", "display_name": "infinite love ⴳ" }, "media_attachments": [], "emojis": [] }, { "content": "

this is a status that has been edited

", "spoiler_text": "", "sensitive": false, "created_at": "2022-09-04T23:22:42.555Z", "account": { "id": "14715", "username": "trwnh", "acct": "trwnh", "display_name": "infinite love ⴳ" }, "media_attachments": [], "emojis": [] }, { "content": "

this is a status that has been edited twice

", "spoiler_text": "", "sensitive": false, "created_at": "2022-09-04T23:22:55.956Z", "account": { "id": "14715", "username": "trwnh", "acct": "trwnh", "display_name": "infinite love ⴳ" }, "media_attachments": [], "emojis": [] }, { "content": "

this is a status that has been edited three times. this time a poll has been added.

", "spoiler_text": "", "sensitive": false, "created_at": "2022-09-05T00:01:48.160Z", "poll": { "options": [ { "title": "cool" }, { "title": "uncool" }, { "title": "spiderman" } ] }, "account": { "id": "14715", "username": "trwnh", "acct": "trwnh", "display_name": "infinite love ⴳ" }, "media_attachments": [], "emojis": [] }, { "content": "

this is a status that has been edited three times. this time a poll has been added.

", "spoiler_text": "", "sensitive": false, "created_at": "2022-09-05T00:03:32.480Z", "poll": { "options": [ { "title": "cool" }, { "title": "uncool" }, { "title": "spiderman (this option has been changed)" } ] }, "account": { "id": "14715", "username": "trwnh", "acct": "trwnh", "display_name": "infinite love ⴳ" }, "media_attachments": [], "emojis": [] } ] }, "StatusSource200Example": { "summary": "Example for StatusSource", "value": { "id": "108942703571991143", "text": "this is a status that will be edited", "spoiler_text": "" } }, "Translation200Example": { "summary": "Example for Translation", "value": { "content": "

Hello world

", "spoiler_text": "Greatings ahead", "media_attachments": [ { "id": 22345792, "description": "Status author waving at the camera" } ], "poll": null, "detected_source_language": "es", "provider": "DeepL.com" } }, "Suggestion200Example": { "summary": "Example for Suggestion", "value": [ { "source": "past_interactions", "account": { "id": "784058", "username": "katie", "acct": "katie@pleroma.voidlurker.net" } }, { "source": "global", "account": { "id": "108194863260762493", "username": "thunderbird", "acct": "thunderbird@mastodon.online" } } ] }, "TrendsLink200Example": { "summary": "Example for TrendsLink", "value": [ { "url": "https://www.nbcnews.com/specials/plan-your-vote-2022-elections/index.html", "title": "Plan Your Vote: 2022 Elections", "description": "Everything you need to know about the voting rules where you live, including registration, mail-in voting, changes since 2020, and more.", "type": "link", "author_name": "NBC News", "author_url": "", "provider_name": "NBC News", "provider_url": "", "html": "", "width": 400, "height": 225, "image": "https://files.mastodon.social/cache/preview_cards/images/045/027/478/original/0783d5e91a14fd49.jpeg", "embed_url": "", "blurhash": "UcQmF#ay~qofj[WBj[j[~qof9Fayofofayay", "history": [ { "day": "1661817600", "accounts": "7", "uses": "7" }, { "day": "1661731200", "accounts": "23", "uses": "23" }, { "day": "1661644800", "accounts": "0", "uses": "0" }, { "day": "1661558400", "accounts": "0", "uses": "0" }, { "day": "1661472000", "accounts": "0", "uses": "0" }, { "day": "1661385600", "accounts": "0", "uses": "0" }, { "day": "1661299200", "accounts": "0", "uses": "0" } ] } ] }, "DiscoverOauthServerConfigurationResponse200Example": { "summary": "Example for DiscoverOauthServerConfigurationResponse", "value": { "issuer": "https://social.example/", "service_documentation": "https://docs.joinmastodon.org/", "authorization_endpoint": "https://social.example/oauth/authorize", "token_endpoint": "https://social.example/oauth/token", "app_registration_endpoint": "https://social.example/api/v1/apps", "revocation_endpoint": "https://social.example/oauth/revoke", "userinfo_endpoint": "https://social.example/oauth/userinfo", "scopes_supported": [ "read", "write", "write:accounts", "write:blocks", "write:bookmarks", "write:conversations", "write:favourites", "write:filters", "write:follows", "write:lists", "write:media", "write:mutes", "write:notifications", "write:reports", "write:statuses", "read:accounts", "read:blocks", "read:bookmarks", "read:favourites", "read:filters", "read:follows", "read:lists", "read:mutes", "read:notifications", "read:search", "read:statuses", "follow", "push", "profile", "admin:read", "admin:read:accounts", "admin:read:reports", "admin:read:domain_allows", "admin:read:domain_blocks", "admin:read:ip_blocks", "admin:read:email_domain_blocks", "admin:read:canonical_email_blocks", "admin:write", "admin:write:accounts", "admin:write:reports", "admin:write:domain_allows", "admin:write:domain_blocks", "admin:write:ip_blocks", "admin:write:email_domain_blocks", "admin:write:canonical_email_blocks" ], "response_types_supported": [ "code" ], "response_modes_supported": [ "query", "fragment", "form_post" ], "code_challenge_methods_supported": [ "S256" ], "grant_types_supported": [ "authorization_code", "client_credentials" ], "token_endpoint_auth_methods_supported": [ "client_secret_basic", "client_secret_post" ] } } }, "links": { "getStatusById": { "operationId": "getStatus", "description": "View a single status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "deleteStatusById": { "operationId": "deleteStatus", "description": "Delete a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "getStatusContextById": { "operationId": "getStatusContext", "description": "Get parent and child statuses in context, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusTranslateById": { "operationId": "postStatusTranslate", "description": "Translate a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "getStatusRebloggedByById": { "operationId": "getStatusRebloggedBy", "description": "See who boosted a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "getStatusQuotesById": { "operationId": "getStatusQuotes", "description": "See quotes of a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "getStatusFavouritedByById": { "operationId": "getStatusFavouritedBy", "description": "See who favourited a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusFavouriteById": { "operationId": "postStatusFavourite", "description": "Favourite a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusUnfavouriteById": { "operationId": "postStatusUnfavourite", "description": "Undo favourite of a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusReblogById": { "operationId": "postStatusReblog", "description": "Boost a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusUnreblogById": { "operationId": "postStatusUnreblog", "description": "Undo boost of a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusBookmarkById": { "operationId": "postStatusBookmark", "description": "Bookmark a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusUnbookmarkById": { "operationId": "postStatusUnbookmark", "description": "Undo bookmark of a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusQuoteRevokeById": { "operationId": "postStatusQuoteRevoke", "description": "Revoke a quote post, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusMuteById": { "operationId": "postStatusMute", "description": "Mute a conversation, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusUnmuteById": { "operationId": "postStatusUnmute", "description": "Unmute a conversation, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusPinById": { "operationId": "postStatusPin", "description": "Pin status to profile, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "postStatusUnpinById": { "operationId": "postStatusUnpin", "description": "Unpin status from profile, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "updateStatusById": { "operationId": "updateStatus", "description": "Edit a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "updateStatusInteractionPolicyById": { "operationId": "updateStatusInteractionPolicy", "description": "Edit a status' interaction policies, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "getStatusHistoryById": { "operationId": "getStatusHistory", "description": "View edit history of a status, using `id` from this response", "parameters": { "id": "$response.body#/id" } }, "getStatusSourceById": { "operationId": "getStatusSource", "description": "View status source, using `id` from this response", "parameters": { "id": "$response.body#/id" } } } } }