openapi: 3.0.1 info: title: Miro Developer Platform AI Interaction Logs Mind map nodes (experimental) API version: v2.0 description: ' ### 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.

Required scope

boards:read

Rate limiting

Level 1
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.

Required scope

boards:write

Rate limiting

Level 3
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`.

Required scope

boards:read

Rate limiting

Level 2
' 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 Mind Map Overview page.

Required scope

boards:write

Rate limiting

Level 2

Known limitations on node placement: 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.

Upcoming changes: 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.

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.
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.
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`.
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