Skip to main content
List the tables available to the authenticated workspace. Each row carries a queryEnabled flag for whether the table is enabled for query sync — use clay tables update to toggle it, and clay tables query to run queries.
clay tables list [--limit <n>] [--cursor <token>] [--query-enabled]
Results are paginated. --limit sets the page size, and the response includes a top-level cursor when more tables are available; pass it back with --cursor to fetch the next page.

Flags

FlagDescription
--limit <n>Maximum tables to return per page. Must be a positive integer up to 100. Defaults to 20.
--cursor <token>Resume from a previous response’s cursor to fetch the next page.
--query-enabledOnly return tables enabled for query sync.

Output

{
  "data": [
    {
      "id": "tbl_abc123",
      "name": "Leads",
      "description": "Inbound leads.",
      "workbook": { "id": "wb_xyz789", "name": "Growth" },
      "queryEnabled": true
    }
  ],
  "cursor": "next_page_token"
}
FieldTypeDescription
data[].idstringTable id.
data[].namestringDisplay name.
data[].descriptionstring | nullDescription, or null if not set.
data[].workbook{ id, name } | nullThe workbook the table belongs to, or null.
data[].queryEnabledbooleanWhether the table is enabled for query sync.
cursorstringPresent when more tables are available. Pass it back via --cursor. Omitted on the last page.

Errors

CodeExitNotes
validation_error2--limit is not a positive integer or exceeds 100.
auth_forbidden3The API key lacks the cli:all scope.

Examples

clay tables list
clay tables list --query-enabled | jq -r '.data[].id'
clay tables list --limit 50 --cursor "$CURSOR"
clay tables list --query-enabled | jq -r '.data[] | select(.queryEnabled) | .name'