API Reference¶
The Nexplane control plane exposes a REST API on port 8000. All endpoints use JSON for request and response bodies.
Interactive Documentation¶
Interactive OpenAPI (Swagger UI) docs are available at:
ReDoc format:
Authentication¶
All endpoints require a Bearer JWT obtained from POST /auth/login:
curl -X POST http://localhost:8000/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "admin@acme.example", "password": "admin123"}'
Response includes a token field. Pass it as:
Endpoint Groups¶
| Group | Description |
|---|---|
/auth/* |
Login, logout, current user |
/assets/* |
Asset inventory CRUD, tag management, bulk tagging, ingest |
/connectors/* |
Connector CRUD, test connection, credentials, schedule, ingest |
/projects/* |
Project CRUD, member management, AI planning chat |
/change-requests/* |
Full CR lifecycle (plan→approve→execute→verify→rollback) + batch progress |
/runbooks/* |
Runbook CRUD, fork, trigger |
/executions/* |
Execution status, resume checkpoint, abort |
/vulnerability/* |
Findings CRUD, policies, SLA dashboard, CVE blast-radius, patch campaign |
/vulnerability/webhooks/vulnerability-findings |
HMAC-verified webhook endpoint for scanner push |
/ir/* |
IR playbook templates, execute, forensic bundles |
/access-reviews/* |
Collect memberships, reviewer decisions, approve, auto-generate removal CRs |
/compliance/* |
Baselines CRUD, drift alerts, evidence ZIP download, freeze windows |
/maintenance-windows/* |
Maintenance window CRUD, status check |
/agent/* |
Agent registration, job dispatch, result reporting |
/settings/* |
AI providers, agent secret, remediation policies |
/downloads/* |
Versioned agent binaries + SHA256 checksums + version file |
/audit-events/* |
Immutable audit trail (read-only) |
Key Endpoints¶
Change Request Lifecycle¶
POST /change-requests/ Create a new CR (Draft)
POST /change-requests/{id}/plan Submit for safety review → Planned
POST /change-requests/{id}/approve Approve → Approved
POST /change-requests/{id}/execute Execute → Executing → Completed
POST /change-requests/{id}/rollback Trigger rollback → Rolled Back
GET /change-requests/{id}/progress Poll batch execution progress
Agent¶
POST /agent/register Register a new agent
GET /agent/jobs/next Long-poll for next job (agent calls this)
POST /agent/result Post job result (agent calls this)
Vulnerability Pipeline¶
POST /vulnerability/webhooks/vulnerability-findings HMAC-verified webhook
GET /vulnerability/findings/ List findings
GET /vulnerability/cve/{cve_id}/blast-radius CVE blast-radius query
POST /vulnerability/patch-campaign Generate patch campaign CRs
GET /vulnerability/sla/config Get SLA config
PUT /vulnerability/sla/config Update SLA config
Compliance¶
GET /compliance/baselines/ List compliance baselines
POST /compliance/baselines/ Create baseline
GET /compliance/drift/ List drift alerts
GET /compliance/evidence/{id}/download Download evidence ZIP
POST /compliance/freeze-windows/ Create change freeze window
DELETE /compliance/freeze-windows/{id} Remove freeze window
Rate Limiting¶
No rate limiting is applied in the default configuration. For production deployments, configure rate limiting at the reverse proxy layer.