Discuss everything related to Miro API, SDK, embedding and Miro Platform apps development.
Recently active
Hello community, I'm currently working with the Miro API endpoint:https://api.miro.com/v2/orgs/{org_id}/members In this endpoint, I noticed that there is a `license` query parameter.After conducting some tests within my enterprise organization, I found that I could only create users with the full and free license attributes.I would like to understand how I can set some users to have the following license attributes:- occasional, free_restricted, full trial and unknown. Could someone please explain the different license options available in Miro and how to implement them through the API?Thanks in advance,BR Vas
When I am going into the miro dashboard it won’t load. And when I press a miro invite link to a miro board, the board doesn’t work, I can only look around.
Hello community,I noticed that there are details about error messages related to the SCIM API available at this link: https://developers.miro.com/docs/errorsHowever, I am looking for similar information regarding the Miro REST API.I haven't been able to find any documentation on possible errors for the REST API.I have encountered some errors during my work, and they do not correspond with those listed for the SCIM API.Am I overlooking something?Thank you for your assistance!BRVas
Hello Community,I’ve been exploring pagination for boards and items in the API.I noticed that while boards support offset-based pagination, items don’t seem to provide any offset-related information.Will offset-based pagination be implemented for items as well?Is there a specific reason for this inconsistency, or am I possibly missing something in the documentation?Looking forward to your insights.Best regards,Vasileios
I want to lock some objects when having a set of objects created since they act as background objects, I know you can do this on board, but can it be done when created via miro.board.widgets.create?
Hello Community,I am using the endpoint(https://developers.miro.com/reference/get-items)that lists all items, and by utilizing the `type` query parameter,I can filter the results to specific item types.This feature is fantastic!However, I have noticed that there are additional item types, such as "table" and "unknown," which are not documented.I have a few questions:1. Where can I find a complete list of all available item types?2. Are there plans to include these additional types in the query parameters for filtering?3. Will items with the type "unknown" be renamed to more meaningful names in the future?Thank you in advance for your help!BR Vas
Hello everyone,I am new to the Miro development and have a basic question that I need to be solved once and for all: Do I understand correctly that my Miro app can only do things on the board when it is actively open in the side panel?For example: If I want to build an app that changes the viewport when an event happens on the board, I can get that event information using webhooks. But if I want to react to this event, I have to send a command to a Web SDK, e.g. via WebSockets. But this WebSDK app is only active when it is open in the side panel. Please help me understand this fundamental basic of developing for miro. Thanks a lot!
Ao me logar no miro, não consigo visualizar nenhum dos meus 28 boards.
It would absolutely transformative for me if I was able to paste Twitter links into Miro and have them appear as tweets. There's just so much information available on Twitter, yet I have to take screenshots to represent it. Maybe not critical to others, but this is critical to me. If Miro isn't able to undertake this development, I would be most grateful for some contact details for developers that might be able to undertake this (paid) work for me. Thanks!
Hello everyone,I have a question regarding board management.Is there any API endpoint available that can help me restore boards from the recycle bin and move them to specific spaces within my team's environment?Thank you in advance for your help!Vas
Hello, community!I have a question regarding attachments on a Miro board.I’m currently working with a board where I used the upload feature to add a PDF file. My goal is to retrieve the binary data of the PDF through the API, but the process seems a bit complex:First, I send a request to https://api.miro.com/v2/boards/{board_id}/items to retrieve the item ID for the PDF document. Then, I use this ID in another call to https://api.miro.com/v2/boards/{board_id}/documents/{item_id}. From this response, I extract the "documentUrl", which looks something like https://api.miro.com/v2/boards/uXjVOfjkmAk=/resources/98765467890987654?redirect=false. I make a request to this documentUrl and get another "url" property with a link to the PDF file, containing an Expires timestamp and signature.Finally, I use this last URL to make a request and download the actual binary file.I'm wondering if there’s a more efficient way to directly fetch the binary without going through multiple steps. Any insights
Hello Is there a way via the APIs to obtain an authentication token to access my tables in my space?I don't need to access another user's data. I want to avoid the Oauth GUI.Can you give me an example if possible?Thanks
Hello community,I’m encountering a couple of issues related to permissions with the Miro API and would appreciate any insights.1. When running the following request: GET https://api.miro.com/v2/orgs/{org_id}/boards/export/jobs/{job_id}/resultsI receive this response: { "status": 403, "code": "insufficientPermissions", "message": "Required scopes: boards:export", "type": "error" }I’ve added the `boards:export` scope manually in my app manifest, yet this error persists. Additionally, I couldn’t find any mention of this scope in the documentation.Is this scope deprecated, or could there be another issue?2. I’m facing a similar problem with the following request: GET https://api.miro.com/v2/orgs/{org_id}/content-logs/items which returns: { "status": 403, "code": "insufficientPermissions", "message": "Required scopes: contentlogs:export", "type": "error" }Despite adding the `contentlogs:export` scope in the app manifest, I still receive this err
we had developed an Modal Disclaimer similar to this guide:https://developers.miro.com/docs/display-bannermodal-on-a-miro-board-using-aws-s3No we are facing the issue that the modal is only displayed to full member. Can we display the banner to guest and free restricted too?
Hello, community!I’m currently working with board items using the`GET https://api.miro.com/v2/boards/{board_id}/items` endpointand am wondering if there’s a query parameter available to sort these items by group (using the group ID). Sorting by group would be incredibly helpful for my use case, as the `Get groups` endpoint doesn’t quite meet my needs.Thanks in advance for any insights!Vas
Hey everyone!I have the following code for a Miro Plugin, built/running on vite: import { EventModelType } from "@Models";import { ShapeType } from "@mirohq/websdk-types"; export const SHAPE_TYPES: Record<EventModelType, ShapeType> = {Event: ShapeType.Rectangle,Command: ShapeType.RoundRectangle,ReadModel: ShapeType.Parallelogram,Processor: ShapeType.Rectangle,GivenWhenThen: ShapeType.Rectangle} as const Problem is, no matter where in my code I try to import @mirohq/websdk-types, I’m getting an error when doing npm start:[ERROR] Failed to resolve entry for package "@mirohq/websdk-types". The package may have incorrect main/module/exports specified in its package.json. [plugin vite:dep-scan] The plugin "vite:dep-scan" was triggered by this import src/Constants/ShapeTypes/ShapeTypes.ts:2:26: 2 │ import { ShapeType } from "@mirohq/websdk-types"; ╵ Googling for it, I found this issue on GitHub. But nothing suggested there resolved the issue.Any help would be appreciate
Hi, i try to add a existing allready TAG to a item (Sticky Note)But i get only the error: enrico@Enricos-MacBook-Pro CPARTJIRA % python test.pyMaking POST request to: https://api.miro.com/v2/boards/uXjVLOuSJng=/sticky_notesHeaders: {'Authorization': 'Bearer ********', 'Content-Type': 'application/json'}Payload: {'data': {'content': 'TEST', 'shape': 'square'}, 'style': {'fillColor': 'light_yellow'}, 'geometry': {'width': 300}, 'position': {'x': 0, 'y': 0}}Response status code: 201Response JSON: Created successfully!Sticky note created successfully with ID: 3458764604900078756Making POST request to create tag: https://api.miro.com/v2/boards/uXjVLOuSJng=/tagsHeaders: {'Authorization': 'Bearer ********', 'Content-Type': 'application/json'}Payload: {'data': {'title': 'hallo', 'fillColor': 'blue'}}Response status code: 400Response JSON: {'type': 'error', 'code': '2.0703', 'context': {'fields': [{'field': 'title', 'message': 'Field [title] of type [String] is required'}]}, 'message': 'Invalid
Hello, community!While installing my app, is there any way to include details about my organization within the token?Vas
HiMy app will use enterprise APII wonder how should I refer to particular team in my requests if my app will be installed for whole organization. For example I would like to list boards of each team.Can I use team id’s listed with GET /teams to dynamically change the team I need to refer to?
HelloI would like to become ISV for customers of Miro. I would like to use API endpoints available only for enterprise plan. As far as I understand both me and customer must have enterprise plan purchased to be able to authorize my app. I don’t have 30 people in my org, what should I do then? Which plan should I purchase for full API fuctionality?Can I avoid using credit card which can expire and pay with invoice? I want to have bulletproof app with full API support.As far as I understand Miro approval is needed only to appear in marketplace, but my clients can use my app if it’s not published to marketplace, right?BRLiquidus
Below is a bug report for some unexpected behaviour I have found when working with the api as a free plan user. Steps to reproduceCreate a board using an access token of a free account through the REST API, noting the resulting board ID (post v2/boards) Create a frame in the board (post v2/boards/ID/frames)Actual Result403 - User is not authorized to create widgets on this board.Upon further investigation in the miro dashboard, I notice that the board is created in view-only, therefore not allowing me (and my access token) to edit it.Expected ResultSince the created board is the most recent board, it should be editable even for free accounts exceeding 3 boards (by making an older one view-only). This would then allow me to also edit it through the api, without the error.
HelloI would like to install app to all team members. I know that for business and enterprise plans I can use team admin and org admin. How to achieve this with starter plan? If I will receive content for my app from each user then I will have many tokens to handle which is unacceptable.I need API access to private boards of members in each plan - how should I do this?
Hello everyone,When creating an app, I can clearly see options to select the following scopes:- `team:read`- `team:write`However, on a free plan, I’m unable to use certain endpoints, like `GET Teams` (`https://api.miro.com/v2/orgs/{org_id}/teams`), etc.So, I’m curious—what is the actual purpose of these scopes if they’re restricted on the free plan? BRVasilis
Hi, so I have this design document that I’m writing for my game, is it possible for me to somehow sync it to Miro board as I change it in Jetbrains Rider?
I created a board using the api (https://api.miro.com/v2/boards). I can see the boards in my list of dashboards (https://miro.com/app/dashboard/). However, when I try to access the dashboards using the API (https://api.miro.com/v2/boards), the recent-most board seems to be missing. Even in the api reference playground (https://developers.miro.com/reference/get-boards), when I try to make the get request, it only returns 2 boards, while have 3 (as visible in https://miro.com/app/dashboard/) This has been happening for quite some time now. Please help!
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.