MAEL’s API is REST, JSON over HTTPS, versioned under /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 a cursor query parameter and return a next_cursor in the response.
  • Tenant scoping: every tenant-scoped endpoint resolves the caller’s tenant from their JWT — there is no tenant_id you pass to “select” which tenant’s data you see. super_admin callers use the X-Tenant-ID header to act on a specific tenant explicitly.
  • Idempotency: POST endpoints 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.