/api/v1 base path. You can use this API to submit and monitor jobs, inspect cluster health, and manage bundles from any HTTP client — including terminal scripts, dashboards, and external automation tools.
Base URL
By default, the API binds to port4000 on the host running the MirrorNeuron node. You can override the port with the MIRROR_NEURON_API_PORT environment variable.
Every request and response body uses JSON. Always set the
Content-Type: application/json header on requests that include a body.Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v1/health | Liveness check — returns {"status": "ok"} |
GET | /api/v1/system/summary | Cluster nodes and active job overview |
POST | /api/v1/jobs | Submit a new job from a JSON manifest |
GET | /api/v1/jobs | List all jobs with optional pagination and filtering |
GET | /api/v1/jobs/:job_id | Get full state for a specific job |
POST | /api/v1/jobs/:job_id/cancel | Cancel a running job |
GET | /api/v1/jobs/:job_id/events | Get the raw event history for a job |
POST | /api/v1/bundles/:bundle_id/reload | Force a re-scan and reload of a registered bundle |
Quick example
The health endpoint is the simplest way to confirm the API is reachable:Error responses
When a request fails, the API returns a JSON object with anerror field describing what went wrong:
| Status | Meaning |
|---|---|
200 | Request succeeded |
201 | Resource created |
400 | Bad request — invalid or missing payload |
404 | Resource not found |
500 | Internal server error |
Design notes
The MirrorNeuron API is intentionally lean. It maps directly to internal Elixir runtime primitives and performs no business logic of its own. Thestatus field drives workflow logic and can be one of: pending, running, queued, completed, failed, or cancelled.
Endpoint reference
Jobs
Submit, list, inspect, cancel, and retrieve events for jobs.
System
Check liveness and get a full cluster and executor pool overview.
Bundles
Force a reload of a registered job bundle.