# Miro

> Create and manage Miro boards. Add sticky notes, shapes, text, cards, frames and connectors, link items with connectors, and tag and organise items.

App · Images & Design · 20 actions. Web page: https://docs.lodol.com/docs/integrations/miro

## Actions

### Attach tag to item

Attach an existing tag to a card or sticky note. Only those two item types accept tags, and each can carry up to 8.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Item ID (`item_id`, text, required): The item to act on, from 'List items' or an earlier step that created it.
- Tag ID (`tag_id`, text, required): The tag to attach, from 'Create tag'.

**Outputs**

- `attached` (true/false)
- `board_id` (text)
- `item_id` (text)
- `tag_id` (text)

**Example output**

```json
{
  "attached": true,
  "board_id": "uXjVI4TU3wc=",
  "item_id": "3458764600000000001",
  "tag_id": "3458764600000000007"
}
```

### Create board

Create a new Miro board. Leave the team empty to create it in the token owner's own team. A Developer team is capped at 3 boards - Miro refuses a fourth.

**Inputs**

- Board name (`name`, text): Up to 60 characters. Leave empty for 'Untitled'.
- Team (`miro_team_id`, text): The team to create it in. Leave empty for your own team.
- Who can open the share link (`access`, text): Who can open this board from its share link, without being invited. One of: `private` (Private - only people explicitly invited), `view` (Anyone with the link can view), `comment` (Anyone with the link can comment), `edit` (Anyone with the link can edit). Default: `private`.

**Outputs**

- `createdAt` (text)
- `createdBy` (object)
- `currentUserMembership` (object)
- `id` (text)
- `modifiedAt` (text)
- `modifiedBy` (object)
- `name` (text)
- `owner` (object)
- `project` (object)
- `team` (object)
- `type` (text)
- `viewLink` (text)

**Example output**

```json
{
  "createdAt": "2026-01-14T09:12:44Z",
  "createdBy": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "currentUserMembership": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "role": "owner",
    "type": "board_member"
  },
  "id": "uXjVI4TU3wc=",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "modifiedBy": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "name": "Lodol demo board",
  "owner": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "team": {
    "id": "3074457345000000001",
    "name": "Lodol demo team"
  },
  "type": "board",
  "viewLink": "https://miro.com/app/board/uXjVI4TU3wc=/"
}
```

### Create card

Add a card - a task-shaped item with a title, description and due date.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Title (`title`, text, required): A short header for the card.
- Description (`description`, text): A short description to add context.
- Due date (`due_date`, date and time): When this card is due.
- X position (`x`, number): Horizontal position on the board. The board's centre is 0.
- Y position (`y`, number): Vertical position on the board. The board's centre is 0.
- Width (`width`, number): Width in pixels. Leave empty for Miro's default size. At least 1.
- Height (`height`, number): Height in pixels. Leave empty for Miro's default size. At least 1.
- Parent frame ID (`parent_id`, text): A frame to place this item inside. Leave empty to place it directly on the board.

**Outputs**

- `createdAt` (text)
- `data` (object)
- `geometry` (object)
- `id` (text)
- `modifiedAt` (text)
- `parent` (object)
- `position` (object)
- `style` (object)
- `type` (text)

**Example output**

```json
{
  "createdAt": "2026-02-02T16:40:11Z",
  "data": {
    "description": "Cut the release and notify the team",
    "dueDate": "2026-03-14T09:00:00Z",
    "title": "Ship it"
  },
  "geometry": {
    "height": 120.0,
    "width": 320.0
  },
  "id": "3458764600000000004",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "position": {
    "origin": "center",
    "x": 0.0,
    "y": 200.0
  },
  "style": {
    "cardTheme": "#2d9bf0"
  },
  "type": "card"
}
```

### Create connector

Draw a line between two items already on the board.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Start item ID (`start_item_id`, text, required): The item the connector starts at.
- End item ID (`end_item_id`, text, required): The item the connector ends at.
- Shape (`shape`, text): The connector's line shape. Defaults to curved. One of: `straight`, `elbowed`, `curved`. Default: `curved`.
- Caption (`caption`, text): A short label shown on the line.
- Line colour (`stroke_color`, text): A hex colour for the line, such as #1a1a1a.
- Line style (`stroke_style`, text): Solid, dotted or dashed. Defaults to solid. One of: `normal` (Solid), `dotted`, `dashed`.

**Outputs**

- `captions` (list)
- `createdAt` (text)
- `endItem` (object)
- `id` (text)
- `modifiedAt` (text)
- `shape` (text)
- `startItem` (object)
- `style` (object)
- `type` (text)

**Example output**

```json
{
  "captions": [
    {
      "content": "leads to"
    }
  ],
  "createdAt": "2026-02-02T16:40:11Z",
  "endItem": {
    "id": "3458764600000000004"
  },
  "id": "3458764600000000006",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "shape": "curved",
  "startItem": {
    "id": "3458764600000000001"
  },
  "style": {
    "strokeColor": "#1a1a1a",
    "strokeStyle": "normal"
  },
  "type": "connector"
}
```

### Create frame

Add a frame - a named, movable container other items can sit inside.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Title (`title`, text, required): The frame's title, shown at its top edge.
- Background colour (`fill_color`, text): A hex colour for the frame's background, such as #f5f6f8.
- X position (`x`, number): Horizontal position on the board. The board's centre is 0.
- Y position (`y`, number): Vertical position on the board. The board's centre is 0.
- Width (`width`, number): Width in pixels. Leave empty for Miro's default size. At least 1.
- Height (`height`, number): Height in pixels. Leave empty for Miro's default size. At least 1.

**Outputs**

- `createdAt` (text)
- `data` (object)
- `geometry` (object)
- `id` (text)
- `modifiedAt` (text)
- `position` (object)
- `style` (object)
- `type` (text)

**Example output**

```json
{
  "createdAt": "2026-02-02T16:40:11Z",
  "data": {
    "format": "custom",
    "title": "Sprint 12",
    "type": "freeform"
  },
  "geometry": {
    "height": 700.0,
    "width": 1000.0
  },
  "id": "3458764600000000005",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "position": {
    "origin": "center",
    "x": 0.0,
    "y": 0.0
  },
  "style": {
    "fillColor": "#ffffffff"
  },
  "type": "frame"
}
```

### Create shape

Add a shape to a board - a rectangle, circle, arrow and 18 others. Fill and border colours are hex values such as #1a1a1a, since Miro does not restrict a shape's colours to a fixed set.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Content (`content`, text): Text to display on the shape.
- Shape (`shape`, text): The shape's outline. Defaults to rectangle. One of: `rectangle`, `round_rectangle` (Rounded rectangle), `circle`, `triangle`, `rhombus`, `parallelogram`, `trapezoid`, `pentagon`, `hexagon`, `octagon`, and 11 more. Default: `rectangle`.
- Fill colour (`fill_color`, text): A hex colour for the shape's fill, such as #f5f6f8.
- Border colour (`border_color`, text): A hex colour for the shape's outline, such as #1a1a1a.
- Text alignment (`text_align`, text): Horizontal alignment of the text. One of: `left`, `center`, `right`.
- X position (`x`, number): Horizontal position on the board. The board's centre is 0.
- Y position (`y`, number): Vertical position on the board. The board's centre is 0.
- Width (`width`, number): Width in pixels. Leave empty for Miro's default size. At least 1.
- Height (`height`, number): Height in pixels. Leave empty for Miro's default size. At least 1.
- Parent frame ID (`parent_id`, text): A frame to place this item inside. Leave empty to place it directly on the board.

**Outputs**

- `createdAt` (text)
- `data` (object)
- `geometry` (object)
- `id` (text)
- `modifiedAt` (text)
- `parent` (object)
- `position` (object)
- `style` (object)
- `type` (text)

**Example output**

```json
{
  "createdAt": "2026-02-02T16:40:11Z",
  "data": {
    "content": "Q3 goals",
    "shape": "round_rectangle"
  },
  "geometry": {
    "height": 150.0,
    "width": 300.0
  },
  "id": "3458764600000000002",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "position": {
    "origin": "center",
    "x": 200.0,
    "y": 0.0
  },
  "style": {
    "borderColor": "#1a1a1a",
    "fillColor": "#f5f6f8",
    "textAlign": "center"
  },
  "type": "shape"
}
```

### Create sticky note

Add a sticky note to a board.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Content (`content`, text): The note's text.
- Shape (`shape`, text): The sticky note's outline. Defaults to square. One of: `square`, `rectangle`. Default: `square`.
- Colour (`fill_color`, text): The sticky note's background colour. Defaults to light yellow. One of: `gray`, `light_yellow` (Light yellow), `yellow`, `orange`, `light_green` (Light green), `green`, `dark_green` (Dark green), `cyan`, `light_pink` (Light pink), `pink`, and 6 more.
- Text alignment (`text_align`, text): Horizontal alignment of the text. One of: `left`, `center`, `right`.
- Vertical text alignment (`text_align_vertical`, text): Vertical alignment of the text. One of: `top`, `middle`, `bottom`.
- X position (`x`, number): Horizontal position on the board. The board's centre is 0.
- Y position (`y`, number): Vertical position on the board. The board's centre is 0.
- Width (`width`, number): Width in pixels. Leave empty for Miro's default size. At least 1.
- Parent frame ID (`parent_id`, text): A frame to place this item inside. Leave empty to place it directly on the board.

**Outputs**

- `createdAt` (text)
- `data` (object)
- `geometry` (object)
- `id` (text)
- `modifiedAt` (text)
- `parent` (object)
- `position` (object)
- `style` (object)
- `type` (text)

**Example output**

```json
{
  "createdAt": "2026-02-02T16:40:11Z",
  "data": {
    "content": "Ship it",
    "shape": "square"
  },
  "geometry": {
    "height": 199.0,
    "width": 199.0
  },
  "id": "3458764600000000001",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "position": {
    "origin": "center",
    "x": 0.0,
    "y": 0.0
  },
  "style": {
    "fillColor": "light_yellow",
    "textAlign": "center",
    "textAlignVertical": "top"
  },
  "type": "sticky_note"
}
```

### Create tag

Create a tag on a board, so it can be attached to cards and sticky notes.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Title (`title`, text, required): The tag's text, up to 120 characters. Must be unique on the board.
- Colour (`fill_color`, text): The tag's colour. Defaults to red. One of: `red`, `light_green` (Light green), `cyan`, `yellow`, `magenta`, `green`, `blue`, `gray`, `violet`, `dark_green` (Dark green), `dark_blue` (Dark blue), `black`. Default: `red`.

**Outputs**

- `fillColor` (text)
- `id` (text)
- `title` (text)
- `type` (text)

**Example output**

```json
{
  "fillColor": "red",
  "id": "3458764600000000007",
  "title": "Blocked",
  "type": "tag"
}
```

### Create text

Add a free-floating text item to a board. Only its width can be set - Miro grows the height to fit the text.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Content (`content`, text, required): The text to display.
- Text colour (`color`, text): A hex colour for the text, such as #1a1a1a.
- Background colour (`fill_color`, text): A hex colour behind the text, such as #ffffff.
- Font size (`font_size`, number): Font size in points. Defaults to 14. At least 1.
- Text alignment (`text_align`, text): Horizontal alignment of the text. One of: `left`, `center`, `right`.
- X position (`x`, number): Horizontal position on the board. The board's centre is 0.
- Y position (`y`, number): Vertical position on the board. The board's centre is 0.
- Width (`width`, number): Width in pixels. Leave empty for Miro's default size. At least 1.
- Parent frame ID (`parent_id`, text): A frame to place this item inside. Leave empty to place it directly on the board.

**Outputs**

- `createdAt` (text)
- `data` (object)
- `geometry` (object)
- `id` (text)
- `modifiedAt` (text)
- `parent` (object)
- `position` (object)
- `style` (object)
- `type` (text)

**Example output**

```json
{
  "createdAt": "2026-02-02T16:40:11Z",
  "data": {
    "content": "Hello from Lodol"
  },
  "geometry": {
    "height": 30.0,
    "width": 200.0
  },
  "id": "3458764600000000003",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "position": {
    "origin": "center",
    "x": -200.0,
    "y": 0.0
  },
  "style": {
    "color": "#1a1a1a",
    "fillColor": "#ffffff",
    "fontSize": "14",
    "textAlign": "center"
  },
  "type": "text"
}
```

### Delete board

Delete a board permanently, along with every item on it. On a paid plan this goes to Trash and can be restored within 90 days; on a Developer team it cannot be undone.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/

**Outputs**

- `board_id` (text)
- `deleted` (true/false)
- `id` (text)
- `resource` (text)

**Example output**

```json
{
  "deleted": true,
  "id": "uXjVI4TU3wc=",
  "resource": "board"
}
```

### Delete connector

Delete a connector. Not the same as 'Delete item' - a connector is a separate kind of record in Miro, and 'Delete item' cannot see it.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Connector ID (`connector_id`, text, required): The connector to delete, from 'Create connector'.

**Outputs**

- `board_id` (text)
- `deleted` (true/false)
- `id` (text)
- `resource` (text)

**Example output**

```json
{
  "board_id": "uXjVI4TU3wc=",
  "deleted": true,
  "id": "3458764600000000006",
  "resource": "connector"
}
```

### Delete item

Delete any item from a board, regardless of its type.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Item ID (`item_id`, text, required): The item to act on, from 'List items' or an earlier step that created it.

**Outputs**

- `board_id` (text)
- `deleted` (true/false)
- `id` (text)
- `resource` (text)

**Example output**

```json
{
  "board_id": "uXjVI4TU3wc=",
  "deleted": true,
  "id": "3458764600000000001",
  "resource": "item"
}
```

### Get board

Read one board in full: its name, share link, sharing settings, owner, team, and the connected user's own role on it.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/

**Outputs**

- `createdAt` (text)
- `createdBy` (object)
- `currentUserMembership` (object)
- `id` (text)
- `modifiedAt` (text)
- `modifiedBy` (object)
- `name` (text)
- `owner` (object)
- `project` (object)
- `team` (object)
- `type` (text)
- `viewLink` (text)

**Example output**

```json
{
  "createdAt": "2026-01-14T09:12:44Z",
  "createdBy": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "currentUserMembership": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "role": "owner",
    "type": "board_member"
  },
  "id": "uXjVI4TU3wc=",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "modifiedBy": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "name": "Lodol demo board",
  "owner": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "team": {
    "id": "3074457345000000001",
    "name": "Lodol demo team"
  },
  "type": "board",
  "viewLink": "https://miro.com/app/board/uXjVI4TU3wc=/"
}
```

### Get connection info

Read what the connected access token can see: the organization, team and user it belongs to, and the scopes it was granted. A quick way to confirm a connection is actually working, and works on every plan - unlike sharing a board by email, which a Free or Developer team cannot do at all.

**Inputs**: None.

**Outputs**

- `createdBy` (object)
- `organization` (object)
- `scopes` (list)
- `team` (object)
- `type` (text)
- `user` (object)

**Example output**

```json
{
  "createdBy": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "organization": {
    "id": "3074457345000000003",
    "name": "Lodol demo org",
    "type": "organization"
  },
  "scopes": [
    "boards:read",
    "boards:write"
  ],
  "team": {
    "id": "3074457345000000001",
    "name": "Lodol demo team",
    "type": "team"
  },
  "type": "token",
  "user": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  }
}
```

### Get item

Read one item's position, size, parent frame and its own type-specific content.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Item ID (`item_id`, text, required): The item to act on, from 'List items' or an earlier step that created it.

**Outputs**

- `createdAt` (text)
- `createdBy` (object)
- `data` (object)
- `geometry` (object)
- `id` (text)
- `modifiedAt` (text)
- `modifiedBy` (object)
- `parent` (object)
- `position` (object)
- `type` (text)

**Example output**

```json
{
  "createdAt": "2026-02-02T16:40:11Z",
  "createdBy": {
    "id": "3074457345000000000",
    "type": "user"
  },
  "data": {
    "content": "Ship it",
    "shape": "square"
  },
  "geometry": {
    "height": 199.0,
    "width": 199.0
  },
  "id": "3458764600000000001",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "modifiedBy": {
    "id": "3074457345000000000",
    "type": "user"
  },
  "position": {
    "origin": "center",
    "x": 0.0,
    "y": 0.0
  },
  "type": "sticky_note"
}
```

### List boards

List the boards the connected app's team membership can see. Returns each board's name, id, share link, owner and team. Narrow by a name or description search, by team, or by owner.

**Inputs**

- Team (`miro_team_id`, text): Only boards belonging to this team. Leave empty for every team the token can see.
- Query (`query`, text): Only boards whose name or description contains this text.
- Owner ID (`owner_id`, text): Only boards owned by this user id.
- Results per page (`limit`, number): How many to return, 1-50. Defaults to 20. From 1 to 50. Default: `20`.
- Offset (`offset`, number): How many records to skip before the first one returned. Defaults to 0. At least 0. Default: `0`.
- Sort (`sort`, text): How to order the results. Defaults to Miro's own default order. One of: `default` (Default order), `last_modified` (Last modified), `last_opened` (Last opened), `last_created` (Last created), `alphabetically`. Default: `default`.

**Outputs**: The boards this token can see

- `count` (number): Records on this page
- `has_more` (true/false): Whether more records exist
- `items` (list)
- `limit` (number): The page size used
- `offset` (number): The offset that was read
- `total` (number): Total records available

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "createdAt": "2026-01-14T09:12:44Z",
      "createdBy": {
        "id": "3074457345000000000",
        "name": "Ada Lovelace",
        "type": "user"
      },
      "currentUserMembership": {
        "id": "3074457345000000000",
        "name": "Ada Lovelace",
        "role": "owner",
        "type": "board_member"
      },
      "id": "uXjVI4TU3wc=",
      "modifiedAt": "2026-02-02T16:41:08Z",
      "modifiedBy": {
        "id": "3074457345000000000",
        "name": "Ada Lovelace",
        "type": "user"
      },
      "name": "Lodol demo board",
      "owner": {
        "id": "3074457345000000000",
        "name": "Ada Lovelace",
        "type": "user"
      },
      "team": {
        "id": "3074457345000000001",
        "name": "Lodol demo team"
      },
      "type": "board",
      "viewLink": "https://miro.com/app/board/uXjVI4TU3wc=/"
    }
  ],
  "limit": 20,
  "offset": 0,
  "total": 1
}
```

### List items

List the items on a board - sticky notes, shapes, text, cards, frames and more - or narrow to one type. Each item reports its id, type, position, size and its own content.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Item type (`item_type`, text): Only items of this type. Leave empty for every type. One of: `text`, `shape`, `sticky_note` (Sticky note), `image`, `document`, `card`, `app_card` (App card), `preview`, `frame`, `embed`.
- Results per page (`limit`, number): How many to return, 1-50. Defaults to 10. From 1 to 50. Default: `10`.
- Cursor (`cursor`, text): Pass the 'next_cursor' from a previous call to read the next page.

**Outputs**: The board's items

- `count` (number): Records on this page
- `has_more` (true/false): Whether another page exists
- `items` (list)
- `limit` (number): The page size used
- `next_cursor` (text): Pass this as 'cursor' to read the next page
- `total` (number): Total records available

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "createdAt": "2026-02-02T16:40:11Z",
      "createdBy": {
        "id": "3074457345000000000",
        "type": "user"
      },
      "data": {
        "content": "Ship it",
        "shape": "square"
      },
      "geometry": {
        "height": 199.0,
        "width": 199.0
      },
      "id": "3458764600000000001",
      "modifiedAt": "2026-02-02T16:41:08Z",
      "modifiedBy": {
        "id": "3074457345000000000",
        "type": "user"
      },
      "position": {
        "origin": "center",
        "x": 0.0,
        "y": 0.0
      },
      "type": "sticky_note"
    }
  ],
  "limit": 10,
  "next_cursor": null,
  "total": 1
}
```

### Update board

Rename a board or change who can open it from its share link. Only the fields you fill in are sent.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Board name (`name`, text): A new name, up to 60 characters.
- Who can open the share link (`access`, text): Who can open this board from its share link, without being invited. One of: `private` (Private - only people explicitly invited), `view` (Anyone with the link can view), `comment` (Anyone with the link can comment), `edit` (Anyone with the link can edit).

**Outputs**

- `createdAt` (text)
- `createdBy` (object)
- `currentUserMembership` (object)
- `id` (text)
- `modifiedAt` (text)
- `modifiedBy` (object)
- `name` (text)
- `owner` (object)
- `project` (object)
- `team` (object)
- `type` (text)
- `viewLink` (text)

**Example output**

```json
{
  "createdAt": "2026-01-14T09:12:44Z",
  "createdBy": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "currentUserMembership": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "role": "owner",
    "type": "board_member"
  },
  "id": "uXjVI4TU3wc=",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "modifiedBy": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "name": "Lodol demo board",
  "owner": {
    "id": "3074457345000000000",
    "name": "Ada Lovelace",
    "type": "user"
  },
  "team": {
    "id": "3074457345000000001",
    "name": "Lodol demo team"
  },
  "type": "board",
  "viewLink": "https://miro.com/app/board/uXjVI4TU3wc=/"
}
```

### Update card

Change a card's title, description, due date, size or position.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Item ID (`item_id`, text, required): The item to act on, from 'List items' or an earlier step that created it.
- Title (`title`, text): A new header for the card.
- Description (`description`, text): A new description for the card.
- Due date (`due_date`, date and time): A new due date for the card.
- X position (`x`, number): Horizontal position on the board. The board's centre is 0.
- Y position (`y`, number): Vertical position on the board. The board's centre is 0.
- Width (`width`, number): Width in pixels. Leave empty for Miro's default size. At least 1.
- Height (`height`, number): Height in pixels. Leave empty for Miro's default size. At least 1.
- Parent frame ID (`parent_id`, text): A frame to place this item inside. Leave empty to place it directly on the board.

**Outputs**

- `createdAt` (text)
- `data` (object)
- `geometry` (object)
- `id` (text)
- `modifiedAt` (text)
- `parent` (object)
- `position` (object)
- `style` (object)
- `type` (text)

**Example output**

```json
{
  "createdAt": "2026-02-02T16:40:11Z",
  "data": {
    "description": "Cut the release and notify the team",
    "dueDate": "2026-03-14T09:00:00Z",
    "title": "Ship it"
  },
  "geometry": {
    "height": 120.0,
    "width": 320.0
  },
  "id": "3458764600000000004",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "position": {
    "origin": "center",
    "x": 0.0,
    "y": 200.0
  },
  "style": {
    "cardTheme": "#2d9bf0"
  },
  "type": "card"
}
```

### Update sticky note

Change a sticky note's text, colour, alignment, size or position.

**Inputs**

- Board (`board_id`, text, required): The board to act on. Paste its id, or the board's URL such as https://miro.com/app/board/uXjVI4TU3wc=/
- Item ID (`item_id`, text, required): The item to act on, from 'List items' or an earlier step that created it.
- Content (`content`, text): New text for the note.
- Shape (`shape`, text): A new outline for the note. One of: `square`, `rectangle`.
- Colour (`fill_color`, text): A new background colour for the note. One of: `gray`, `light_yellow` (Light yellow), `yellow`, `orange`, `light_green` (Light green), `green`, `dark_green` (Dark green), `cyan`, `light_pink` (Light pink), `pink`, and 6 more.
- Text alignment (`text_align`, text): Horizontal alignment of the text. One of: `left`, `center`, `right`.
- Vertical text alignment (`text_align_vertical`, text): A new vertical alignment for the text. One of: `top`, `middle`, `bottom`.
- X position (`x`, number): Horizontal position on the board. The board's centre is 0.
- Y position (`y`, number): Vertical position on the board. The board's centre is 0.
- Width (`width`, number): Width in pixels. Leave empty for Miro's default size. At least 1.
- Parent frame ID (`parent_id`, text): A frame to place this item inside. Leave empty to place it directly on the board.

**Outputs**

- `createdAt` (text)
- `data` (object)
- `geometry` (object)
- `id` (text)
- `modifiedAt` (text)
- `parent` (object)
- `position` (object)
- `style` (object)
- `type` (text)

**Example output**

```json
{
  "createdAt": "2026-02-02T16:40:11Z",
  "data": {
    "content": "Ship it",
    "shape": "square"
  },
  "geometry": {
    "height": 199.0,
    "width": 199.0
  },
  "id": "3458764600000000001",
  "modifiedAt": "2026-02-02T16:41:08Z",
  "position": {
    "origin": "center",
    "x": 0.0,
    "y": 0.0
  },
  "style": {
    "fillColor": "light_yellow",
    "textAlign": "center",
    "textAlignVertical": "top"
  },
  "type": "sticky_note"
}
```
