This explorer is generated from the same Router route catalog that serves
GET /openapi.json. The catalog also owns each operation's permission,
sensitivity, and mutation audit action, so runtime discovery and this page do
not maintain parallel policy tables. An Agent should query the running Router
directly:
curl -sS http://localhost:8080/api/v1
curl -sS 'http://localhost:8080/openapi.json?path=/api/v1/config&method=PATCH'
curl -sS http://localhost:8080/openapi.json
The Dashboard is only a human-facing proxy and is not required for Agent or
Router operation.
This specification describes the Router management listener . Model traffic uses the standalone frontend by default, or Envoy with
--gateway extproc, and follows the separate
inference API contract . Storage routes therefore appear only as
/api/v1/storage/files and /api/v1/storage/vector-stores; the Router does not
publish /v1/files or /v1/vector_stores aliases.
The generated contract declares the runtime-configurable Bearer scheme and the
permission required by each operation. When management authentication is
disabled, non-health operations also accept anonymous access; when it is set to
bearer, send Authorization: Bearer <token>.
JSON request fields are generated from the Go request type decoded by each
handler. Configuration values inside the yaml field are defined by the
Configuration Schema , which is independently
available from the Router at GET /api/v1/config/schema.
Configuration mutation requests are YAML-only and require the current ETag in
If-Match. Use POST /api/v1/config/plan to obtain the ETag and candidate
identity before PATCH or PUT.
Find an operation Method All methods GET POST PATCH PUT DELETE
GET /api/v1Progressive API capability discovery GET /api/v1/configGet the current router config as JSON (secrets redacted without secret_view) PATCH /api/v1/configCompare-and-swap merge of a router config update (validates, backs up, writes, triggers hot-reload) PUT /api/v1/configCompare-and-swap replacement of the router config (validates, backs up, writes, triggers hot-reload) GET /api/v1/config/hashCompare persisted source, generated runtime, and active router config hashes POST /api/v1/config/planPlan an exact merge or replace mutation, including hot-reload compatibility, without writing it GET /api/v1/config/recipesList the default and named routing recipes with their entrypoints DELETE /api/v1/config/recipes/{name}Delete an unreferenced named routing recipe; requires If-Match GET /api/v1/config/recipes/{name}Read one routing recipe and its entrypoints PUT /api/v1/config/recipes/{name}Atomically create or replace one routing recipe; requires If-Match POST /api/v1/config/recipes/validateValidate a recipe mutation without writing or reloading config POST /api/v1/config/rollbackCompare-and-swap rollback to a previous router config version GET /api/v1/config/schemaDiscover the canonical Router configuration contract progressively or return the complete JSON Schema POST /api/v1/config/validateValidate and normalize a router config without writing it GET /api/v1/config/versionsList available router config backup versions POST /api/v1/diagnostics/classify/batchBatch classification with configurable task_type parameter POST /api/v1/diagnostics/classify/combinedPerform combined classification (intent, PII, and security) POST /api/v1/diagnostics/classify/fact-checkClassify if text needs fact-checking POST /api/v1/diagnostics/classify/intentClassify user queries into routing categories POST /api/v1/diagnostics/classify/piiDetect personally identifiable information in text POST /api/v1/diagnostics/classify/securityDetect jailbreak attempts and security threats POST /api/v1/diagnostics/classify/user-feedbackClassify user feedback type (satisfied, need_clarification, wrong_answer, want_different) POST /api/v1/diagnostics/embeddingsGenerate text, image, and audio embeddings GET /api/v1/diagnostics/modelsList prepared model bindings in an explicitly selected recipe POST /api/v1/diagnostics/models/embeddingsRun the explicitly selected prepared embedding binding at its published representation POST /api/v1/diagnostics/models/label-scoresInspect independent label scores using the prepared operating point when configured POST /api/v1/diagnostics/models/labelsInspect a prepared label distribution; windowed bindings preserve their configured scan POST /api/v1/diagnostics/models/rerankScore query-document pairs using the selected prepared relevance binding without running a RAG request; max_batch_size applies (default 100 pairs) GET /api/v1/diagnostics/models/systemoneList published model deployments and their native System One question capabilities POST /api/v1/diagnostics/models/systemoneTest native System One questions against a published deployment; preserves choice, score, noul, set, span, usage and metadata; 32 MiB request, 4 MiB response, 30 second deadline POST /api/v1/diagnostics/models/systemone/forwardForward a public native inference or discovery request through one active listener grant; requires management authorization and the original listener credentials GET /api/v1/diagnostics/models/tasksList shared judgment task templates, structural model capabilities and binding provenance POST /api/v1/diagnostics/models/tokensInspect prepared token spans with original UTF-8 byte offsets and complete configured window scanning GET /api/v1/diagnostics/routes/systemoneList active native recipe entrypoints for operator diagnostics without probing models; availability describes the routing plan, not backend health POST /api/v1/diagnostics/routes/systemoneRun a native recipe using operator classify.invoke permission; the selected algorithm owns its execution deadline and physical call budget, while signals use their own timeouts; independent of public listener grants POST /api/v1/diagnostics/similarityCalculate pairwise text similarity POST /api/v1/diagnostics/similarity/batchCalculate batch text-similarity matches GET /api/v1/instanceRead the serving frontend capability mode and default native deployment GET /api/v1/inventory/classifierGet classifier information and status (secrets redacted without secret_view) GET /api/v1/inventory/embedding-modelsGet information about loaded embedding models GET /api/v1/inventory/model-runtimeGet the model_runtime deployments: process, readiness, restarts and served model cards GET /api/v1/inventory/modelsGet information about loaded models GET /api/v1/observability/auditPage through this Router process's bounded management mutation audit, configuration lifecycle outcomes included; filter by action and resume after a sequence GET /api/v1/observability/classification-metricsGet classification metrics and statistics POST /api/v1/observability/outcomesSubmit Router Learning outcome feedback linked to a replay record GET /api/v1/observability/plugins/context_compression/statsGet redacted context-compression statistics GET /api/v1/observability/replaysList Router Replay records GET /api/v1/observability/replays/{id}Read one Router Replay record GET /api/v1/observability/replays/aggregateAggregate Router Replay routing and cost metadata GET /api/v1/observability/replays/datasetExport a shadow comparison dataset manifest built from the selected Router Replay records GET /api/v1/observability/replays/trajectoryBuild a recipe-scoped session trajectory with each recorded routing result GET /api/v1/pluginsDiscover every registered recipe-scoped plugin, its schema, bindings, and supported operations GET /api/v1/plugins/{type}Describe one canonical plugin type and its supported management operations GET /api/v1/plugins/{type}/bindingsInspect active recipe and decision plugin bindings and published dependency availability; does not probe network health GET /api/v1/plugins/context_compression/capabilitiesGet context-compression capabilities GET /api/v1/plugins/context_compression/healthCheck context-compression runtime health POST /api/v1/plugins/context_compression/previewPreview context compression without persistence POST /api/v1/plugins/fast_response/previewPreview fixed assistant text before transport encoding; no persistence or backend calls POST /api/v1/plugins/hallucination/previewPreview an active binding's hallucination policy and supplied fact-check/context conditions; mode=probe explicitly invokes configured detectors without generation or persistence POST /api/v1/plugins/header_mutation/previewPreview ordered Envoy header operations; values require secret_view; no persistence or backend calls POST /api/v1/plugins/rag/previewPreview configured RAG context injection using supplied_context; mode=probe retrieves from the configured backend without the RAG result cache or generation POST /api/v1/plugins/request_params/previewPreview the dispatch parameter policy, including blocked fields, defaults, and caps; no persistence or backend calls POST /api/v1/plugins/response_jailbreak/previewPreview an active binding's response-jailbreak policy; mode=probe explicitly invokes its configured classifier without generation or persistence POST /api/v1/plugins/system_prompt/previewPreview system instruction changes using the dispatch protocol codec; no persistence or backend calls POST /api/v1/plugins/tool_selection/previewPreview the configured tool_selection policy; mode=probe permits configured retrieval and embedding calls but never executes tools POST /api/v1/plugins/tools/previewPreview the configured tools policy; mode=probe permits semantic tool retrieval but never executes tools POST /api/v1/routing/previewPreview configured signals and model selection without generating an answer. Supported native-output requests use backend render APIs to resolve per-candidate capacity; paths requiring execution remain unresolved. Learning uses read-only captured state with selection_provenance; preview_context supplies session identity and an optional preview-only sampling seed. A state-dependent or sampled result does not guarantee a later live selection. global.services.api.routing_preview controls the request deadline and concurrent worker bound. GET /api/v1/statusVersioned replica-local startup and configuration status; not a deployment probe POST /api/v1/storage/context-recovery/invalidateInvalidate a trusted context-recovery request scope GET /api/v1/storage/filesList uploaded files POST /api/v1/storage/filesUpload a file DELETE /api/v1/storage/files/{id}Delete an uploaded file GET /api/v1/storage/files/{id}Read uploaded-file metadata GET /api/v1/storage/files/{id}/contentDownload uploaded-file content GET /api/v1/storage/knowledge-basesList configured knowledge bases POST /api/v1/storage/knowledge-basesCreate a managed knowledge base DELETE /api/v1/storage/knowledge-bases/{name}Delete a managed knowledge base GET /api/v1/storage/knowledge-bases/{name}Read a knowledge base PUT /api/v1/storage/knowledge-bases/{name}Update a managed knowledge base GET /api/v1/storage/knowledge-bases/{name}/map/data.ndjsonStream generated knowledge-base map data as NDJSON GET /api/v1/storage/knowledge-bases/{name}/map/metadataRead generated knowledge-base map metadata DELETE /api/v1/storage/memoriesDelete memories by scope GET /api/v1/storage/memoriesList long-term memories DELETE /api/v1/storage/memories/{id}Delete one long-term memory GET /api/v1/storage/memories/{id}Read one long-term memory GET /api/v1/storage/response-cache/capabilitiesGet response-cache backend capabilities POST /api/v1/storage/response-cache/flushAdvance a scoped or global response-cache epoch GET /api/v1/storage/response-cache/healthCheck response-cache backend health POST /api/v1/storage/response-cache/invalidateDry-run or invalidate a scoped response-cache partition GET /api/v1/storage/response-cache/statsGet redacted response-cache statistics POST /api/v1/storage/response-cache/testValidate and probe a response-cache candidate configuration GET /api/v1/storage/vector-storesList vector stores POST /api/v1/storage/vector-storesCreate a vector store DELETE /api/v1/storage/vector-stores/{id}Delete a vector store GET /api/v1/storage/vector-stores/{id}Read a vector store POST /api/v1/storage/vector-stores/{id}Update a vector store GET /api/v1/storage/vector-stores/{id}/filesList files attached to a vector store POST /api/v1/storage/vector-stores/{id}/filesAttach a file to a vector store DELETE /api/v1/storage/vector-stores/{id}/files/{file_id}Detach a file from a vector store POST /api/v1/storage/vector-stores/{id}/searchSearch a vector store GET /docsInteractive Swagger UI documentation GET /healthHealth check endpoint GET /openapi.jsonOpenAPI 3.0 specification; optionally narrowed to one path or operation GET /readyReadiness endpoint that turns green only after startup completes GET /startup-statusDetailed router startup and model-download status GET /v1/modelsOpenAI-compatible public model and Entrypoint listing Operation ID ·get_api_v1
Authentication Runtime-configured bearer
Permission docs.read
Sensitivity public
Capability system
Plane infrastructure
Audiences agent, operator
Stability stable
Visibility primaryRequest valuestring
Allowed values: "index", "operations"
Omit for a compact capability index or use operations to include endpoint metadata.
Return one capability group.
valuestring
Allowed values: "agent", "operator", "client", "internal"
Return operations intended for one caller type.
valuestring
Allowed values: "infrastructure", "management", "diagnostic", "data"
Return operations from one API plane.
valuestring
Allowed values: "primary", "advanced"
Return primary or advanced operations.
Example request
curl -sS -X GET \
'http://localhost:8080/api/v1'
Responses 200 Successful response 400 Bad Request 401 A management bearer token is required or invalid when bearer authentication is enabled 403 The authenticated role lacks the operation permission 500 Management authentication configuration is invalid