> ## Documentation Index
> Fetch the complete documentation index at: https://docs-platform.crewai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Grant a role on a Studio project

> Grants a role on this studio project to a user, a customer-owned team or an active service account in
the organization: sharing the studio project. Grants are additive, so the principal keeps any other
role it holds; to change a role, grant the new one and revoke the old one.

The authenticated service account must hold the `organizations:manage_identity_and_access`
permission, or a role that can share this studio project. Sharing is limited to the roles
`GET /api/v1/roles?resource_type=StudioProject` lists, carrying no more permissions than the
caller's own sharing role. A studio project the caller can't see, or one that can't be shared, is not
found.




## OpenAPI

````yaml /openapi/platform-v1.yaml post /api/v1/studio-projects/{studio_project_id}/granted-roles
openapi: 3.0.1
info:
  title: CrewAI Platform API
  version: v1
  description: Supported public API for CrewAI Platform.
servers:
  - url: https://app.crewai.com
    description: Current CrewAI Platform host
security:
  - bearerAuth: []
tags:
  - name: Users
    description: Users in the organization.
  - name: Status
    description: Platform health and API availability.
  - name: Automations
    description: >-
      Automations, their source artifacts, their executions, and their
      schedules.
  - name: Teams
    description: Teams in the organization.
  - name: Group Mappings
    description: Identity-provider group mappings to Teams.
  - name: Service Accounts
    description: Service accounts in the organization.
  - name: Webhook Endpoints
    description: Endpoints that receive signed event deliveries.
  - name: Studio Projects
    description: Projects built in Crew Studio.
  - name: Environment Variables
    description: Environment variables in the organization.
  - name: Git Repositories
    description: Git repositories connected to the organization.
  - name: LLM Connections
    description: Connections to LLM providers.
  - name: Tools
    description: Tools in the organization's tool repository.
paths:
  /api/v1/studio-projects/{studio_project_id}/granted-roles:
    parameters:
      - name: studio_project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          example: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
    post:
      tags:
        - Studio Projects
      summary: Grant a role on a Studio project
      description: >
        Grants a role on this studio project to a user, a customer-owned team or
        an active service account in

        the organization: sharing the studio project. Grants are additive, so
        the principal keeps any other

        role it holds; to change a role, grant the new one and revoke the old
        one.


        The authenticated service account must hold the
        `organizations:manage_identity_and_access`

        permission, or a role that can share this studio project. Sharing is
        limited to the roles

        `GET /api/v1/roles?resource_type=StudioProject` lists, carrying no more
        permissions than the

        caller's own sharing role. A studio project the caller can't see, or one
        that can't be shared, is not

        found.
      operationId: createStudioProjectGrantedRole
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                role_id:
                  type: string
                  format: uuid
                  example: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                principal:
                  type: object
                  required:
                    - type
                    - id
                  additionalProperties: false
                  properties:
                    type:
                      type: string
                      example: User
                      enum:
                        - User
                        - ServiceAccount
                        - Team
                      x-crewai-enum-format: freeform
                    id:
                      type: string
                      format: uuid
                      example: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
              required:
                - role_id
                - principal
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              examples:
                created:
                  value:
                    data:
                      id: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                      principal:
                        type: User
                        id: 0d6b2f4e-3a1c-4e8f-9b7a-5c2d1e0f9a8b
                      role:
                        id: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                        name: Automation Reader
                        created_at: '2026-07-07T00:00:00Z'
                        updated_at: '2026-07-07T00:00:00Z'
                      scope:
                        type: StudioProject
                        id: 17790c04-15ee-47b1-bac3-cbee04bb0708
                      created_at: '2026-07-07T00:00:00Z'
                      updated_at: '2026-07-07T00:00:00Z'
                  summary: The role was granted on the studio project
              schema:
                type: object
                required:
                  - data
                additionalProperties: false
                properties:
                  data:
                    type: object
                    required:
                      - id
                      - principal
                      - role
                      - scope
                      - created_at
                      - updated_at
                    additionalProperties: false
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                      principal:
                        type: object
                        required:
                          - type
                          - id
                        additionalProperties: false
                        properties:
                          type:
                            type: string
                            example: User
                            enum:
                              - User
                              - ServiceAccount
                              - Team
                            x-crewai-enum-format: freeform
                          id:
                            type: string
                            format: uuid
                            example: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                      role:
                        type: object
                        additionalProperties: false
                        required:
                          - id
                          - name
                          - created_at
                          - updated_at
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                          name:
                            type: string
                            example: Automation Reader
                          created_at:
                            type: string
                            format: date-time
                            example: '2026-07-07T00:00:00Z'
                          updated_at:
                            type: string
                            format: date-time
                            example: '2026-07-07T00:00:00Z'
                      scope:
                        type: object
                        required:
                          - type
                          - id
                        additionalProperties: false
                        properties:
                          type:
                            type: string
                            example: StudioProject
                            enum:
                              - StudioProject
                              - Organization
                            x-crewai-enum-format: freeform
                          id:
                            type: string
                            format: uuid
                            example: 4f6d0d9a-7b78-4c6a-b64f-2e2e3d2c8f9a
                      created_at:
                        type: string
                        format: date-time
                        example: '2026-07-07T00:00:00Z'
                      updated_at:
                        type: string
                        format: date-time
                        example: '2026-07-07T00:00:00Z'
        '400':
          description: Bad Request
          content:
            application/json:
              examples:
                missing_role_id:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/bad_request
                        code: bad_request
                        title: Bad request
                        status: 400
                        detail: The request is invalid.
                  summary: Missing role_id
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/unauthorized
                        code: unauthorized
                        title: Unauthorized
                        status: 401
                        detail: Missing or invalid bearer token.
                  summary: Missing or invalid bearer token
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '403':
          description: Forbidden
          content:
            application/json:
              examples:
                not_an_admin:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/forbidden
                        code: forbidden
                        title: Forbidden
                        status: 403
                        detail: Only admins of this resource can share it.
                  summary: The caller can read the studio project but can't share it
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '404':
          description: Not Found
          content:
            application/json:
              examples:
                not_found:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/not_found
                        code: not_found
                        title: Not found
                        status: 404
                        detail: The requested resource could not be found.
                  summary: >-
                    The studio project doesn't exist, the caller can't see it,
                    or it can't be shared
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              examples:
                role_not_offered:
                  value:
                    errors:
                      - type: >-
                          https://docs-platform.crewai.com/api/problems/validation_error
                        code: validation_error
                        title: Validation error
                        status: 422
                        detail: That role can't be granted on this resource.
                  summary: The role isn't one the studio project can be shared with
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  schemas:
    ErrorEnvelope:
      type: object
      required:
        - errors
      additionalProperties: false
      properties:
        errors:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Error'
    Error:
      type: object
      description: Public API error object.
      required:
        - type
        - code
        - title
        - status
        - detail
      additionalProperties: false
      properties:
        type:
          type: string
          format: uri
          enum:
            - https://docs-platform.crewai.com/api/problems/bad_request
            - https://docs-platform.crewai.com/api/problems/clipper_disabled
            - https://docs-platform.crewai.com/api/problems/clipper_disallowed
            - >-
              https://docs-platform.crewai.com/api/problems/clipper_feature_disabled
            - https://docs-platform.crewai.com/api/problems/clipper_not_found
            - https://docs-platform.crewai.com/api/problems/conflict
            - https://docs-platform.crewai.com/api/problems/forbidden
            - https://docs-platform.crewai.com/api/problems/internal_error
            - https://docs-platform.crewai.com/api/problems/not_found
            - https://docs-platform.crewai.com/api/problems/service_unavailable
            - >-
              https://docs-platform.crewai.com/api/problems/tool_execution_failed
            - https://docs-platform.crewai.com/api/problems/unauthorized
            - https://docs-platform.crewai.com/api/problems/validation_error
          example: https://docs-platform.crewai.com/api/problems/bad_request
        code:
          type: string
          enum:
            - bad_request
            - clipper_disabled
            - clipper_disallowed
            - clipper_feature_disabled
            - clipper_not_found
            - conflict
            - forbidden
            - internal_error
            - not_found
            - service_unavailable
            - tool_execution_failed
            - unauthorized
            - validation_error
          example: bad_request
        title:
          type: string
          x-crewai-enum-format: freeform
          enum:
            - Bad request
            - Clipper resource disabled
            - Clipper resource disallowed
            - Clipper feature disabled
            - Clipper resource not found
            - Conflict
            - Forbidden
            - Internal error
            - Not found
            - Service unavailable
            - Tool execution failed
            - Unauthorized
            - Validation error
          example: Bad request
        status:
          type: integer
          enum:
            - 400
            - 401
            - 403
            - 404
            - 409
            - 422
            - 500
            - 503
          example: 400
        detail:
          type: string
          example: The request is invalid.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: opaque

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.