Skip to content
DOCUMENTATION

Connect your app.
In plain English.

Everything you need to read and save data, sign in your customers and take your data with you.

Quickstart

Four steps from nothing to your first saved record. Make a project, make a table, make a key, then call the API.

# 1. Look at your tables and copy a table id
curl https://YOUR-PROJECT-URL/api/tables \
  -H "x-api-key: YOUR_SECRET_KEY"

# 2. Add a record to that table
curl -X POST https://YOUR-PROJECT-URL/api/tables/TABLE_ID/rows \
  -H "x-api-key: YOUR_SECRET_KEY" \
  -H "content-type: application/json" \
  -d '{"data":{"Name":"Sam","Email":"sam@example.com"}}'

Your secret key

Make a key on the API page of your dashboard. Send it in the x-api-key header from your server. Never put it in a web page or a mobile app. If a secret key is sent from a web page, Plainbase refuses it and warns you. If a key leaks, revoke it and make a new one.

Tables and records

Tables are found by id, so list them first. Field types are text, number, date and checkbox. Use field names exactly as the table has them.

GET    /api/tables                      list tables
POST   /api/tables                      make a table
GET    /api/tables/{tableId}/rows       list records
POST   /api/tables/{tableId}/rows       add a record
PATCH  /api/tables/{tableId}/rows/{id}  change a record
DELETE /api/tables/{tableId}/rows/{id}  delete a record

Who can see a table

Each table is Private (dashboard and secret keys only), Logged-in users (customers who signed in to your app), or Public read (anyone can read, nobody can write from outside). New tables made with a key start as Private.

Customer login

Customers sign in with a six-digit code sent to their email. The code works once and expires after ten minutes. Switch it on first under Authentication in your dashboard, and set up your email.

POST /api/app-auth/{projectId}/request-code   {"email":"customer@example.com"}
POST /api/app-auth/{projectId}/verify-code    {"email":"...","code":"123456"}
# send the token you get back on later requests:
Authorization: Bearer TOKEN

AI keys

Give your AI tool an AI key instead of your secret key. On the API page, choose Read only or Read and save, and pick which tables it can use. An AI key can never delete records, change your tables, export your data or use files. Every change it makes shows in History as “AI”. AI keys do not use your key allowance, and you can have up to five.

MCP (for AI tools)

MCP lets AI tools like Cursor use your data directly, with no code. Add Plainbase as a remote MCP server and send your secret key in the x-api-key header. The AI can list your tables, read records, add records and change records. It cannot delete anything, and it follows the same rules and plan limits as any other app.

{
  "mcpServers": {
    "plainbase": {
      "url": "https://YOUR-PROJECT-URL/api/mcp",
      "headers": { "x-api-key": "YOUR_SECRET_KEY" }
    }
  }
}

Export your data

Take your data with you at any time, in CSV or JSON.

GET /api/export?format=csv
GET /api/export?format=json

History and undo

Changes to your data are written down. The project owner can look at History in the dashboard and undo a change for 30 days.

Backups

Plainbase saves a copy of your tables and records every day and keeps the last seven, plus up to five you save by hand. In the dashboard, open Backups to put one table or the whole project back the way it was. A safety copy of “now” is saved first, so going back can be undone. Uploaded files are not part of a backup. These backups live in the same database as your data, so for a real server also keep your own copy of Postgres (see the launch checklist).

Plan limits

The Free plan has 1 project, 3 tables, 1,000 records, 100 MB of files and 1 API key. If a request fails with “reached the Free limit”, the error says what to do. See Pricing for Starter and Pro.

Ready to build?
Start free.

Start free