Skip to main content
The config endpoints manage the global bot configuration. They are restricted to API key callers or OAuth users who are configured as bot owners.
For per-guild configuration, use the Guilds endpoints (GET /guilds/:id/config and PATCH /guilds/:id/config).

GET /config

Returns the current global bot configuration. Sensitive fields (API keys, tokens) are masked with a placeholder. Authentication: API key or bot-owner JWT Bearer token required.

Example

curl -H "x-api-secret: YOUR_SECRET" \
  https://volvox.bot/api/v1/config
{
  "ai": {
    "enabled": true,
    "model": "claude-3-5-sonnet",
    "apiKey": "[REDACTED]"
  },
  "welcome": {
    "enabled": true,
    "channelId": "111222333"
  },
  "moderation": {
    "enabled": true,
    "logChannelId": "444555666"
  }
}

PUT /config

Replaces writable config sections. Only the following sections are accepted: ai, welcome, spam, moderation, triage. Values are merged leaf-by-leaf into the existing config. Authentication: API key or bot-owner JWT Bearer token required.
Values matching the redacted placeholder sentinel are skipped automatically to prevent accidentally overwriting live secrets with the placeholder string.

Request body

(config sections)
object
required
A JSON object containing one or more writable config sections. Nested objects are merged at the leaf level.

Response

Returns the updated config on full success (200), a partial-success object on partial failure (207), or an error on complete failure.
(config sections)
object
The updated global config with sensitive fields masked. Returned on full success.
Partial success (207):
error
string
Summary error message.
results
array
Per-path write results. Each item has path (string), status (success or failed), and optionally error (string).
config
object
The current config state after partial writes.

Example

curl -X PUT \
  -H "x-api-secret: YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"ai": {"model": "claude-3-5-sonnet"}, "welcome": {"enabled": false}}' \
  https://volvox.bot/api/v1/config
{
  "ai": { "enabled": true, "model": "claude-3-5-sonnet", "apiKey": "[REDACTED]" },
  "welcome": { "enabled": false, "channelId": "111222333" }
}

Build docs developers (and LLMs) love