Miro

Connect & Ingest data from Miro

Miro is a visual collaboration and online whiteboard platform used for brainstorming, planning, and project management. The Sling Miro connector extracts data from the Miro REST API v2, supporting boards, board items, members, tags, connectors, and groups.

circle-check

Setup

The following credentials are accepted:

Secrets:

  • access_token (required) -> Your Miro OAuth access token

Getting Your Access Token

  1. Go to Profile Settings > Your apps tab

  2. Click Create new app

  3. Enter an app name (e.g., "Sling Data Integration")

  4. Under Permissions, enable the following scopes:

    • boards:read β€” Read boards you have access to

    • identity:read β€” Read profile information

    • team:read β€” Read team information

  5. Click Install app and get OAuth token

  6. Select your team and click Add

  7. Copy the generated access token

circle-exclamation

Using sling conns

Here are examples of setting a connection named MIRO. We must provide the type=api property:

Environment Variable

See here to learn more about the .env.sling file.

Sling Env File YAML

See here to learn more about the sling env.yaml file.

Replication

Here's an example replication configuration to sync Miro data to a PostgreSQL database:

Incremental sync for boards, items, and connectors:

Endpoints

Endpoint
Description
Incremental
Depends On

boards

All boards accessible to the authenticated user

Yes

β€”

board_members

All members/collaborators for each board

No

boards

board_items

All items (sticky notes, shapes, text, cards, images) on each board

Yes

boards

board_tags

All tags defined on each board

No

boards

board_connectors

All connectors (lines between items) on each board

Yes

boards

board_groups

All groups (collections of items) on each board

No

boards

The connector uses a queue-based architecture to handle parent-child relationships. The boards endpoint runs first and populates board IDs, which are used by board_members, board_items, board_tags, board_connectors, and board_groups.

To discover available endpoints:

Endpoint Details

boards β€” Returns all boards the authenticated user has access to. Includes board metadata such as name, description, owner, team, permissions, sharing policies, creation and modification timestamps. Board IDs are queued for all child endpoints.

board_members β€” Returns all members and collaborators for each board, including member name, role (owner, editor, viewer), and membership details.

board_items β€” Returns all items on each board, including sticky notes, shapes, text elements, cards, images, and other item types. Each item includes position, geometry, style, data content, and modification timestamps.

board_tags β€” Returns all tags defined on each board, including tag title and fill color.

board_connectors β€” Returns all connectors (lines/arrows between items) on each board, including start and end item references, style, and modification timestamps.

board_groups β€” Returns all groups (collections of items) on each board, including the list of grouped item IDs.

Rate Limiting

The Miro API enforces credit-based rate limits:

  • 100,000 credits per minute per OAuth token

  • Different endpoints consume different credit amounts

The connector automatically:

  • Uses rate limiting (5 requests/second with concurrency of 3)

  • Retries with exponential backoff on 429 (rate limit) responses

  • Allows up to 5 retry attempts

  • Retries with exponential backoff on 5xx server errors

Common Use Cases

Sync All Miro Data

Sync Board Items Incrementally

Extract Board Structure and Members

If you are facing issues connecting, please reach out to us at [email protected]envelope, on discordarrow-up-right or open a Github Issue herearrow-up-right.

Last updated

Was this helpful?