# List every table: `name`, `catalog`, `schema`, `qualified` (`personal.metrics.mood` — use it

`POST /datanotes/operations/list_tables/` (operation `list_tables`)

List every table: `name`, `catalog`, `schema`, `qualified` (`personal.metrics.mood` — use it
wherever a table is expected; `metrics.mood` or `mood` also work when unambiguous), `path` and,
when declared, `description`, `aliases` (other words for what it records) and `tags`. Tables are
defined in `metastore.yaml` (catalog → schema → table): read it freely, but it is read-only for
agents and changes only through the schema operations (create_table, add_column, …). Returns `{tables, views}`: `views` lists the stored views (same fields, no
path): select them like tables. `system.information_schema` is read with `select_rows`.

Call this first to find the table for what the user reports (match their words against
name, description and aliases), and before creating tables or columns so you reuse existing
ones instead of creating duplicates.

## Request body

`application/json`

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |

## Responses

| Status | Description | Body |
| --- | --- | --- |
| 200 | Done. | `object` (application/json) |
| 400 | Bad input: the body is not a JSON object, or an argument is unknown, missing or of the wrong type. | `Error` (application/json) |
| 401 | Missing or wrong bearer token. | `Error` (application/json) |
| 500 | Unexpected error. | `Error` (application/json) |

The schemas named here are in [openapi.json](https://datanotes.dev/openapi.json) (`components.schemas`).
