Microsoft Fabric Folders API
The Folders API from Microsoft Fabric — 3 operation(s) for folders.
The Folders API from Microsoft Fabric — 3 operation(s) for folders.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/microsoft-fabric:microsoft-fabric-folders-api"
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.
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: 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