Mastodon API

This is an OpenAPI for the Mastodon API.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mastodon"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mastodon.yml Raw ↑
openapi: 3.0.0
servers:
  - description: 'Any instance server.'
    url: '{{baseUrl}}'
info:
  title: Mastodon API
  description: This is an OpenAPI for the Mastodon API.
  version: 1.0.0
  contact:
    name: Kin Lane
    email: kinlane@gmail.com
tags:
  - name: Social
    description: The acitivity via social media.
paths:
  /health:
    get:
      summary: ""
      operationId: ""
      description: Returns ok to indicate server is up
      responses:
        "200":
          description: search results matching criteria
          content:
            text/plain:
              schema:
                type: string
        "400":
          description: bad input parameter
  /oauth/authorize/native:
    get:
      responses:
        "200":
          description: "native_oauth_authorization Controller#Action
            oauth/authorizations#show"
      tags:
        - oauth
        - todo
  /oauth/authorize:
    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.
    get:
      parameters:
        - in: query
          name: response_type
          required: true
          schema:
            type: string
            enum:
              - code
          description: Should be set equal to code.
        - in: query
          name: client_id
          required: true
          schema:
            type: string
          description: Client ID, obtained during app registration.
        - in: query
          name: redirect_uri
          required: true
          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.
        - in: query
          name: scope
          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.
        - in: query
          name: force_login
          schema:
            type: boolean
          description: Added in 2.6.0. Forces the user to re-login, which is necessary for
            authorizing with multiple accounts from the same instance.
      responses:
        "200":
          description: "oauth_authorization Controller#Action
            oauth/authorizations#new"
      tags:
        - oauth
        - todo
    delete:
      responses:
        "200":
          description: "Controller#Action oauth/authorizations#destroy"
      tags:
        - oauth
        - todo
    post:
      responses:
        "200":
          description: "Controller#Action oauth/authorizations#create"
      tags:
        - oauth
        - todo
  /oauth/token:
    post:
      description: Obtain an oauth token for API requests.
      requestBody:
        content:
          application/form-data:
            schema:
              type: object
              required:
                - grant_type
                - client_id
                - client_secret
                - redirect_uri
              properties:
                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.
                client_id:
                  type: string
                  description: Client ID, obtained during app registration
                client_secret:
                  type: string
                  description: Client secret, obtained during app registration
                redirect_uri:
                  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 token will be shown
                    instead. Must match one of the redirect URIs declared during
                    app registration.
                scope:
                  type: string
                  description: List of requested OAuth scopes, separated by spaces. Must be a
                    subset of scopes declared during app registration. If not
                    provided, defaults to read.
                code:
                  type: string
                  description: A user authorization code, obtained via /oauth/authorize
            examples:
              app token:
                value:
                  client_id: 3N5yVaa_d8TJozehuHAHGXrgAWQstWb1W03efWoDNsM
                  client_secret: Hl6FKbQZ2BE4T2i-MqKVRvEqqzzidsy-h9K3612VFyY
                  redirect_uri: urn:ietf:wg:oauth:2.0:oob
                  grant_type: client_credentials
              user token:
                value:
                  client_id: QfxXkqC6WLbhs4HyjH3oM1nMetdLot0mSK2Bp9KoZbk
                  client_secret: 3q-V6Gc85VzQIlXKgsT21IYHgSC2KKxap4tvTkj_24w
                  redirect_uri: urn:ietf:wg:oauth:2.0:oob
                  grant_type: authorization_code
                  code: NiYRkKURwiU6zMMoRFkcTXPwSr_jLWhMDvY-bZCzxJM
                  scope: read write follow push
      responses:
        "200":
          description: "oauth_token Controller#Action oauth/tokens#create"
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                  token_type:
                    type: string
                  scope:
                    type: string
                  created_at:
                    type: integer
                example:
                  access_token: {{token}}
                  token_type: Bearer
                  scope: read
                  created_at: 1635107910
      tags:
        - oauth
  /oauth/revoke:
    post:
      responses:
        "200":
          description: "oauth_revoke Controller#Action oauth/tokens#revoke"
      tags:
        - oauth
        - todo
  /oauth/introspect:
    post:
      responses:
        "200":
          description: "oauth_introspect Controller#Action oauth/tokens#introspect"
      tags:
        - oauth
        - todo
  /oauth/applications:
    get:
      responses:
        "200":
          description: "oauth_applications Controller#Action
            doorkeeper/applications#index"
      tags:
        - oauth
        - todo
    post:
      responses:
        "200":
          description: "Controller#Action doorkeeper/applications#create"
      tags:
        - oauth
        - todo
  /oauth/applications/new:
    get:
      responses:
        "200":
          description: "new_oauth_application Controller#Action
            doorkeeper/applications#new"
      tags:
        - oauth
        - todo
  "/oauth/applications/{id}/edit":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
    get:
      responses:
        "200":
          description: "edit_oauth_application Controller#Action
            doorkeeper/applications#edit"
      tags:
        - oauth
        - todo
  "/oauth/applications/{id}":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
    get:
      responses:
        "200":
          description: "oauth_application Controller#Action
            doorkeeper/applications#show"
      tags:
        - oauth
        - todo
    patch:
      responses:
        "200":
          description: " Controller#Action doorkeeper/applications#update"
      tags:
        - oauth
        - todo
    put:
      responses:
        "200":
          description: "Controller#Action doorkeeper/applications#update"
      tags:
        - oauth
        - todo
    delete:
      responses:
        "200":
          description: "Controller#Action doorkeeper/applications#destroy"
      tags:
        - oauth
        - todo
  /oauth/authorized_applications:
    get:
      responses:
        "200":
          description: "oauth_authorized_applications Controller#Action
            oauth/authorized_applications#index"
      tags:
        - oauth
        - todo
  "/oauth/authorized_applications/{id}":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
    delete:
      responses:
        "200":
          description: "oauth_authorized_application Controller#Action
            oauth/authorized_applications#destroy"
      tags:
        - oauth
        - todo
  /.well-known/host-meta:
    get:
      tags:
        - well-known
      responses:
        "200":
          description: Prefix host_meta Controller#Action well_known/host_meta#show
            {:format=>"xml"}
          content:
            application/xrd+xml:
              example: <?xml version=\"1.0\" encoding=\"UTF-8\"?> <XRD
                xmlns=\"http://docs.oasis-open.org/ns/xri/xrd-1.0\"> <Link
                rel=\"lrdd\"
                template=\"https://hostux.social/.well-known/webfinger?resource={uri}\"/>
                </XRD>
  /.well-known/nodeinfo:
    get:
      tags:
        - well-known
      responses:
        "200":
          description: Prefix nodeinfo Controller#Action well_known/nodeinfo#index
            {:format=>"json"}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WellKnownNodeInfo"
  /.well-known/webfinger:
    get:
      parameters:
        - in: query
          name: resource
          required: true
          description: query target (URI)
          schema:
            type: string
        - in: query
          name: rel
          schema:
            type: string
            format: uri
      tags:
        - well-known
        - jrd
      responses:
        "200":
          description: Prefix webfinger Controller#Action well_known/webfinger#show
          content:
            application/jrd+json:
              schema:
                $ref: "#/components/schemas/WebFinger"
  /.well-known/change-password:
    get:
      tags:
        - well-known
      responses:
        "301":
          description: Controller#Action redirect(301, /auth/edit)
          content:
            text/html:
              example: ""
          headers:
            location:
              schema:
                type: string
                example: https://hostux.social/auth/edit
  /.well-known/keybase-proof-config:
    get:
      tags:
        - well-known
      responses:
        "200":
          description: Controller#Action well_known/keybase_proof_config#show
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/KeybaseProofConfig"
  /nodeinfo/2.0:
    get:
      responses:
        "200":
          description: Prefix nodeinfo_schema Controller#Action well_known/nodeinfo#show
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NodeInfo"
  /manifest:
    get:
      responses:
        "200":
          description: Prefix manifest Controller#Action manifests#show {:format=>"json"}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Manifest"
  /intent:
    get:
      tags:
        - todo
      responses:
        "200":
          description: Prefix intent Controller#Action intents#show
  /actor/inbox:
    post:
      tags:
        - ActivityPub
        - todo
      responses:
        "200":
          description: Prefix instance_actor_inbox Controller#Action
            activitypub/inboxes#create
  /actor/outbox:
    get:
      tags:
        - ActivityPub
      responses:
        "200":
          description: Prefix instance_actor_outbox Controller#Action
            activitypub/outboxes#show
          content:
            application/activity+json:
              schema:
                type: object
                properties:
                  "@context":
                    type: string
                  id:
                    type: string
                  type:
                    type: string
                  totalItems:
                    type: integer
                  first:
                    type: string
                  last:
                    type: string
                example:
                  "@context": https://www.w3.org/ns/activitystreams
                  id: http://localhost:3000/actor/outbox
                  type: OrderedCollection
                  totalItems: 0
                  first: http://localhost:3000/actor/outbox?page=true
                  last: http://localhost:3000/actor/outbox?min_id=0&page=true
  /actor:
    get:
      tags:
        - ActivityPub
        - todo
      responses:
        "200":
          description: ""
  /invite/invite_code:
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  /auth/setup:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    patch:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    put:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/challenge:
    post:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/sessions/security_key_options:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/sign_in:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    post:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/sign_out:
    delete:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/password/new:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/password/edit:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/password:
    patch:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    put:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    post:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/cancel:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/sign_up:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/edit:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth:
    patch:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    put:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    delete:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    post:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/confirmation/new:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /auth/confirmation:
    get:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
    post:
      tags:
        - auth
        - todo
      responses:
        "200":
          description: ""
  /authorize_follow:
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/remote_follow":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
    post:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/statuses/{id}/activity":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: integer
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/statuses/{id}/embed":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: integer
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/statuses/{status_id}/replies":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
      - in: path
        name: status_id
        required: true
        schema:
          type: integer
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/statuses/{id}":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: integer
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/followers":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/following":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/follow":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    post:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/unfollow":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    post:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/outbox":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/inbox":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    post:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/claim":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    post:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  "/users/{account_username}/collections/{id}":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: integer
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: OK
  "/users/{account_username}/followers_synchronization":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: OK
  "/users/{username}":
    parameters:
      - in: path
        name: username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - users
        - todo
      responses:
        "200":
          description: ""
  /inbox:
    post:
      tags:
        - todo
      responses:
        "200":
          description: ""
  "/@{username}":
    parameters:
      - in: path
        name: username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  "/@{username}/with_replies":
    parameters:
      - in: path
        name: username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  "/@{username}/media":
    parameters:
      - in: path
        name: username
        description: username of an account
        required: true
        schema:
          type: string
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  "/@{username}/tagged/{tag}":
    parameters:
      - in: path
        name: username
        description: username of an account
        required: true
        schema:
          type: string
      - in: path
        name: tag
        description: ""
        required: true
        schema:
          type: string
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  "/@{account_username}/{id}":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
      - in: path
        name: id
        description: ""
        required: true
        schema:
          type: integer
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  "/@{account_username}/{id}/embed":
    parameters:
      - in: path
        name: account_username
        description: username of an account
        required: true
        schema:
          type: string
      - in: path
        name: id
        description: ""
        required: true
        schema:
          type: integer
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  "/interact/{id}":
    parameters:
      - in: path
        name: id
        description: ""
        required: true
        schema:
          type: integer
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
    post:
      tags:
        - todo
      responses:
        "200":
          description: ""
  /explore:
    get:
      tags:
        - todo
      responses:
        "200":
          description: ""
  /settings:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings Controller#Action : redirect(301,
            /settings/profile)"
  "/settings/profile/pictures/{id}":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
    delete:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_profile_picture Controller#Action
            settings/pictures#destroy"
  /settings/profile:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_profile Controller#Action settings/profiles#show"
    patch:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action settings/profiles#update"
    put:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action settings/profiles#update"
  /settings/preferences:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_preferences Controller#Action redirect(301,
            /settings/preferences/appearance)"
  /settings/preferences/appearance:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_preferences_appearance Controller#Action
            settings/preferences/appearance#show"
    patch:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action settings/preferences/appearance#update"
    put:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action settings/preferences/appearance#update"
  /settings/preferences/notifications:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_preferences_notifications Controller#Action
            settings/preferences/notifications#show"
    patch:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action
            settings/preferences/notifications#update"
    put:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action
            settings/preferences/notifications#update"
  /settings/preferences/other:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_preferences_other Controller#Action
            settings/preferences/other#show"
    patch:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action settings/preferences/other#update"
    put:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action settings/preferences/other#update"
  /settings/import:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_import Controller#Action settings/imports#show"
    post:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action settings/imports#create"
  /settings/export:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_export Controller#Action settings/exports#show"
    post:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action settings/exports#create"
  /settings/exports/follows:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_exports_follows Controller#Action
            settings/exports/following_accounts#index {:format=>:csv}"
  /settings/exports/blocks:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_exports_blocks Controller#Action
            settings/exports/blocked_accounts#index {:format=>:csv}"
  /settings/exports/mutes:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_exports_mutes Controller#Action
            settings/exports/muted_accounts#index {:format=>:csv}"
  /settings/exports/lists:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_exports_lists Controller#Action
            settings/exports/lists#index {:format=>:csv}"
  /settings/exports/domain_blocks:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_exports_domain_blocks Controller#Action
            settings/exports/blocked_domains#index {:format=>:csv}"
  /settings/exports/bookmarks:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_exports_bookmarks Controller#Action
            settings/exports/bookmarks#index {:format=>:csv}"
  /settings/two_factor_authentication_methods/disable:
    post:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "disable_settings_two_factor_authentication_methods
            Controller#Action
            settings/two_factor_authentication_methods#disable"
  /settings/two_factor_authentication_methods:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_two_factor_authentication_methods
            Controller#Action settings/two_factor_authentication_methods#index"
  /settings/otp_authentication:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_otp_authentication Controller#Action
            settings/two_factor_authentication/otp_authentication#show"
    post:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action
            settings/two_factor_authentication/otp_authentication#create"
  /settings/security_keys/options:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "options_settings_webauthn_credentials Controller#Action
            settings/two_factor_authentication/webauthn_credentials#options"
  /settings/security_keys:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_webauthn_credentials Controller#Action
            settings/two_factor_authentication/webauthn_credentials#index"
    post:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "Controller#Action
            settings/two_factor_authentication/webauthn_credentials#create"
  /settings/security_keys/new:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "new_settings_webauthn_credential Controller#Action
            settings/two_factor_authentication/webauthn_credentials#new"
  "/settings/security_keys/{id}":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
    delete:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_webauthn_credential Controller#Action
            settings/two_factor_authentication/webauthn_credentials#destroy"
  /settings/two_factor_authentication/recovery_codes:
    post:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "settings_two_factor_authentication_recovery_codes
            Controller#Action
            settings/two_factor_authentication/recovery_codes#create"
  /settings/two_factor_authentication/confirmation/new:
    get:
      tags:
        - settings
        - todo
      responses:
        "200":
          description: "new_settings_two_factor_authentication_confirmation
            Controller#Action
            settings/two_factor_authentication/confirmations#

# --- truncated at 32 KB (161 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mastodon/refs/heads/main/openapi/mastodon.yml