Microsoft Fabric Discovery API
The Discovery API from Microsoft Fabric — 5 operation(s) for discovery.
The Discovery API from Microsoft Fabric — 5 operation(s) for discovery.
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-discovery-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 Workload Items REST Discovery API
version: v1
x-source: 'https://github.com/microsoft/fabric-rest-api-specs (bundled from openapi/_original/fabric-rest-api-specs: anomalyDetector/swagger.json, apacheAirflowJob/swagger.json, appBackend/swagger.json, azureDatabricksStorage/swagger.json, copyJob/swagger.json, cosmosDbDatabase/swagger.json, dashboard/swagger.json, dataAgent/swagger.json, dataBuildToolJob/swagger.json, dataPipeline/swagger.json, dataflow/swagger.json, datamart/swagger.json, deploymentPlan/swagger.json, digitalTwinBuilder/swagger.json, digitalTwinBuilderFlow/swagger.json, environment/swagger.json, eventSchemaSet/swagger.json, eventhouse/swagger.json, eventstream/swagger.json, graphModel/swagger.json, graphQLApi/swagger.json, graphQuerySet/swagger.json, kqlDashboard/swagger.json, kqlDatabase/swagger.json, kqlQueryset/swagger.json, lakehouse/swagger.json, map/swagger.json, mirroredAzureDatabricksCatalog/swagger.json, mirroredCatalog/swagger.json, mirroredDatabase/swagger.json, mirroredWarehouse/swagger.json, mlExperiment/swagger.json, mlModel/swagger.json, monitoring/swagger.json, mountedDataFactory/swagger.json, notebook/swagger.json, ontology/swagger.json, operationsAgent/swagger.json, orgApp/swagger.json, orgAppAudience/swagger.json, paginatedReport/swagger.json, plan/swagger.json, policySet/swagger.json, realTimeIntelligence/swagger.json, reflex/swagger.json, report/swagger.json, semanticModel/swagger.json, snowflakeDatabase/swagger.json, spark/swagger.json, sparkjobdefinition/swagger.json, sqlDatabase/swagger.json, sqlEndpoint/swagger.json, userDataFunction/swagger.json, variableLibrary/swagger.json, warehouse/swagger.json)'
servers:
- url: https://api.fabric.microsoft.com/v1
security: []
tags:
- name: Discovery
paths:
/workspaces/{workspaceId}/azureDatabricks/catalogs:
get:
summary: Returns a list of catalogs from Unity Catalog
description: '> [!NOTE]
> Mirrored Azure Databricks Catalog item is currently in Preview (learn more).
This API supports pagination.
## Permissions
The caller must have *viewer* or higher workspace role.
## Required Delegated Scopes
Workspace.Read.All or Workspace.ReadWrite.All or DatabricksCatalog.Read.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:
- Discovery
operationId: Discovery_DiscoverCatalogs
x-ms-pageable:
nextLinkName: continuationUri
parameters:
- in: path
name: workspaceId
description: The workspace ID.
required: true
schema:
type: string
format: uuid
- in: query
name: databricksWorkspaceConnectionId
description: The Databricks workspace connection ID.
required: true
schema:
type: string
format: uuid
- in: query
name: continuationToken
description: A token for retrieving the next page of results.
required: false
schema:
type: string
- in: query
name: maxResults
description: The maximum number of results to return.
required: false
schema:
type: integer
responses:
'200':
description: Request completed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/DatabricksCatalogs'
'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:\n\n* OperationNotSupportedForItem - Operation not supported for requested item. \n\n* CorruptedPayload - The provided payload is corrupted."
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/workspaces/{workspaceId}/azureDatabricks/catalogs/{catalogName}/schemas:
get:
summary: Returns a list of schemas in the given catalog from Unity Catalog
description: '> [!NOTE]
> Mirrored Azure Databricks Catalog item is currently in Preview (learn more).
This API supports pagination.
## Permissions
The caller must have *viewer* or higher workspace role.
## Required Delegated Scopes
Workspace.Read.All or Workspace.ReadWrite.All or DatabricksCatalog.Read.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:
- Discovery
operationId: Discovery_DiscoverSchemas
x-ms-pageable:
nextLinkName: continuationUri
parameters:
- in: path
name: workspaceId
description: The workspace ID.
required: true
schema:
type: string
format: uuid
- in: path
name: catalogName
description: The catalog name.
required: true
schema:
type: string
- in: query
name: databricksWorkspaceConnectionId
description: The Databricks workspace connection ID.
required: true
schema:
type: string
format: uuid
- in: query
name: continuationToken
description: A token for retrieving the next page of results.
required: false
schema:
type: string
- in: query
name: maxResults
description: The maximum number of results to return.
required: false
schema:
type: integer
responses:
'200':
description: Request completed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/DatabricksSchemas'
'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:\n\n* OperationNotSupportedForItem - Operation not supported for requested item. \n\n* CorruptedPayload - The provided payload is corrupted."
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/workspaces/{workspaceId}/azureDatabricks/catalogs/{catalogName}/schemas/{schemaName}/tables:
get:
summary: Returns a list of tables in the given schema from Unity Catalog
description: '> [!NOTE]
> Mirrored Azure Databricks Catalog item is currently in Preview (learn more).
This API supports pagination.
## Permissions
The caller must have *viewer* or higher workspace role.
## Required Delegated Scopes
Workspace.Read.All or Workspace.ReadWrite.All or DatabricksCatalog.Read.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:
- Discovery
operationId: Discovery_DiscoverTables
x-ms-pageable:
nextLinkName: continuationUri
parameters:
- in: path
name: workspaceId
description: The workspace ID.
required: true
schema:
type: string
format: uuid
- in: path
name: catalogName
description: The catalog name.
required: true
schema:
type: string
- in: path
name: schemaName
description: The schema name.
required: true
schema:
type: string
- in: query
name: databricksWorkspaceConnectionId
description: The Databricks workspace connection ID.
required: true
schema:
type: string
format: uuid
- in: query
name: continuationToken
description: A token for retrieving the next page of results.
required: false
schema:
type: string
- in: query
name: maxResults
description: The maximum number of results to return.
required: false
schema:
type: integer
responses:
'200':
description: Request completed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/DatabricksTables'
'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:\n\n* OperationNotSupportedForItem - Operation not supported for requested item. \n\n* CorruptedPayload - The provided payload is corrupted."
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/workspaces/{workspaceId}/catalogmirroring/scopes?beta=true:
get:
summary: Returns a hierarchical list of namespaces from the source catalog
description: '> [!NOTE]
> This API is part of a Beta release and is provided for evaluation and development purposes only. It may change based on feedback and is not recommended for production use.
**When calling this API, callers must specify `true` as the value for the query parameter `beta`.**
This API supports pagination.
Returns a hierarchical list of namespaces from the source catalog. This API is used to browse and select the `scope` when creating or updating a MirroredCatalog.
## Permissions
The caller must have a *viewer* workspace role.
## Required Delegated Scopes
Workspace.Read.All or Workspace.ReadWrite.All or CatalogMirroring.Read.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:
- Discovery
operationId: Discovery_List_Scopes_(beta)
x-ms-pageable:
nextLinkName: continuationUri
parameters:
- in: path
name: workspaceId
description: The workspace ID.
required: true
schema:
type: string
format: uuid
- in: query
name: beta
description: This required parameter must be set to `true` to access this API, which is currently in beta.
required: true
schema:
type: boolean
- in: query
name: connectionId
description: The connection ID to the catalog.
required: true
schema:
type: string
format: uuid
- in: query
name: parent
description: Parent namespace segments. Pass each segment as a separate repeated query parameter (e.g., `parent=Accounting&parent=US`). The segments form the fully qualified parent namespace hierarchy and **must be provided in hierarchical order** (root-level segment first, leaf segment last). Omit for root namespaces.
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: recursive
description: 'If true, returns nested children. Default: false.'
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/ScopesResponse'
'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:
* ItemNotFound - The specified connection was not found.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/workspaces/{workspaceId}/catalogmirroring/tables?beta=true:
get:
summary: Returns a list of tables within a specified namespace scope from the source…
description: '> [!NOTE]
> This API is part of a Beta release and is provided for evaluation and development purposes only. It may change based on feedback and is not recommended for production use.
**When calling this API, callers must specify `true` as the value for the query parameter `beta`.**
This API supports pagination.
Returns a list of tables within a specified namespace scope from the source catalog. This API is used to browse tables when configuring partial mirroring with table-level selection.
## Permissions
The caller must have a *viewer* workspace role.
## Required Delegated Scopes
Workspace.Read.All or Workspace.ReadWrite.All or CatalogMirroring.Read.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:
- Discovery
operationId: Discovery_List_Tables_(beta)
x-ms-pageable:
nextLinkName: continuationUri
parameters:
- in: path
name: workspaceId
description: The workspace ID.
required: true
schema:
type: string
format: uuid
- in: query
name: beta
description: This required parameter must be set to `true` to access this API, which is currently in beta.
required: true
schema:
type: boolean
- in: query
name: scope
description: Required. Selectable namespace scope segments as repeated query parameters (e.g., `scope=Accounting&scope=US`) in root-first order. Pass empty (`scope=`) for root namespace.
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: connectionId
description: The connection ID to the catalog.
required: true
schema:
type: string
format: uuid
- 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/TablesResponse'
'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:
* ItemNotFound - The specified connection or namespace scope was not found.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
TableInfo:
description: Information about a table in the source catalog.
type: object
required:
- fullyQualifiedScope
- name
properties:
fullyQualifiedScope:
description: The complete namespace hierarchy from scope to the leaf schema containing the table. Use this value in `mountedTables[].source.typeProperties.fullyQualifiedScope`.
type: array
items:
type: string
readOnly: true
name:
description: The table name. Use this value in `mountedTables[].source.typeProperties.tableName`.
type: string
readOnly: true
IsSelectable:
type: string
description: Indicates whether a namespace can be used as a mirroring scope. Only `Selectable` namespaces can be used when creating or updating a MirroredCatalog. Additional values may be added over time.
enum:
- Selectable
- NotSelectable
x-ms-enum:
name: IsSelectable
modelAsString: true
values:
- value: Selectable
description: This namespace can be used as a mirroring scope. It is a parent of one or more leaf namespaces that contain tables. Leaf namespaces under it become schemas in the mirrored catalog.
- value: NotSelectable
description: This namespace cannot be used as a mirroring scope. It is either a leaf namespace that contains tables directly, or it has no leaf namespace children.
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
DatabricksTables:
description: A list of tables from Unity Catalog.
required:
- value
type: object
properties:
value:
description: A list of Databricks tables.
type: array
items:
$ref: '#/components/schemas/DatabricksTable'
Error:
$ref: '#/components/schemas/ErrorResponse'
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
DatabricksSchemas:
description: A list of schemas from Unity Catalog.
required:
- value
type: object
properties:
value:
description: A list of Databricks schemas.
type: array
items:
$ref: '#/components/schemas/DatabricksSchema'
Error:
$ref: '#/components/schemas/ErrorResponse'
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
Scope:
description: A namespace scope from the source catalog.
type: object
required:
- name
- fullyQualifiedScope
- isSelectable
properties:
name:
description: The namespace name (leaf segment of the hierarchy). When listing from the root level, the top-level entry is a virtual `(root)` node.
type: string
readOnly: true
fullyQualifiedScope:
description: Full namespace hierarchy as an array. For `Selectable` namespaces, this array can be passed as the `scope` when creating a MirroredCatalog.
type: array
items:
type: string
readOnly: true
isSelectable:
$ref: '#/components/schemas/IsSelectable'
children:
description: Nested child namespaces. Only populated when `recursive=true`.
type: array
items:
$ref: '#/components/schemas/Scope'
readOnly: true
CatalogType:
description: The type of the catalog. Additional CatalogType types may be added over time.
type: string
enum:
- MANAGED_CATALOG
x-ms-enum:
name: CatalogType
modelAsString: true
values:
- value: MANAGED_CATALOG
description: Managed Catalog
DatabricksCatalogs:
description: A list of catalogs from Unity Catalog.
required:
- value
type: object
properties:
value:
description: A list of Catalogs.
type: array
items:
$ref: '#/components/schemas/DatabricksCatalog'
Error:
$ref: '#/components/schemas/ErrorResponse'
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
mirroredAzureDatabricksCatalog_TableType:
description: The type of the table. Additional TableType types may be added over time.
type: string
enum:
- MANAGED
- EXTERNAL
x-ms-enum:
name: TableType
modelAsString: true
values:
- value: MANAGED
description: Managed Table
- value: EXTERNAL
description: External Table
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
ScopesResponse:
description: 'A list of scopes from the source catalog. When listing from the root level (no `parent` specified), the response contains a single virtual `(root)` entry with `fullyQualifiedScope: []` as the top-level item in `value`, with all actual namespaces nested under its `children` array. When `parent` is specified, the child namespaces are returned directly in `value` without the `(root)` wrapper.'
required:
- value
type: object
properties:
value:
description: A list of namespace scopes.
type: array
items:
$ref: '#/components/schemas/Scope'
readOnly: true
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
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
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
DataSourceFormat:
description: The data source format of the table. Additional DataSourceFormat types may be added over time.
type: string
enum:
- DELTA
x-ms-enum:
name: DataSourceFormat
modelAsString: true
values:
- value: DELTA
description: Delta format
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.
DatabricksSchema:
description: A schema from Unity Catalog
required:
- name
- fullName
type: object
properties:
name:
description: The name of the schema, relative to the parent catalog.
type: string
storageLocation:
description: The storage location of the schema.
type: string
fullName:
description: The full name of the schema, in the form of catalog_name.schema_name.
type: string
DatabricksCatalog:
description: A catalog from Unity Catalog
required:
- name
- catalogType
- storageLocation
- fullName
type: object
properties:
name:
description: The name of the catalog.
type: string
catalogType:
$ref: '#/components/schemas/CatalogType'
storageLocation:
description: The storage location of the catalog.
type: string
fullName:
description: The full name of the catalog. This variable depends on name.
type: string
DatabricksTable:
description: A table from Unity Catalog
required:
- name
- storageLocation
- fullName
- tableType
- dataSourceFormat
properties:
name:
description: The name of the table, relative to the parent schema.
type: string
storageLocation:
description: The storage location of the table.
type: string
fullName:
description: The full name of the table, in the form of catalog_name.schema_name.table_name.
type: string
tableType:
$ref: '#/components/schemas/mirroredAzureDatabricksCatalog_TableType'
dataSourceFormat:
$ref: '#/components/schemas/DataSourceFormat'
TablesResponse:
description: A list of tables from the source catalog.
required:
- value
type: object
properties:
value:
description: A list of tables within the namespace scope.
type: array
items:
$ref: '#/components/schemas/TableInfo'
readOnly: true
allOf:
- $ref: '#/components/schemas/PaginatedResponse'