Vault API
Manage encrypted secrets programmatically.
List Secrets
bash
GET /api/agents/:name/vaultResponse
json
{
"secrets": [
{
"key": "OPENAI_API_KEY",
"created_at": "2024-01-15T10:00:00Z",
"updated_at": "2024-01-15T10:00:00Z"
},
{
"key": "TELEGRAM_TOKEN",
"created_at": "2024-01-15T11:00:00Z",
"updated_at": "2024-01-15T11:00:00Z"
}
]
}::: note Secret values are never returned in list endpoints. :::
Get Secret
bash
GET /api/agents/:name/vault/:keyResponse
json
{
"key": "OPENAI_API_KEY",
"value": "sk-xxxxxxxxxxxx",
"created_at": "2024-01-15T10:00:00Z",
"updated_at": "2024-01-15T10:00:00Z"
}Store Secret
bash
POST /api/agents/:name/vaultRequest
json
{
"key": "DATABASE_PASSWORD",
"value": "supersecret123"
}Response
json
{
"success": true,
"key": "DATABASE_PASSWORD",
"created_at": "2024-01-15T12:00:00Z"
}Update Secret
bash
PUT /api/agents/:name/vault/:keyRequest
json
{
"value": "newsecret456"
}Response
json
{
"success": true,
"key": "DATABASE_PASSWORD",
"updated_at": "2024-01-15T12:30:00Z"
}Delete Secret
bash
DELETE /api/agents/:name/vault/:keyResponse
json
{
"success": true,
"message": "Secret 'OLD_KEY' deleted"
}Check Secret Exists
bash
HEAD /api/agents/:name/vault/:keyResponse
200 OK- Secret exists404 Not Found- Secret does not exist
Batch Operations
Store Multiple Secrets
bash
POST /api/agents/:name/vault/batchRequest
json
{
"secrets": {
"API_KEY_1": "value1",
"API_KEY_2": "value2",
"API_KEY_3": "value3"
}
}Response
json
{
"success": true,
"created": 3,
"keys": ["API_KEY_1", "API_KEY_2", "API_KEY_3"]
}Delete Multiple Secrets
bash
DELETE /api/agents/:name/vault/batchRequest
json
{
"keys": ["OLD_KEY_1", "OLD_KEY_2"]
}Export/Import
Export Secrets (Metadata Only)
bash
GET /api/agents/:name/vault/exportResponse
json
{
"agent": "default",
"exported_at": "2024-01-15T12:00:00Z",
"secrets": [
{"key": "OPENAI_API_KEY"},
{"key": "TELEGRAM_TOKEN"}
]
}::: note Full secret values are never exported via API for security. :::
Predefined Secret Keys
These secrets have special meaning:
| Key | Purpose |
|---|---|
openai_api_key | OpenAI API key |
google_api_key | Google API key |
xai_api_key | Z.Ai (Grok) API key |
llm_model | Default LLM model |
llm_provider | Active LLM provider |
llm_temperature | Temperature setting |
telegram_token | Telegram bot token |
discord_token | Discord bot token |
slack_bot_token | Slack bot token |
slack_app_token | Slack app token |
gateway_host | API bind address |
gateway_port | API port |
web_ui_port | Web dashboard port |
whisper_model | Whisper model for voice |
embedding_model | Embedding model for LTM |
stm_window_size | STM context window |
webhook_secret | Webhook authentication |
Security Notes
- Transport - Always use HTTPS in production
- Access - Vault requires agent-level access
- Audit - All vault operations are logged
- Encryption - Secrets are encrypted at rest
- Memory - Values cleared from memory after use
Error Responses
Secret Not Found
json
{
"success": false,
"error": {
"code": "SECRET_NOT_FOUND",
"message": "Secret 'UNKNOWN_KEY' not found"
}
}Invalid Key Name
json
{
"success": false,
"error": {
"code": "INVALID_KEY",
"message": "Key must be alphanumeric with underscores"
}
}