Miro Share projects with groups API

The Share projects with groups API from Miro — 2 operation(s) for share projects with groups.

OpenAPI Specification

miro-share-projects-with-groups-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Miro Developer Platform AI Interaction Logs Share projects with groups API
  version: v2.0
  description: '<img src="https://content.pstmn.io/47449ea6-0ef7-4af2-bac1-e58a70e61c58/aW1hZ2UucG5n" width="1685" height="593">


    ### 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: Share projects with groups
paths:
  /v2/orgs/{org_id}/projects/{project_id}/groups:
    get:
      description: Retrieves information about user groups invited to the specified project.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:groups:read</a> <br/> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <h3>Rate limiting</h3> <a target=_blank href="/reference/rate-limiting#rate-limit-tiers">Level 1</a> <br/> <h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href="/reference/api-reference#enterprise-plan">Enterprise plan</a> 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 <a target=_blank href="https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9">this form</a>.</p>
      operationId: enterprise-projects-get-groups
      parameters:
      - $ref: '#/components/parameters/pathOrgId'
      - $ref: '#/components/parameters/pathProjectId'
      - $ref: '#/components/parameters/queryLimitProjectUserGroups'
      - $ref: '#/components/parameters/queryCursorProjectUserGroups'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectUserGroupsPage'
          description: Get user groups assigned to project
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
      summary: Get project user group assignments
      tags:
      - Share projects with groups
    post:
      description: Shares a project with user groups with a specified role. Updates the role if already shared.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:groups:read</a><br/> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <h3>Rate limiting</h3> <a target=_blank href="/reference/rate-limiting#rate-limit-tiers">Level 1</a><br/> <h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href="/reference/api-reference#enterprise-plan">Enterprise plan</a> 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 <a target=_blank href="https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9">this form</a>.</p>
      operationId: enterprise-project-create-group
      parameters:
      - $ref: '#/components/parameters/pathOrgId'
      - $ref: '#/components/parameters/pathProjectId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectUserGroupsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectUserGroup'
          description: User group role assignment on project
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          $ref: '#/components/responses/409'
        '429':
          $ref: '#/components/responses/429'
      summary: Create project user group assignments
      tags:
      - Share projects with groups
  /v2/orgs/{org_id}/projects/{project_id}/groups/{group_id}:
    delete:
      description: Removes a user group from the specified project.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:groups:read</a> <br/> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <h3>Rate limiting</h3> <a target=_blank href="/reference/rate-limiting#rate-limit-tiers">Level 1</a> <br/> <h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href="/reference/api-reference#enterprise-plan">Enterprise plan</a> 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 <a target=_blank href="https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9">this form</a>.</p>
      operationId: enterprise-project-delete-groups
      parameters:
      - $ref: '#/components/parameters/pathOrgId'
      - $ref: '#/components/parameters/pathProjectId'
      - $ref: '#/components/parameters/pathGroupId'
      responses:
        '204':
          description: User group to project assignment deleted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '429':
          $ref: '#/components/responses/429'
      summary: Delete project user group assignment
      tags:
      - Share projects with groups
components:
  parameters:
    queryLimitProjectUserGroups:
      name: limit
      description: The maximum number of user groups in the result list.
      in: query
      schema:
        $ref: '#/components/schemas/QueryLimit'
    queryCursorProjectUserGroups:
      name: cursor
      description: A representation of the position of a user group in the full set of results. It is used to determine the first item of the resulting set. Leave empty to retrieve items from the beginning.
      in: query
      schema:
        $ref: '#/components/schemas/QueryCursorProjectUserGroups'
    pathProjectId:
      name: project_id
      description: The ID of the project.
      in: path
      required: true
      schema:
        type: string
      example: '3074457345618265000'
    pathOrgId:
      name: org_id
      description: The ID of an organization.
      in: path
      required: true
      schema:
        type: string
      example: '3074457345618265000'
    pathGroupId:
      name: group_id
      description: The ID of a user group.
      in: path
      required: true
      schema:
        type: string
      example: '3074457345618265000'
  schemas:
    QueryLimit:
      type: integer
      format: int32
      minimum: 1
      maximum: 100
      default: 100
      example: 100
    QueryCursorProjectUserGroups:
      type: string
      example: MlR5YnRrRUJBV0N2OUxnbWxTNnJ5THwzNDU4NzY0NjEzMTE0Nzk4ODA1fEdST1VQ
    CreateProjectUserGroupsRequest:
      type: object
      required:
      - userGroupIds
      - role
      properties:
        userGroupIds:
          type: array
          description: List of user group ids.
          items:
            type: string
            description: User group ID.
            example: '3074457345618265000'
        role:
          type: string
          description: Role of the user group on the project.
          enum:
          - VIEWER
          - COMMENTER
          - EDITOR
          default: VIEWER
          example: VIEWER
    PageLimit:
      type: integer
      format: int32
      minimum: 1
      maximum: 100
      default: 100
      example: 100
      description: The maximum number of results to return per call. If the number of project in the response is greater than the limit specified, the response returns the cursor parameter with a value.
    ProjectUserGroup:
      type: object
      required:
      - id
      - role
      properties:
        id:
          type: string
          description: User group ID.
          example: '3074457345618265000'
        role:
          description: Role of the user group on the project.
          enum:
          - VIEWER
          - COMMENTER
          - EDITOR
          default: VIEWER
          example: VIEWER
        type:
          description: Object type
          default: project-user-group
    PageSize:
      type: integer
      format: int32
      minimum: 0
      maximum: 100
      default: 100
      example: 87
      description: Number of results returned in the response considering the cursor and the limit values sent in the request. For example, if there are 20 results, the request does not have a cursor value, and the limit set to 10, the size of the results will be 10. In this example, the response will also return a cursor value that can be used to retrieve the next set of 10 remaining results in the collection.
    PageCursor:
      type: string
      description: Indicator of the position of the next page of the result. To retrieve the next page, make another query setting its cursor field to the value returned by the current query. If the value is empty, there are no more pages to fetch.
      example: '3074457345821140946'
    ProjectUserGroupsPage:
      type: object
      description: Page of user groups that with access to the project.
      required:
      - limit
      - size
      - data
      properties:
        limit:
          $ref: '#/components/schemas/PageLimit'
        size:
          $ref: '#/components/schemas/PageSize'
        data:
          type: array
          description: List of user groups.
          items:
            $ref: '#/components/schemas/ProjectUserGroup'
        cursor:
          $ref: '#/components/schemas/PageCursor'
        type:
          $ref: '#/components/schemas/PageType'
    PageType:
      type: string
      description: Type of the object returned.
      default: cursor-list
  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