Skip to main content

Miro

Miro is a collaborative online whiteboarding platform for visual project planning, diagramming, and teamwork. Its REST API provides programmatic access to boards, members, items (shapes, text, sticky notes, images, and more), tags, groups, connectors, projects, and — for enterprise plans — organization users managed through the SCIM protocol.

Miro icon

Power end-to-end data operations for your Miro API with Nexla. Our bi-directional Miro connector is purpose-built for Miro, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Miro or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Miro workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Miro credential, you need a Miro access token. The Miro REST API authenticates each request with an OAuth 2.0 access token that is sent as a Bearer token in the Authorization header. For most integrations you create an app in your Miro developer settings and install it to your own team, which issues an access token you can use directly with Nexla.

To create an app and obtain an access token, follow these steps:

  1. Sign in to your Miro account. If you do not already have one, create a Developer team, which is required to build and install apps.

  2. Click your account avatar in the top navigation and select Settings.

  3. Open the Your apps tab, and click + Create new app.

  4. Enter a name for your app (e.g., "Nexla Integration"), select the associated Developer team, and click Create app.

  5. On the app configuration page, under Permissions, select the scopes your integration requires. For read operations such as listing boards and items, grant the relevant boards:read scopes; for write operations such as creating boards or items, grant the corresponding boards:write scopes. Managing organization users through SCIM requires an enterprise plan and the appropriate identity-management permissions.

  6. Under Install app and get OAuth token, click Install app and get OAuth token, then choose the team to install the app to. Miro generates an access token scoped to that team.

  7. Copy the access token and store it securely, as it is used to authenticate your Nexla credential. Treat it as sensitive information.

    By default, Miro access tokens obtained through the standard OAuth flow expire after 60 minutes and are refreshed using a refresh token that is valid for 60 days. The token generated directly from the app installation flow is suitable for testing and single-team integrations. For detailed information about tokens, scopes, and the full authorization flow, see the Miro OAuth 2.0 documentation and the Miro REST API reference.

The Base URL for the Miro REST API is https://api.miro.com. Enterprise SCIM operations (listing and creating organization users) use a separate SCIM Base URL, which defaults to https://miro.com.

Authenticate

Credentials required

Authenticate using a Miro API key via Bearer token in Authorization header.

FieldRequiredSecretDescription
API KeyYesYesMiro API key for authentication.
Base URLYesNoThe base URL for the Miro REST API.
SCIM Base URLNoNoThe base URL for the Miro SCIM API (enterprise only).

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your Miro access token in the API Key field. Nexla sends this value as a Bearer token in the Authorization header on every request to the Miro API, so it must be kept confidential.

  4. Enter the base URL for the Miro REST API in the Base URL field. This is https://api.miro.com unless your account uses a different endpoint.

  5. If your integration uses enterprise SCIM operations to manage organization users, enter the SCIM API base URL in the SCIM Base URL field. This defaults to https://miro.com and applies only to enterprise plans. Leave it as the default if you are not using SCIM endpoints.

    If your access token is compromised, revoke it in your Miro app settings and generate a new one. For detailed information about authentication, scopes, and available endpoints, see the Miro REST API documentation.

  6. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Miro connector tile, then select the credential that will be used to connect to Miro, and click Next; or, create a new Miro credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Miro endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

List Boards

Returns a list of all boards accessible to the authenticated user.

  • This endpoint requires no additional parameters. Nexla automatically paginates through the results to retrieve every board the credential's token can access.

Get specific board

Retrieves the details of a specific board by its ID.

  • Board ID: The unique identifier of the board to retrieve.

List Board Members

Returns a list of members on a specified board.

  • Board ID: The ID of the board from which to retrieve members.

List Board Items

Returns a list of items (shapes, text, sticky notes, etc.) on a specified board.

  • Board ID: The unique identifier of the board to retrieve items from.

Get items on board

Returns a paginated list of items on a board, optionally filtered by type.

  • Board Id: The unique identifier of the board.
  • Limit: Maximum number of items to return per request.
  • Item type: Filter items by type (e.g. text, shape, image, frame).

Get items on board (experimental)

Retrieves a paginated list of items on a board with optional filtering by type.

  • Board Id: The board ID to retrieve items from.
  • Limit: The maximum number of items to return per page.
  • Type: Filter items by type.

This endpoint uses Miro's experimental API version. Experimental endpoints may change without notice; use it when you need functionality not yet available in the stable API.

List Board Tags

Returns a list of tags available on a specified board.

  • Board ID: The unique identifier of the board.

List Board Groups

Returns a list of groups (collections of items) on a specified board.

  • Board ID: The unique identifier of the board.

List Board Connectors

Returns a list of connectors (connection lines between items) on a specified board.

  • Board ID: The ID of the board from which to retrieve connectors.

Get document item

Retrieves a specific document item from a board.

  • Board ID: The ID of the board containing the document item.
  • Item ID: The ID of the document item to retrieve.

Get embed item

Retrieves a specific embed item from a board.

  • Board ID: The ID of the board containing the embed item.
  • Item ID: The ID of the embed item to retrieve.

Get image item

Retrieves a specific image item from a board.

  • Board ID: The ID of the board containing the image item.
  • Item ID: The ID of the image item to retrieve.

Get project

Returns a specific project by ID within a team.

  • Org Id: The organization ID that contains the team.
  • Team Id: The team ID that contains the project.
  • Project Id: The unique identifier of the project to retrieve.

List users

Retrieves a paginated list of organization users using the SCIM protocol, with optional filtering and sorting. This endpoint is available on enterprise plans and uses the SCIM Base URL configured in your credential.

  • Attributes: Comma-separated list of attributes to include in the response.
  • Filter: SCIM filter expression to narrow results (e.g., userName eq 'user@example.com').
  • Sort By: Attribute name to sort results by.
  • Sort Order: Sort direction, ascending or descending.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Miro data sources can also be manually configured to ingest data from any valid Miro REST API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Miro data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Miro destination, and select the Send to Destination option from the menu. Select the Miro connector from the list of available destination connectors, then select the credential that will be used to connect to Miro, and click Next; or, create a new Miro credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Miro endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Create board

Creates a new Miro board with the specified name, description, and team assignment. Each record from your Nexset is sent as a request to create a board.

  • The record body should contain the board properties (such as name, description, and team assignment) in the format required by the Miro API.

Update board

Updates a board's properties such as name, description, team, or project assignment.

  • Board ID: The unique identifier of the board to update.
  • Optional properties that can be updated include the board name, description, policy, team ID, and project ID.

Delete a board

Deletes a board.

  • Board Id: The ID of the board to delete.

Deleting a board is permanent. Verify the target board ID before activating this destination.

Share a board with one or more team members (invite)

Shares a board with one or more team members by sending an invitation.

  • Board Id: The ID of the board to share.
  • The record body should contain the invitees and their roles in the format required by the Miro API.

Create shape item

Creates a new shape item on a board.

  • Board Id: The ID of the board on which to create the shape.
  • The record body should contain the shape's content, style, and position properties.

Update shape item

Updates properties of an existing shape item on a board.

  • Board Id: The ID of the board containing the shape.
  • Item Id: The ID of the shape item to update.

Create sticky note item

Creates a new sticky note item on a board.

  • Board Id: The ID of the board on which to create the sticky note.
  • The record body should contain the sticky note's content, style, and position properties.

Update sticky note item

Updates properties of an existing sticky note item on a board.

  • Board Id: The ID of the board containing the sticky note.
  • Item Id: The ID of the sticky note item to update.

Create text item

Creates a new text item on a board.

  • Board Id: The ID of the board on which to create the text item.
  • The record body should contain the text content, style, and position properties.

Create an image item on a board

Creates an image item on a board.

  • Board Id: The ID of the board on which to create the image.

This endpoint sends data using the multipart/form-data content type to upload an image file from the record.

Create a tag on a board

Creates a tag on a board.

  • Board Id: The ID of the board on which to create the tag.
  • The record body should contain the tag's title and fill color.

Create project

Creates a new project in a team within an organization.

  • Org Id: The organization ID that contains the team.
  • Team Id: The team ID in which to create the project.

Update project

Updates an existing project's properties such as name.

  • Org Id: The organization ID that contains the team.
  • Team Id: The team ID that contains the project.
  • Project Id: The unique identifier of the project to update.

Create case

Creates a new case within an organization.

  • Org Id: The organization ID in which to create the case.

Create user

Creates a new user account using the SCIM protocol. This endpoint is available on enterprise plans and uses the SCIM Base URL configured in your credential.

  • The record body should contain the SCIM user attributes (such as user name, name, display name, and active status) in the format required by the Miro SCIM API.

Revoke Token

Revokes the specified OAuth access token, invalidating it for future API requests.

  • Access Token: The OAuth access token to revoke.

Manual configuration

Miro destinations can also be manually configured to send data to any valid Miro REST API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Miro APIs expect JSON format for most operations. For update operations, include the ID of the object to be updated in the endpoint URL path.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Miro endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Miro endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.