Edit

Search and explore items with OneLake catalog and Fabric REST APIs

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:

  1. Search — Find items across the tenant using full-text search or browse by workspace.
  2. 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.
  3. 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.
  4. 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 domainId property 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.