Misskey notes API

The notes API from Misskey — 32 operation(s) for notes.

OpenAPI Specification

misskey-notes-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 2025.4.1-io.12b-fb6fbea074
  title: Misskey account notes API
servers:
- url: https://misskey.io/api
tags:
- name: notes
paths:
  /channels/timeline:
    post:
      operationId: post___channels___timeline
      summary: channels/timeline
      description: 'No description provided.


        **Credential required**: *No*'
      externalDocs:
        description: Source code
        url: https://github.com/MisskeyIO/misskey/blob/io/packages/backend/src/server/api/endpoints/channels/timeline.ts
      tags:
      - notes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                channelId:
                  type: string
                  format: misskey:id
                limit:
                  type: integer
                  minimum: 1
                  maximum: 100
                  default: 10
                sinceId:
                  type: string
                  format: misskey:id
                untilId:
                  type: string
                  format: misskey:id
                sinceDate:
                  type: integer
                untilDate:
                  type: integer
                allowPartial:
                  type: boolean
                  default: false
                dimension:
                  type:
                  - integer
                  - 'null'
                  minimum: 0
              required:
              - channelId
      responses:
        '200':
          description: OK (with results)
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  $ref: '#/components/schemas/Note'
        '400':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                NO_SUCH_CHANNEL:
                  value:
                    error:
                      message: No such channel.
                      code: NO_SUCH_CHANNEL
                      id: 4d0eeeba-a02c-4c3c-9966-ef60d38d2e7f
                INVALID_PARAM:
                  value:
                    error:
                      message: Invalid param.
                      code: INVALID_PARAM
                      id: 3d81ceae-475f-4600-b2a8-2bc116157532
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CREDENTIAL_REQUIRED:
                  value:
                    error:
                      message: Credential required.
                      code: CREDENTIAL_REQUIRED
                      id: 1384574d-a912-4b81-8601-c7b1c4085df1
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTHENTICATION_FAILED:
                  value:
                    error:
                      message: Authentication failed. Please ensure your token is correct.
                      code: AUTHENTICATION_FAILED
                      id: b0a7f5f8-dc2f-4171-b91f-de88ad238e14
        '418':
          description: I'm Ai
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                I_AM_AI:
                  value:
                    error:
                      message: You sent a request to Ai-chan, Misskey's showgirl, instead of the server.
                      code: I_AM_AI
                      id: 60c46cd1-f23a-46b1-bebe-5d2b73951a84
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INTERNAL_ERROR:
                  value:
                    error:
                      message: Internal error occurred. Please contact us if the error persists.
                      code: INTERNAL_ERROR
                      id: 5d37dbcb-891e-41ca-a3d6-e690c97775ac
  /notes:
    post:
      operationId: post___notes
      summary: notes
      description: 'No description provided.


        **Credential required**: *No*'
      externalDocs:
        description: Source code
        url: https://github.com/MisskeyIO/misskey/blob/io/packages/backend/src/server/api/endpoints/notes.ts
      tags:
      - notes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                local:
                  type: boolean
                  default: false
                reply:
                  type: boolean
                renote:
                  type: boolean
                withFiles:
                  type: boolean
                poll:
                  type: boolean
                limit:
                  type: integer
                  minimum: 1
                  maximum: 100
                  default: 10
                sinceId:
                  type: string
                  format: misskey:id
                untilId:
                  type: string
                  format: misskey:id
      responses:
        '200':
          description: OK (with results)
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  $ref: '#/components/schemas/Note'
        '400':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INVALID_PARAM:
                  value:
                    error:
                      message: Invalid param.
                      code: INVALID_PARAM
                      id: 3d81ceae-475f-4600-b2a8-2bc116157532
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CREDENTIAL_REQUIRED:
                  value:
                    error:
                      message: Credential required.
                      code: CREDENTIAL_REQUIRED
                      id: 1384574d-a912-4b81-8601-c7b1c4085df1
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTHENTICATION_FAILED:
                  value:
                    error:
                      message: Authentication failed. Please ensure your token is correct.
                      code: AUTHENTICATION_FAILED
                      id: b0a7f5f8-dc2f-4171-b91f-de88ad238e14
        '418':
          description: I'm Ai
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                I_AM_AI:
                  value:
                    error:
                      message: You sent a request to Ai-chan, Misskey's showgirl, instead of the server.
                      code: I_AM_AI
                      id: 60c46cd1-f23a-46b1-bebe-5d2b73951a84
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INTERNAL_ERROR:
                  value:
                    error:
                      message: Internal error occurred. Please contact us if the error persists.
                      code: INTERNAL_ERROR
                      id: 5d37dbcb-891e-41ca-a3d6-e690c97775ac
  /notes/children:
    post:
      operationId: post___notes___children
      summary: notes/children
      description: 'No description provided.


        **Credential required**: *No*'
      externalDocs:
        description: Source code
        url: https://github.com/MisskeyIO/misskey/blob/io/packages/backend/src/server/api/endpoints/notes/children.ts
      tags:
      - notes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                noteId:
                  type: string
                  format: misskey:id
                limit:
                  type: integer
                  minimum: 1
                  maximum: 100
                  default: 10
                sinceId:
                  type: string
                  format: misskey:id
                untilId:
                  type: string
                  format: misskey:id
              required:
              - noteId
      responses:
        '200':
          description: OK (with results)
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  $ref: '#/components/schemas/Note'
        '400':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INVALID_PARAM:
                  value:
                    error:
                      message: Invalid param.
                      code: INVALID_PARAM
                      id: 3d81ceae-475f-4600-b2a8-2bc116157532
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CREDENTIAL_REQUIRED:
                  value:
                    error:
                      message: Credential required.
                      code: CREDENTIAL_REQUIRED
                      id: 1384574d-a912-4b81-8601-c7b1c4085df1
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTHENTICATION_FAILED:
                  value:
                    error:
                      message: Authentication failed. Please ensure your token is correct.
                      code: AUTHENTICATION_FAILED
                      id: b0a7f5f8-dc2f-4171-b91f-de88ad238e14
        '418':
          description: I'm Ai
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                I_AM_AI:
                  value:
                    error:
                      message: You sent a request to Ai-chan, Misskey's showgirl, instead of the server.
                      code: I_AM_AI
                      id: 60c46cd1-f23a-46b1-bebe-5d2b73951a84
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INTERNAL_ERROR:
                  value:
                    error:
                      message: Internal error occurred. Please contact us if the error persists.
                      code: INTERNAL_ERROR
                      id: 5d37dbcb-891e-41ca-a3d6-e690c97775ac
  /notes/conversation:
    post:
      operationId: post___notes___conversation
      summary: notes/conversation
      description: 'No description provided.


        **Credential required**: *No*'
      externalDocs:
        description: Source code
        url: https://github.com/MisskeyIO/misskey/blob/io/packages/backend/src/server/api/endpoints/notes/conversation.ts
      tags:
      - notes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                noteId:
                  type: string
                  format: misskey:id
                limit:
                  type: integer
                  minimum: 1
                  maximum: 100
                  default: 10
                offset:
                  type: integer
                  default: 0
              required:
              - noteId
      responses:
        '200':
          description: OK (with results)
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  $ref: '#/components/schemas/Note'
        '400':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                NO_SUCH_NOTE:
                  value:
                    error:
                      message: No such note.
                      code: NO_SUCH_NOTE
                      id: e1035875-9551-45ec-afa8-1ded1fcb53c8
                INVALID_PARAM:
                  value:
                    error:
                      message: Invalid param.
                      code: INVALID_PARAM
                      id: 3d81ceae-475f-4600-b2a8-2bc116157532
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CREDENTIAL_REQUIRED:
                  value:
                    error:
                      message: Credential required.
                      code: CREDENTIAL_REQUIRED
                      id: 1384574d-a912-4b81-8601-c7b1c4085df1
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTHENTICATION_FAILED:
                  value:
                    error:
                      message: Authentication failed. Please ensure your token is correct.
                      code: AUTHENTICATION_FAILED
                      id: b0a7f5f8-dc2f-4171-b91f-de88ad238e14
        '418':
          description: I'm Ai
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                I_AM_AI:
                  value:
                    error:
                      message: You sent a request to Ai-chan, Misskey's showgirl, instead of the server.
                      code: I_AM_AI
                      id: 60c46cd1-f23a-46b1-bebe-5d2b73951a84
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INTERNAL_ERROR:
                  value:
                    error:
                      message: Internal error occurred. Please contact us if the error persists.
                      code: INTERNAL_ERROR
                      id: 5d37dbcb-891e-41ca-a3d6-e690c97775ac
  /notes/create:
    post:
      operationId: post___notes___create
      summary: notes/create
      description: 'No description provided.


        **Credential required**: *Yes* / **Permission**: *write:notes*'
      externalDocs:
        description: Source code
        url: https://github.com/MisskeyIO/misskey/blob/io/packages/backend/src/server/api/endpoints/notes/create.ts
      tags:
      - notes
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                visibility:
                  type: string
                  enum:
                  - public
                  - home
                  - followers
                  - specified
                  default: public
                visibleUserIds:
                  type: array
                  uniqueItems: true
                  items:
                    type: string
                    format: misskey:id
                cw:
                  type:
                  - string
                  - 'null'
                  minLength: 1
                  maxLength: 100
                localOnly:
                  type: boolean
                  default: false
                dimension:
                  type:
                  - integer
                  - 'null'
                  minimum: 0
                reactionAcceptance:
                  type:
                  - string
                  - 'null'
                  enum:
                  - null
                  - likeOnly
                  - likeOnlyForRemote
                  - nonSensitiveOnly
                  - nonSensitiveOnlyForLocalLikeOnlyForRemote
                  default: null
                noExtractMentions:
                  type: boolean
                  default: false
                noExtractHashtags:
                  type: boolean
                  default: false
                noExtractEmojis:
                  type: boolean
                  default: false
                replyId:
                  type:
                  - string
                  - 'null'
                  format: misskey:id
                renoteId:
                  type:
                  - string
                  - 'null'
                  format: misskey:id
                channelId:
                  type:
                  - string
                  - 'null'
                  format: misskey:id
                lang:
                  type:
                  - string
                  - 'null'
                  enum:
                  - null
                  - ja
                  - ja-JP
                  - ko
                  - ko-KR
                  - other
                text:
                  type:
                  - string
                  - 'null'
                  minLength: 1
                  maxLength: 3000
                fileIds:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  maxItems: 16
                  items:
                    type: string
                    format: misskey:id
                mediaIds:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  maxItems: 16
                  items:
                    type: string
                    format: misskey:id
                poll:
                  type:
                  - object
                  - 'null'
                  properties:
                    choices:
                      type: array
                      uniqueItems: true
                      minItems: 2
                      maxItems: 10
                      items:
                        type: string
                        minLength: 1
                        maxLength: 50
                    multiple:
                      type: boolean
                    expiresAt:
                      type:
                      - integer
                      - 'null'
                    expiredAfter:
                      type:
                      - integer
                      - 'null'
                      minimum: 1
                  required:
                  - choices
                scheduledAt:
                  type:
                  - integer
                  - 'null'
                noCreatedNote:
                  type: boolean
                  default: false
              if:
                properties:
                  renoteId:
                    type: 'null'
                  fileIds:
                    type: 'null'
                  mediaIds:
                    type: 'null'
                  poll:
                    type: 'null'
              then:
                properties:
                  text:
                    type: string
                    minLength: 1
                    maxLength: 3000
                    pattern: '[^\s]+'
                required:
                - text
      responses:
        '200':
          description: OK (with results)
          content:
            application/json:
              schema:
                type: object
                properties:
                  createdNote:
                    type: object
                    $ref: '#/components/schemas/Note'
                required:
                - createdNote
        '204':
          description: OK (without any results)
        '400':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                PROCESSING:
                  value:
                    error:
                      message: We are processing your request. Please wait a moment.
                      code: PROCESSING
                      id: 3247052c-005d-440e-b3d8-2a64274483b0
                      httpStatusCode: 202
                NO_SUCH_RENOTE_TARGET:
                  value:
                    error:
                      message: No such renote target.
                      code: NO_SUCH_RENOTE_TARGET
                      id: b5c90186-4ab0-49c8-9bba-a1f76c282ba4
                CANNOT_RENOTE_TO_A_PURE_RENOTE:
                  value:
                    error:
                      message: You can not Renote a pure Renote.
                      code: CANNOT_RENOTE_TO_A_PURE_RENOTE
                      id: fd4cc33e-2a37-48dd-99cc-9b806eb2031a
                CANNOT_RENOTE_DUE_TO_VISIBILITY:
                  value:
                    error:
                      message: You can not Renote due to target visibility.
                      code: CANNOT_RENOTE_DUE_TO_VISIBILITY
                      id: be9529e9-fe72-4de0-ae43-0b363c4938af
                NO_SUCH_REPLY_TARGET:
                  value:
                    error:
                      message: No such reply target.
                      code: NO_SUCH_REPLY_TARGET
                      id: 749ee0f6-d3da-459a-bf02-282e2da4292c
                CANNOT_REPLY_TO_AN_INVISIBLE_NOTE:
                  value:
                    error:
                      message: You cannot reply to an invisible Note.
                      code: CANNOT_REPLY_TO_AN_INVISIBLE_NOTE
                      id: b98980fa-3780-406c-a935-b6d0eeee10d1
                CANNOT_REPLY_TO_A_PURE_RENOTE:
                  value:
                    error:
                      message: You can not reply to a pure Renote.
                      code: CANNOT_REPLY_TO_A_PURE_RENOTE
                      id: 3ac74a84-8fd5-4bb0-870f-01804f82ce15
                CANNOT_REPLY_TO_SPECIFIED_VISIBILITY_NOTE_WITH_EXTENDED_VISIBILITY:
                  value:
                    error:
                      message: You cannot reply to a specified visibility note with extended visibility.
                      code: CANNOT_REPLY_TO_SPECIFIED_VISIBILITY_NOTE_WITH_EXTENDED_VISIBILITY
                      id: ed940410-535c-4d5e-bfa3-af798671e93c
                CANNOT_CREATE_ALREADY_EXPIRED_POLL:
                  value:
                    error:
                      message: Poll is already expired.
                      code: CANNOT_CREATE_ALREADY_EXPIRED_POLL
                      id: 04da457d-b083-4055-9082-955525eda5a5
                NO_SUCH_CHANNEL:
                  value:
                    error:
                      message: No such channel.
                      code: NO_SUCH_CHANNEL
                      id: b1653923-5453-4edc-b786-7c4f39bb0bbb
                YOU_HAVE_BEEN_BLOCKED:
                  value:
                    error:
                      message: You have been blocked by this user.
                      code: YOU_HAVE_BEEN_BLOCKED
                      id: b390d7e1-8a5e-46ed-b625-06271cafd3d3
                NO_SUCH_FILE:
                  value:
                    error:
                      message: Some files are not found.
                      code: NO_SUCH_FILE
                      id: b6992544-63e7-67f0-fa7f-32444b1b5306
                CANNOT_RENOTE_OUTSIDE_OF_CHANNEL:
                  value:
                    error:
                      message: Cannot renote outside of channel.
                      code: CANNOT_RENOTE_OUTSIDE_OF_CHANNEL
                      id: 33510210-8452-094c-6227-4a6c05d99f00
                CONTAINS_PROHIBITED_WORDS:
                  value:
                    error:
                      message: Cannot post because it contains prohibited words.
                      code: CONTAINS_PROHIBITED_WORDS
                      id: aa6e01d3-a85c-669d-758a-76aab43af334
                CONTAINS_TOO_MANY_MENTIONS:
                  value:
                    error:
                      message: Cannot post because it exceeds the allowed number of mentions.
                      code: CONTAINS_TOO_MANY_MENTIONS
                      id: 4de0363a-3046-481b-9b0f-feff3e211025
                REPLY_TO_BOT_NOT_ALLOWED:
                  value:
                    error:
                      message: Replying to another bot account is not allowed.
                      code: REPLY_TO_BOT_NOT_ALLOWED
                      id: 66819f28-9525-389d-4b0a-4974363fbbbf
                CANNOT_SCHEDULE_TO_PAST:
                  value:
                    error:
                      message: Cannot schedule to the past.
                      code: CANNOT_SCHEDULE_TO_PAST
                      id: e577d185-8179-4a17-b47f-6093985558e6
                CANNOT_SCHEDULE_SAME_TIME:
                  value:
                    error:
                      message: Cannot schedule multiple notes at the same time.
                      code: CANNOT_SCHEDULE_SAME_TIME
                      id: 187a8fab-fd83-4ae6-a46c-0f6f07784634
                TOO_MANY_SCHEDULED_NOTES:
                  value:
                    error:
                      message: You cannot schedule notes any more.
                      code: TOO_MANY_SCHEDULED_NOTES
                      kind: permission
                      id: 9e33041f-f6fb-414d-98c1-591466e55287
                CANNOT_SCHEDULE_TO_FAR_FUTURE:
                  value:
                    error:
                      message: Cannot schedule to the far future.
                      code: CANNOT_SCHEDULE_TO_FAR_FUTURE
                      kind: permission
                      id: ea102856-e8da-4ae9-a98a-0326821bd177
                ROLE_PERMISSION_DENIED:
                  value:
                    error:
                      message: You are not assigned to a required role.
                      code: ROLE_PERMISSION_DENIED
                      kind: permission
                      id: 12f1d5d2-f7ec-4d7c-b608-e873f4b20327
                      status: 403
                INVALID_PARAM:
                  value:
                    error:
                      message: Invalid param.
                      code: INVALID_PARAM
                      id: 3d81ceae-475f-4600-b2a8-2bc116157532
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CREDENTIAL_REQUIRED:
                  value:
                    error:
                      message: Credential required.
                      code: CREDENTIAL_REQUIRED
                      id: 1384574d-a912-4b81-8601-c7b1c4085df1
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTHENTICATION_FAILED:
                  value:
                    error:
                      message: Authentication failed. Please ensure your token is correct.
                      code: AUTHENTICATION_FAILED
                      id: b0a7f5f8-dc2f-4171-b91f-de88ad238e14
        '418':
          description: I'm Ai
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                I_AM_AI:
                  value:
                    error:
                      message: You sent a request to Ai-chan, Misskey's showgirl, instead of the server.
                      code: I_AM_AI
                      id: 60c46cd1-f23a-46b1-bebe-5d2b73951a84
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                RATE_LIMIT_EXCEEDED:
                  value:
                    error:
                      message: Rate limit exceeded. Please try again later.
                      code: RATE_LIMIT_EXCEEDED
                      id: d5826d14-3982-4d2e-8011-b9e9f02499ef
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INTERNAL_ERROR:
                  value:
                    error:
                      message: Internal error occurred. Please contact us if the error persists.
                      code: INTERNAL_ERROR
                      id: 5d37dbcb-891e-41ca-a3d6-e690c97775ac
  /notes/delete:
    post:
      operationId: post___notes___delete
      summary: notes/delete
      description: 'No description provided.


        **Credential required**: *Yes* / **Permission**: *write:notes*'
      externalDocs:
        description: Source code
        url: https://github.com/MisskeyIO/misskey/blob/io/packages/backend/src/server/api/endpoints/notes/delete.ts
      tags:
      - notes
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                noteId:
                  type: string
                  format: misskey:id
              required:
              - noteId
      responses:
        '204':
          description: OK (without any results)
        '400':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                NO_SUCH_NOTE:
                  value:
                    error:
                      message: No such note.
                      code: NO_SUCH_NOTE
                      id: 490be23f-8c1f-4796-819f-94cb4f9d1630
                ACCESS_DENIED:
                  value:
                    error:
                      message: Access denied.
                      code: ACCESS_DENIED
                      id: fe8d7103-0ea8-4ec3-814d-f8b401dc69e9
                INVALID_PARAM:
                  value:
                    error:
                      message: Invalid param.
                      code: INVALID_PARAM
                      id: 3d81ceae-475f-4600-b2a8-2bc116157532
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CREDENTIAL_REQUIRED:
                  value:
                    error:
                      message: Credential required.
                      code: CREDENTIAL_REQUIRED
                      id: 1384574d-a912-4b81-8601-c7b1c4085df1
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTHENTICATION_FAILED:
                  value:
                    error:
                      message: Authentication failed. Please ensure your token is correct.
                      code: AUTHENTICATION_FAILED
                      id: b0a7f5f8-dc2f-4171-b91f-de88ad238e14
        '418':


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