Skip to content

API Reference

The Ephor API is a REST API served under the base path /api/v1.

Interactive Documentation

The canonical API reference is the Swagger UI served by the application:

URLDescription
/api/v1/swagger-ui/index.htmlInteractive Swagger UI
/api/v1/api-docsRaw OpenAPI specification (JSON)

Swagger UI is enabled when the local Spring profile is active (default in development). In production, enable it via springdoc.api-docs.enabled=true and springdoc.swagger-ui.enabled=true.

Endpoints Overview

Authentication

MethodPathDescription
GET/auth/meCurrent user identity, groups, and permissions
GET/auth/statusAuthentication status
GET/auth/configClient-facing auth config (login/logout URLs, provider)
GET/auth/logoutLogout URL

Vulnerabilities

MethodPathDescription
GET/vulnerabilitiesList findings with filtering, sorting, and pagination
GET/vulnerabilities/{id}Get a single vulnerability
PATCH/vulnerabilities/{id}/statusChange the status of a finding
GET/vulnerabilities/{id}/commentsList comments
POST/vulnerabilities/{id}/commentsAdd a comment
POST/vulnerabilities/{id}/reopenReopen an auto-resolved finding
POST/vulnerabilities/auto-resolveResolve findings absent from recent scans

Filtering and sorting

GET /vulnerabilities accepts these query parameters in addition to severity, status, namespace, search, page, and limit. Parameter names are camelCase.

ParameterTypeDescription
sortBystringpriority (default), epss, severity, first_detected, last_seen, or cve_id
sortOrderstringasc or desc
kevOnlybooleanOnly findings listed in CISA KEV
deployedOnlybooleanOnly findings currently present in the cluster (status open or triaged)
fixableOnlybooleanOnly findings with a fixed version available
minEpssnumberOnly findings with an EPSS score at or above this value (0–1)

Each finding in the response carries its enrichment and priority data: kev_listed, kev_date_added, epss_score, epss_percentile, and the derived priority_tier (P0P3). See Prioritization for how tiers are computed.

Escalations

MethodPathDescription
GET/escalationsList escalations
POST/escalationsCreate an escalation
GET/escalations/{id}Get a single escalation
PUT/escalations/{id}Update an escalation

Triage

MethodPathDescription
GET/triageList triage records
POST/triageCreate a triage entry
PUT/triage/{id}Update a triage entry
GET/triage/{id}/commentsList comments
POST/triage/{id}/commentsAdd a comment

Remediations

MethodPathDescription
GET/remediationsList remediation records
POST/remediationsCreate a remediation
GET/remediations/{id}Get a single remediation
PUT/remediations/{id}Update a remediation

Dashboard

MethodPathDescription
GET/dashboard/metricsAggregate counts by severity, status, and priority tier, plus action_now (P0 + P1)
GET/dashboard/trendsFinding counts over time
GET/dashboard/namespacesList of namespaces with findings
GET/dashboard/namespace-comparisonPer-namespace severity breakdown
GET/dashboard/namespace-priorityPer-namespace priority-tier breakdown (P0–P3)

Scan Ingestion

MethodPathDescription
POST/scans/ingestIngest a vulnerability scan report

Authentication

All endpoints except /auth/status and /auth/config require a valid authenticated session. Requests without proper identity headers receive a 401 Unauthorized response.

Detailed Reference

For full request/response schemas, query parameters, and error codes, use the interactive Swagger UI or download the OpenAPI spec from /api/v1/api-docs.

Licensed under AGPL v3