Alloovium

Capabilities

Overview

Every public API endpoint is a Capability. Capabilities are declared once in a registry, then automatically exposed as a REST route, an MCP tool, and (where applicable) an OAuth-scoped endpoint. Here is the full matrix.

Why the registry

Alloovium's public API is built around a single source of truth: the capability registry in path. Every capability declares its request model, response model, scopes, rate-limit cost, and transports (REST / MCP / OAuth). Our mount layer then generates the FastAPI route, the FastMCP tool, the OpenAPI entry, and the rate-limit check from that single declaration.

That means the REST docs, the MCP tool list, and the Scalar reference never drift. What you see below is generated from the same data.

Capability matrix

CapabilityMethod + PathScopeCostMCPOAuth
vault.list_projectsGET /vault/projectsvault:read1yesyes
vault.get_projectGET /vault/projects/{id}vault:read1yesyes
vault.create_projectPOST /vault/projectsvault:write2yesno
vault.list_documentsGET /vault/documentsvault:read1yesyes
vault.get_documentGET /vault/documents/{id}vault:read1yesyes
vault.upload_documentPOST /vault/documentsvault:write10no (multipart)no
vault.get_ingestion_jobGET /vault/ingestion-jobs/{id}vault:read1yesyes
vault.searchPOST /vault/searchvault:read5yesyes
chat.askPOST /chatchat:write + vault:read10yesno
chat.ask_streamPOST /chat/streamchat:write + vault:read10no (SSE)no
chat.list_conversationsGET /conversationschat:read1yesyes
chat.get_conversationGET /conversations/{id}chat:read1yesyes
templates.start_fillPOST /templates/filltemplates:write25no (multipart)no
templates.get_fill_statusGET /templates/fill/{id}templates:read1yesyes
workflows.listGET /workflowsworkflows:read1yesyes
workflows.runPOST /workflows/{id}/runsworkflows:write25yesno
workflows.get_run_statusGET /workflows/runs/{id}workflows:read1yesyes
meta.whoamiGET /me(none)1yesyes

All paths are under /api/v2

For brevity the table omits the All paths are under /api/v2 prefix. Every REST path is really full.

Transport matrix

Not every capability accepts every credential or protocol. The rules:

  • REST — every capability. Call via header with an API key.
  • MCP — every non-multipart capability. Multipart uploads (upload, fill) and SSE streams (stream) are REST-only; MCP clients can't send binary or consume server-sent events over JSON-RPC.
  • OAuth — read-only capabilities only. Write capabilities require an API key because their handlers need the full ORM principal. Calling a write capability with an OAuth Bearer JWT returns code.

Browse by group

  • Vault — 8 capabilities: projects, documents, upload, ingestion polling, hybrid search.
  • Chat — 4 capabilities: ask, list conversations, fetch a conversation.
  • Workflows — 3 capabilities: list, run, poll run status.
  • Templates — 2 capabilities: start a fill job, poll fill status.
  • Meta — 1 capability: whoami.

See also