# Miro Developer Platform Documentation
> The Miro Developer Platform enables developers to create apps and integrations on top of Miro boards to add extra or custom functionality, and to sync Miro with third-party products.
Append .md to any documentation page URL to get its markdown version.
## Guides
- [Introduction](https://developers.miro.com/docs/introduction.md): The Miro Developer Platform offers tools, documentation, and lots of sample apps to help you build apps that extend Miro board functionality.
- [Web SDK vs REST API](https://developers.miro.com/docs/miro-web-sdk-vs-rest-apis.md)
- [Developer team](https://developers.miro.com/docs/developer-team.md): Create a Developer team where you can safely test apps in isolation, as you develop them.
- [Create a Developer team](https://developers.miro.com/docs/create-a-developer-team.md): Before you start building apps, create a Developer team: it's your sandboxed environment to develop and test apps.
- [Change the Developer team name](https://developers.miro.com/docs/change-the-developer-team-name.md): You can change the default name assigned to the Developer team to a custom one.
- [Delete the Developer team](https://developers.miro.com/docs/delete-the-developer-team.md): If you decide to delete the Developer team associated with your user account name, keep in mind that the operation is irreversible.
- [Migrating a developer app](https://developers.miro.com/docs/migrating-a-developer-app.md): Developers may occasionally need to move an app from one Miro account or team to another during testing or staging. This guide covers best practices for migrating your app and its associated settings to another account or team.
- [App manifest](https://developers.miro.com/docs/app-manifest.md): Reference documentation for the YAML app manifest and its fields.
- [Boards](https://developers.miro.com/docs/boards.md): Miro apps can position and move items on a board by specifying coordinates, which can be relative to the board or to a parent item.
- [Board items](https://developers.miro.com/docs/board-items.md): Board items help board users share information on a board.
- [Children inside parent items](https://developers.miro.com/docs/children-inside-parent-items.md): Parent items can contain other board items as their children. The parent/child relationship affects the positioning reference and item resizing.
- [App card](https://developers.miro.com/docs/app-card.md)
- [App card use cases](https://developers.miro.com/docs/app-card-use-cases.md)
- [Edit, update, and keep app cards synced](https://developers.miro.com/docs/edit-update-and-keep-app-cards-synced.md)
- [Backend flow for app cards](https://developers.miro.com/docs/backend-flow-for-app-cards.md)
- [Card](https://developers.miro.com/docs/card-1.md): Create cards to track task progress: who owns a task, and when it's due.
- [Connector](https://developers.miro.com/docs/connector_intro.md): Create connectors to connect two items on a board, create diagrams, and map workflows in a visual manner.
- [Embed](https://developers.miro.com/docs/embed-2.md): Embed external content from third-party providers to access it on a board.
- [Events](https://developers.miro.com/docs/events.md): Understand the differences between all of the events offered, including: Board UI events, Realtime events, and others
- [Frame](https://developers.miro.com/docs/frame-1.md): Frames group items on a board.
- [Image](https://developers.miro.com/docs/image-1.md): Add images to a board: specify a URL or drop a file on a board.
- [Mind map (Experimental)](https://developers.miro.com/docs/mind-maps.md): Create, read, update, or delete mind maps to programmatically represent and interact with complex structures of information into Miro boards. With minimal development effort, you can also seamlessly import and export from third-party tools, or transform mind map information into other item types in Miro.
- [Preview](https://developers.miro.com/docs/preview-1.md): Preview external content in a tile.
- [Shape](https://developers.miro.com/docs/shape-1.md): Draw geometric shapes on a board.
- [Sticky note](https://developers.miro.com/docs/stickynote-1.md): Handy note-taking on a board.
- [Storage](https://developers.miro.com/docs/storage.md): Understand the differences between the three different types of storage offered: App Metadata, Board Item Metadata, and Storage Collection.
- [Text](https://developers.miro.com/docs/text-1.md): Add an input field to enter text on a board.
- [Tag](https://developers.miro.com/docs/tag-concepts.md): Add tags to cards and sticky notes to sort information.
- [Migrate from v1 to v2](https://developers.miro.com/docs/migrate-from-v1-to-v2.md): This guide helps you migrate to the newer and more robust Developer Platform v2, highlighting key changes and necessary steps for a smooth transition.
- [Web SDK comparison guide](https://developers.miro.com/docs/web-sdk-comparison-guide.md)
- [Web SDK reference guide](https://developers.miro.com/docs/web-sdk-reference-guide.md)
- [REST API comparison guide](https://developers.miro.com/docs/rest-api-comparison-guide.md)
- [REST API reference guide](https://developers.miro.com/docs/rest-api-reference-guide.md)
- [Miro's MCP Server](https://developers.miro.com/docs/miro-mcp.md): Learn how to connect AI agents to your Miro team.
- [Getting started with Miro's MCP Server](https://developers.miro.com/docs/connecting-to-miro-mcp.md): Learn how to connect Miro's MCP Server with your AI tool of choice.
- [MCP use cases and example prompts](https://developers.miro.com/docs/mcp-use-cases-and-example-prompts.md): The jobs the Miro MCP server helps you get done, with prompts you can copy and adapt.
- [Miro MCP Server Tools](https://developers.miro.com/docs/miro-mcp-tools.md): Learn what you can do with Miro's MCP Server via the tools we extend to agents.
- [Connecting Miro's MCP Server to MCP Clients](https://developers.miro.com/docs/connecting-miro-mcp-to-ai-coding-tools.md): Step by step guides on how to configure Miro's MCP Server to MCP Clients.
- [MCP Tutorials](https://developers.miro.com/docs/mcp-tutorials.md): MCP Tutorials to help you get started using Miro's MCP Server
- [Tutorial: How to Build a Landing Page from a Miro Board w/ Lovable + Miro MCP](https://developers.miro.com/docs/tutorial-how-to-build-a-lovable-landing-page-based-on-miro-board-context.md): How to take a simple product idea, expanding it into a full product concept using Miro MCP + Lovable.
- [Tutorial: Build a Node.js app from a Miro Board with Miro MCP + Cursor](https://developers.miro.com/docs/tutorial-build-a-nodejs-app-from-a-miro-board-with-miro-mcp-cursor.md): Use product requirements, diagrams, and architecture notes from a Miro board and automatically generate a running Node.js web application.
- [Tutorial: How to Generate Diagrams from Code w/ Miro MCP & VSCode + GitHub Copilot](https://developers.miro.com/docs/guided-tutorial-generating-code-diagrams-with-miro-mcp-vs-code.md): Use Miro's MCP server within VSCode + GitHub Copilot to automatically generate technical diagrams from code.
- [Miro MCP Server Troubleshooting](https://developers.miro.com/docs/miro-mcp-server-faq-and-troubleshooting.md): Find solutions to issues and common errors with Miro's MCP Server.
- [Miro MCP Server — Frequently Asked Questions](https://developers.miro.com/docs/miro-mcp-server-frequently-asked-questions.md): Questions we hear most often about connecting AI tools to Miro through the MCP Server
- [MCP Usage and Daily Limits](https://developers.miro.com/docs/mcp-usage-and-daily-limits.md): Understand MCP tool-call limits by plan and how to get more
- [MCP Server vs REST API](https://developers.miro.com/docs/mcp-server-vs-rest-api.md): Differences between the MCP Server and REST APIs and when to use each one.
- [OIDC support for Miro MCP](https://developers.miro.com/docs/oidc-support-for-miro-mcp.md): Keep your company data safe while connecting Miro to AI tools like Claude.
- [Introduction](https://developers.miro.com/docs/miro-web-sdk-introduction.md): A full-fledged JavaScript/TypeScript SDK to build apps that interact with Miro boards to enhance the user experience.
- [Miro Web SDK and board items](https://developers.miro.com/docs/miro-web-sdk-board-items-crud.md): A quick overview of the CRUD operations that the Web SDK can perform on supported board items.
- [App panels and modals](https://developers.miro.com/docs/app-panels-and-modals.md): Apps run inside iframes on the board. App panels and modals help you structure the flow of user interaction in your app.
- [Onboarding essentials](https://developers.miro.com/docs/guided-onboarding.md): A guided path with practical tasks to onboard you to the Miro Developer Platform.
- [1) Create your first board item with the Web SDK](https://developers.miro.com/docs/task-1-create-your-first-board-item-with-the-web-sdk.md): Use the Miro Web SDK to create a board in the first onboarding task.
- [2) Update an item's properties with `sync()`](https://developers.miro.com/docs/task-2-update-an-items-properties-with-sync.md): In the second task of the guided onboarding, you modify and then update board items with the `sync()` method.
- [3) Run your first app in Miro](https://developers.miro.com/docs/task-3-run-your-first-app-in-miro.md): In the third task of the guided onboarding, you create and run an app on a board.
- [4) Interact with your app in Miro](https://developers.miro.com/docs/task-4-interact-with-your-app-in-miro.md): In the fourth task of the guided onboarding, you interact as a board user with your running app.
- [5) Join the conversation](https://developers.miro.com/docs/task-5-join-the-conversation.md): In the fifth task of the guided onboarding, you join the Miro Developer Community to ask questions and exchange ideas.
- [6) Install a Marketplace app](https://developers.miro.com/docs/task-6-install-a-marketplace-app.md): In the sixth task of the guided onboarding, you install an app from the Miro Marketplace on a board.
- [7) Add Mirotone to an existing app](https://developers.miro.com/docs/task-7-add-mirotone-to-an-existing-app.md): In the seventh task of the guided onboarding, you style the look and feel of an app using Mirotone components.
- [Onboarding wrap-up](https://developers.miro.com/docs/onboarding-wrap-up.md): This is the wrap-up of the guided onboarding: congratulations!
- [Challenge: Where's Miro?](https://developers.miro.com/docs/challenge-wheres-miro.md): Test out your Web SDK skills with this optional challenge.
- [Submit and share your app](https://developers.miro.com/docs/submit-and-share-your-app.md): Learn how to publish your app to the Miro Marketplace and reach millions of Miro users.
- [1) Share an app outside of a developer team](https://developers.miro.com/docs/share-an-app-outside-of-a-developer-team.md): Share the install link of your app so that other users can install and use it.
- [2) Understand app submission requirements](https://developers.miro.com/docs/understand-app-submission-requirements.md): Get familiar with the app submission process, before you launch your app.
- [3) Publish a Miro app](https://developers.miro.com/docs/publish-a-miro-app.md): Learn how to publish your app to the Miro Marketplace and reach millions of Miro users.
- [4) Share your ideas with us](https://developers.miro.com/docs/share-your-ideas-with-us.md): Share ideas with and get inspiration from the community.
- [Submit and share wrap-up](https://developers.miro.com/docs/submit-and-share-wrap-up.md): This is the wrap-up of the submit and share your app activities: congratulations!
- [In-depth training modules](https://developers.miro.com/docs/in-depth-training-modules.md): Advanced trainings to learn more complex use cases that leverage the Miro Web SDK and REST API.
- [1) Create your 1st Miro app locally](https://developers.miro.com/docs/training-1-create-your-1st-miro-app-locally.md): In this training you create, develop, and run a Miro app on your local machine.
- [2) Build a full-stack Miro app](https://developers.miro.com/docs/2-build-a-fullstack-miro-app.md): In this training you leverage the Miro Web SDK and REST API to create a full-stack Miro app.
- [Quickstart](https://developers.miro.com/docs/try-out-the-web-sdk.md): Get started, try the SDK in less than 1 minute, and use the Miro Web SDK in the developer console to get acquainted with its feature set.
- [Video: try the Web SDK in less than 1 minute](https://developers.miro.com/docs/try-out-the-web-sdk-in-less-than-1-minute.md): Get started in less than 1 minute: watch the video walkthrough and use the Miro Web SDK in the developer console to get acquainted with its feature set.
- [Build your first Hello World app](https://developers.miro.com/docs/build-your-first-hello-app.md): Learn how to build your first app with the Miro Developer Platform.
- [Build a Web SDK app](https://developers.miro.com/docs/build-your-first-hello-world-app.md): The Miro Web SDK sample app includes boilerplate and scaffolding to make it fast and easy to run a Miro app on a board.
- [Build a full-stack (Next.js) app](https://developers.miro.com/docs/build-your-first-full-stack-hello-world-app.md): This sample app includes boilerplate and scaffolding to make it fast and easy to run a full-stack (Next.js) Miro app on a board.
- [Enable running apps as instant apps](https://developers.miro.com/docs/manually-create-an-app.md): Apps that use only the Miro Web SDK and that don't need OAuth are on a fast-lane to reach Miro users.
- [How-Tos & tutorials](https://developers.miro.com/docs/web-sdk-how-tos.md): Short how-tos and step-by-step tutorials to walk you through typical use cases when working with the Miro Web SDK.
- [Use the browser developer tools with the Miro Web SDK](https://developers.miro.com/docs/use-the-developer-tools-with-the-miro-web-sdk.md): Use the developer console to explore the Miro Web SDK, to experiment, and to debug your app.
- [Update and sync item properties](https://developers.miro.com/docs/update-and-sync-item-properties.md): Update an item's properties, and then sync the item to propagate the changes to the board.
- [Add icon click to your app](https://developers.miro.com/docs/add-icon-click-to-your-app.md): Enable clicking an icon to call a function that performs an action.
- [Add an icon to your app](https://developers.miro.com/docs/add-a-logo-to-your-app.md): If your app includes a UI to complement the Miro UI, add a custom app icon to make it easy to visually identify your app.
- [Add drag and drop to your app](https://developers.miro.com/docs/add-drag-and-drop-to-your-app.md): Enable dragging and dropping HTML elements from an open panel to the current board.
- [Add permission scopes to your app](https://developers.miro.com/docs/add-permission-scopes-to-your-app.md): Add specific permission scopes to your app so that it can access only the user data it needs to work.
- [Add search and filter to your app](https://developers.miro.com/docs/adding-search-and-filter-to-an-sdk-app.md): Add search and filter functionality to an app built with the Miro Web SDK.
- [Build a calendar app in Miro](https://developers.miro.com/docs/building-a-calendar-app-in-miro.md): Use the Miro Web SDK to build a calendar app for Miro boards.
- [Convert sticky notes to shapes](https://developers.miro.com/docs/converting-sticky-notes-to-shapes.md): Use the Miro Web SDK to build an app for Miro boards that converts user-selected sticky notes to shapes.
- [Create mind map from CSV](https://developers.miro.com/docs/create-mind-map-from-csv.md): Use the Miro Web SDK to build an app that imports data from a CSV file and automatically creates a mind map on a Miro board.
- [Add custom actions to your app](https://developers.miro.com/docs/add-custom-actions-to-your-app.md): Custom actions are a quick way to get one or more tasks done with your apps. Users can launch a custom action associated with your app through the context menu of a board item.
- [Deploy a Miro app](https://developers.miro.com/docs/deploy-a-miro-app.md): Learn how to host your app publicly and distribute it through Miro's Marketplace.
- [Log in to a third-party service using OAuth](https://developers.miro.com/docs/log-in-to-a-third-party-service-using-oauth.md): This guide teaches you to how to handle logging into a third-party service (Slack) using OAuth. The guide will teach you how to store user information using local storage.
- [Enable 2-way sync between app cards and GitHub cards](https://developers.miro.com/docs/enable-2-way-sync-between-app-cards-and-github-cards.md): Use the Miro REST API and Web SDK to build an app that enables syncing data between Miro app cards on a Miro board and connected GitHub cards on a GitHub project board.
- [Enable REST API authentication from Miro's Web SDK authorization](https://developers.miro.com/docs/enable_api_authentication_from_sdk_authorization.md)
- [Integrate a digital asset manager in Miro](https://developers.miro.com/docs/integrate-a-digital-asset-manager-in-miro.md): Make the images, logos, and other assets you need available directly in a Miro board, when you need them.
- [Convert frame coordinates to board coordinates](https://developers.miro.com/docs/frame-coordinates-to-board-coordinates.md): Convert `x` and `y` values of a board item from relative to the top-left corner of a parent frame to relative to the center of the board.
- [SVG app icon optimization guidelines](https://developers.miro.com/docs/svg-app-icon-optimization.md): Guidelines and recommendations to optimize SVG files to be correctly displayed in apps and metadata.
- [Upload images and SVGs as base64-encoded strings](https://developers.miro.com/docs/upload-images-and-svgs-as-base64-encoded-strings.md): Encode images and SVG files to base64 strings so that you can upload and use them as data URL strings with the Miro Web SDK.
- [Connect the Miro Web SDK to a backend (Firebase)](https://developers.miro.com/docs/connect-the-miro-web-sdk-to-a-backend-firebase.md): Create a Node.js application that leverages the Miro Web SDK to send and retrieve data from a backend and populate a Miro board.
- [Video: Deploy a Next.js App on AWS Amplify](https://developers.miro.com/docs/video-deploy-a-nextjs-app-on-aws-amplify.md): Deploy a Miro NextJS app to AWS Amplify with environment variables in under 10 minutes.
- [Video: Integrate OpenAI + Miro](https://developers.miro.com/docs/video-integrate-openai-miro.md): Get started in just 15 minutes: unlock endless possibilities by integrating the Miro Web SDK with generative AI (OpenAI).
- [Build collaborative app experiences](https://developers.miro.com/docs/build-collaborative-app-experiences.md): Use sessions, real-time storage, and events in the Web SDK to build an app that enables collaborative experiences between facilitators and participants on a Miro board.
- [Display banner/modal on a Miro board using DynamoDB](https://developers.miro.com/docs/display-bannermodal-on-a-miro-board-using-dynamodb.md)
- [Display banner/modal on a Miro board using AWS S3](https://developers.miro.com/docs/display-bannermodal-on-a-miro-board-using-aws-s3.md)
- [Reference](https://developers.miro.com/docs/sdk-reference.md)
- [Interact with boards and items](https://developers.miro.com/docs/websdk-reference-interact-with-boards-and-items.md)
- [Rate limiting](https://developers.miro.com/docs/websdk-reference-rate-limiting.md)
- [Error handling](https://developers.miro.com/docs/websdk-reference-error-handling.md)
- [Board](https://developers.miro.com/docs/websdk-reference-board.md)
- [Card](https://developers.miro.com/docs/websdk-reference-card.md)
- [Board UI](https://developers.miro.com/docs/websdk-reference-ui.md)
- [Viewport](https://developers.miro.com/docs/websdk-reference-viewport.md)
- [Notifications](https://developers.miro.com/docs/websdk-reference-notifications.md)
- [App card](https://developers.miro.com/docs/websdk-reference-app-card.md)
- [Experimental](https://developers.miro.com/docs/websdk-reference-experimental.md)
- [Realtime Events](https://developers.miro.com/docs/websdk-reference-events.md)
- [Tag](https://developers.miro.com/docs/websdk-reference-tag.md)
- [Custom Action Management](https://developers.miro.com/docs/websdk-reference-custom-action-management.md)
- [Shape](https://developers.miro.com/docs/websdk-reference-shape.md)
- [Frame](https://developers.miro.com/docs/websdk-reference-frame.md)
- [Image](https://developers.miro.com/docs/websdk-reference-image.md)
- [Sticky Note](https://developers.miro.com/docs/websdk-reference-sticky-note.md)
- [Shape experimental](https://developers.miro.com/docs/websdk-reference-shape-experimental.md)
- [Embed](https://developers.miro.com/docs/websdk-reference-embed.md)
- [Connector](https://developers.miro.com/docs/websdk-reference-connector.md)
- [Unsupported](https://developers.miro.com/docs/websdk-reference-unsupported.md)
- [Mindmap Node](https://developers.miro.com/docs/websdk-reference-mindmap-node.md)
- [Preview](https://developers.miro.com/docs/websdk-reference-preview.md)
- [Text](https://developers.miro.com/docs/websdk-reference-text.md)
- [Storage collection](https://developers.miro.com/docs/websdk-reference-collection.md)
- [Storage](https://developers.miro.com/docs/websdk-reference-storage.md)
- [Collaboration](https://developers.miro.com/docs/websdk-reference-collaboration.md)
- [Session](https://developers.miro.com/docs/websdk-reference-session.md)
- [Attention](https://developers.miro.com/docs/websdk-reference-attention.md)
- [Group](https://developers.miro.com/docs/websdk-reference-group.md)
- [History](https://developers.miro.com/docs/websdk-reference-history.md)
- [Tools](https://developers.miro.com/docs/websdk-reference-tools.md)
- [Introduction](https://developers.miro.com/docs/miro-rest-api-introduction.md): Learn what you can do with Miro's REST APIs.
- [Quickstart](https://developers.miro.com/docs/rest-api-build-your-first-hello-world-app.md): Make your first REST API call in less than 3 minutes.
- [Video: try the REST API in less than 3 minutes](https://developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes.md): Get started in less than 3 minutes: watch the video walkthrough and make your first REST API call to get acquainted with the API feature set.
- [Build your first Hello World REST API app](https://developers.miro.com/docs/build-your-first-hello-world-rest-api-app.md): This guide shows you how to create a Miro app leveraging the REST API.
- [How-To's & tutorials](https://developers.miro.com/docs/rest-api-how-tos.md): Short how-tos and step-by-step tutorials to walk you through typical use cases when working with the Miro REST API.
- [Get started with OAuth 2.0 and Miro](https://developers.miro.com/docs/getting-started-with-oauth.md): A guide to authenticating a user in Miro with the OAuth 2.0 authorization code flow.
- [Create sticky notes and tags](https://developers.miro.com/docs/working-with-sticky-notes-and-tags-with-the-rest-api.md): This guide walks you through a typical use case to create sticky notes with tags via Miro’s REST API. Code snippets shared in Node.js.
- [Convert code to diagram with Miro PlantUML](https://developers.miro.com/docs/code-to-diagram-with-miro-plantuml.md)
- [Get user info and email](https://developers.miro.com/docs/get-user-info-and-email.md): Use the Miro Enterprise REST API to retrieve a list of team members with their email information.
- [Create an image from a data URL source](https://developers.miro.com/docs/create-an-image-from-a-data-url-source.md): Use the REST API to create an image item by passing a base64-encoded image in the API request.
- [Work with connectors](https://developers.miro.com/docs/work-with-connectors.md)
- [Securely manage boards and teams at scale](https://developers.miro.com/docs/teams-api-securely-manage-boards-teams-at-scale.md): Administrators can use Miro's Team API to manage user and team access rights in large organizations.
- [Set up a test endpoint for webhooks with Pipedream](https://developers.miro.com/docs/set-up-a-test-endpoint-for-webhooks.md): Use the REST API webhooks and Pipedream to set up an endpoint for testing purposes.
- [Troubleshoot OAuth2.0](https://developers.miro.com/docs/troubleshooting-oauth20.md): Common issues and solutions for errors encountered during implementation of the OAuth2.0 authorization flow and subsequent requests to a REST API.
- [Video: OAuth Essentials for Frontenders](https://developers.miro.com/docs/video-oauth-essentials-for-frontenders.md): Learn the essentials of OAuth2.0 in order to retrieve an access token for requests to a REST API.
- [Miro Node.js client](https://developers.miro.com/docs/miro-nodejs-api-client.md): A Node.js client library to use Miro REST API features and functionality in JavaScript apps based on Node.js.
- [Miro Node.js client Readme](https://developers.miro.com/docs/miro-nodejs-readme.md): The Miro Node.js API client is a JavaScript library that enables Miro REST API functionality in Miro apps based on Node.js.
- [Miro Node.js client quickstart for task automation](https://developers.miro.com/docs/miro-nodejs-quickstart.md): Build a simple app based on the Miro Node.js client library to implement basic task automation on a Miro board.
- [Miro Node.js client quickstart with OAuth and Express](https://developers.miro.com/docs/miro-nodejs-quickstart-with-oauth-and-express.md): Build a simple app based on the Miro Node.js client library, the OAuth 2.0 code grant flow, and the [Express](http://expressjs.com/) JavaScript web framework.
- [Implement data storage](https://developers.miro.com/docs/miro-nodejs-implement-storage-for-data-persistence.md): Implement a `Storage` interface to enable the `Miro` class to automatically manage access and refresh tokens.
- [Miro Python client](https://developers.miro.com/docs/miro-python-client.md)
- [Miro Marketplace](https://developers.miro.com/docs/miro-marketplace.md): Contribute to Miro’s public ecosystem of apps and integrations where you can reach 100+ million users.
- [Get ready for Marketplace](https://developers.miro.com/docs/get-ready-for-marketplace.md): Learn about the process and requirements for submitting your app for review.
- [App design guidelines](https://developers.miro.com/docs/design-guidelines.md): Learn how to create apps with a consistent and efficient user experience.
- [App security guidelines](https://developers.miro.com/docs/security-guidelines.md): Learn about the security verification and approval process for apps on the Miro Marketplace.
- [App development policy](https://developers.miro.com/docs/app-development-policy.md): Learn how to make sure your apps are secure, user-friendly, and compliant with Miro's Marketplace policies.
- [App listing guidelines](https://developers.miro.com/docs/marketplace-listing-guidelines.md): Learn best practices for branding your app and optimizing your app's Marketplace listing.
- [Build and deploy your app](https://developers.miro.com/docs/build-and-deploy-your-app.md): Learn about building and deploying your app for Miro before submission for review.
- [Your Marketplace profile](https://developers.miro.com/docs/marketplace-profile.md): Learn about your Marketplace profile on Miro Marketplace and how it helps building recognition and your brand.
- [Publish your app](https://developers.miro.com/docs/publish-your-app.md): Learn how we review and approve your app for publishing in Miro Marketplace.
- [Monetization](https://developers.miro.com/docs/monetization.md): Build a business on top of Miro’s public Marketplace where you can distribute apps and integrations to a global audience of more than 70 million Miro users.
- [Monetization with Miro + Stripe](https://developers.miro.com/docs/monetization-with-miro-stripe.md): Build your business on Miro and add monetization to your apps by integrating with Stripe.
- [Monetization with Miro + Salable (Subscription Management)](https://developers.miro.com/docs/monetization-with-miro-salable.md): Leverage Salable to create Miro apps with advanced monetization features.
- [Provide pricing details for your app](https://developers.miro.com/docs/provide-pricing-details-for-your-app.md): Leverage the Miro Marketplace’s native pricing feature to transparently display the cost of your app to Miro users and potential customers.
- [Introduction](https://developers.miro.com/docs/scim.md)
- [User lifecycle management](https://developers.miro.com/docs/scim-api-user-lifecycle-management.md): Learn about managing user access with the Miro SCIM API.
- [Getting started](https://developers.miro.com/docs/how-to-enable-scim.md)
- [Rate limits](https://developers.miro.com/docs/scim-rate-limits.md)
- [Users](https://developers.miro.com/docs/users.md)
- [Groups](https://developers.miro.com/docs/groups.md)
- [Discovery features](https://developers.miro.com/docs/discovery-features.md)
- [Introduction](https://developers.miro.com/docs/miro-live-embed-introduction.md): Miro Live Embed enables embedding a board in a website to collaborate with other users in real time or to showcase a portfolio.
- [Authentication](https://developers.miro.com/docs/miro-live-embed-authentication.md): Understand board access rights and granting users permissions to view Miro Live Embed boards.
- [oEmbed support](https://developers.miro.com/docs/oembed-live-embed.md): Miro boards support the oEmbed standard. It enables programmatically discovering and embedding Miro boards into third-party sites by fetching the board's URL.
- [How-Tos & tutorials](https://developers.miro.com/docs/embed-tutorials.md): Short how-tos and step-by-step tutorials to walk you through typical use cases when embedding Miro boards on external websites with Miro’s Embed API (Miro Live Embed and BoardsPicker)
- [Live Embed with a direct link](https://developers.miro.com/docs/miro-live-embed-with-a-direct-link.md): Embed a Miro board inside an iframe with a direct link.
- [Live Embed view-only mode](https://developers.miro.com/docs/miro-live-embed-view-only-mode.md): Embed a Miro board in view-only mode with minimal UI inside an iframe with a direct link.
- [Live Embed with BoardsPicker for registered users](https://developers.miro.com/docs/miro-live-embed-with-boardspicker-registered.md): Embed Miro boards in a website with BoardsPicker to enable setting additional access permissions for registered Miro users when they access the embedded boards.
- [Live Embed with BoardsPicker for unregistered users](https://developers.miro.com/docs/miro-live-embed-with-boardspicker-unregistered.md): Embed temporary Miro boards in a website with BoardsPicker to share embedded boards with other users, without being in a partnership with Miro.
- [Reference](https://developers.miro.com/docs/miro-live-embed-reference.md): A reference with an overview of the arguments of the `miroBoardsPicker.open` method: what they are, what values they accept, and how to pass them when using the method.
- [Resources overview](https://developers.miro.com/docs/resources.md): Explore the essential resources for developers.
- [Policies](https://developers.miro.com/docs/policies.md): Understand the Miro Developer Platform’s terms of use, app development policy, and more.
- [Lifecycle policy](https://developers.miro.com/docs/lifecycle-policy.md): Learn to navigate Miro's product lifecycle stages.
- [Deprecation policy](https://developers.miro.com/docs/miro-developer-platform-deprecation-policy.md)
## API Reference
- [Introduction](https://developers.miro.com/reference/overview.md)
- [Permission scopes](https://developers.miro.com/reference/scopes.md): Overview of Miro's user access control through scopes, defining app permissions for interacting with boards and resources via REST API and Web SDK.
- [Rate limiting](https://developers.miro.com/reference/rate-limiting.md): Learn about rate limiting in our REST APIs, including usage guidelines, error handling, and best practices for developers.
- [Step 3: Exchange authorization code with access token](https://developers.miro.com/reference/exchange-authorization-code-with-access-token.md): Exchange the authorization code returned to your redirect URI for an access token and a refresh token.
- [Step 5: Get new access token using refresh token](https://developers.miro.com/reference/get-new-access-token-using-refresh-token.md)
- [Get access token context](https://developers.miro.com/reference/get-access-token-context.md): Get information about an access token, such as the token type, scopes, team, user, token creation date and time, and the user who created the token.
- [Revoke token (v2)](https://developers.miro.com/reference/revoke-token-v2.md): Revoke the current access token. Revoking an access token means that the access token will no longer work. When an access token is revoked, the refresh token is also revoked and no longer valid. This does not uninstall the application for the user.
- [Create board](https://developers.miro.com/reference/create-board-1.md): Creates a board with the specified name and sharing policies.

Note: Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Delete tag](https://developers.miro.com/reference/delete-tag).
Note: Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Update tag](https://developers.miro.com/reference/update-tag), [Delete tag](https://developers.miro.com/reference/delete-tag).
Note: Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Update tag](https://developers.miro.com/reference/update-tag), [Delete tag](https://developers.miro.com/reference/delete-tag).
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [List of projects](https://developers.miro.com/reference/enterprise-get-projects.md): Retrieves the list of projects in an existing team of an organization. You can retrieve all projects, including all private projects (projects that haven't been specifically shared with you) by enabling Content Admin permissions. To enable Content Admin permissions, see [Content Admin permissions for Company Admins](https://help.miro.com/hc/en-us/articles/360012777280-Content-Admin-permissions-for-Company-Admins).This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get project](https://developers.miro.com/reference/enterprise-get-project.md): Retrieves project information, such as a name for an existing project.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update project](https://developers.miro.com/reference/enterprise-update-project.md): Update information about a project, such as the project name.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Delete project](https://developers.miro.com/reference/enterprise-delete-project.md): Deletes a project. After a project is deleted, all boards and users that belong to the project remain in the team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get project settings](https://developers.miro.com/reference/enterprise-get-project-settings.md): Retrieves the project settings.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update project settings](https://developers.miro.com/reference/enterprise-update-project-settings.md): Updates the settings of a project.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Add member in a project](https://developers.miro.com/reference/enterprise-add-project-member.md): Add a Miro user to a project.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [List of project members](https://developers.miro.com/reference/enterprise-get-project-members.md): Retrieves the list of members for a specific project.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get project member](https://developers.miro.com/reference/enterprise-get-project-member.md): Retrieves information for a specific project member.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update project member](https://developers.miro.com/reference/enterprise-update-project-member.md): Updates details of a project member, such as the member's role.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Remove project member](https://developers.miro.com/reference/enterprise-delete-project-member.md): Remove a member from a project. The user remains in the team even after the member is removed from a project.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get organization info](https://developers.miro.com/reference/enterprise-get-organization.md): Retrieves organization information.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get organization members](https://developers.miro.com/reference/enterprise-get-organization-members.md): Retrieves organization members based on the organization ID and the cursor, or based on the user emails provided in the request.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get organization member](https://developers.miro.com/reference/enterprise-get-organization-member.md): Retrieves organization member information for an existing organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Create team](https://developers.miro.com/reference/enterprise-create-team.md): Creates a new team in an existing organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [List teams](https://developers.miro.com/reference/enterprise-get-teams.md): Retrieves list of teams in an existing organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get team](https://developers.miro.com/reference/enterprise-get-team.md): Retrieves team information for an existing team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update team](https://developers.miro.com/reference/enterprise-update-team.md): Updates an existing team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Delete team](https://developers.miro.com/reference/enterprise-delete-team.md): Deletes an existing team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get default team settings](https://developers.miro.com/reference/enterprise-get-default-team-settings.md): Retrieves default team settings of an existing organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get team settings](https://developers.miro.com/reference/enterprise-get-team-settings.md): Retrieves team settings of an existing team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update team settings](https://developers.miro.com/reference/enterprise-update-team-settings.md): Updates team settings of an existing team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Invite team members](https://developers.miro.com/reference/enterprise-invite-team-member.md): Invites a new Miro user to an existing team. The user must exist in your Miro organization. Users who do not exist in your Miro organization can be invited to the team via [SCIM](https://developers.miro.com/docs/scim) and an external identity provider, such as Okta or Azure Active Directory.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [List team members](https://developers.miro.com/reference/enterprise-get-team-members.md): Retrieves team members by cursor.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get team member](https://developers.miro.com/reference/enterprise-get-team-member.md): Retrieves team member by id.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update team member](https://developers.miro.com/reference/enterprise-update-team-member.md): Updates team member role in team by id.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Delete team member from team](https://developers.miro.com/reference/enterprise-delete-team-member.md): Deletes team member from team by id.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Reset all sessions of a user](https://developers.miro.com/reference/enterprise-post-user-sessions-reset.md): Reset all sessions of a user. Admins can now take immediate action to restrict user access to company data in case of security concerns. Calling this API ends all active Miro sessions across devices for a particular user, requiring the user to sign in again. This is useful in situations where a user leaves the company, their credentials are compromised, or there's suspicious activity on their account.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get organization settings](https://developers.miro.com/reference/enterprise-dataclassification-organization-settings-get.md): Retrieves board classification settings for an existing organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Bulk update boards classification](https://developers.miro.com/reference/enterprise-dataclassification-team-boards-bulk.md): Updates board classification for not-classified only or all boards in an existing team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get team settings](https://developers.miro.com/reference/enterprise-dataclassification-team-settings-get.md): Retrieves board classification settings for an existing team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update team settings](https://developers.miro.com/reference/enterprise-dataclassification-team-settings-set.md): Updates board classification settings for an existing team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get board classification](https://developers.miro.com/reference/enterprise-dataclassification-board-get.md): Retrieves board classification for a board.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update board classification](https://developers.miro.com/reference/enterprise-dataclassification-board-set.md): Updates board classification for an existing board.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Audit Logs](https://developers.miro.com/reference/audit-logs.md) - [Get audit logs](https://developers.miro.com/reference/enterprise-get-audit-logs.md): Retrieves a page of audit events from the last 90 days. If you want to retrieve data that is older than 90 days, you can use the CSV export feature.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Create user group](https://developers.miro.com/reference/enterprise-create-group.md): Creates a new user group in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get user group](https://developers.miro.com/reference/enterprise-get-group.md): Retrieves a user group in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Update user group](https://developers.miro.com/reference/enterprise-update-group.md): Updates a user group in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Delete user group](https://developers.miro.com/reference/enterprise-delete-group.md): Deletes a user group from an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [List of user group members](https://developers.miro.com/reference/enterprise-get-group-members.md): Retrieves the list of members who are part of a team in an existing organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Create user group member](https://developers.miro.com/reference/enterprise-create-group-member.md): Adds a member to a user group in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Bulk edit of membership in user group](https://developers.miro.com/reference/enterprise-update-group-members.md): Add and remove members in one request. For example, remove user A and add user B. You can add or remove up to 500 users at a time.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get user group member](https://developers.miro.com/reference/enterprise-get-group-member.md): Retrieves information about a user group member in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Delete user group member](https://developers.miro.com/reference/enterprise-delete-group-member.md): Removes a member from a user group in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get teams of a user group](https://developers.miro.com/reference/enterprise-groups-get-teams.md): Retrieves the list of teams that the user group is a part of.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get user group team](https://developers.miro.com/reference/enterprise-groups-get-team.md): Retrieves information of a team that the user group is a part of in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get board user group assignments](https://developers.miro.com/reference/enterprise-boards-get-groups.md): Retrieves information about user groups invited to the specified board.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Create board user group assignments](https://developers.miro.com/reference/enterprise-boards-create-group.md): Shares a board with user groups with a specified role. Updates the role if already shared.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Delete board user group assignment](https://developers.miro.com/reference/enterprise-boards-delete-groups.md): Removes a user group from the specified board.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Get project user group assignments](https://developers.miro.com/reference/enterprise-projects-get-groups.md): Retrieves information about user groups invited to the specified project.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Create project user group assignments](https://developers.miro.com/reference/enterprise-project-create-group.md): Shares a project with user groups with a specified role. Updates the role if already shared.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Delete project user group assignment](https://developers.miro.com/reference/enterprise-project-delete-groups.md): Removes a user group from the specified project.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [List of user group to team connections](https://developers.miro.com/reference/enterprise-teams-get-groups.md): Retrieves the list of user groups that are part of a team in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Create user group to team connection](https://developers.miro.com/reference/enterprise-teams-create-group.md): Adds a user group to a team in an organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
' - [Get user group of a team](https://developers.miro.com/reference/enterprise-teams-get-group.md): Retrieves information about a specific user group of a team.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Delete user group to team connection](https://developers.miro.com/reference/enterprise-teams-delete-group.md): Removes a user group from a team in an existing organization.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
- [Board Export](https://developers.miro.com/reference/board-export.md) - [Create board export job](https://developers.miro.com/reference/enterprise-create-board-export.md): Creates an export job for one or more boards.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
- [Get board export jobs list](https://developers.miro.com/reference/enterprise-board-export-jobs.md): Retrieves the list of board export jobs based on the filters provided in the request.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
- [Get board export job status](https://developers.miro.com/reference/enterprise-board-export-job-status.md): Retrieves the status of the board export job.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
- [Get results for board export job](https://developers.miro.com/reference/enterprise-board-export-job-results.md): Retrieves the result of the board export job. The response provides more information about the board export job, such as the S3 link to the files created.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
- [Update board export job status](https://developers.miro.com/reference/enterprise-update-board-export-job.md): Updates the status of the board export job.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
- [Get board export job tasks list](https://developers.miro.com/reference/enterprise-board-export-job-tasks.md): Retrieves the list of tasks for the board export job.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
- [Create task export link](https://developers.miro.com/reference/enterprise-create-board-export-task-export-link.md): Creates a link to download the results of a board export task.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
- [Board Content Logs](https://developers.miro.com/reference/board-content-logs.md) - [Retrieve content change logs of board items](https://developers.miro.com/reference/enterprise-board-content-item-logs-fetch.md): Retrieves content changes for board items within your organization. Content changes are actions that users can perform on board items, such as updating a sticky note's text. You can retrieve results for a specific time period. You can also filter results based on the board IDs and the emails of users who created, modified, or deleted a board item. Additionally, results can be paginated for easier viewing and processing.This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin.
- [Legal holds](https://developers.miro.com/reference/legal-holds.md) - [Get all cases](https://developers.miro.com/reference/get-all-cases-1.md): Retrieves the list of eDiscovery cases in an organization.This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Create case](https://developers.miro.com/reference/create-case-1.md): Creating a case for legal hold is the first critical step in the eDiscovery process when litigation or an investigation is anticipated. One of the purposes of creating a case is that it acts as a container that allows admins to group multiple legal holds under one case. For more information, see our Help Center page on creating a case.
This API creates a new case in an organization.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Close case](https://developers.miro.com/reference/delete-case-1.md): Closing a case is the final stage in the eDiscovery process, marking the conclusion of a legal matter or investigation. You must ensure that all associated legal holds within the case are closed before closing the case. Closing a case will permanently delete it. For more information, see our Help Center page on closing a case.
This API closes a case in an organization.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Get case](https://developers.miro.com/reference/get-case-1.md): Retrieves information about a case in an organization.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Edit case](https://developers.miro.com/reference/edit-case-1.md): Editing a case allows eDiscovery Admins to keep case details accurate and aligned with the evolving scope of a legal matter. As investigations progress, it may be necessary to update the case name or description to reflect changes in focus, terminology, or internal documentation standards. Since a case serves as the central container for one or more legal holds, keeping its information up to date helps ensure clarity, consistency, and easier navigation for all stakeholders involved in the legal process.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Get all legal holds within a case](https://developers.miro.com/reference/get-all-legal-holds-1.md): Retrieves the list of all legal holds within a case for an organization.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Create legal hold](https://developers.miro.com/reference/create-legal-hold-1.md): After creating a case it is possible to add one or multiple legal holds to the case. Creating a legal hold involves identifying the relevant users associated with a case and applying the hold to prevent permanent deletion of content that those users own, co-own, create, edit or access. For more information, see our Help Center page on adding a legal hold to a case.
This API creates a new legal hold in a case for an organization. Newly created legal holds could take up to 24 hours to be processed.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Get board export jobs of a case](https://developers.miro.com/reference/get-legal-hold-export-jobs-1.md): Retrieves board export jobs for a case.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Close legal hold](https://developers.miro.com/reference/delete-legal-hold-1.md): Closing a legal hold is one of the final steps in the eDiscovery process once the litigation or investigation has concluded. This process involves releasing the Miro boards and custodians that were under legal hold, allowing the preserved boards to return to normal operations. Closing a legal hold will permanently delete it. For more information, see our Help Center page on closing a legal hold.
This API closes a legal hold in a case for an organization. Once a legal hold is closed, it can take up to 24 hours to release the content items from the legal hold.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Get legal hold information](https://developers.miro.com/reference/get-legal-hold-1.md): Retrieves information about a legal hold within a case for an organization.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Edit legal hold](https://developers.miro.com/reference/edit-legal-hold-1.md): Editing a legal hold allows eDiscovery Admins to adjust and refine ongoing legal preservation efforts as case requirements evolve. Whether new custodians are identified, additional Miro boards become relevant, or existing boards or users are no longer in scope, editing a legal hold ensures that the correct data remains preserved and defensible throughout the legal process. Admins can update the legal hold’s name or description and add or remove users and boards as needed. This flexibility supports dynamic legal workflows and ensures that preservation stays precise, up to date, and aligned with the scope of the legal matter—maintaining compliance while avoiding unnecessary data retention.
When a legal hold is edited, boards newly added to the hold will begin having their versions preserved from that point forward, boards or users removed from the hold will stop being preserved, and their versions will no longer be preserved as part of that legal hold, boards that remain under hold will continue to have all versions preserved, including any deletions that occur after the hold was applied. This approach ensures organizations can respond to legal demands with accuracy and accountability as a case evolves.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Get content items under legal hold](https://developers.miro.com/reference/get-legal-hold-content-items-1.md): Once a legal hold is in place you can review or explore the preserved Miro boards to ensure that all relevant data is intact and ready for legal proceedings or investigations. For more information, see our Help Center page on reviewing boards under legal hold.
This API lists all content items under a specific legal hold in a case for an organization. Please verify that the legal hold is in 'ACTIVE' state to guarantee that the legal hold has finished processing the full list of content items under hold.
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
- [Introduction](https://developers.miro.com/reference/scim-introduction.md)
- [Getting started](https://developers.miro.com/reference/scim-getting-started.md)
- [User lifecycle management](https://developers.miro.com/reference/user-lifecycle-management.md): Learn about managing user access with the Miro SCIM API.
- [Get Service Provider Config](https://developers.miro.com/reference/listserviceproviderconfigs.md): Retrieve supported operations and SCIM API basic configuration.
- [List resource types](https://developers.miro.com/reference/listresourcetypes.md): Retrieve information about which SCIM resources are supported.
Currently, Miro supports Users and Groups as Resource Types.
- [Get resource type](https://developers.miro.com/reference/getresourcetype.md): Retrieve metadata for the available resource types (User and Group) that are supported.
- [List schemas](https://developers.miro.com/reference/listschemas.md): Retrieve metadata about Users, Groups, and extension attributes that are currently supported.
- [Get schema](https://developers.miro.com/reference/getschema.md): Retrieve information about how users, groups, and enterprise-user attributes URIs that are formatted.
- [List users](https://developers.miro.com/reference/listusers.md): Retrieves the list of users in your organization.
Note: The API returns users that are members in the organization, it does not return users that are added in the organization as guests.
- [Create user](https://developers.miro.com/reference/createuser.md): Creates a new user in the organization.
Note: All newly provisioned users are added to the default team.
- [Get user](https://developers.miro.com/reference/getuser.md): Retrieves a single user resource.
Note: Returns only users that are members in the organization. It does not return users that are added in the organization as guests.
- [Replace user](https://developers.miro.com/reference/replaceuser.md): Updates an existing user resource. This is the easiest way to replace user information.
If the user is deactivated,
userName, userType, and roles.value cannot be updated.
emails.value, emails.display, emails.primary get ignored and do not return any error.
Note: If the user is not a member in the organization, they cannot be updated. Additionally, users with guest role in the organization cannot be updated.
- [Patch user](https://developers.miro.com/reference/patchuser.md): Updates an existing user resource, overwriting values for specified attributes. Attributes that are not provided will remain unchanged. PATCH operation only updates the fields provided.
Note: If the user is not a member in the organization, they cannot be updated. Additionally, users with guest role in the organization cannot be updated.
- [Delete user](https://developers.miro.com/reference/deleteuser.md): Deletes a single user from the organization.
Note: A user who is the last admin in the team or the last admin in the organization cannot be deleted. User must be a member in the organization to be deleted. Users that have guest role in the organization cannot be deleted.
After a user is deleted, the ownership of all the boards that belong to the deleted user is transferred to the oldest team member who currently has an admin role.
- [List groups](https://developers.miro.com/reference/listgroups.md): Retrieves the list of groups (user groups) in the organization.
Note: Along with groups (user groups), the users that are part of those groups (user groups) are also retrieved.
- [Get group](https://developers.miro.com/reference/getgroup.md): Retrieves a single Group resource.
- [Patch group](https://developers.miro.com/reference/patchgroup.md): Updates an existing group resource, i.e. a Miro user group, overwriting values for the specified attributes. Patch operation for group can be used to add, remove, or replace user group members and to update the display name of the group (user group).
To add a user to the group (user group), use the add operation.
To remove a user from a group (user group), use the remove operation.
To update the display name, use the replace operation. The maximum length of the displayName is 60 characters; longer values are truncated.
Note: Attributes that are not provided will remain unchanged. The patch operation only updates the fields provided.
User group members removal specifics:
For remove or replace operations, the user is removed from the user group only. This does not remove the user from any team or from the organization, does not transfer board ownership, and does not change the user license. There is no last-admin restriction for user groups. Removing a user who is not a member of the user group is a no-op.
Add user group members specifics:
All added members are reactivated or recreated if they were deactivated or deleted earlier, and their license is upgraded to FULL. On organizations with verified SAML domains, the email of the added user is confirmed. Adding a user that is already a member of the user group is a no-op.
External users specifics:
When adding existing users with the role ORGANIZATION_EXTERNAL_USER or ORGANIZATION_TEAM_GUEST_USER to a user group, we set FULL license and ORGANIZATION_INTERNAL_USER roles.
- [Create group](https://developers.miro.com/reference/createscimgroup.md): Creates a new Miro user group in the organization.
Note: The displayName must be unique within the organization. The maximum length of the displayName is 60 characters; longer values are truncated.
You can optionally provide an initial list of members. Adding members follows the same rules as the add operation in Patch group.
- [Delete group](https://developers.miro.com/reference/deletescimgroup.md): Deletes a single group (user group) from the organization.
Note: Deleting a Miro user group removes the group and its memberships only. It does NOT delete the member users or remove them from the organization.
- [Get Service Provider Config](https://developers.miro.com/reference/listserviceproviderconfigslegacy.md): Retrieve supported operations and SCIM API basic configuration.
- [List resource types](https://developers.miro.com/reference/listresourcetypeslegacy.md): Retrieve information about which SCIM resources are supported.
Currently, Miro supports Users and Groups as Resource Types.
- [Get resource type](https://developers.miro.com/reference/getresourcetypelegacy.md): Retrieve metadata for the available resource types (User and Group) that are supported.
- [List schemas](https://developers.miro.com/reference/listschemaslegacy.md): Retrieve metadata about Users, Groups, and extension attributes that are currently supported.
- [Get schema](https://developers.miro.com/reference/getschemalegacy.md): Retrieve information about how users, groups, and enterprise-user attributes URIs that are formatted.
- [List users](https://developers.miro.com/reference/listuserslegacy.md): Retrieves the list of users in your organization.
Note: The API returns users that are members in the organization, it does not return users that are added in the organization as guests.
- [Create user](https://developers.miro.com/reference/createuserlegacy.md): Creates a new user in the organization.
Note: All newly provisioned users are added to the default team.
- [Get user](https://developers.miro.com/reference/getuserlegacy.md): Retrieves a single user resource.
Note: Returns only users that are members in the organization. It does not return users that are added in the organization as guests.
- [Replace user](https://developers.miro.com/reference/replaceuserlegacy.md): Updates an existing user resource. This is the easiest way to replace user information.
If the user is deactivated,
userName, userType, and roles.value cannot be updated.
emails.value, emails.display, emails.primary get ignored and do not return any error.
Note: If the user is not a member in the organization, they cannot be updated. Additionally, users with guest role in the organization cannot be updated.
- [Patch user](https://developers.miro.com/reference/patchuserlegacy.md): Updates an existing user resource, overwriting values for specified attributes. Attributes that are not provided will remain unchanged. PATCH operation only updates the fields provided.
Note: If the user is not a member in the organization, they cannot be updated. Additionally, users with guest role in the organization cannot be updated.
- [Delete user](https://developers.miro.com/reference/deleteuserlegacy.md): Deletes a single user from the organization.
Note: A user who is the last admin in the team or the last admin in the organization cannot be deleted. User must be a member in the organization to be deleted. Users that have guest role in the organization cannot be deleted.
After a user is deleted, the ownership of all the boards that belong to the deleted user is transferred to the oldest team member who currently has an admin role.
- [List groups](https://developers.miro.com/reference/listgroupslegacy.md): Retrieves the list of groups (teams) in the organization.
Note: Along with groups (teams), the users that are part of those groups (teams) are also retrieved. Only users that have member role in the organization are fetched.
- [Get group](https://developers.miro.com/reference/getgrouplegacy.md): Retrieves a single Group resource.
Note: Along with groups (teams), the users that are part of those groups (teams) are also retrieved. Only users that have member role in the organization are fetched.
- [Patch group](https://developers.miro.com/reference/patchgrouplegacy.md): Updates an existing group resource, i.e. a team, overwriting values for specified attributes. Patch operation for group can be used to add, remove, or replace team members and to update the display name of the group (team).
To add a user to the group (team), use add operation.
To remove a user from a group (team), use remove operation.
To update a user resource, use the replace operation.
The last team admin cannot be removed from the team.
Note: Attributes that are not provided will remain unchanged. PATCH operation only updates the fields provided.
Team members removal specifics:
For remove or replace operations, the team member is removed from the team and from all team boards. The ownership of boards that belong to the removed team member is transferred to the oldest team member who currently has an admin role. After you remove a team member, adding the team member again to the team does not automatically restore their previous ownership of the boards. If the user is not registered fully in Miro and is not assigned to any other team, the user is also removed from the organization.
Add team members specifics:
All added team members are reactivated or recreated if they were deactivated or deleted earlier.
External users specifics:
When adding existing users with the role ORGANIZATION_EXTERNAL_USER or ORGANIZATION_TEAM_GUEST_USER to a team, we set FULL license and ORGANIZATION_INTERNAL_USER roles.
- [AI Interaction Logs](https://developers.miro.com/reference/ai-interaction-logs.md)
- [Get AI interaction logs (Beta)](https://developers.miro.com/reference/enterprise-get-ai-interaction-logs.md): Retrieves AI interaction logs for your organization. AI interaction logs capture user interactions with AI features in Miro: the prompt received from the user, the response returned to them, and the model and tool calls made in between. You can retrieve results for a specific time period, and filter them by session, actor, affected object, or event type. Results are paginated: when more logs match than the page holds, the response carries a cursor you pass to the next request.
This API is available only for Enterprise plan users with the Enterprise Guard add-on.
- [Delete tag](https://developers.miro.com/reference/delete-tag.md): Deletes the specified tag from the board. The tag is also removed from all cards and sticky notes on the board.Note: Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Update tag](https://developers.miro.com/reference/update-tag).