DUMB API#
DUMB includes a built-in REST API and WebSocket server to allow programmatic control of services, logging, and system state.
The API is enabled and configured using the dumb_config.json under the dumb.api_service section. For example:
"api_service": {
"enabled": true,
"process_name": "DUMB API",
"log_level": "INFO",
"host": "127.0.0.1",
"port": 8000
}
Features#
- Authentication - JWT-based user authentication and management
- Health checks - Container and service health monitoring
- Process management - Start, stop, restart services
- Real-time streaming - WebSocket endpoints for logs, status, and metrics
- Configuration - View and update settings (in-memory and persistent)
- Environment state inspection - Service and system information
Common Endpoints#
| Method | Path | Description |
|---|---|---|
| GET | /api/auth/status |
Get authentication status |
| POST | /api/auth/login |
Authenticate and get JWT tokens |
| POST | /api/auth/refresh |
Refresh access token |
| GET | /health |
Container health check |
| GET | /process/processes |
List all services in dumb_config.json |
| GET | /process |
Get a specific service by process_name |
| POST | /process/start-service |
Start a specific service |
| POST | /process/stop-service |
Stop a specific service |
| POST | /process/restart-service |
Restart a specific service |
| GET | /process/service-status |
Get the current status of a service |
| POST | /process/start-core-service |
Start core services + dependencies |
| GET | /process/capabilities |
Get backend feature flags |
| GET | /seerr-sync/status |
Seerr Sync summary status |
| GET | /seerr-sync/failed |
Seerr Sync failed request list |
| GET | /seerr-sync/state |
Seerr Sync raw state (debug) |
| POST | /seerr-sync/test |
Test Seerr URL + API key |
| DELETE | /seerr-sync/failed |
Clear failed Seerr Sync requests |
| GET | /logs |
Read service log chunks |
| GET | /ai/settings |
Read sanitized AI provider settings |
| PUT | /ai/settings |
Update AI provider settings |
| POST | /ai/test |
Test current AI provider settings |
| POST | /ai/models |
List available provider models |
| POST | /ai/diagnose |
Preview or run AI service diagnostics |
| POST | /ai/diagnose-stack |
Preview or run stack-wide AI diagnostics |
| WS | /ws/logs |
Real-time log streaming |
| WS | /ws/status |
Real-time service status updates |
| WS | /ws/metrics |
Real-time system metrics |
Directory Structure#
The DUMB API is split into the following modules:
| File | Purpose |
|---|---|
api_service.py |
Initializes and launches the FastAPI app |
api_state.py |
Tracks and updates service runtime state |
connection_manager.py |
Manages WebSocket client connections |
config.py |
Endpoints for working with dumb_config.json and service configs |
health.py |
Health check endpoint for validating API status |
logs.py |
REST endpoint for reading historical logs |
websocket_logs.py |
WebSocket server for streaming real-time logs to frontend |
process.py |
Service control for backend processes (start, stop, restart) |
seerr_sync.py |
Seerr Sync status and failure endpoints |
ai.py |
AI provider settings and redacted service diagnostics |
API Documentation#
DUMB provides built-in API documentation through two convenient endpoints:
-
FastAPI Swagger UI
Accessible at:
http://<host>:<port>/docs
This interface allows for interactive testing and exploring of all available REST endpoints. -
Scalar (ReDoc-style) Docs
Accessible at:
http://<host>:<port>/scalar
A clean, read-only view of the full OpenAPI schema for the DUMB API.
These are helpful for development, debugging, and integrating external systems with DUMB.
Next Steps#
Click on any of the modules in the sidebar to explore endpoint structure, usage examples, and development guidelines for extending the DUMB API: