> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowra.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Data collections (Table)

> List collections, read and write documents via the Table API

## What is the Table API?

The **Table** API is structured storage inside your project: **collections** (like database tables) and **documents** (rows with flexible fields). You create a collection (or use one from the [Dashboard](https://flowra.dev)), then add, read, update, and delete documents. Each document has an ID and whatever fields you define (name, email, status, etc.). You can list documents with pagination, sort, and optional search. No need to run your own database for small to medium datasets — Flowra stores it and you access it with your API key.

So: **collections** = tables; **documents** = rows. Use it for user data, workflow state, logs, or any JSON-like records.

### Example use cases

* **User or tenant data** — One collection per entity (e.g. “customers”, “orders”). Store a document per user or order; update fields when things change; list and search from your app.
* **Workflow input/output** — A workflow writes its result (e.g. “summary”, “status”) into a Table document; your app reads it later. Or the workflow reads a document to get context before running.
* **Simple backend** — Build a small admin or internal tool that needs a list of “items” or “tasks”; use the Table API as the data layer instead of setting up a separate DB.

### How it works

1. **List collections** — See all collections (tables) in your project. Each has an ID and metadata.
2. **Get collection** — One collection’s metadata (name, schema if any, document count).
3. **CRUD on documents** — Create a document (POST), list with pagination/sort/search (GET), update (PATCH), delete (DELETE). Optional: delete the whole collection.

The API returns standard JSON; field names and structure are up to you (within the product’s schema support).

***

## API endpoints

### List collections

**GET** `/api/v1/table/collections` returns all collections (tables) available to your project. Use this to choose a collection before reading or writing documents.

<CodeGroup>
  ```bash theme={null}
  curl -X GET "https://flowra.dev/api/v1/table/collections" \
    -H "x-api-key: YOUR_API_KEY"
  ```
</CodeGroup>

### Get collection metadata

**GET** `/api/v1/table/collections/{id}` returns metadata for one collection: name, schema, and document count. Use before querying documents to understand the structure.

### List documents

**GET** `/api/v1/table/collections/{id}/documents` returns documents in a collection with pagination, sorting, and optional search. Query parameters include `limit`, `skip`, `sort`, `search` (or `q`) — see [API reference](/api-reference).

### Create document

**POST** `/api/v1/table/collections/{collectionId}/documents` creates a new document. Send the document fields as JSON in the body. The response includes the new document ID.

### Update and delete document

* **PATCH** `/api/v1/table/collections/{collectionId}/documents/{documentId}` — Update one or more fields. Send only the fields you want to change.
* **DELETE** `/api/v1/table/collections/{collectionId}/documents/{documentId}` — Permanently remove a document.

### Delete collection

**DELETE** `/api/v1/table/collections/{id}` deletes a collection and all its documents. This cannot be undone.

## Related

* [API reference: table](/api-reference) — Full request/response schemas and query parameters.
