openapi: 3.0.1
info:
title: Miro Developer Platform AI Interaction Logs Board members API
version: v2.0
description: '
### Miro Developer Platform concepts
- New to the Miro Developer Platform? Interested in learning more about platform concepts??
[Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes.
### Getting started with the Miro REST API
- [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes.
- [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes.
### Miro REST API tutorials
Check out our how-to articles with step-by-step instructions and code examples so you can:
- [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth)
### Miro App Examples
Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro''s Developer Platform 2.0.
'
servers:
- url: https://api.miro.com/
tags:
- name: Board members
paths:
/v2/boards/{board_id}/members:
post:
x-settings:
skip-tests: true
description: Shares the board and Invites new members to collaborate on a board by sending an invitation email. Depending on the board's Sharing policy, there might be various scenarios where membership in the team is required in order to share the board with a user.
Required scope
boards:write
Rate limiting
Level 3
operationId: share-board
parameters:
- description: Unique identifier (ID) of the board to which the board member belongs.
in: path
name: board_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BoardMembersInvite'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/InvitationResult'
description: Board members invited
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
summary: Share board
tags:
- Board members
get:
description: Retrieves a pageable list of members for a board.
Required scope
boards:read
Rate limiting
Level 1
operationId: get-board-members
parameters:
- in: query
name: limit
schema:
type: string
description: 'The maximum number of board members to retrieve.
Default: `20`.'
maximum: 50
minimum: 1
- in: query
name: offset
schema:
type: string
description: 'The (zero-based) offset of the first item in the collection to return.
Default: `0`.'
- description: Unique identifier (ID) of the board to which the board member belongs.
in: path
name: board_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BoardMembersPagedResponse'
description: Board members retrieved
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
summary: Get all board members
tags:
- Board members
/v2/boards/{board_id}/members/{board_member_id}:
get:
x-settings:
skip-tests: true
description: Retrieves information for a board member.
Required scope
boards:read
Rate limiting
Level 1
operationId: get-specific-board-member
parameters:
- description: Unique identifier (ID) of the board to which the board member belongs.
in: path
name: board_id
required: true
schema:
type: string
- description: Unique identifier (ID) of the board member whose role you want to retrieve.
in: path
name: board_member_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BoardMemberWithLinks'
description: Board member retrieved
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
summary: Get specific board member
tags:
- Board members
patch:
x-settings:
skip-tests: true
description: Updates the role of a board member.
Required scope
boards:write
Rate limiting
Level 2
operationId: update-board-member
parameters:
- description: Unique identifier (ID) of the board for which you want to update the role of the board member.
in: path
name: board_id
required: true
schema:
type: string
- description: Unique identifier (ID) of the board member whose role you want to update.
in: path
name: board_member_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BoardMemberChanges'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BoardMemberWithLinks'
description: Board member updated
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
summary: Update board member
tags:
- Board members
delete:
x-settings:
skip-tests: true
description: Removes a board member from a board.
Required scope
boards:write
Rate limiting
Level 2
operationId: remove-board-member
parameters:
- description: Unique identifier (ID) of the board from which you want to delete an item.
in: path
name: board_id
required: true
schema:
type: string
- description: Unique identifier (ID) of the board member whose role you want to delete.
in: path
name: board_member_id
required: true
schema:
type: string
responses:
'204':
content:
application/json:
schema:
type: object
description: Board member deleted
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
summary: Remove board member
tags:
- Board members
components:
schemas:
InvitationError:
type: object
description: Contains information about the invites that failed.
properties:
email:
type: string
description: Email ID for which the invitation failed.
example: john.smith.demo@miro.com
reason:
type: string
description: Reason why the invitation failed.
example: INVITATION_FAILED
InvitationResult:
type: object
properties:
failed:
type: array
description: Contains information about the invites that failed.
items:
$ref: '#/components/schemas/InvitationError'
successful:
type: array
description: Contains information about the invites that were successfully sent.
example: 3074457350804038700
items:
type: integer
format: int64
description: Contains information about the invites that were successfully sent.
example: 3074457350804038700
BoardMemberChanges:
type: object
properties:
role:
type: string
default: commenter
description: Role of the board member.
enum:
- viewer
- commenter
- editor
- coowner
- owner
BoardMember:
type: object
description: Contains the current user's board membership details. The current user could be different from the board owner.
properties:
id:
type: string
description: Unique identifier (ID) of the user.
example: '3074457353169356300'
name:
type: string
description: Name of the user.
example: John Smith
role:
type: string
description: Role of the board member.
enum:
- viewer
- commenter
- editor
- coowner
- owner
type:
type: string
description: Type of the object that is returned. In this case, `type` returns `board_member`.
example: board_member
required:
- id
- name
- type
BoardMembersPagedResponse:
type: object
properties:
data:
type: array
description: Contains the result data.
items:
$ref: '#/components/schemas/BoardMember'
total:
type: integer
format: int64
description: Total number of results available. If the value of the `total` parameter is higher than the value of the `size` parameter, this means that there are more results that you can retrieve. To retrieve more results, you can make another request and set the `offset` value accordingly. For example, if there are `30` results, and the request has the `offset` set to `0` and the `limit` set to `20`, the `size` parameter will return `20` and the `total` parameter will return `30`. This means that there are 9 more results to retrieve (as the offset is zero-based).
example: 1
size:
type: integer
format: int32
description: Number of results returned in the response. The `size` is the number of results returned considering the `offset` and the `limit` values sent in the request. For example, if there are `30` results, and the request has the offset set to `0` and the `limit` set to `20`, the `size` of the results will be `20`.
If there are `10` results, and the request has the offset set to `0` and the `limit` set to `20`, the `size` of the results will be `10`.
If there are `30` results, and the request has the offset set to `28` and the `limit` set to `20`, the `size` of the results will be `2` as the `offset` is the zero-based offset of the first item in the collection.
example: 1
offset:
type: integer
format: int32
description: Zero-based index of the first item in the collection. For example, If there are `30` results, and the request has the offset set to `28`, the response will return `2` results.
example: 0
limit:
type: integer
format: int32
description: 'Maximum number of results returned based on the `limit` specified in the request. For example, if there are `30` results, and the request has the offset set to `0` and the `limit` set to `20`, the `size` of the results will be `20`. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the offset parameter. In this example, you will set the offset parameter to 20 as the offset is zero-based.
'
example: 20
links:
$ref: '#/components/schemas/PageLinks'
type:
type: string
SelfLink:
type: object
description: Contains applicable links for the current object.
properties:
self:
type: string
description: Link to obtain more information about the current object.
example: http://api.miro.com/v2/boards/o9J_koQspF4=/object_type/3074457349143649487
PageLinks:
type: object
description: Contains pagination links for the collection.
properties:
first:
type: string
description: Link to retrieve information in the first page of the collection.
example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=MzQ1ODc2NaSDNRDMDA3MzYyOX==
last:
type: string
description: Link to the retrieve information in the last page of the collection.
example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=MzQ1ODc2NDUyNDUyMDA3MzYyOX==
next:
type: string
description: Link to retrieve information in the next page of the collection.
example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=MzQ1ODc2NDUyNDsdgsFEwfFJCw==
prev:
type: string
description: Link to retrieve information in the previous page of the collection.
example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=
self:
type: string
description: Link to retrieve information in the current page of the collection.
example: http://api.miro.com/v2/boards/o9J_lJWSHdg=/items?limit=10&cursor=MzQ1OD1245643FWUyMDA3MzYyOX==
BoardMembersInvite:
type: object
properties:
emails:
type: array
description: Email IDs of the users you want to invite to the board. You can invite up to 20 members per call.
items:
type: string
example: member@email.com
description: Email IDs of the users you want to invite to the board. You can invite up to 20 members per call.
maxItems: 20
minItems: 1
role:
type: string
default: commenter
description: Role of the board member. Inviting users with the role `owner` has the same effect as the role `coowner`.
enum:
- viewer
- commenter
- editor
- coowner
- owner
message:
type: string
description: The message that will be sent in the invitation email.
example: Hey there! Join my board and let's collaborate on this project!
required:
- emails
BoardMemberWithLinks:
type: object
properties:
id:
type: string
description: Unique identifier (ID) of the user.
example: '3074457353169356300'
name:
type: string
description: Name of the user.
example: John Smith
role:
type: string
description: Role of the board member.
enum:
- viewer
- commenter
- editor
- coowner
- owner
links:
$ref: '#/components/schemas/SelfLink'
type:
type: string
description: Type of the object that is returned. In this case, `type` returns `board_member`.
example: board_member
required:
- id
- name
- type
securitySchemes:
oAuth2AuthCode:
type: oauth2
description: For more information, see https://developers.miro.com/reference/authorization-flow-for-expiring-tokens
flows:
authorizationCode:
authorizationUrl: https://miro.com/oauth/authorize
tokenUrl: https://api.miro.com/v1/oauth/token
scopes:
boards:read: Retrieve information about boards, board members, or items
boards:write: Create, update, or delete boards, board members, or items
microphone:listen: Access a user's microphone to record audio in an iFrame
screen:record: Access a user's screen to record it in an iFrame
webcam:record: Allows an iFrame to access a user's camera to record video
organizations:read: Read information about the organization, such as name, plan, number of licenses, organization settings, or organization members.
organizations:teams:read: Read team information, such as the list of teams, team settings, team members, for an organization.
organizations:teams:write: Create or delete teams, update team information, team settings, team members, for an organization.
x-settings:
publish: true