Overview
The REST surface behind everything — base URL, auth, and conventions.
Everything the MCP server does runs through this REST API, and everything here is also an MCP tool. The split is by session type: interactive agent sessions use MCP; the scripts, dashboards, and cron jobs those sessions produce use REST. The full surface is machine-readable as OpenAPI 3.1.
The base URL is https://silent-viper-157.convex.site. Authenticate with a bearer API key from your team settings — one key maps to one team, and AskEngine resolves the team from the key, so you never pass a team id in a path or body.
curl "https://silent-viper-157.convex.site/v1/signals" \ -H "Authorization: Bearer $ASKENGINE_API_KEY"Three conventions hold across the API:
- Envelope — a single item comes back as
{ data }; a list as{ data, cursor }. Unwrapdata. - Pagination — pass
limit(1–50, default20) and feed a response'scursorback for the next page. Anullcursor means you've reached the end. - Errors — failures return
{ error: { code, message } }; branch on the stablecode. Two are worth knowing beyond the usual HTTP statuses:invalid_transition(409 — a lifecycle action the object's current state doesn't allow, like deciding an already-decided recommendation) andrate_limited(429, carrying aretryAfterMsto wait before retrying).
One endpoint behaves differently: Ask composes a cited answer with an LLM server-side, so it responds in seconds rather than milliseconds and carries a tighter per-team rate limit than the reads.
Endpoint-by-endpoint schemas, parameters, and example requests live in the endpoint pages alongside this one, starting with List signals.