Skip to main content
MirrorNeuron embeds an HTTP server that exposes a JSON-first REST API under the /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 port 4000 on the host running the MirrorNeuron node. You can override the port with the MIRROR_NEURON_API_PORT environment variable.
http://localhost:4000/api/v1
Every request and response body uses JSON. Always set the Content-Type: application/json header on requests that include a body.

Endpoints

MethodPathDescription
GET/api/v1/healthLiveness check — returns {"status": "ok"}
GET/api/v1/system/summaryCluster nodes and active job overview
POST/api/v1/jobsSubmit a new job from a JSON manifest
GET/api/v1/jobsList all jobs with optional pagination and filtering
GET/api/v1/jobs/:job_idGet full state for a specific job
POST/api/v1/jobs/:job_id/cancelCancel a running job
GET/api/v1/jobs/:job_id/eventsGet the raw event history for a job
POST/api/v1/bundles/:bundle_id/reloadForce a re-scan and reload of a registered bundle

Quick example

The health endpoint is the simplest way to confirm the API is reachable:
curl -s http://localhost:4000/api/v1/health
{
  "status": "ok"
}

Error responses

When a request fails, the API returns a JSON object with an error field describing what went wrong:
{
  "error": "Job prime_sweep_40_workers-... was not found"
}
Standard HTTP status codes apply:
StatusMeaning
200Request succeeded
201Resource created
400Bad request — invalid or missing payload
404Resource not found
500Internal 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. The status 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.