Miro
Read and write Miro boards, sticky notes, cards, shapes, text, frames, tags and connectors, and read board members and items.
Turn tickets, tasks and CRM records into board content for planning workshops, and feed decisions captured on boards back into work management systems.
Source actions
17
Destination actions
19
Data types
13
Validation status
Implemented · fixture tested.
Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.
What you can map
board copies
- Copy boardDestinationNot retried automaticallyApproval before production
Copy a board (for example a workshop template) with a new name.
board_copies.create
board members
- Get board memberSource
One board member and role.
board_members.get - List board membersSource
Users with access to a board and their roles; read only.
board_members.list
boards
- Create boardDestinationNot retried automaticallyApproval before production
Create a board with Miro's default sharing policy.
boards.create - Get boardSource
One board with owner, team, space and last-opened details.
boards.get - List boardsSource
Boards the user can access, optionally within a team or space.
boards.list - Update boardDestinationProvider duplicate protectionApproval before production
Rename a board, change its description or move it to another team or space.
boards.update
cards
- Create cardDestinationNot retried automaticallyApproval before production
Add a card to a board.
cards.create - Get cardSource
One card with its data, style, position and geometry.
cards.get - Update cardDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a card.
cards.update
connectors
- Create connectorDestinationNot retried automaticallyApproval before production
Connect two items on a board (frames are not supported as endpoints).
connectors.create - Get connectorSource
One connector.
connectors.get - List connectorsSource
Lines that connect items on a board.
connectors.list - Update connectorDestinationProvider duplicate protectionApproval before production
Change a connector's endpoints, shape, captions or style.
connectors.update
frames
- Create frameDestinationNot retried automaticallyApproval before production
Add a frame to a board.
frames.create - Get frameSource
One frame with its data, style, position and geometry.
frames.get - Update frameDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a frame.
frames.update
item tags
- Attach tag to itemDestinationProvider duplicate protectionApproval before production
Attach an existing tag to a card or sticky note (up to 8 tags per item).
item_tags.create - List item tagsSource
Tags attached to a card or sticky note.
item_tags.list
items
- Get board itemSource
One item of any type.
items.get - List board itemsSource
All items on a board, optionally of one type, or the items inside a frame.
items.list - Move board itemDestinationProvider duplicate protectionApproval before production
Change an item's position or the frame that contains it.
items.update
shapes
- Create shapeDestinationNot retried automaticallyApproval before production
Add a shape to a board.
shapes.create - Get shapeSource
One shape with its data, style, position and geometry.
shapes.get - Update shapeDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a shape.
shapes.update
sticky notes
- Create sticky noteDestinationNot retried automaticallyApproval before production
Add a sticky note to a board.
sticky_notes.create - Get sticky noteSource
One sticky note with its data, style, position and geometry.
sticky_notes.get - Update sticky noteDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a sticky note.
sticky_notes.update
tagged items
- List items with tagSource
Cards and sticky notes that carry a tag.
tagged_items.list
tags
- Create tagDestinationNot retried automaticallyApproval before production
Create a tag on a board. Titles are case-sensitive and must be unique.
tags.create - Get tagSource
One board tag.
tags.get - List tagsSource
Tags defined on a board.
tags.list - Update tagDestinationProvider duplicate protectionApproval before production
Rename or recolour a board tag.
tags.update
texts
- Create text itemDestinationNot retried automaticallyApproval before production
Add a text item to a board.
texts.create - Get text itemSource
One text item with its data, style, position and geometry.
texts.get - Update text itemDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a text item.
texts.update
Authentication
Miro OAuth app with expiring access tokens and a refresh token
Plans and access
All Miro plans can use the REST API through an app created in the developer settings; Free plans are limited to three editable team boards. Calls act as the user who installed the app and see only boards that user can access; board content edits require editor rights on the board.
Test environment
Create a free Developer team in Miro to test apps without affecting production boards.
Rate limits
Credit based: 100,000 credits per minute per user and app; level 1 calls cost 50 credits, level 2 cost 100, level 3 cost 500 and level 4 (board copy) cost 2,000. HTTP 429 with X-RateLimit-Reset when exceeded.
Pagination
Boards, members, tags and items by tag use offset and limit (max 50) with total; items and connectors use cursor with limit 10-50.
Provider events
Board subscriptions (experimental webhooks) for board item events. Nexra event triggers are not yet available; flows run on demand or on a schedule.
Before you build a flow
- Board sharing is never changed: inviting members (share board), changing member roles, removing members and editing sharing or permission policies are not implemented. Boards are created and copied with Miro's default policy.
- Deleting boards, items, tags or connectors, removing tags from items, and ungrouping are not implemented.
- Images, documents, embeds, app cards, mind maps, groups and bulk item creation are not implemented.
- Miro has no modified-since filter on items; flows must read whole boards and compare modifiedAt.
- Tag changes made through the API appear on open boards only after a refresh, as Miro documents.
- Miro documents passing refresh credentials as query parameters; Nexra sends them in the form-encoded request body instead, which the token endpoint accepts, so no secret appears in a URL.
- Miro has no idempotency key; uncertain creates are not repeated automatically.
- Miro's 429 responses carry X-RateLimit-Reset rather than Retry-After; Nexra uses its bounded backoff.
Developer reference
- Create the Miro credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose Miro, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/miro and the Connections API.