Microsoft Fabric Folders API

The Folders API from Microsoft Fabric — 3 operation(s) for folders.

Operations 6

GET /workspaces/{workspaceId}/folders Returns a list of folders from the specified workspace #
POST /workspaces/{workspaceId}/folders Creates a folder in the specified workspace #
GET /workspaces/{workspaceId}/folders/{folderId} Returns the properties of the specified folder #
PATCH /workspaces/{workspaceId}/folders/{folderId} Updates the properties of the specified folder #
DELETE /workspaces/{workspaceId}/folders/{folderId} Deletes the specified folder #
POST /workspaces/{workspaceId}/folders/{folderId}/move Moves the specified folder within the same workspace #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/microsoft-fabric:microsoft-fabric-folders-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

microsoft-fabric-folders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Microsoft Fabric Platform REST Folders API
  version: v1
  x-source: 'https://github.com/microsoft/fabric-rest-api-specs (bundled from openapi/_original/fabric-rest-api-specs: platform/swagger.json)'
servers:
- url: https://api.fabric.microsoft.com/v1
security: []
tags:
- name: Folders
paths:
  /workspaces/{workspaceId}/folders:
    get:
      summary: Returns a list of folders from the specified workspace
      description: '> [!NOTE]

        > This API is part of a Preview release and is provided for evaluation and development purposes only. It may change based on feedback and is not recommended for production use.


        This API supports pagination.


        ## Permissions


        The caller must have *viewer* or higher workspace role.


        ## Required Delegated Scopes


        Workspace.Read.All or Workspace.ReadWrite.All


        ## Microsoft Entra supported identities


        This API supports the Microsoft identities listed in this section.


        | Identity | Support |

        |-|-|

        | User | Yes |

        | Service principal and Managed identities | Yes |


        ## Interface'
      tags:
      - Folders
      operationId: Folders_ListFolders
      x-ms-pageable:
        nextLinkName: continuationUri
      parameters:
      - in: path
        name: workspaceId
        description: The workspace ID.
        required: true
        schema:
          type: string
          format: uuid
      - in: query
        name: rootFolderId
        description: This parameter allows users to filter folders based on a specific root folder. If not provided, the workspace is used as the root folder.
        required: false
        schema:
          type: string
          format: uuid
      - in: query
        name: recursive
        description: Lists folders in a folder and its nested folders, or just a folder only. True - All folders in the folder and its nested folders are listed, False - Only folders in the folder are listed. The default value is true.
        required: false
        schema:
          type: boolean
      - in: query
        name: continuationToken
        description: A token for retrieving the next page of results.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folders'
        '429':
          description: The service rate limit was exceeded. The server returns a `Retry-After` header indicating, in seconds, how long the client must wait before sending additional requests.
          x-ms-error-response: true
          headers:
            Retry-After:
              description: The number of seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: 'Common error codes:


            * FolderNotFound - Could not find the requested folder.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      summary: Creates a folder in the specified workspace
      description: '> [!NOTE]

        > This API is part of a Preview release and is provided for evaluation and development purposes only. It may change based on feedback and is not recommended for production use.


        ## Permissions


        The caller must have *contributor* or higher workspace role.


        ## Required Delegated Scopes


        Workspace.ReadWrite.All


        ## Microsoft Entra supported identities


        This API supports the Microsoft identities listed in this section.


        | Identity | Support |

        |-|-|

        | User | Yes |

        | Service principal and Managed identities | Yes |


        ## Interface'
      tags:
      - Folders
      operationId: Folders_CreateFolder
      parameters:
      - in: path
        name: workspaceId
        description: The workspace ID.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '201':
          description: Successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '429':
          description: The service rate limit was exceeded. The server returns a `Retry-After` header indicating, in seconds, how long the client must wait before sending additional requests.
          x-ms-error-response: true
          headers:
            Retry-After:
              description: The number of seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: 'Common error codes:


            * FolderDisplayNameAlreadyInUse - Folder display name is already used.


            * FolderNotFound - The requested folder was not found in the workspace.


            * InvalidFolderDisplayName - The provided folder display name is invalid.


            * FolderDepthOutOfRange - The parent folder has achieved max depth, can''t create a new subfolder.


            * WorkspaceNotSupported - The specified workspace type doesn''t support Folder


            .* TooManyFolders - The specified workspace has reached the max count of folders, can''t create any more.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFolderRequest'
        description: Create folder request payload.
        required: true
  /workspaces/{workspaceId}/folders/{folderId}:
    get:
      summary: Returns the properties of the specified folder
      description: '> [!NOTE]

        > This API is part of a Preview release and is provided for evaluation and development purposes only. It may change based on feedback and is not recommended for production use.


        ## Permissions


        The caller must have *viewer* or higher role on the workspace.


        ## Required Delegated Scopes


        Workspace.Read.All or Workspace.ReadWrite.All


        ## Microsoft Entra supported identities


        This API supports the Microsoft identities listed in this section.


        | Identity | Support |

        |-|-|

        | User | Yes |

        | Service principal and Managed identities | Yes |


        ## Interface'
      tags:
      - Folders
      operationId: Folders_GetFolder
      parameters:
      - in: path
        name: workspaceId
        description: The workspace ID.
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: folderId
        description: The folder ID.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '429':
          description: The service rate limit was exceeded. The server returns a `Retry-After` header indicating, in seconds, how long the client must wait before sending additional requests.
          x-ms-error-response: true
          headers:
            Retry-After:
              description: The number of seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: 'Common error codes:


            * FolderNotFound - The requested folder was not found in the workspace.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    patch:
      summary: Updates the properties of the specified folder
      description: '> [!NOTE]

        > This API is part of a Preview release and is provided for evaluation and development purposes only. It may change based on feedback and is not recommended for production use.


        ## Permissions


        The caller must have *contributor* or higher role on the workspace.


        ## Required Delegated Scopes


        Workspace.ReadWrite.All


        ## Microsoft Entra supported identities


        This API supports the Microsoft identities listed in this section.


        | Identity | Support |

        |-|-|

        | User | Yes |

        | Service principal and Managed identities | Yes |


        ## Interface'
      tags:
      - Folders
      operationId: Folders_UpdateFolder
      parameters:
      - in: path
        name: workspaceId
        description: The workspace ID.
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: folderId
        description: The folder ID.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '429':
          description: The service rate limit was exceeded. The server returns a `Retry-After` header indicating, in seconds, how long the client must wait before sending additional requests.
          x-ms-error-response: true
          headers:
            Retry-After:
              description: The number of seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: 'Common error codes:


            * FolderNotFound - The requested folder was not found in the workspace.


            * FolderDisplayNameAlreadyInUse - Folder display name is already used.


            * InvalidFolderDisplayName - The provided folder name is invalid, such as including invalid chars.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFolderRequest'
        description: Update folder request payload.
        required: true
    delete:
      summary: Deletes the specified folder
      description: '> [!NOTE]

        > This API is part of a Preview release and is provided for evaluation and development purposes only. It may change based on feedback and is not recommended for production use.


        ## Permissions


        The caller must have *contributor* or higher workspace role.


        ## Required Delegated Scopes


        Workspace.ReadWrite.All


        ## Limitations

        - This API is supported only for the empty folder. Deleting a folder with any items or nested folders inside is not allowed, and returns a FolderNotEmpty error response.


        ## Microsoft Entra supported identities


        This API supports the Microsoft identities listed in this section.


        | Identity | Support |

        |-|-|

        | User | Yes |

        | Service principal and Managed identities | Yes |


        ## Interface'
      tags:
      - Folders
      operationId: Folders_DeleteFolder
      parameters:
      - in: path
        name: workspaceId
        description: The workspace ID.
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: folderId
        description: The folder ID.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request completed successfully.
        '429':
          description: The service rate limit was exceeded. The server returns a `Retry-After` header indicating, in seconds, how long the client must wait before sending additional requests.
          x-ms-error-response: true
          headers:
            Retry-After:
              description: The number of seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: 'Common error codes:


            * FolderNotFound - The requested folder was not found in the workspace.


            * FolderNotEmpty - The requested folder was not empty.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /workspaces/{workspaceId}/folders/{folderId}/move:
    post:
      summary: Moves the specified folder within the same workspace
      description: '> [!NOTE]

        > This API is part of a Preview release and is provided for evaluation and development purposes only. It may change based on feedback and is not recommended for production use.


        ## Permissions


        The caller must have *contributor* or higher role on the workspace.


        ## Required Delegated Scopes


        Workspace.ReadWrite.All


        ## Microsoft Entra supported identities


        This API supports the Microsoft identities listed in this section.


        | Identity | Support |

        |-|-|

        | User | Yes |

        | Service principal and Managed identities | Yes |


        ## Interface'
      tags:
      - Folders
      operationId: Folders_MoveFolder
      parameters:
      - in: path
        name: workspaceId
        description: The workspace ID.
        required: true
        schema:
          type: string
          format: uuid
      - in: path
        name: folderId
        description: The folder ID.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '429':
          description: The service rate limit was exceeded. The server returns a `Retry-After` header indicating, in seconds, how long the client must wait before sending additional requests.
          x-ms-error-response: true
          headers:
            Retry-After:
              description: The number of seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: 'Common error codes:


            * FolderNotFound - Could not find the requested folder.


            * FolderDepthOutOfRange - The parent folder has achieved max depth, can''t create a new subfolder.


            * InfiniteFolderHierarchyLoop - The folder can''t be moved into any of its descents.


            * FolderDisplayNameAlreadyInUse - Folder display name is already used.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveFolderRequest'
        description: Move folder request payload.
        required: true
components:
  schemas:
    ErrorResponse:
      description: The error response.
      required:
      - message
      - errorCode
      allOf:
      - $ref: '#/components/schemas/ErrorResponseDetails'
      properties:
        requestId:
          type: string
          format: uuid
          description: ID of the request associated with the error.
          readOnly: true
        moreDetails:
          description: List of additional error details.
          type: array
          items:
            $ref: '#/components/schemas/ErrorResponseDetails'
          readOnly: true
        isRetriable:
          type: boolean
          description: When true, the request can be retried. Use the `Retry-After` response header to determine the delay, if available.
          readOnly: true
    UpdateFolderRequest:
      description: Update folder request.
      required:
      - displayName
      properties:
        displayName:
          description: The folder display name. The name must meet [Folder name requirements](/fabric/get-started/workspaces-folders#folder-name-requirements)
          type: string
          readOnly: false
    MoveFolderRequest:
      description: Move folder request.
      properties:
        targetFolderId:
          description: The destination folder ID. If not provided, the workspace is used as the destination folder.
          type: string
          format: uuid
          readOnly: false
    ErrorParameter:
      description: A structured parameter providing additional machine-readable context about an error.
      type: object
      properties:
        name:
          type: string
          description: The parameter identifier.
          readOnly: true
        value:
          type: string
          description: The parameter value.
          readOnly: true
        message:
          type: string
          description: A human-readable description of the parameter's meaning.
          readOnly: true
    CreateFolderRequest:
      description: Create folder request payload.
      required:
      - displayName
      properties:
        displayName:
          description: The folder display name. The name must meet [Folder name requirements](/fabric/get-started/workspaces-folders#folder-name-requirements)
          type: string
          readOnly: false
        parentFolderId:
          description: The parent folder ID. If not specified or null, the folder is created with the workspace as its parent folder.
          type: string
          format: uuid
          readOnly: false
    ErrorResponseDetails:
      description: The error response details.
      type: object
      required:
      - message
      - errorCode
      properties:
        errorCode:
          type: string
          description: A specific identifier that provides information about an error condition, allowing for standardized communication between our service and its users.
          readOnly: true
        message:
          type: string
          description: A human readable representation of the error.
          readOnly: true
        relatedResource:
          $ref: '#/components/schemas/ErrorRelatedResource'
        parameters:
          description: Structured parameters providing additional machine-readable context about the error.
          type: array
          items:
            $ref: '#/components/schemas/ErrorParameter'
          readOnly: true
    ErrorRelatedResource:
      description: The error related resource details object.
      type: object
      required:
      - resourceId
      - resourceType
      properties:
        resourceId:
          type: string
          description: The resource ID that's involved in the error.
          readOnly: true
        resourceType:
          type: string
          description: The type of the resource that's involved in the error.
          readOnly: true
    PaginatedResponse:
      properties:
        continuationToken:
          type: string
          description: The token for the next result set batch. If there are no more records, it's removed from the response.
        continuationUri:
          type: string
          description: The URI of the next result set batch. If there are no more records, it's removed from the response.
    Folders:
      type: object
      properties:
        value:
          description: A list of folders.
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Folder'
      allOf:
      - $ref: '#/components/schemas/PaginatedResponse'
    Folder:
      description: A folder object.
      type: object
      properties:
        id:
          description: The folder ID.
          type: string
          format: uuid
          readOnly: true
        displayName:
          description: The folder display name.
          type: string
          readOnly: true
        workspaceId:
          description: The workspace ID.
          type: string
          format: uuid
          readOnly: true
        parentFolderId:
          description: The parent folder ID. If the parent folder is a workspace, `parentFolderId` is either not specified or null.
          type: string
          format: uuid
          readOnly: true