---
title: "POST /api/llm/extract-tables"
method: POST
path: "/api/llm/extract-tables"
tags: ["/api/llm"]
---

# POST /api/llm/extract-tables

`POST /api/llm/extract-tables`

Parse SQL and return referenced tables with their columns.

   Uses Macaw to parse the SQL, resolves table names to IDs,
   and returns permission-filtered tables with column metadata.

   This is a lightweight endpoint that does not trigger fingerprinting
   or field value fetching.

## Request body

- object
  - `database_id` integer, required
  - `sql` string, required

## Response `2XX`

Successful response

- object
  - `tables` object[], required
    - `columns` object[], required
      - `database_type` string, nullable
      - `description` string, nullable
      - `fk_target` object
        - `field_name` string, required
        - `table_name` string, required
      - `id` integer, required
      - `name` string, required
      - `semantic_type` string, nullable
    - `description` string, nullable
    - `display_name` string, nullable
    - `id` integer, required
    - `name` string, required
    - `schema` string, nullable

## Other responses

- `4XX` — Client error response
- `5XX` — Server error response

## Changes

- **2026-03-09** `78297d193ca4` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/metabase/apis/metabase-api/changes/api/llm/extract-tables/post.md)

---

[API](https://skmtc.dev/metabase/apis/metabase-api.md) · [All operations](https://skmtc.dev/metabase/apis/metabase-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/metabase/metabase-api/revisions/cb841428e285/schema)
