Miro Mind map nodes (experimental) API

The Mind map nodes (experimental) API from Miro — 2 operation(s) for mind map nodes (experimental).

OpenAPI Specification

miro-mind-map-nodes-experimental-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Miro Developer Platform AI Interaction Logs Mind map nodes (experimental) API
  version: v2.0
  description: '<img src="https://content.pstmn.io/47449ea6-0ef7-4af2-bac1-e58a70e61c58/aW1hZ2UucG5n" width="1685" height="593">


    ### Miro Developer Platform concepts


    - New to the Miro Developer Platform? Interested in learning more about platform concepts??

    [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes.



    ### Getting started with the Miro REST API


    - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes.

    - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes.



    ### Miro REST API tutorials


    Check out our how-to articles with step-by-step instructions and code examples so you can:


    - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth)



    ### Miro App Examples


    Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro''s Developer Platform 2.0.

    '
servers:
- url: https://api.miro.com/
tags:
- name: Mind map nodes (experimental)
paths:
  /v2-experimental/boards/{board_id}/mindmap_nodes/{item_id}:
    get:
      description: Retrieves information for a specific mind map node on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href="/reference/rate-limiting#rate-limit-tiers">Level 1</a><br/>
      operationId: get-mindmap-node-experimental
      parameters:
      - schema:
          type: string
        name: board_id
        in: path
        required: true
        description: Unique identifier (ID) of the board from which you want to retrieve a mind map node.
      - schema:
          type: string
        name: item_id
        in: path
        required: true
        description: Unique identifier (ID) of the mind map node that you want to retrieve.
      responses:
        '200':
          description: Mind map node retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MindmapItem'
      summary: Get specific mind map node
      tags:
      - Mind map nodes (experimental)
    delete:
      description: Deletes a mind map node item and its child nodes from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href="/reference/rate-limiting#rate-limit-tiers">Level 3</a><br/>
      operationId: delete-mindmap-node-experimental
      parameters:
      - description: Unique identifier (ID) of the board from which you want to delete the mind map node.
        in: path
        name: board_id
        required: true
        schema:
          type: string
      - description: Unique identifier (ID) of the mind map node that you want to delete.
        in: path
        name: item_id
        required: true
        schema:
          type: string
      responses:
        '204':
          content:
            application/json:
              schema:
                type: object
          description: Mind map node deleted
        '400':
          content:
            application/json:
              schema:
                type: object
                description: Test error obj
                properties:
                  code:
                    type: string
                    description: Code of the error
                    example: error
                  message:
                    type: string
                    description: Description of the error
                    example: Error message
                  status:
                    type: integer
                    format: int32
                    description: Status code of the error
                    example: 400
                  type:
                    type: string
                    description: Type of the error
                    example: error
          description: Malformed request
        '404':
          content:
            application/json:
              schema:
                type: object
                description: Test error obj
                properties:
                  code:
                    type: string
                    description: Code of the error
                    example: error
                  message:
                    type: string
                    description: Description of the error
                    example: Error message
                  status:
                    type: integer
                    format: int32
                    description: Status code of the error
                    example: 400
                  type:
                    type: string
                    description: Type of the error
                    example: error
          description: Not found
        '429':
          content:
            application/json:
              schema:
                type: object
                description: Test error obj
                properties:
                  code:
                    type: string
                    description: Code of the error
                    example: error
                  message:
                    type: string
                    description: Description of the error
                    example: Error message
                  status:
                    type: integer
                    format: int32
                    description: Status code of the error
                    example: 400
                  type:
                    type: string
                    description: Type of the error
                    example: error
          description: Too many requests
      summary: Delete mind map node
      tags:
      - Mind map nodes (experimental)
  /v2-experimental/boards/{board_id}/mindmap_nodes:
    parameters:
    - schema:
        type: string
      name: board_id
      in: path
      required: true
      description: Unique identifier (ID) of the board from which you want to retrieve mind map nodes.
    get:
      summary: Get mind map nodes
      tags:
      - Mind map nodes (experimental)
      responses:
        '200':
          description: Mind map nodes retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MindmapCursorPaged'
      operationId: get-mindmap-nodes-experimental
      description: 'Retrieves a list of mind map nodes for a specific board.


        This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let''s say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href="/reference/rate-limiting#rate-limit-tiers">Level 2</a><br/>'
      parameters:
      - schema:
          type: string
        in: query
        name: limit
        description: Maximum number of results returned
      - schema:
          type: string
        in: query
        name: cursor
        description: Points to the next portion of the results set
    post:
      description: 'Adds a mind map node to a board. A root node is the starting point of a mind map. A node that is created under a root node is a child node. For information on mind maps, use cases, mind map structure, and more, see the <a href="https://developers.miro.com/docs/mind-maps" target=_blank>Mind Map Overview</a> page. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href="/reference/rate-limiting#rate-limit-tiers">Level 2</a><br/><br/> <b>Known limitations on node placement: </b> Currently, the create API supports explicit positions for nodes. This means that users can only place nodes based on the x, y coordinates provided in the position parameters. If the position is not provided in the request, nodes default to coordinates x=0, y=0, effectively placing them at the center of the board. <br /><br /><b>Upcoming changes:</b> We understand the importance of flexibility in node placement. We are actively working on implementing changes to support positioning nodes relative to their parent node as well. This enhancement offers a more dynamic and intuitive mind mapping experience. <br /><br />Additionally, we are actively working on providing the update API, further enhancing the functionality of mind map APIs.'
      operationId: create-mindmap-nodes-experimental
      parameters:
      - description: Unique identifier (ID) of the board where you want to create the item.
        in: path
        name: board_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MindmapCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MindmapItem'
          description: Mind map node created
        '400':
          content:
            application/json:
              schema:
                type: object
                description: Test error obj
                properties:
                  code:
                    type: string
                    description: Code of the error
                    example: error
                  message:
                    type: string
                    description: Description of the error
                    example: Error message
                  status:
                    type: integer
                    format: int32
                    description: Status code of the error
                    example: 400
                  type:
                    type: string
                    description: Type of the error
                    example: error
          description: Malformed request
        '404':
          content:
            application/json:
              schema:
                type: object
                description: Test error obj
                properties:
                  code:
                    type: string
                    description: Code of the error
                    example: error
                  message:
                    type: string
                    description: Description of the error
                    example: Error message
                  status:
                    type: integer
                    format: int32
                    description: Status code of the error
                    example: 400
                  type:
                    type: string
                    description: Type of the error
                    example: error
          description: Not found
        '429':
          content:
            application/json:
              schema:
                type: object
                description: Test error obj
                properties:
                  code:
                    type: string
                    description: Code of the error
                    example: error
                  message:
                    type: string
                    description: Description of the error
                    example: Error message
                  status:
                    type: integer
                    format: int32
                    description: Status code of the error
                    example: 400
                  type:
                    type: string
                    description: Type of the error
                    example: error
          description: Too many requests
      summary: Create mind map node
      tags:
      - Mind map nodes (experimental)
components:
  schemas:
    MindmapCreateRequest:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/MindmapDataForCreate'
        position:
          $ref: '#/components/schemas/PositionChange'
        geometry:
          $ref: '#/components/schemas/MindMapNodeGeometry'
        parent:
          $ref: '#/components/schemas/Parent'
      required:
      - data
    MindmapStyle:
      type: object
      description: Contains information about the node style, such as the widget's border color or shape type.
      properties:
        nodeColor:
          type: string
          description: Hex value representing the color of the widget's border.
          example: '#1a1a1a'
        shape:
          type: string
          description: Shape type of the widget.
          enum:
          - pill
          - rectangle
          - rounded_rectangle
          - none
        fontSize:
          type: string
          description: The same font size as in MindmapNodeStyle.
          maximum: 288
          minimum: 10
    SelfLink:
      type: object
      description: Contains applicable links for the current object.
      properties:
        self:
          type: string
          description: Link to obtain more information about the current object.
          example: http://api.miro.com/v2/boards/o9J_koQspF4=/object_type/3074457349143649487
    MindmapItem:
      type: object
      properties:
        id:
          type: string
          format: int64
          description: Unique identifier (ID) of an item.
          example: '3074457362577955300'
        data:
          $ref: '#/components/schemas/MindmapData'
        createdAt:
          type: string
          format: date-time
          description: 'Date and time when the item was created. <br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
        modifiedAt:
          type: string
          format: date-time
          description: 'Date and time when the item was last modified. <br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).'
        modifiedBy:
          $ref: '#/components/schemas/ModifiedBy'
        parent:
          $ref: '#/components/schemas/ParentLinksEnvelope'
        links:
          $ref: '#/components/schemas/WidgetLinks'
        type:
          type: string
          description: Type of item that is returned.
        style:
          $ref: '#/components/schemas/MindmapStyle'
      required:
      - id
      - type
    ParentLinksEnvelope:
      type: object
      description: Contains information about the parent frame for the item.
      properties:
        id:
          type: string
          format: int64
          description: Unique identifier (ID) of the parent frame for the item.
          example: '3074457362577955300'
        links:
          $ref: '#/components/schemas/SelfLink'
    MindmapDataForCreate:
      type: object
      description: Contains mind map node data, such as the title, content, or description.
      properties:
        nodeView:
          $ref: '#/components/schemas/MindmapNode'
      required:
      - nodeView
    MindmapNode:
      type: object
      description: Contains information like data about the mind map node.
      properties:
        data:
          $ref: '#/components/schemas/MindmapNodeTextData'
    MindMapNodeGeometry:
      type: object
      description: Contains width of the item.
      properties:
        width:
          type: number
          format: double
          description: Width of the item, in pixels.
          example: 320
    MindmapWidgetDataOutput:
      oneOf:
      - $ref: '#/components/schemas/TextData'
      description: Contains the mind map node data, such as the item title, content, or description.
    MindmapCursorPaged:
      type: object
      properties:
        data:
          type: array
          description: Contains the result data.
          items:
            $ref: '#/components/schemas/MindmapItem'
        total:
          type: integer
          format: int64
          description: Total number of results available. If the value of the `total` parameter is higher than the value of the `size` parameter, this means that there are more results that you can retrieve. To retrieve more results, you can make another request and set the `offset` value accordingly. For example, if there are `30` results, and the request has the `offset` set to `0` and the `limit` set to `20`, the `size` parameter will return `20` and the `total` parameter will return `30`. This means that there are 9 more results to retrieve (as the offset is zero-based).
        size:
          type: integer
          format: int32
          description: Number of results returned in the response considering the `cursor` and the `limit` values sent in the request. For example, if there are `20` results, the request does not have a `cursor` value, and the `limit` set to `10`, the `size` of the results will be `10`.<br>In this example, the response will also return a cursor value that can be used to retrieve the next set of 10 remaining results in the collection.'
        cursor:
          type: string
          description: A cursor-paginated method returns a portion of the total set of results based on the `limit` specified and a `cursor` that points to the next portion of the results. To retrieve the next set of results of the collection, set the `cursor` parameter in your next request to the value returned in this parameter.'
        limit:
          type: integer
          format: int32
          description: Maximum number of results returned based on the `limit` specified in the request. For example, if there are `20` results, the request has no `cursor` value, and the `limit` is set to `20`,the `size` of the results will be `20`. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the `cursor` parameter value that you obtained from the response.'
        links:
          $ref: '#/components/schemas/PageLinks'
    MindmapData:
      type: object
      description: Contains mind map node data, such as `nodeView` or `isRoot`.
      properties:
        nodeView:
          $ref: '#/components/schemas/MindmapNodeView'
        isRoot:
          type: boolean
          description: Indicates whether this node is the root of the mind map.
        direction:
          type: string
          description: Indicates where this node is positioned relative to the root node. `start` indicates that this node must be positioned at the start of the root node, which is either the left or top of the root node. `end` indicates that this node must be positioned at the emd of the root node, which is either the right or bottom of the root node.
          enum:
          - start
          - end
    WidgetLinks:
      type: object
      description: Contains applicable links for the item.
      properties:
        related:
          type: string
          description: Link to obtain information about the child items related to the frame.
          example: http://api.miro.com/v2/boards/o9J_koQspF4=/items?parent_item_id=307445734914369434&limit=10&cursor=
        self:
          type: string
          description: Link to obtain information about the current item.
          example: http://api.miro.com/v2/boards/o9J_koQspF4=/item/3074457349143649487
    MindmapNodeTextData:
      type: object
      description: Contains the information about the mind map text.
      properties:
        type:
          type: string
          description: Type of item used as mind map node. Currently, `type` can only be equal to `text`.
          example: text
        content:
          type: string
          description: The actual text (content) that appears in the mind map node.
          example: Sample text
      required:
      - type
    MindmapNodeView:
      type: object
      description: Contains the information about the mind map node.
      properties:
        type:
          type: string
          description: Type of item used as mind map node. Currently, `type` can only be equal to `text`.
          example: text
        data:
          $ref: '#/components/schemas/MindmapWidgetDataOutput'
        style:
          $ref: '#/components/schemas/MindmapNodeStyle'
    TextData:
      type: object
      description: Contains text item data, such as the title, content, or description. For more information on the JSON properties, see [Data](https://developers.miro.com/reference/data).
      properties:
        content:
          type: string
          description: The actual text (content) that appears in the text item.
          example: Hello
      required:
      - content
    MindmapNodeStyle:
      type: object
      description: Contains information about the node style, such as the node color or fillOpacity.
      properties:
        color:
          type: string
          description: Hex value representing the color for the text within the node.
          example: '#1a1a1a'
        fillOpacity:
          type: string
          description: 'It sets the opacity level of the background fill color.


            Allowed values: any number between 0.0 and 1.0 included.


            If the value is 0.0, the background fill color is completely transparent or invisible.

            If the value is 1.0, the background fill color is completely opaque or solid.

            Default: 0 (transparent)'
        fontSize:
          type: string
          description: 'Defines the font size, in dp, for the text on the node.

            Default: `14`.'
          maximum: 288
          minimum: 10
    Parent:
      type: object
      description: Contains information about the parent frame for the item.
      properties:
        id:
          type: string
          format: int64
          description: Unique identifier (ID) of the parent frame for the item.
          example: '3074457362577955300'
    PageLinks:
      type: object
      description: Contains pagination links for the collection.
      properties:
        first:
          type: string
          description: Link to retrieve information in the first page of the collection.
          example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=MzQ1ODc2NaSDN&#RDMDA3MzYyOX==
        last:
          type: string
          description: Link to the retrieve information in the last page of the collection.
          example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=MzQ1ODc2NDUyNDUyMDA3MzYyOX==
        next:
          type: string
          description: Link to retrieve information in the next page of the collection.
          example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=MzQ1ODc2NDUyNDsdgsFEwfFJCw==
        prev:
          type: string
          description: Link to retrieve information in the previous page of the collection.
          example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=
        self:
          type: string
          description: Link to retrieve information in the current page of the collection.
          example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=MzQ1OD1245643FWUyMDA3MzYyOX==
    PositionChange:
      type: object
      description: Contains information about the item's position on the board, such as its `x` coordinate, `y` coordinate, and the origin of the `x` and `y` coordinates.
      properties:
        x:
          type: number
          format: double
          description: 'X-axis coordinate of the location of the item on the board.

            By default, all items have absolute positioning to the board, not the current viewport. Default: `0`.

            The center point of the board has `x: 0` and `y: 0` coordinates.'
          default: 0
          example: 100
        y:
          type: number
          format: double
          description: 'Y-axis coordinate of the location of the item on the board.

            By default, all items have absolute positioning to the board, not the current viewport. Default: `0`.

            The center point of the board has `x: 0` and `y: 0` coordinates.'
          default: 0
          example: 100
    ModifiedBy:
      type: object
      description: Contains information about the user who last modified the item.
      properties:
        id:
          type: string
          description: Unique identifier (ID) of the user.
          example: '3458764517517852417'
        type:
          type: string
          description: Indicates the type of object returned. In this case, `type` returns `user`.
          example: user
    CreatedBy:
      type: object
      description: Contains information about the user who created the item.
      properties:
        id:
          type: string
          description: Unique identifier (ID) of the user.
          example: '3458764517517852417'
        type:
          type: string
          description: Indicates the type of object returned. In this case, `type` returns `user`.
          example: user
  securitySchemes:
    oAuth2AuthCode:
      type: oauth2
      description: For more information, see https://developers.miro.com/reference/authorization-flow-for-expiring-tokens
      flows:
        authorizationCode:
          authorizationUrl: https://miro.com/oauth/authorize
          tokenUrl: https://api.miro.com/v1/oauth/token
          scopes:
            boards:read: Retrieve information about boards, board members, or items
            boards:write: Create, update, or delete boards, board members, or items
            microphone:listen: Access a user's microphone to record audio in an iFrame
            screen:record: Access a user's screen to record it in an iFrame
            webcam:record: Allows an iFrame to access a user's camera to record video
            organizations:read: Read information about the organization, such as name, plan, number of licenses, organization settings, or organization members.
            organizations:teams:read: Read team information, such as the list of teams, team settings, team members, for an organization.
            organizations:teams:write: Create or delete teams, update team information, team settings, team members, for an organization.
x-settings:
  publish: true