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 |
| 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 |
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: