Files
2026-07-12 10:17:17 -04:00

1.8 KiB

PocketBase Admin API (v0.39.1)

PocketBase runs in Docker at 127.0.0.1:8091. Admin panel: http://127.0.0.1:8091/_/

Superuser Management

Create via CLI:

docker exec pocketbase /usr/local/bin/pocketbase superuser create <email> <password> --dir /pb_data

API Authentication

Superuser auth endpoint (v0.39.x):

POST /api/collections/_superusers/auth-with-password
{"identity": "admin@shop.com", "password": "admin123"}
→ returns {token, record}

Note: /api/admins/auth-with-password returns 404 in v0.39.1. Use the collections path above.

Creating Collections

POST /api/collections with:

  • name, type: "base"
  • fields array (NOT schema — that's ignored)
  • API rules: listRule, viewRule, createRule, updateRule, deleteRule

Important: Local collections use text type for userId (NOT relation). The existing services, quotes, etc. collections all store userId as plain text strings, not relation fields.

Example:

{
    "name": "service_advisors",
    "type": "base",
    "listRule": "userId = '{userid}'",
    "viewRule": "userId = '{userid}'",
    "createRule": "@request.auth.id != ''",
    "updateRule": "userId = '{userid}'",
    "deleteRule": "userId = '{userid}'",
    "fields": [
        {"name": "name", "type": "text", "required": True},
        {"name": "userId", "type": "text", "required": True},
    ],
}

Updating Collection Rules

PATCH /api/collections/<collection_name> with just the rule fields:

{"listRule": "userId = '{userid}'", "viewRule": "userId = '{userid}'", ...}

Deleting a Collection

DELETE /api/collections/<collection_id> — use the ID from GET /api/collections/<name>, not the name.

Data Directory

/pb_data inside the container. Contains data.db, auxiliary.db, storage/.