Skip to main content
App Data lets you build custom database tables for your project — member directories, inventories, waitlists, resource libraries, or any structured data that does not fit the CMS or store. Rows are validated against your schema. You control who can read or write via API access presets on each table. Available on: Growth plan and above (10 tables / 5,000 rows on Growth; unlimited on Pro+).

When to use App Data

Step 1 — Enable App Data

  1. Open your project dashboard.
  2. Go to Features and enable App Data.
  3. Open App Data in the project sidebar.
You see an overview of tables and total rows for the project.

Step 2 — Create a table

A table (data model) defines columns and rules for your data.
  1. Go to App Data → Tables.
  2. Click Add table.
  3. Set a name and key (e.g. team_directory) — the key is used in the SDK and API.
  4. Add fields with types:
  1. Mark fields required or unique where needed.
  2. Save the table.

Step 3 — Add rows

  1. Open App Data → Rows (or open a table and manage rows).
  2. Click Add row and fill in field values.
  3. Edit or delete rows from the dashboard anytime.
Validation runs on save — invalid types or missing required fields are rejected.

Step 4 — Configure API access

Each table has API access settings that control how published pages and the SDK can use it. Operations are configured separately for public (anyone) and authenticated (signed-in) users. Open the table → API settings and choose a preset:
Signed-in, owner write, and own rows presets require User Authentication. Public write exposes your table to the open internet — use only when you intend anonymous submissions.
You can also toggle individual operations under Public API access and Authenticated API access, plus Read scope (All rows vs Own rows only) and Write scope (Any signed-in user vs Record owner only) when those controls apply.

Step 5 — Show data on your site

Option A — Ask the AI (easiest)

In the page editor:
  • “Directory page listing all rows from my team_directory table with name and role”
  • “Detail page at directory/{record_id} showing one team member”
The AI uses window.webstorio.listRecords and getRecord with your table key.

Option B — SDK in page code

Editing page code yourself? Read and write rows with window.webstorio App Data methods (listRecords, getRecord, createRecord, and more), using your table key. → Methods, parameters, and examples: App Data SDK reference

App Data vs CMS

Plan limits

Tips

Start with Public (read only) while building pages, then tighten access before launch.
Use unique on fields like email or slug when rows must not duplicate.
Call getDataModels() in page code to discover table keys and schemas at runtime.

For developers and agents

Page code uses window.webstorio App Data methods. → App Data SDK Agents can create and update rows via MCP (table schema still uses the dashboard UI).