MINARA

HTTP API

Every route exposed by the gateway (`npm run serve`)

The HTTP gateway (npm run serve) exposes the same agent behind a REST/SSE API. Every route lives on version-prefixed /v1/..., except the unauthenticated /healthz liveness probe.

Authentication

Set GATEWAY_AUTH_TOKEN in the environment to require a bearer token on every /v1/... route. If unset, the gateway accepts all requests (use only for local development).

Authorization: Bearer <GATEWAY_AUTH_TOKEN>

Health

MethodPathDescription
GET/healthzLiveness probe. Returns 200 with \{"ok": true\} if the gateway is up.
GET/v1/healthzVersioned mirror of /healthz. Returns \{"ok": true, "ts": ...\} without auth s…

Chat

MethodPathDescription
POST/v1/chatSingle agent turn. The request body is queued, the agent runs to completion (or …
POST/v1/chat/streamStreaming agent turn over Server-Sent Events. Each SSE event is a JSON payload d…
POST/v1/assist/system-promptStreams a Custom Agent system prompt for the Web UI wizard's Generate-with-AI pa…
GET/v1/chat/stream/resumeReattach to an in-flight /v1/chat/stream SSE buffer that was interrupted by a …
POST/v1/chat/interjectQueue a steering message for the session's in-flight turn. The gateway injects i…
POST/v1/chat/interruptStop the session's in-flight turn. The turn ends gracefully: partial work is kep…
GET/v1/chat/sessions/:id/goalReturn the session's standing goal, or null when none is set. The agent pursue…
POST/v1/chat/sessions/:id/goalSet a standing goal for the session. Rejected with 400 when a goal is already ac…
POST/v1/chat/sessions/:id/goal/pausePause the standing goal's continuation. Manual turns still work; the goal can be…
POST/v1/chat/sessions/:id/goal/resumeResume a paused goal. Resets the turn budget so the goal gets a fresh run of tur…
POST/v1/chat/sessions/:id/goal/clearClear the standing goal. Terminal — the goal is gone.
POST/v1/chat/sessions/:id/goal/subgoalsAppend an acceptance criterion to the standing goal. The judge and the next-turn…
DELETE/v1/chat/sessions/:id/goal/subgoals/:nRemove the acceptance criterion at position n (1-based). Rejected with 400 whe…

Chat sessions

MethodPathDescription
GET/v1/sessionsList the user's chat sessions with last-activity timestamp and turn count. Used …
POST/v1/sessionsProvision a new session id; the agent loop scopes per-session state (frozen snap…

State & control

MethodPathDescription
GET/v1/statusKill switch state, daily spend, tool count, review engine state. Equivalent to t…
GET/v1/system-metricsProcess + system snapshot for the Dashboard System status row: CPU percent, memo…
GET/v1/dashboard/achievementsMarketing-style stats for the web-ui Dashboard banner: activation timestamp, dis…
GET/v1/portfolioCurrent portfolio snapshot from the Minara backend, formatted for agent consumpt…
GET/v1/methodologiesList of registered methodologies with their pass/fail counts and recent outcomes…
GET/v1/learning/audit/reportsTrend + history of methodology audit health reports. Query days (default 30) b…
GET/v1/learning/audit/reports/latestThe most recent methodology audit report in full: composite health score, per-di…
GET/v1/learning/audit/reports/:passIdOne methodology audit report in full, looked up by its pass id.
POST/v1/learning/audit/runRun one audit pass on demand and persist it. Optional body \{ windowDays \} (cla…
GET/v1/workflowsList local workflow definitions and executions managed by the workflow engine.
POST/v1/killBlocks all tier ≥ 2 tool calls until /v1/unkill is called. Intended for emerge…
POST/v1/unkillClears the kill switch flag.
POST/v1/interactions/:id/answerSubmit the user's answer to a paused agent prompt (the agent loop stops on inte

Portfolio

MethodPathDescription
GET/v1/portfolio/statusQuick readiness probe: whether Minara is authenticated and which venues are reac…
GET/v1/portfolio/spotAggregate spot balances across every connected wallet, normalized to the gateway…
GET/v1/portfolio/spot/positionsPer-asset spot positions including avg cost basis when known.
GET/v1/portfolio/perpsOpen perp positions across every Minara perp sub-wallet. Use ?subAccountId= to…
GET/v1/portfolio/perps/summaryAggregated equity / margin / unrealized PnL across perp subs.
GET/v1/portfolio/historyTimeseries of total portfolio value bucketed for chart display.
GET/v1/portfolio/spot/activityCross-chain spot activity feed (swaps + transfers) for the user's primary wallet…

Perps

MethodPathDescription
GET/v1/perps/account-stateLive state for one Hyperliquid sub: equity, margin usage, withdrawable, open ord…
GET/v1/perps/sub-accountsAll perp sub-wallets under the user's Minara perp wallet, with the multi-exchang…
GET/v1/perp-walletsSame handler as /v1/perps/sub-accounts; aligned with the upstream OpenAPI path…
POST/v1/perp-walletsCreate a new perp sub-account bound to one exchange (hyperliquid
POST/v1/perps/sub-accountsAgent-native alias of POST /v1/perp-wallets. Same body, same response shape.
POST/v1/perp-wallets/renameRename an existing perp sub-account. Body: \{ subAccountId: string, name: string
POST/v1/perps/sub-accounts/renameAgent-native alias of POST /v1/perp-wallets/rename.
POST/v1/trading-gateway/place-ordersBatch place perp orders against the sub-account's bound exchange. Each order use…
POST/v1/trading-gateway/cancel-ordersBatch cancel by \{ symbol, orderId \}. Body: \{ cancels: \{ symbol: string, order
POST/v1/trading-gateway/modify-orderModify an active order's price, quantity, or trigger price. Body: \{ symbol: str
POST/v1/trading-gateway/update-leverageChange leverage and margin mode (cross vs isolated) on a symbol in one round-tri…
POST/v1/trading-gateway/update-isolated-marginAdjust the isolated-margin amount on an existing position. Body: \{ symbol: stri
POST/v1/trading-gateway/withdrawWithdraw USDC to an external address. Body: \{ amount: string, toAddress: string
GET/v1/trading-gateway/summaryOne-shot read for a single sub-wallet's equity, open positions, and open orders.…
GET/v1/wallet/depositsOne envelope with spot + perps deposit addresses. Spot maps from the user's cros…
GET/v1/wallet/supported-chainsProxy of the upstream Minara /tokens/supported-chains endpoint. Returns the li…
POST/v1/wallet/deposits/watchServer-sent-events stream tracking real-time deposit detection for one perps USD…
POST/v1/wallet/withdraw/spotPreview a cross-chain spot withdraw (confirm: false) or execute it (confirm:
POST/v1/wallet/withdraw/perpsPreview a perps USDC/Arbitrum withdraw (confirm: false) or execute it (confir
GET/v1/wallet/withdrawals/{operationId}Durable status lookup for a withdraw operation. Returns the latest known \{opera
POST/v1/wallet/withdrawals/{operationId}/watchServer-sent-events stream tracking outbound tx finality for one withdraw operati…
GET/v1/perps/tradesHyperliquid fill history for one sub-wallet (live, not the local mirror). Mirror…
GET/v1/perps/fundingFunding payments received / paid per perp position.
GET/v1/perps/order-historyRecently filled / cancelled orders.
GET/v1/perps/lighter-pnlRolling realized PnL for a Lighter sub-wallet, fetched from Lighter's first-clas…
GET/v1/ordersCurrently resting orders across every perp sub-wallet.
POST/v1/perps/transferMove idle USDC from one perp sub-wallet to another. USDC only. Fund-moving: prev…
GET/v1/perps/sub-account/:subAccountId/idle-usdcThe single 'available to transfer' number for a perp sub-wallet: idle USDC after…

Autopilot

MethodPathDescription
GET/v1/autopilot/strategiesList user-deployed autopilot strategies + their on/off state.
GET/v1/autopilot/recordsRecent autopilot decision + execution log. Useful for the Autopilot tab in the w…
POST/v1/autopilot/:strategyId/:actionEnable, disable, pause, or resume one strategy. Fund-moving toggles are gated on…
GET/v1/autopilot/managed/catalogList the managed (fully-managed) strategy types the picker can offer — Sharpe Gu…
GET/v1/autopilot/managed/catalog/:strategyType/backtestBacktest preview for one managed strategy type (equity curve + headline stats). …
GET/v1/autopilot/managed/strategiesEvery managed strategy with its bound sub-account and normalized status. The /au…
GET/v1/autopilot/managed/aggregated-summarySingle aggregate source shared by the /autopilot KPI bar and the Dashboard manag…
GET/v1/autopilot/managed/xstrategy/deploymentsLists the user's live XStrategy deployments (any status) so the Autopilot strate…
GET/v1/autopilot/managed/xstrategy/backtest/:backtestIdFull multi-asset backtest report for a deployment (add /curves for the equity …
GET/v1/autopilot/managed/by-sub-account/:subAccountIdPer-sub-account snapshot the detail panel consumes: the bound strategy (or null)…
POST/v1/autopilot/managed/strategiesCreate a managed strategy on a sub-wallet. Fund-moving: omit confirm (or pass …
POST/v1/autopilot/managed/runRun a strategy from another source as autopilot. marketplace subscribes the pu…
POST/v1/autopilot/managed/:strategyId/disableStop a running managed strategy. Fund-affecting, so it follows the same preview …
POST/v1/autopilot/managed/xstrategy/:strategyId/stopStop a live XStrategy deployment the user authored (Autopilot surfaces it alongs…
POST/v1/autopilot/managed/xstrategy/:strategyId/deployDeploy an XStrategy onto the selected sub-wallet by cloning the existing deploym…

Market data

MethodPathDescription
GET/v1/quote/batchSpot/perp quotes for many tickers in one round trip — used by the Ticker Board t…
GET/v1/quote/:tickerSpot price + 24h change + traditional metrics (P/E, EPS, dividend yield, 52-week…
GET/v1/quote/crypto/:symbolMarket cap, FDV, 24h volume (USD), 24h % change, name, logo, and chain for one c…
GET/v1/market/candlesOHLC bars for one ticker + interval. Routes to the appropriate provider (Hyperli…
GET/v1/market/sparklineCompact close-only series for inline sparkline rendering in the web UI.
GET/v1/market/searchFuzzy-match ticker symbols + names across crypto, stocks, ETFs, commodities, for…
GET/v1/markets/moversBiggest movers for the markets overview board. class=stocks (default) returns …
GET/v1/markets/snapshotThe markets overview board's macro bundle in one call: major index quotes (with …
GET/v1/markets/sectorsDaily performance of the 11 GICS sectors for the board's heatmap, proxied by the…
GET/v1/markets/newsA market headline feed for the board, parsed from Yahoo Finance's keyless RSS. ``…
GET/v1/markets/calendarThe next session's earnings reports from Nasdaq's keyless calendar, forward-fill…

Voice

MethodPathDescription
GET/v1/voice/statusWhether speech services are configured: stt_configured (a transcription provid…
GET/v1/voice/voicesThe voice-picker option list: official preset voices (ElevenLabs + OpenAI, alway…
GET/v1/voice/settingsCurrent user-tunable speech-synthesis settings (stability, similarity_boost, sty…
PUT/v1/voice/settingsPersist user-tuned speech-synthesis settings. Accepts a partial object; every fi…
POST/v1/voice/cleanupDelete persisted voice audio (spoken replies + mic recordings) on chat messages …
POST/v1/voice/transcribeTranscribe an uploaded audio recording via the configured voice provider (Eleven…
POST/v1/voice/ttsStream synthesized speech for up to 4096 chars of text. The provider body is pip…
POST/v1/sessions/:id/voice-audioAttach a previously-uploaded audio file (POST /v1/files) to an assistant message…

Files & artifacts

MethodPathDescription
POST/v1/filesUpload a file into the sandboxed workspace. Returns a key that can be referenced…
GET/v1/files/:keyStream a previously-uploaded sandboxed file back to the caller.
GET/v1/artifacts/:idFetch an agent-generated artifact (chart, spreadsheet, report payload) by its id…
GET/v1/artifactsList completed report artifacts for the web UI's Files pages. Filter by kind=ch
GET/v1/sandbox/files/:nameRead a file the agent wrote into its per-session sandbox. Cannot escape the sand…

Workspace files

MethodPathDescription
GET/v1/workspace/filesEnumerate every editable workspace md file with size, mtime, and sha256. Files t…
GET/v1/workspace/files/:nameReturn the contents of a single workspace md file plus its sha256. :name must …
PUT/v1/workspace/files/:nameAtomically replace a workspace md file. expected_sha256 is REQUIRED — pass the…
POST/v1/workspace/files/:name/restore-templateOverwrite the workspace file with the shipped template from src/workspace/templ

Research

MethodPathDescription
POST/v1/researchRun the deep-research pipeline directly from the gateway without going through t…

Personalization & memory

MethodPathDescription
GET/v1/profileRead the rebuilt personalization snapshot the agent injects into every system pr…
GET/v1/profile/onboardingWhether the user has completed onboarding, plus their raw saved answers. Used by…
POST/v1/profile/onboardingApply onboarding answers: maps finance knowledge / frequency / risk / markets to…
GET/v1/financial-profileLatest persisted financial_profile row: rebuilt platform wallet summary (compo…
PUT/v1/profile/promptReplace the user's custom system-prompt addendum (max 2000 chars). Surfaces in t…
DELETE/v1/profile/promptDrop the addendum. UI surfaces a hard-confirm before calling.
PUT/v1/profile/tags/:nameSet or clear one of the 10 behavioural-tag dimensions (e.g. risk, markets, ``…
DELETE/v1/profile/tags/:nameEquivalent to PUT with value: null — the tag is cleared and the agent re-infer…
GET/v1/memoryRead recent memories filtered by category, or run a hybrid (BM25 + vector) sea…
GET/v1/memory/trading-casesLegacy free-form notes feed (memories table where category = 'trading-cases').…
GET/v1/memory/research-casesMemories from /research runs filtered by topic. Used by the Research retrosp…
POST/v1/memoryHand-write a memory the agent should always remember. Server stamps category=pe
PATCH/v1/memory/:idEdit statement, fact_type, or tickers on a source=user_manual memory. Ot…
DELETE/v1/memory/:idMark deleted_at = now(). Read paths (FTS, listings, snapshot) filter the row o…
POST/v1/memory/:id/restoreClears deleted_at. Wired to the web-UI undo toast (5 second window) but works …
POST/v1/profile/refreshRun all three personalization rebuilds (trading_summary / tags / memories) with …
GET/v1/profile/trade-history-breakdownThree-source breakdown feeding the Financial Profile dashboard: local trade_hist…
GET/v1/profile/reference-walletsUser's watchlist of external wallet addresses.
PUT/v1/profile/reference-walletsReplace the watchlist atomically. Server validates EVM (0x + 40 hex) and Solan…

Learned preferences

MethodPathDescription
GET/v1/learned-preferencesInferred behavioural preferences awaiting your call (proposed / active / depreca…
POST/v1/learned-preferences/:id/:actionTransition one learned preference. Approve makes it active and brings it into th…
GET/v1/learned-preferences/:idFull record for one learned preference id (description, signal strength, history…
GET/v1/watchlistUser-curated symbol watchlist persisted on the profile.
PUT/v1/watchlistReplace the watchlist (max 100 symbols).
GET/v1/runtime-preferencesReturns the sub-feature toggle schema, current overrides, and the resolved value…
PUT/v1/runtime-preferencesBatch apply user overrides with all-or-nothing validation. Supports If-Match con…
GET/v1/runtime-preferences/critical-unlock-statusRead whether critical-tier toggles are currently unlocked (via the CLI minara s
POST/v1/runtime-preferences/critical-unlockIssue a short-lived unlock that lets a subsequent PUT /v1/runtime-preferences fl…
POST/v1/runtime-preferences/sign-ackMint a short-lived signed ack token consumed by the next PUT /v1/runtime-prefere…
GET/v1/runtime-preferences/eventsServer-sent stream emitting saved \{ revision, lifecycleEffects \} whenever runt…
GET/v1/credentials/familiesReturns the provider-family registry (web search, market data, embeddings, cloud…
PUT/v1/credentials/families/:idWrites overrides for a single provider family into ~/.minara/runtime-credential
DELETE/v1/credentials/families/:id/field/:envVarRemove a single field's override (reverts to env-derived fallback).

Notifications

MethodPathDescription
GET/v1/notificationsRecent in-app notifications (newest first) plus an unread_count. A notificatio…
DELETE/v1/notificationsDelete every notification. Returns \{ ok, cleared \}.
GET/v1/notifications/streamServer-sent stream emitting a notification event whenever a new notification i…
POST/v1/notifications/read-allMark every unread notification as read. Returns \{ ok, updated \}.
POST/v1/notifications/:id/readMark a single notification read (idempotent). Returns \{ ok: true, updated \} — …
DELETE/v1/notifications/:idDelete a single notification by id.

Learning & methodology

MethodPathDescription
GET/v1/memory/trading-cases/stats4-number snapshot for the Trading-cases dashboard: total cases, last 30 days, wi…
GET/v1/memory/trading-cases/methodology-trendPer-week timeseries of outcome_alpha_return for the top-N methodologies over t…
GET/v1/memory/methodologiesTop-N methodologies ranked by Wilson-lower confidence, with case count, asset cl…
GET/v1/memory/methodology-casesRead the methodology_cases table directly. Powers the audit ledger drawer; row…
GET/v1/memory/trading-cases/:idFull row JSON for one methodology_cases.id. Used by the right-side Drawer in t…

Skills

MethodPathDescription
GET/v1/skillsEvery registered domain skill the agent can activate. Each entry carries activat…
POST/v1/skills/reloadRe-mirror vendored external skill packages into the sandbox and re-register them…

Workflows

MethodPathDescription
POST/v1/workflows/batch/actionsApply the same action (activate / deactivate / pause / delete) to many workflows…
POST/v1/workflows/import/n8nConvert an n8n workflow JSON into a local Minara workflow definition. Idempotent…
GET/v1/workflows/:idFull workflow definition by <backend>:<rawId> (or legacy unprefixed id, defaul…
PATCH/v1/workflows/:idEdit a workflow's draft / metadata / steps.
DELETE/v1/workflows/:idSoft-delete a workflow definition; running instances continue.
POST/v1/workflows/:id/runKick off a one-shot execution of the workflow.
POST/v1/workflows/:id/pausePause the running instance(s) of a workflow.
POST/v1/workflows/:id/activateSet the workflow's active flag to true (eligible for triggers).
POST/v1/workflows/:id/deactivateSet the workflow's active flag to false (no new trigger fires).
POST/v1/workflows/:id/validateStatic + simulated validation of a workflow draft before publish.
POST/v1/workflows/:id/publishPromote the draft revision to the active definition.
POST/v1/workflows/:id/testDry-run a workflow with operator-supplied input for previewing.
POST/v1/workflows/from-templateRender one of the curated landing-page templates into a real WorkflowDefinition …
POST/v1/workflows/generateLLM authoring: turns a plain-language description into a validated WorkflowDefin…
POST/v1/workflows/:id/refineOpen an SSE stream that streams cluster events as the LLM edits the workflow def…
GET/v1/workflows/:id/refine/streamSSE endpoint that replays the active refine session's event buffer in order, the…
GET/v1/workflows/:id/executionsRecent execution instances for one workflow.
GET/v1/workflows/:id/export/n8nConvert a Minara workflow back to the n8n JSON format.
GET/v1/workflows/:id/executions/:instanceIdFull state for one workflow execution instance.
DELETE/v1/workflows/:id/executions/:instanceIdRemove the persisted record of one execution instance.
POST/v1/workflows/:id/instances/:instanceId/resumeResume an instance that's currently waiting on a confirm step.
POST/v1/workflows/:id/instances/:instanceId/cancelCancel a running execution. The cancellation reason is logged.

Stats

MethodPathDescription
GET/v1/statsToken + cost + tool-call counters bucketed by chat session.
POST/v1/telemetry/block-actionFire-and-forget click record for a ui_block event (UBP v1). Posted by the web-…

LLM provider

MethodPathDescription
GET/v1/llm/default-modelThe model id the agent loop currently uses for new turns.
PUT/v1/llm/default-modelSwitch the agent loop to a different model id. Validated against the live avail
GET/v1/llm/available-modelsModels the gateway can dispatch to, grouped by provider. Reflects the user's act…
POST/v1/llm/available-models/refreshForce a live re-fetch of the active provider's model catalog, bypassing the in-m…
GET/v1/shortcut-questionsHand-authored fixed lists plus LLM-generated dynamic questions per category, use…

Theme

MethodPathDescription
GET/v1/themeWeb-UI theme preference (light/dark/system + accent).
POST/v1/themeUpdate the persisted theme preference.

Gateway

MethodPathDescription
GET/v1/gateway/providersInbound messaging providers registered with the gateway (Slack, Lark, etc).
POST/v1/gateway/providers/:id/fields/:envVar/revealReturn the plaintext value of a single masked credential field (e.g. TELEGRAM_B
POST/v1/gateway/providers/:id/oauth/initBegin a Google OAuth consent flow for an OAuth-style messaging provider (email-
GET/studio/p/:pageIdServe a generated Data Studio dashboard as a standalone HTML page on its own lin…

Migrate

MethodPathDescription
GET/v1/migrate/manifestList the data sets that can be exported (memories, profile, prefs, workflows). P…
POST/v1/migrate/exportBundle the requested manifest entries into a portable JSON blob for backup / mig…
POST/v1/migrate/importRestore from a previously exported bundle. Idempotent on stable ids (memories, p…

Admin

MethodPathDescription
GET/v1/admin/script-risk/decisionsAudit log of the script-risk gate's decisions in front of execute_code / term
GET/v1/admin/script-risk/decisions/:idFull audit record for one script-risk gate decision.
GET/v1/consent/grantsList authoring-time consent grants for Tier-3 / Tier-4 tools running from cron /…
POST/v1/consent/grantsRecord operator authorization for a Tier-3 / Tier-4 tool call scheduled to run f…
GET/v1/consent/grants/:idReturn the full record for one consent grant.
DELETE/v1/consent/grants/:idMark a grant revoked. Subsequent autonomous calls to the tool under the same sco…
POST/v1/consent/grants/requirementsDry-run scan of a draft cron / workflow / agent definition for Tier-3 / Tier-4 t…

Config

MethodPathDescription
GET/v1/config/financial-profileDebug endpoint. Returns the effective FinancialProfileConfig currently loaded …
GET/v1/config/financial-profileCurrent resolved FinancialProfileConfig — useful when debugging why a rebuild …

Authentication

MethodPathDescription
POST/v1/auth/elevenlabs/api-keySave an ElevenLabs key for speech synthesis and transcription. Validated against…
GET/v1/auth/statusList all configured auth profiles (OpenAI / Anthropic / OpenRouter / Minara).
POST/v1/auth/oauth/openai/initStart an OpenAI Codex device-code login flow. Returns \{ flowId, userCode, verif
GET/v1/auth/oauth/openai/pollPoll an in-flight OpenAI device-code flow by flowId (from /v1/auth/oauth/open
GET/v1/auth/oauth/openai/callbackRetired in 2026-05. The previous PKCE-loopback redirect target now returns 410 G…
POST/v1/auth/oauth/openrouter/initStart an OpenRouter OAuth PKCE flow.
GET/v1/auth/oauth/openrouter/callbackOAuth redirect target for OpenRouter.
POST/v1/auth/openrouter/api-keySkip the OAuth flow and register an OpenRouter API key directly.
POST/v1/auth/oauth/anthropic/initStart the Anthropic device-flow reuse path (reuses an existing Claude CLI login)…
POST/v1/auth/oauth/anthropic/exchangeComplete the Anthropic device flow by exchanging the verifier for credentials.
DELETE/v1/auth/:providerRemove a stored auth profile. :provider is openai
POST/v1/auth/oauth/xai/initStart a SuperGrok-style PKCE flow against auth.x.ai. The gateway binds the loopb…
GET/v1/auth/oauth/flows/:flowIdQuery the in-process orchestrator for the status of an in-flight web-OAuth flow.…
DELETE/v1/auth/oauth/flows/:flowIdCancel an in-flight web-OAuth flow — closes the bound loopback port immediately …
POST/v1/auth/openai/api-keySave an OpenAI platform API key (api.openai.com). Validates via GET /v1/models b…
POST/v1/auth/anthropic/api-keySave an Anthropic platform API key. Validates via GET /v1/models before persisti…
POST/v1/auth/xai/api-keySave an xAI (Grok) API key. Validates via GET /v1/models before persisting.
POST/v1/auth/ollama/api-keySave an Ollama Cloud API key. Validates the key against the configured Ollama ho…
GET/v1/auth/preferred-providerRead the user's explicit "Use this provider" override from auth-profiles.json. s…
PUT/v1/auth/preferred-providerSet or clear the preferred provider override. Live-probes the selected credentia…
GET/v1/security/totp/statusProjection of /auth/me through the agent's normalizeTotpStatus adapter. Retu…
GET/v1/user/wallet-addressesVerbatim pass-through of /auth/me's wallets object, filtered to string-value…
GET/v1/user/profileDisplay identity for the account menu. Projects the signed-in Minara account's ``…
POST/v1/security/totp/generateMints a fresh TOTP secret + QR code URL + backup codes for the user to add to an…
POST/v1/security/totp/enableActivates TOTP after the user proves they configured the authenticator by submit…
POST/v1/security/totp/disableTurns TOTP off without removing the device binding. Requires both a fresh TOTP c…
POST/v1/security/totp/verifyAgent-internal verifier used by the Settings page to confirm the user can read a…
POST/v1/security/totp/unbindIrrevocably removes the authenticator binding — re-enabling requires a fresh sca…
POST/v1/security/email-codeTriggers POST /auth/email/code upstream so the user can receive a fresh verifi…
PUT/v1/security/totp/settingsIndependently toggle new-device-login and withdraw TOTP requirements. The withdr…
POST/v1/auth/minara/oauth/startKick off the Minara platform OAuth 2.0 + PKCE login. Binds a loopback callback s…
POST/v1/auth/minara/oauth/pollPoll the in-flight OAuth flow by flow_id. Returns pending until the callback fir…
POST/v1/auth/oauth/minara/initAlias of the Minara OAuth start under the shared provider-reauth namespace. Runs…
DELETE/v1/auth/minaraForget the stored Minara token; subsequent calls become unauthenticated.

On this page