Skip to main content
Base URL: http://localhost:9002 (default)

Starting the Server

Authentication

/api/* routes require a Bearer token when the server is started with VIGOLIUM_API_KEY or server.auth_api_key set.
Public endpoints (no auth required): GET /, GET /health, GET /server-info, GET /swagger/*, GET /metrics, and POST /api/auth/login. Demo-only and view-only modes (cfg.DemoOnly / cfg.ViewOnly) further gate mutating routes; admin/operator/viewer roles enforced by RoleGuard middleware override the per-route checks.

Project Scoping

All API operations are scoped to a project via the X-Project-UUID request header. If the header is omitted, the default project (00000000-0000-0000-0000-000000000001) is used.
This applies to all data endpoints: ingestion, findings, HTTP records, stats, scans, source repos, and OAST interactions. See Projects for the full multi-tenancy reference.

GET /api/info, App Info

Returns basic application metadata. (GET / serves the embedded static UI, not JSON.)

GET /health, Health Check

Returns server health status.

GET /server-info, Server Info

Returns detailed server information including uptime, database driver, queue depth, and record/finding totals.

GET /swagger/*, Swagger UI

Interactive API documentation. Open in a browser.
The raw OpenAPI 3.0 spec is available at:

GET /metrics, Prometheus Metrics

Returns Prometheus-formatted metrics. The route is always registered and unauthenticated; the handler gates the response on the EnableMetrics server flag (CLI --enable-metrics / config server.enable_metrics).

CORS

CORS can be enabled via the cors_allowed_origins server config: Allowed methods: GET, POST, PUT, DELETE, PATCH, OPTIONS. Allowed headers: Content-Type, Authorization, X-Project-UUID, X-User-Email.

Error Responses

All errors follow a consistent format:
Common error codes: