Miro
Turn requests and orders into Miro work, and keep status in step across your tools.
25 ways to read, 29 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with Miro, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Create app card
app_cards.createApproval by rule - Copy board
board_copies.createApproval by rule - List board members
board_members.listRead
Example flow
- Miro · List board members
board_members.listDone - Miro · Create app card
app_cards.createMaker-checker - Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches Miro.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to Miro
- Miro's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect a Miro test account before you go live.
For developers
Technical detail
Read and write Miro boards, sticky notes, cards, shapes, text, frames, images, documents, embeds, app cards, doc items, groups, tags and connectors, and read board members, items and token details.
Miro API docs- Source actions
- 25
- Destination actions
- 29
- Data types
- 21
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
app cards3
- Create app cardDestinationNot retried automaticallyApproval before production
Add an app card to a board.
- Get app cardSource
One app card with its data, position and geometry.
- Update app cardDestinationProvider duplicate protectionApproval before production
Update the supplied data, position or size of an app card.
board copies1
- Copy boardDestinationNot retried automaticallyApproval before production
Copy a board (for example a workshop template) with a new name.
board members2
- Get board memberSource
One board member and role.
- List board membersSource
Users with access to a board and their roles; read only.
boards4
- Create boardDestinationNot retried automaticallyApproval before production
Create a board with Miro's default sharing policy.
- Get boardSource
One board with owner, team, space and last-opened details.
- List boardsSource
Boards the user can access, optionally within a team or space.
- Update boardDestinationProvider duplicate protectionApproval before production
Rename a board, change its description or move it to another team or space.
cards3
- Create cardDestinationNot retried automaticallyApproval before production
Add a card to a board.
- Get cardSource
One card with its data, style, position and geometry.
- Update cardDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a card.
connectors4
- Create connectorDestinationNot retried automaticallyApproval before production
Connect two items on a board (frames are not supported as endpoints).
- Get connectorSource
One connector.
- List connectorsSource
Lines that connect items on a board.
- Update connectorDestinationProvider duplicate protectionApproval before production
Change a connector's endpoints, shape, captions or style.
doc items2
- Create doc itemDestinationNot retried automaticallyApproval before production
Add a doc format item written in Markdown to a board.
- Get doc itemSource
One doc format item with its content as HTML or Markdown.
documents3
- Create documentDestinationNot retried automaticallyApproval before production
Add a document to a board.
- Get documentSource
One document with its data, position and geometry.
- Update documentDestinationProvider duplicate protectionApproval before production
Update the supplied data, position or size of a document.
embeds3
- Create embedDestinationNot retried automaticallyApproval before production
Add a embed to a board.
- Get embedSource
One embed with its data, position and geometry.
- Update embedDestinationProvider duplicate protectionApproval before production
Update the supplied data, position or size of a embed.
frames3
- Create frameDestinationNot retried automaticallyApproval before production
Add a frame to a board.
- Get frameSource
One frame with its data, style, position and geometry.
- Update frameDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a frame.
group items1
- List group itemsSource
Items that belong to a group, with their data and position.
groups2
- Create groupDestinationNot retried automaticallyApproval before production
Group items on a board so they move together.
- List groupsSource
Groups on a board with the IDs of the items in each group.
images3
- Create imageDestinationNot retried automaticallyApproval before production
Add a image to a board.
- Get imageSource
One image with its data, position and geometry.
- Update imageDestinationProvider duplicate protectionApproval before production
Update the supplied data, position or size of a image.
item tags2
- Attach tag to itemDestinationProvider duplicate protectionApproval before production
Attach an existing tag to a card or sticky note (up to 8 tags per item).
- List item tagsSource
Tags attached to a card or sticky note.
items3
- Get board itemSource
One item of any type.
- List board itemsSource
All items on a board, optionally of one type, or the items inside a frame.
- Move board itemDestinationProvider duplicate protectionApproval before production
Change an item's position or the frame that contains it.
shapes3
- Create shapeDestinationNot retried automaticallyApproval before production
Add a shape to a board.
- Get shapeSource
One shape with its data, style, position and geometry.
- Update shapeDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a shape.
sticky notes3
- Create sticky noteDestinationNot retried automaticallyApproval before production
Add a sticky note to a board.
- Get sticky noteSource
One sticky note with its data, style, position and geometry.
- Update sticky noteDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a sticky note.
tagged items1
- List items with tagSource
Cards and sticky notes that carry a tag.
tags4
- Create tagDestinationNot retried automaticallyApproval before production
Create a tag on a board. Titles are case-sensitive and must be unique.
- Get tagSource
One board tag.
- List tagsSource
Tags defined on a board.
- Update tagDestinationProvider duplicate protectionApproval before production
Rename or recolour a board tag.
texts3
- Create text itemDestinationNot retried automaticallyApproval before production
Add a text item to a board.
- Get text itemSource
One text item with its data, style, position and geometry.
- Update text itemDestinationProvider duplicate protectionApproval before production
Update the supplied data, style, position or geometry of a text item.
token info1
- Get token detailsSource
The user, team, organization and scopes of the connected access token.
Access and limits
- 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. Flows run on demand, on a schedule, or when a scheduled check finds new or changed records.
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 and documents are added from public HTTPS URLs only; uploading local files, mind maps (experimental API), flowchart shapes and code widgets (experimental), and bulk item creation are not implemented.
- Groups can be listed, read and created. Replacing a group (which assigns a new group ID), ungrouping and deleting groups are not implemented.
- Doc items can be created from Markdown and read as HTML or Markdown; Miro has no update endpoint for doc items.
- Organization, team and user-management (SCIM) APIs, audit logs and board export are Enterprise administration features and 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 (a Unix epoch timestamp) rather than Retry-After; Nexra waits until that reset, up to its 20-second in-process limit, and otherwise reports the reset time for a later retry.
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.