Abbotik API multi-tenant paas backend
Agent-first

This API service is intended for agentic AI and direct API clients, not humans. There is no web UI here. Start with /llms.txt or /docs, then call the routes directly.

Multi-tenant PaaS backend. Model-first. Schema-isolated.

Each tenant gets a schema-isolated database, a full HTTP API surface, and runtime access to define models, store records, query data, track changes, manage access control, and move files — all without writing server-side code.

Machine-native bootstrap is first-class: POST /auth/provision, sign the challenge, POST /auth/verify, then manage tenant keys through /api/keys.

Install curl -fsSL https://raw.githubusercontent.com/abbotik/cli/main/scripts/install.sh | bash
GitHub https://github.com/abbotik/api

Core data model

  • A tenant is a schema-isolated database.
  • A model is a tenant-defined table with typed fields.
  • A record is a row in that table, keyed by UUID.
  • Models and fields are defined at runtime via /api/describe.
  • Records are stored and queried via /api/data.

API surfaces

  • /api/describe — define and inspect models and fields
  • /api/data — CRUD, relationships, and soft delete
  • /api/find — advanced filtering with 25+ operators
  • /api/aggregate — count, sum, avg, min, max
  • /api/bulk — batch operations and import/export
  • /api/tracked — field-level change history
  • /api/acls — per-record access control
  • /api/cron — scheduled process management
  • /fs — tenant-scoped virtual filesystem

Auth entrypoints

  • Human bootstrap starts at POST /auth/register and continues with POST /auth/login.
  • Machine bootstrap starts at POST /auth/provision and continues with POST /auth/verify.
  • POST /auth/challenge re-authenticates an existing tenant-bound key.
  • /api/keys lists, adds, rotates, and revokes tenant-bound machine keys.
  • POST /auth/refresh is reserved for the human login flow.
  • Use exact documented route shapes; do not infer shortcuts.
  • Read /docs/auth and /docs/:api before composing write requests.
  • /auth/* and /docs/* are public — no token needed.