Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The OneLake catalog in Microsoft Fabric lets you discover and explore data items across your tenant. This article shows how to replicate the catalog's Explore experience programmatically, starting with search and then using item identifiers from your results to retrieve detailed metadata, tags, and table information.
Typical OneLake catalog API workflow
A common pattern for exploring items through APIs follows the same flow as the catalog UI:
- Search — Find items across the tenant using full-text search or browse by workspace.
- Get item details — Use the item GUID and type from your results to retrieve common metadata with Get Item, then call the type-specific Get endpoint for more properties like connection strings or service URIs.
- Explore connections and shortcuts — Discover what data sources an item connects to with List Item Connections, and for OneLake items, map out external data references with List Shortcuts.
- Explore tables — For data items like lakehouses, warehouses, and mirrored databases, drill into schemas and tables using the OneLake Table APIs.
The following sections describe each step and the APIs involved.
Search for items
The Catalog Search API is the primary entry point for discovering items across your tenant. It provides full-text search similar to the search bar in the OneLake catalog UI.
The API supports:
Full-text search — Search by item name, description, or workspace name.
Filters — Narrow results by item type.
Search results return item identifiers (GUIDs), names, descriptions, types, and workspace information. Use these identifiers with the APIs described in the following sections to get richer detail about each result.
Example: Search for Lakehouses
POST https://api.fabric.microsoft.com/v1/catalog/search
Content-Type: application/json
{
"search": "Sales Revenue",
"pageSize": 50,
"filter": "Type eq 'Lakehouse'"
}
The response includes an array of matching items, each with an id (GUID) and workspaceId you can use in subsequent API calls.
Browse items and workspaces
If you don't need full-text search, you can browse the catalog hierarchy directly:
- List Workspaces — Returns workspaces you have access to. Each workspace in the response includes a
domainIdproperty if the workspace is assigned to a domain. - List Items — Returns items in a specific workspace.
These endpoints return the same item identifiers you get from search, so you can use them as an alternative starting point for the drill-down flows described in this article. If a workspace belongs to a domain, you can resolve the domain name using the Get Domain API.
Get item details
Once you have an item's identifier from search results, use the Get Item API to retrieve common metadata:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}
The response includes:
- Item name, type, and description
- Workspace ID and name
- Endorsement status (Promoted, Certified, or Master Data)
- Tags assigned to the item (see the Tags API for programmatic tag management)
Get type-specific item properties
The generic Get Item API returns common metadata shared by all item types. Many item types also have their own Get endpoint that returns more properties—such as connection strings, service URIs, and OneLake paths—that you need to connect to or work with the item.
The URL pattern for type-specific endpoints is:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/{itemTypePlural}/{itemId}
The following item types return extra properties beyond what the generic Get Item API provides:
| Item type | Additional properties | API reference |
|---|---|---|
| Environment | Publish details (state, Spark libraries/settings status) | Get Environment |
| Eventhouse | Query service URI, ingestion service URI, child KQL database IDs | Get Eventhouse |
| KQL database | Parent eventhouse ID, query/ingestion service URIs, database type | Get KQL Database |
| Lakehouse | OneLake tables/files paths, SQL endpoint connection string, default schema | Get Lakehouse |
| Mirrored database | OneLake tables path, SQL endpoint connection string, default schema | Get Mirrored Database |
| ML Experiment | MLflow experiment ID | Get ML Experiment |
| Spark job definition | OneLake root path | Get Spark Job Definition |
| SQL database | SQL connection string, server FQDN, database name, backup retention, restore points | Get SQL Database |
| Warehouse | SQL connection string, created date, collation type | Get Warehouse |
Other item types also have type-specific Get endpoints, but they currently return the same metadata as the generic Get Item API. Such item types include Anomaly Detector, Apache Airflow Job, Copy Job, Data Pipeline, Eventstream, GraphQL API, KQL Dashboard, KQL Queryset, ML Model, Mounted Data Factory, Notebook, Reflex, Report, and Semantic Model.
List item connections
To see what data sources an item connects to, use the List Item Connections API:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/connections
The response includes each connection's type (such as SQL or Web), connectivity type (cloud, on-premises gateway, or virtual network gateway), and display name. This is useful for understanding an item's dependencies—for example, which SQL endpoint a semantic model connects to via Direct Lake, or which external sources a data pipeline accesses.
Note
List Item Connections requires read and write permissions on the item, which is a higher permission level than the read-only Get Item API.
List OneLake shortcuts
For items stored in OneLake, such as lakehouses, shortcuts are the primary mechanism for referencing external data. The List Shortcuts API reveals where data comes from:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/shortcuts
Each shortcut in the response includes its path within the item, the target type (OneLake, ADLS Gen2, Amazon S3, Google Cloud Storage, S3 Compatible, Dataverse, or External Data Share), and the target location details. This information helps you map out an item's full data landscape, including both local tables and external references.
Explore tables within an item
The catalog's item details page shows tables and schemas for data items like lakehouses and warehouses. By using the workspace ID and item ID you got from search results or Get Item, you can use the OneLake Table APIs to explore this same information programmatically.
The Table APIs are served at a dedicated endpoint:
https://onelake.table.fabric.microsoft.com
Two protocol flavors are available at this endpoint. Choose based on your ecosystem and tooling: Iceberg REST Catalog (IRC) and Delta. Both protocols require a workspace ID and item ID to scope requests. These GUIDs come from search results or Get Item.
If the data item doesn't support schemas (such as non-schema-enabled lakehouses), both protocols return a default dbo schema.
Operations
| Operation | Delta | Iceberg |
|---|---|---|
| Get config | — | GET /iceberg/v1/config?warehouse={workspaceId}/{itemId} |
| List schemas | GET /delta/{workspaceId}/{itemId}/api/2.1/unity-catalog/schemas |
GET /iceberg/v1/{prefix}/namespaces |
| List tables | GET /delta/{workspaceId}/{itemId}/api/2.1/unity-catalog/tables |
GET /iceberg/v1/{prefix}/namespaces/{schema}/tables |
| Get table | GET /delta/{workspaceId}/{itemId}/api/2.1/unity-catalog/tables/{table} |
GET /iceberg/v1/{prefix}/namespaces/{schema}/tables/{table} |
All paths are relative to https://onelake.table.fabric.microsoft.com. The Iceberg protocol requires a Get config call first to obtain the {prefix} used in subsequent requests.
Example: List tables in a lakehouse from search results
After searching for a lakehouse and getting its workspaceId and id, you can list its tables by using either protocol:
# Step 1: Get the Iceberg config prefix
GET https://onelake.table.fabric.microsoft.com/iceberg/v1/config?warehouse={workspaceId}/{itemId}
# Step 2: List tables in the default schema
GET https://onelake.table.fabric.microsoft.com/iceberg/v1/{prefix}/namespaces/dbo/tables
Note
The OneLake Table APIs require that the item's data is stored or mirrored into OneLake. For items that aren't in OneLake, such as semantic models or eventhouses, query tables directly through T-SQL, KQL, or DAX/XMLA respectively.