---
title: "List available data layers"
method: POST
path: "/v1/tools/list_layers"
---

# List available data layers

`POST /v1/tools/list_layers`

## Request

- Base URL: `https://api.ploti.ai`
- URL: `https://api.ploti.ai/v1/tools/list_layers`
- Auth: HTTP bearer

What data exists in this session's viewport — requires a viewport, so call navigate first. By default, returns only queryable layers. query is a substring match over layer ids, names, tables, categories and descriptions — direct matches rank first and description-only matches trail, so expect a low-relevance tail. include_locked=true lists everything; locked results say why they are locked. Use tools.schema inside execute_python for fields, types and sampled values.

## Request body

- object
  - `sessionId` string, required: The id start_session returned. Lost it? get_session without an id lists this workspace's open sessions.
  - `query` string: Optional search across layer ids, names, table names and descriptions, e.g. 'zoning' or 'flood'.
  - `includeLocked` boolean: Also list plan-locked catalog layers in the unfiltered listing. With query, locked matches are always included regardless of this flag. Defaults to false. See discovering-data for when to surface locked data.
  - `limit` integer: Layers per page; 25 when left out.
  - `offset` integer: Where the page starts, as the previous reply's next offset; the first layer when left out.

## Response `200`

What the tool returned: its text, any images, and structured data.

- object
  - `text` string, required
  - `images` object[], required
    - `mimeType` string
    - `data` string, byte
  - `data` unknown

## Other responses

- `400`: invalid_input: the arguments do not fit the tool's input schema.
- `403`: insufficient_scope: the credential may not use this tool.
- `404`: not_found: there is no such tool.
- `413`: payload_too_large: the body is over 256 KB (2 MB for /v1/tools).
- `415`: unsupported_media_type: a body was sent without Content-Type: application/json.
- `422`: tool_error: the tool refused or failed; error.message says why.
- `429`: rate_limited: this credential is over its rate. Retry after the Retry-After header's seconds.
- `500`: internal: Ploti failed. Retry; if it keeps happening, contact support.

---

[API](https://skmtc.dev/ploti/apis/ploti-api.md) · [All operations](https://skmtc.dev/ploti/apis/ploti-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ploti/apis/ploti-api/revisions/8c2c91c72d52?raw)
