# Catalog

The Catalog endpoints browse your Microsoft Fabric workspace hierarchy on behalf of the authenticated user. Only workspaces and items you have access to will be returned.

Hierarchy: **Workspace → Lakehouse or Warehouse → Table**

***

## Endpoints

| Method | Path                                                                             | Description                                     |
| ------ | -------------------------------------------------------------------------------- | ----------------------------------------------- |
| `GET`  | `/api/catalog/domains`                                                           | List Fabric domains the user has access to      |
| `GET`  | `/api/catalog/domains/:domainId/workspaces`                                      | List workspaces within a domain                 |
| `GET`  | `/api/catalog/workspaces`                                                        | List all accessible workspaces (flat)           |
| `GET`  | `/api/catalog/workspaces/:workspaceId/items`                                     | List Lakehouses and Warehouses in a workspace   |
| `GET`  | `/api/catalog/workspaces/:wid/lakehouses/:itemId/tables`                         | List tables in a Lakehouse or Warehouse         |
| `GET`  | `/api/catalog/workspaces/:wid/lakehouses/:itemId/tables/:name/metadata`          | Table schema and metadata                       |
| `POST` | `/api/catalog/workspaces/:wid/lakehouses/:itemId/tables/:name/analyze-ingestion` | Analyze a table's ingestion pattern             |
| `POST` | `/api/catalog/analyze-ingestion`                                                 | Batch ingestion analysis for multiple tables    |
| `GET`  | `/api/catalog/workspaces/:wid/recommendations`                                   | AI-scored monitoring recommendations for tables |

***

## GET /api/catalog/domains

List Fabric domains the user has access to.

**Response (200):**

```json
{
  "data": {
    "domains": [
      {
        "id": "domain-uuid",
        "displayName": "Sales & Marketing",
        "description": "Sales and marketing data domain",
        "parentDomainId": null
      }
    ]
  }
}
```

***

## GET /api/catalog/workspaces/:workspaceId/items

List all Lakehouses and Warehouses in a workspace.

**Response (200):**

```json
{
  "data": [
    {
      "id": "item-uuid",
      "displayName": "Sales Lakehouse",
      "description": "Core sales data lakehouse",
      "type": "Lakehouse",
      "workspaceId": "workspace-uuid"
    },
    {
      "id": "warehouse-uuid",
      "displayName": "Analytics Warehouse",
      "description": "Aggregated analytics warehouse",
      "type": "Warehouse",
      "workspaceId": "workspace-uuid"
    }
  ]
}
```

***

## GET /api/catalog/workspaces/:wid/lakehouses/:itemId/tables

List tables in a Lakehouse or Warehouse. Use `?itemType=Warehouse` when the item is a Warehouse.

**Query parameters:**

| Parameter  | Values                     | Default     |
| ---------- | -------------------------- | ----------- |
| `itemType` | `Lakehouse` \| `Warehouse` | `Lakehouse` |

**Response (200):**

```json
{
  "data": {
    "tables": [
      {
        "name": "orders",
        "schema": "dbo",
        "type": "table",
        "rowCount": 1250000,
        "columns": [
          { "name": "id", "type": "integer", "nullable": false },
          { "name": "created_at", "type": "timestamp", "nullable": false },
          { "name": "amount", "type": "decimal(10,2)", "nullable": true }
        ],
        "lastUpdated": "2026-03-24T10:30:00Z"
      }
    ]
  }
}
```

***

## POST /api/catalog/workspaces/:wid/lakehouses/:itemId/tables/:name/analyze-ingestion

Analyzes a table's data ingestion pattern to produce monitoring recommendations. This is called automatically during onboarding.

**Query parameters:** `itemType` (`Lakehouse` | `Warehouse`)

**Response (200):**

```json
{
  "data": {
    "pattern": "AppendOnly",
    "timestampColumn": "created_at",
    "updateFrequency": "hourly",
    "recommendedMonitors": {
      "freshness": { "timestampColumn": "created_at", "maxStalenessHours": 2 },
      "completeness": { "selectedAttributes": ["customer_id", "order_date"] }
    }
  }
}
```

**Pattern values:** `AppendOnly` | `DropAndCreate` | `Unknown`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://fabric-docs.telm.ai/api-reference/catalog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
