REST API Reference
Reference for the Splunk_ML_Toolkit /mltk/** REST API surface, derived from AITK_API_reference.md and AITK_API_summary.md.
Showing 61 of 61
- DELETE /mltk/agents/{agent_name} DELETE /mltk/agents/{agent_name} Begin async teardown: calls SCS `DELETE {scs_url_base}/agent/aws_agentcore/{runtime_id}`, sets the agent state to `\"Deleting\"`, and dispatches an `agentstatus` job to monitor cleanup.
- GET /mltk/agents/{agent_name} GET /mltk/agents/{agent_name} Fetch a single agent record.
- GET /mltk/agents GET /mltk/agents List all agents the caller is permitted to read.
- POST /mltk/agents POST /mltk/agents Create a new agent.
- PUT /mltk/agents PUT /mltk/agents Merge updates into an existing agent.
- DELETE /mltk/aicommander/{service}/{connection_name}/{model} DELETE /mltk/aicommander/{service}/{connection_name}/{model} Remove a single model entry.
- GET /mltk/aicommander_metadata GET /mltk/aicommander_metadata Returns provider metadata / supported-provider feature flags.
- GET /mltk/aicommander/{service}/{connection_name}/{model} GET /mltk/aicommander/{service}/{connection_name}/{model} Fetch a single model's settings for editing in the UI.
- GET /mltk/aicommander GET /mltk/aicommander Returns the full set of saved provider configurations as rendered for the AI Commander UI.
- POST /mltk/aicommander_metadata POST /mltk/aicommander_metadata Live-test a provider configuration without saving it.
- POST /mltk/aicommander POST /mltk/aicommander Upsert a provider / connection / model configuration.
- Capabilities Appendix B of the AITK REST API reference: Capabilities.
- KV-store collections Appendix A of the AITK REST API reference: KV-store collections.
- Source code layout Appendix C of the AITK REST API reference: Source code layout.
- DELETE /mltk/container_connection/{container_type}/{connection_name} DELETE /mltk/container_connection/{container_type}/{connection_name} Clears all configuration fields for the stanza (does not remove the stanza itself), effectively disabling it.
- DELETE /mltk/start_container/{model_name} DELETE /mltk/start_container/{model_name} Tear down the container/deployment for `model_name`.
- GET /mltk/container_connection/{container_type}/{connection_name} GET /mltk/container_connection/{container_type}/{connection_name} Fetch one connection.
- GET /mltk/container_connection/{container_type} GET /mltk/container_connection/{container_type} Cluster-wide resource defaults & HPA settings for a container type.
- GET /mltk/container_data GET /mltk/container_data Returns the per-deployment state from `dsdl_container.conf` enriched with a live health probe.
- GET /mltk/container_logs GET /mltk/container_logs Inventory of dev/prod stanzas grouped by mode and active/inactive state.
- GET /mltk/start_container GET /mltk/start_container Summary counts of active / inactive containers and DEV / PROD splits.
- GET /mltk/stop_container GET /mltk/stop_container Returns the catalog of available Docker images from `docker_images.conf`.
- GET /mltk/test_container_connection GET /mltk/test_container_connection Returns the active container connection configuration with secrets decoded.
- POST /mltk/container_connection POST /mltk/container_connection Upsert a container connection stanza.
- POST /mltk/container_logs POST /mltk/container_logs Fetch a container's stdout/stderr logs.
- POST /mltk/start_container POST /mltk/start_container Start a container (Docker) or deployment (Kubernetes).
- POST /mltk/stop_container POST /mltk/stop_container Equivalent to `DELETE /mltk/start_container/{model}` — stops the Docker container or deletes the Kubernetes deployment, clears runtime state.
- POST /mltk/test_container_connection POST /mltk/test_container_connection Same body shape as `POST /mltk/container_connection` plus active connectivity verification.
- DELETE /mltk/experiments/{experiment_id} DELETE /mltk/experiments/{experiment_id} Cascade delete: 1.
- GET /mltk/experiments/{experiment_id}/history GET /mltk/experiments/{experiment_id}/history All history records for the experiment, queried from KV collection `experiment_history` with filter `{\"experimentId\": \"...\"}`.
- GET /mltk/experiments/{experiment_id} GET /mltk/experiments/{experiment_id} Fetch a single experiment.
- GET /mltk/experiments GET /mltk/experiments Splunk-style list response wrapping every experiment stanza in `experiments.conf`.
- POST /mltk/experiments (create) POST /mltk/experiments Create a new experiment.
- POST /mltk/experiments/{experiment_id}/clone_models POST /mltk/experiments/{experiment_id}/clone_models Clone all trained models for the experiment into a different app/name.
- POST /mltk/experiments/{experiment_id}/history POST /mltk/experiments/{experiment_id}/history Append a history record.
- POST /mltk/experiments/{experiment_id} (update) POST /mltk/experiments/{experiment_id} Update an existing experiment.
- GET /mltk/agent_feature_flag GET /mltk/agent_feature_flag Returns the agent-builder feature flag (internally keyed `aitk_agent_builder_feature_enabled`, but the response key is `mltk_hosted_llm` for legacy reasons).
- GET /mltk/ctsm_feature GET /mltk/ctsm_feature Returns the current CTSM opt-out and acknowledge flags.
- GET /mltk/mltk_feature_flags GET /mltk/mltk_feature_flags Returns the hosted-LLM feature flag the UI uses to decide whether Splunk Hosted Models are available.
- POST /mltk/ctsm_acknowledge POST /mltk/ctsm_acknowledge Mark the CTSM notice as acknowledged.
- POST /mltk/ctsm_feature POST /mltk/ctsm_feature Opt out of CTSM.
- DELETE /mltk/mcp_connection/{name} DELETE /mltk/mcp_connection/{name} Delete the connection and its token from password storage.
- GET /mltk/mcp_connection[?name=...] GET /mltk/mcp_connection[?name=...] List all MCP connections, or fetch one by name.
- POST /mltk/mcp_connection/test POST /mltk/mcp_connection/test Test connectivity.
- POST /mltk/mcp_connection/tools POST /mltk/mcp_connection/tools List the tools exposed by a saved or inline MCP connection.
- POST /mltk/mcp_connection POST /mltk/mcp_connection Create a new MCP connection.
- PUT /mltk/mcp_connection PUT /mltk/mcp_connection Update a connection by name.
- GET /mltk/list_connections GET /mltk/list_connections Combined list of LLM, Docker, and Kubernetes connections.
- GET /mltk/list_models GET /mltk/list_models List all MLTK models — both ONNX-uploaded models and SageMaker-registered ones.
- GET /mltk/register_model?model_name=... GET /mltk/register_model?model_name=... Fetch a SageMaker model configuration by name.
- POST /mltk/register_model?test_connection=1 POST /mltk/register_model?test_connection=1 Same body as 7.4 but the handler only probes AWS (`sagemaker:DescribeEndpoint`) — nothing is persisted.
- POST /mltk/register_model POST /mltk/register_model Register a new SageMaker endpoint as an MLTK model.
- POST /mltk/upload_model POST /mltk/upload_model Upload an ONNX model.
- PUT /mltk/register_model PUT /mltk/register_model Update the mutable fields of an existing SageMaker model: `input_feature_map`, `output_prediction_map`, `openapi_spec`, `batch_size`.
- POST /mltk/run_history POST /mltk/run_history Paginate agent run history.
- PUT /mltk/hec_operations PUT /mltk/hec_operations Push one or more AI agent events into the configured Splunk index via `POST /services/receivers/simple` (HEC).
- DELETE /mltk/vector_stores/{connection_name} DELETE /mltk/vector_stores/{connection_name} Remove the configuration and its AWS credentials from password storage.
- GET /mltk/vector_stores GET /mltk/vector_stores List all vector store configurations.
- POST /mltk/vector_stores/test POST /mltk/vector_stores/test Probe an AWS Knowledge Base.
- POST /mltk/vector_stores POST /mltk/vector_stores Create a vector store config.
- PUT /mltk/vector_stores PUT /mltk/vector_stores Update an existing vector store.
No items match the selected filters.
All custom endpoints are mounted under a single Splunk REST entry-point: /servicesNS/{owner}/Splunk_ML_Toolkit/mltk/<handler>[/<subpath>].
Comprehensive reference for the Splunk AI Toolkit (Splunk_ML_Toolkit) REST API.
All custom endpoints are mounted under a single Splunk REST entry-point:
/servicesNS/{owner}/Splunk_ML_Toolkit/mltk/<handler>[/<subpath>]
Declared in Splunk_ML_Toolkit/default/restmap.conf:
[script:mltk]
match = /mltk
script = util/rest_handler.py
scripttype = persist
requireAuthentication = true
output_modes = json
passHttpHeaders = true
passSystemAuth = true
passPayload = true
python.version = python3
Exposed in Splunk_ML_Toolkit/default/web.conf:
[expose:mltk]
pattern = mltk/**
methods = GET, POST, PUT, DELETE
Dispatch is dynamic. The dispatcher at Splunk_ML_Toolkit/bin/util/rest_handler.py takes the first path segment after /mltk/, imports Splunk_ML_Toolkit/bin/rest_handlers/<name>.py, instantiates the matching CamelCase class (name.title().replace('_', '')), and dispatches handle_get | handle_post | handle_put | handle_delete(request, path_parts).
Endpoint groups Permalink to this section
| # | Group | Endpoints | Slug |
|---|---|---|---|
| 1 | Feature Flags & Notifications | 5 | /api/feature-flags/ |
| 2 | AI Commander (LLM Providers) | 6 | /api/ai-commander/ |
| 3 | AI Agents | 5 | /api/agents/ |
| 4 | MCP Connections | 6 | /api/mcp-connections/ |
| 5 | Vector Stores | 5 | /api/vector-stores/ |
| 6 | Experiments | 8 | /api/experiments/ |
| 7 | Models & External Inventories | 7 | /api/models/ |
| 8 | Container Lifecycle (DSDL) | 14 | /api/containers/ |
| 9 | Run History & HEC | 2 | /api/run-history-hec/ |
Inventory snapshot Permalink to this section
Total documented endpoints: 36 (from AITK_API_summary.md).
| Endpoint | Methods | Handler |
|---|---|---|
/mltk/agent_feature_flag |
GET | Splunk_ML_Toolkit/bin/rest_handlers/agent_feature_flag.py |
/mltk/agents |
GET, POST, PUT | Splunk_ML_Toolkit/bin/rest_handlers/agents.py |
/mltk/agents/{agent_name} |
GET, DELETE | Splunk_ML_Toolkit/bin/rest_handlers/agents.py |
/mltk/aicommander |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/aicommander.py |
/mltk/aicommander/{service}/{connection_name}/{model} |
GET, DELETE | Splunk_ML_Toolkit/bin/rest_handlers/aicommander.py |
/mltk/aicommander_metadata |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/aicommander_metadata.py |
/mltk/container_connection |
POST | Splunk_ML_Toolkit/bin/rest_handlers/container_connection.py |
/mltk/container_connection/{container_type} |
GET | Splunk_ML_Toolkit/bin/rest_handlers/container_connection.py |
/mltk/container_connection/{container_type}/{connection_name} |
GET, DELETE | Splunk_ML_Toolkit/bin/rest_handlers/container_connection.py |
/mltk/container_data |
GET | Splunk_ML_Toolkit/bin/rest_handlers/container_data.py |
/mltk/container_logs |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/container_logs.py |
/mltk/ctsm_acknowledge |
POST | Splunk_ML_Toolkit/bin/rest_handlers/ctsm_acknowledge.py |
/mltk/ctsm_feature |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/ctsm_feature.py |
/mltk/experiments |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/experiments.py |
/mltk/experiments/{experiment_id} |
GET, POST, DELETE | Splunk_ML_Toolkit/bin/rest_handlers/experiments.py |
/mltk/experiments/{experiment_id}/history |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/experiments.py |
/mltk/experiments/{experiment_id}/clone_models |
POST | Splunk_ML_Toolkit/bin/rest_handlers/experiments.py |
/mltk/hec_operations |
PUT | Splunk_ML_Toolkit/bin/rest_handlers/hec_operations.py |
/mltk/list_connections |
GET | Splunk_ML_Toolkit/bin/rest_handlers/list_connections.py |
/mltk/list_models |
GET | Splunk_ML_Toolkit/bin/rest_handlers/list_models.py |
/mltk/mcp_connection |
GET, POST, PUT | Splunk_ML_Toolkit/bin/rest_handlers/mcp_connection.py |
/mltk/mcp_connection/{name} |
DELETE | Splunk_ML_Toolkit/bin/rest_handlers/mcp_connection.py |
/mltk/mcp_connection/test |
POST | Splunk_ML_Toolkit/bin/rest_handlers/mcp_connection.py |
/mltk/mcp_connection/tools |
POST | Splunk_ML_Toolkit/bin/rest_handlers/mcp_connection.py |
/mltk/mltk_feature_flags |
GET | Splunk_ML_Toolkit/bin/rest_handlers/mltk_feature_flags.py |
/mltk/register_model |
GET, POST, PUT | Splunk_ML_Toolkit/bin/rest_handlers/register_model.py |
/mltk/register_model?test_connection=1 |
POST | Splunk_ML_Toolkit/bin/rest_handlers/register_model.py |
/mltk/run_history |
POST | Splunk_ML_Toolkit/bin/rest_handlers/run_history.py |
/mltk/start_container |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/start_container.py |
/mltk/start_container/{model_name} |
DELETE | Splunk_ML_Toolkit/bin/rest_handlers/start_container.py |
/mltk/stop_container |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/stop_container.py |
/mltk/test_container_connection |
GET, POST | Splunk_ML_Toolkit/bin/rest_handlers/test_container_connection.py |
/mltk/upload_model |
POST | Splunk_ML_Toolkit/bin/rest_handlers/upload_model.py |
/mltk/vector_stores |
GET, POST, PUT | Splunk_ML_Toolkit/bin/rest_handlers/vector_stores.py |
/mltk/vector_stores/{connection_name} |
DELETE | Splunk_ML_Toolkit/bin/rest_handlers/vector_stores.py |
/mltk/vector_stores/test |
POST | Splunk_ML_Toolkit/bin/rest_handlers/vector_stores.py |
Backing stores and internal Splunk APIs Permalink to this section
| Custom area | Native/internal target | Responsible code |
|---|---|---|
/mltk/experiments |
/configs/conf-experiments |
bin/experiment/experiment_store.py |
/mltk/experiments/{id}/history |
/storage/collections/data/experiment_history |
bin/experiment/history_store.py |
/mltk/list_models |
lookup table file/model inventory | bin/rest_handlers/list_models.py, bin/models/listmodels.py |
/mltk/upload_model |
model upload and validation flow | bin/rest_handlers/upload_model.py, bin/util/onnx_util.py |
/mltk/register_model |
SageMaker model config, credentials, lookup entries | bin/rest_handlers/register_model.py, bin/util/sagemaker_util_extensions.py |
/mltk/hec_operations |
/services/receivers/simple |
bin/rest_handlers/hec_operations.py |
/mltk/run_history |
/search/jobs |
bin/rest_handlers/run_history.py, bin/run_history/search_utils.py |
/mltk/container_connection |
/configs/conf-container_connections |
bin/rest_handlers/container_connection.py, bin/util/docker_util.py, bin/dsdl/docker_util.py |
| Container lifecycle endpoints | Docker/Kubernetes control helpers and dsdl_container.conf |
bin/rest_handlers/start_container.py, bin/rest_handlers/stop_container.py, bin/dsdl/configure_handler.py, bin/dsdl/docker_util.py |
/mltk/aicommander |
AI Commander config and KV store data | bin/rest_handlers/aicommander.py, bin/ai_commander/ai_commander_util.py |
/mltk/mcp_connection |
aitk_mcp_collection KV store |
bin/rest_handlers/mcp_connection.py, bin/connection_config_manager/mcp/mcp_util.py |
/mltk/vector_stores |
aitk_vector_store_collection KV store |
bin/rest_handlers/vector_stores.py, bin/connection_config_manager/vector_db/config_manager.py |
/mltk/agents |
aitk_agent_collection KV store plus agentstatus search command |
bin/rest_handlers/agents.py, bin/agent_manager/agent_manager.py |
Appendices Permalink to this section
- Appendix A: KV-store collections
- Appendix B: Capabilities
- Appendix C: Source code layout