/api/v1. The schema
embedded in this documentation (/api-reference/openapi.json) is exported
directly from the running FastAPI application — it cannot drift from the
real API surface, because CI regenerates it on every push and fails the
build if it doesn’t match byte-for-byte.
Base URL
Authentication
Bearer JWT, obtained via
/auth/login.Conventions
- Pagination: cursor-based everywhere a list can grow unbounded — no
OFFSET, which degrades on large tenant datasets. List endpoints accept acursorquery parameter and return anext_cursorin the response. - Tenant scoping: every tenant-scoped endpoint resolves the caller’s
tenant from their JWT — there is no
tenant_idyou pass to “select” which tenant’s data you see.super_admincallers use theX-Tenant-IDheader to act on a specific tenant explicitly. - Idempotency:
POSTendpoints that create a named, unique resource (tenants, domains) are safe to retry — an existing match is returned rather than duplicated. - Timestamps: ISO 8601, UTC, always.
Endpoint groups
Tenants & Users
Provision tenants, domains, and users.
Auth
Login, refresh, logout, password reset.
Workflows
Trigger, monitor, approve, pause, resume, cancel runs.
Registry
Agents, models, tools, prompts, providers, feature flags, plugins.
Content
Article state and analytics.
Integrations
GSC, GA4, WordPress, Ahrefs, Slack connections.
There is no public self-serve API key issuance yet — MAEL is in its
production-validation phase, operated by one team on behalf of pilot
clients. See the Roadmap.