Version: 5.0.51 Last regenerated: 2026-05-14 Maintained by: DOCS lane â see
MAIN-docs-orchestration.mdfor the update protocol. Scope: Every HTTP endpoint served by the Eldric AIOS 5.0 stack â controller, edge, router, worker, data, agent, media, comm, science, training, inferenced, IoT, NOVA, swarm. Public Edge surface is highlighted in api-public.md.
Two tiers exist. Every endpoint below is labelled with one:
chat.eldric.ai). Authentication is per-tenant.401 at the Edge.| Tier | Reachability | Default auth |
|---|---|---|
| Public | nginx â Edge module â kernel | X-API-Key + tenant capability token; some endpoints
anonymous |
| LAN-only | inter-node only on the cluster's private network | X-Eldric-Cluster-Secret (constant-time, lowercase
fallback for HTTP/2) |
| Header | Purpose |
|---|---|
X-API-Key |
Tenant API key (Edge & most workers) |
X-Eldric-Tenant-Id |
Tenant scope hint (Edge proxy passes through) |
X-Eldric-Cluster-Secret |
Inter-node mutual auth (rolling upgrade, PKI, backup, replication, federation, marketplace) |
X-Eldric-Source |
EIS/ENS device-of-origin identifier |
X-Eldric-Signature: sha256=<hmac> |
HMAC-SHA256 over the raw body for outbound webhooks |
Authorization: Bearer <jwt> |
Short-lived capability token issued at login |
HTTP/2 lowercases all header names â every handler must look up both
X-Foo and x-foo.
Tenant guard:
kernel::tenant_guard::deny_if_cross_tenant(auth_tid, path, res)
is invoked on data/storage/vector/memory/agent/comm/swarms/tenants
prefixes. Cross-tenant attempts return 403.
OpenAI drop-in surface. Proxied Edge â Router â Worker (or Cloud Worker / Native inference) with SSE streaming preserved end-to-end.
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/models |
List models from every reachable worker + cloud backend; aggregated cluster view |
| POST | /v1/chat/completions |
OpenAI chat (streaming via stream:true); honours
tools, tool_choice,
response_format |
| POST | /v1/completions |
Legacy completions for older OpenAI SDKs |
| POST | /v1/embeddings |
Embedding generation; routes to embedding provider on the chosen worker |
| GET | /v1/models/{id} |
Detail (template, system prompt, parameters) |
| POST | /api/v1/models/show |
Same detail by request body for clients that can't URL-encode model IDs |
Per-user conversation persistence and the webchat shell at
/chat.
| Method | Path | Purpose |
|---|---|---|
| GET | /chat |
Webchat single-page app |
| GET | /login |
Login page (when API-key auth required) |
| GET | /api/v1/conversations |
List my conversations |
| POST | /api/v1/conversations |
Create conversation |
| GET | /api/v1/conversations/{id} |
Get conversation with messages |
| PATCH | /api/v1/conversations/{id} |
Update title / pinning / metadata |
| DELETE | /api/v1/conversations/{id} |
Delete conversation |
| POST | /api/v1/conversations/{id}/messages |
Append message |
| GET | /api/v1/conversations/{id}/messages |
Page through messages |
| POST | /api/v1/conversations/{id}/branch |
Branch off the conversation at a given message |
| POST | /api/v1/conversations/{id}/share |
Create a signed share-link |
| GET | /api/v1/share/{token} |
Resolve signed share-link â read-only transcript |
| GET | /api/v1/conversations/{id}/artifacts |
Inline artifact store entries |
| GET | /api/v1/conversations/{id}/artifacts/{aid} |
Fetch single artifact |
| GET | /api/v1/me/settings |
My settings |
| PUT | /api/v1/me/settings |
Update my settings |
| GET | /api/v1/me/preferences |
Webchat preferences (theme, font, sidebar) |
| PUT | /api/v1/me/preferences |
Update preferences |
| GET | /api/v1/me/quotas |
My quotas / usage |
| GET | /api/v1/me/tools |
Tool permissions for my role (picker) |
| GET | /api/v1/me/models |
Models I'm allowed to call |
EIS (Eldric Identity System) + ENS (Eldric Namespace System).
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/identity/domains |
32 EIS domains |
| GET | /api/v1/identity/devices |
411 device codes |
| GET | /api/v1/identity/lookup/{eis} |
Resolve EIS string â registered device |
| POST | /api/v1/identity/register |
Register a device under my tenant |
| DELETE | /api/v1/identity/{eis} |
Unregister a device |
| GET | /api/v1/identity/me |
My EIS namespace map |
| GET | /api/v1/ens/resolve |
ENS hostname â tenant + role |
| POST | /api/v1/auth/login |
Email + password â JWT |
| POST | /api/v1/auth/refresh |
Refresh JWT |
| POST | /api/v1/auth/logout |
Invalidate session |
| POST | /api/v1/auth/2fa/enroll |
Enroll TOTP |
| POST | /api/v1/auth/2fa/verify |
Verify TOTP code |
Worker, Cloud Worker, Native inference. The Edge OpenAI surface above sits on top of these.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /api/v1/health |
Detailed health (backends, GPU, latency) |
| GET | /api/v1/models |
Local models on this worker |
| POST | /v1/chat/completions |
Direct worker chat |
| POST | /v1/embeddings |
Direct worker embedding |
| POST | /api/v1/inference/run |
Forward request to currently active backend |
| GET | /api/v1/inference/backends |
Configured backends (Ollama/vLLM/TGI/Triton/etc) |
| POST | /api/v1/inference/backends |
Add a backend |
| DELETE | /api/v1/inference/backends/{id} |
Remove a backend |
| POST | /api/v1/inference/backends/{id}/switch |
Set active backend |
| GET | /api/v1/inference/local-backends/public |
Cluster-wide aggregation feed |
| POST | /api/v1/swarm/task |
Receive a delegated swarm task |
| POST | /api/v1/peers/register |
Register a pipeline peer |
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /dashboard |
Cloud backend admin dashboard |
| GET | /v1/models |
Aggregated models across cloud backends |
| POST | /v1/chat/completions |
Routed to OpenAI/Anthropic/xAI/Together/Groq/DeepSeek/Mistral/Cohere |
| POST | /v1/embeddings |
Embedding via cloud provider |
| GET | /api/v1/cloud/backends |
List configured cloud backends |
| POST | /api/v1/cloud/backends |
Add cloud backend (provider, API key) |
| PUT | /api/v1/cloud/backends/{id} |
Update cloud backend |
| DELETE | /api/v1/cloud/backends/{id} |
Remove cloud backend |
| GET | /api/v1/cloud/backends/public |
Public aggregation feed for the controller |
Router â load balancing, theme detection, intent classification, ensemble, session stickiness.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /metrics |
Latency/load metrics per worker |
| GET | /v1/models |
Models reachable through this router |
| POST | /v1/chat/completions |
Route an OpenAI request |
| GET | /api/v1/workers |
Workers known to this router |
| POST | /api/v1/routing/classify |
Classify request intent â worker class |
| GET | /api/v1/routing/rules |
List routing rules |
| POST | /api/v1/routing/rules |
Add rule |
| DELETE | /api/v1/routing/rules/{id} |
Remove rule |
| GET | /api/v1/themes |
Available themes |
| POST | /api/v1/ensemble |
Fan-out to multiple models + synthesise |
| POST | /api/v1/health/check |
Manual probe on a worker |
| POST | /api/v1/ai/configure |
Set AI control mode (none/advisory/autonomous) |
| GET | /api/v1/sessions |
Active sticky sessions |
| DELETE | /api/v1/sessions/{sid} |
Drop a sticky session |
Data worker. Multi-tenant file storage and vector storage for RAG.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/data/sources |
List sources |
| POST | /api/v1/data/sources |
Register source |
| GET | /api/v1/data/storage/{tenant}/{path:.*} |
Read file |
| PUT | /api/v1/data/storage/{tenant}/{path:.*} |
Write file |
| DELETE | /api/v1/data/storage/{tenant}/{path:.*} |
Delete file |
| GET | /api/v1/data/storage/{tenant} |
List files |
| GET | /api/v1/data/tenants |
List tenants |
| POST | /api/v1/data/tenants |
Create tenant |
| GET | /api/v1/data/tenants/{id}/quota |
Quota status |
| PUT | /api/v1/data/tenants/{id}/quota |
Update quota |
| POST | /api/v1/upload/init |
Reserve chunked upload |
| POST | /api/v1/upload/chunk |
Ship one chunk |
| POST | /api/v1/upload/finalize |
Assemble + commit |
| GET | /api/v1/upload/{id}/progress |
Resume offset |
| DELETE | /api/v1/upload/{id} |
Cancel + free chunks |
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/vector/health |
Vector subsystem health |
| GET | /api/v1/vector/metrics |
Storage metrics |
| GET | /api/v1/vector/config |
Read config |
| PUT | /api/v1/vector/config |
Update config |
| GET | /api/v1/vector/namespaces/{tenant} |
List namespaces |
| POST | /api/v1/vector/namespaces/{tenant} |
Create namespace |
| GET | /api/v1/vector/namespaces/{tenant}/{ns} |
Get namespace |
| DELETE | /api/v1/vector/namespaces/{tenant}/{ns} |
Delete namespace |
| POST | /api/v1/vector/documents/{tenant}/{ns} |
Add documents |
| GET | /api/v1/vector/documents/{tenant}/{ns}/{doc} |
Get document |
| PUT | /api/v1/vector/documents/{tenant}/{ns}/{doc} |
Replace document (re-embed; KB editor) |
| DELETE | /api/v1/vector/documents/{tenant}/{ns}/{doc} |
Delete document |
| POST | /api/v1/vector/search |
Semantic search |
| POST | /api/v1/vector/search/peer |
Peer-fan-out search |
| POST | /api/v1/vector/hybrid-search |
BM25 + vector |
| POST | /api/v1/vector/embed |
Generate embeddings |
| POST | /api/v1/vector/ingest |
Auto-chunk text + ingest |
| GET | /api/v1/vector/sources/{tenant}/{ns} |
List documents by source |
| DELETE | /api/v1/vector/sources/{tenant}/{ns} |
Delete documents by source |
Hierarchical associative matrix memory in Eldric's compact .emm format.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/memory/health |
Subsystem health |
| GET | /api/v1/memory/metrics |
Block counts, saturation, expansion events |
| POST | /api/v1/memory/store |
Store key+value association into matrix + vector backup |
| POST | /api/v1/memory/recall |
Matrix recall, optionally refined by vector retrieval |
| GET | /api/v1/memory/matrices |
List matrices (domain â project â run) |
| POST | /api/v1/memory/checkpoint |
Force checkpoint |
| POST | /api/v1/memory/verify |
Verify block CRC + SHA-256 |
| POST | /api/v1/memory/forget |
Delete one memory entry |
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/nfs/config |
NFS server config |
| PUT | /api/v1/nfs/config |
Update config |
| GET | /api/v1/nfs/exports |
List exports |
| POST | /api/v1/nfs/exports |
Add export |
| DELETE | /api/v1/nfs/exports/{id} |
Remove export |
| GET | /api/v1/nfs/mounts |
Remote mounts |
| POST | /api/v1/nfs/mounts |
Mount remote data worker |
| GET | /api/v1/nfs/mounts/{id} |
Mount detail |
| DELETE | /api/v1/nfs/mounts/{id} |
Unmount |
| GET | /api/v1/nfs/ganesha-conf |
Preview generated ganesha.conf |
| POST | /api/v1/nfs/apply |
Apply config + reload ganesha |
| GET | /api/v1/nfs/status |
Daemon status |
| GET | /api/v1/data/databases |
Registered DBs (SQLite, PostgreSQL, MySQL, DB2) |
| POST | /api/v1/data/databases |
Register DB |
| POST | /api/v1/data/databases/{id}/query |
Run query |
| POST | /api/v1/data/databases/{id}/execute |
Run statement |
| POST | /api/v1/data/databases/{id}/schema |
Inspect schema |
| GET | /api/v1/replication/config |
Replication policy |
| PUT | /api/v1/replication/config |
Update policy |
| GET | /api/v1/replication/status |
Streams + last-sync |
Agent worker â agentic RAG, multi-agent, workflows, training-data generation.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /dashboard |
Web dashboard |
| GET | /api/v1/agent/sessions |
List sessions |
| POST | /api/v1/agent/sessions |
Create session |
| GET | /api/v1/agent/sessions/{id} |
Session detail + history |
| DELETE | /api/v1/agent/sessions/{id} |
Delete session |
| POST | /api/v1/agent/chat |
Agentic RAG chat (ReAct loop) |
| POST | /api/v1/agent/multi |
Multi-agent run (researcher/coder/validator/planner) |
| POST | /api/v1/agent/decompose |
Decompose query into sub-questions |
| GET | /api/v1/agent/knowledge-bases |
List KBs |
| POST | /api/v1/agent/knowledge-bases |
Create KB |
| GET | /api/v1/agent/knowledge-bases/{id} |
KB detail |
| DELETE | /api/v1/agent/knowledge-bases/{id} |
Delete KB |
| POST | /api/v1/agent/knowledge-bases/{id}/search |
RAG search within a KB |
| POST | /api/v1/agent/generate-training |
Generate training data from a KB |
| GET | /api/v1/agent/workflows |
List workflows |
| POST | /api/v1/agent/workflows |
Register workflow |
| POST | /api/v1/agent/workflows/{id}/run |
Run workflow |
| GET | /api/v1/agent/stats |
Usage stats |
| GET | /api/v1/tenants |
List tenants (admin) |
| POST | /api/v1/tenants |
Create tenant |
| POST | /api/v1/swarm/task |
Inbound task from Swarm |
| POST | /api/v1/swarm/workflow |
Inbound workflow from Swarm |
| GET | /api/v1/swarm/status |
Status reporting to Swarm |
| GET | /api/v1/swarm/workflows |
List registered swarm workflows |
| POST | /api/v1/swarm/workflows |
Register swarm workflow |
| DELETE | /api/v1/swarm/workflows/{id} |
Remove swarm workflow |
| POST | /api/v1/swarm/tools |
Execute tools directly |
Media worker â STT, TTS, audio/video analysis, voice chat, multimedia RAG.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /dashboard |
Web dashboard |
| GET | /api/v1/media/info |
Worker capabilities |
| POST | /api/v1/stt/transcribe |
Transcribe audio file/URL |
| POST | /api/v1/stt/stream |
Streaming transcription (SSE) |
| GET | /api/v1/stt/models |
List STT models |
| POST | /api/v1/tts/synthesize |
Generate speech |
| POST | /api/v1/tts/stream |
Stream audio (SSE) |
| GET | /api/v1/tts/voices |
List TTS voices |
| POST | /api/v1/audio/analyze |
Sentiment, diarization, prosody |
| POST | /api/v1/audio/embed |
Audio embedding |
| POST | /api/v1/video/transcribe |
Extract audio + transcribe |
| POST | /api/v1/video/analyze |
Scene detection + frame stats |
| POST | /api/v1/video/extract-frames |
Extract keyframes |
| POST | /api/v1/rag/ingest-audio |
Index audio content |
| POST | /api/v1/rag/ingest-video |
Index video content |
| POST | /api/v1/rag/search |
Search across multimedia RAG |
| POST | /api/v1/voice/chat |
Voice-in â STT â LLM â TTS â voice-out |
Comm worker. Email, SMS, WhatsApp, Signal, Teams, XMPP, VoIP.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /dashboard |
Web dashboard |
| GET | /api/v1/comm/accounts |
List accounts |
| POST | /api/v1/comm/accounts |
Add account |
| GET | /api/v1/comm/accounts/{id} |
Get account |
| PUT | /api/v1/comm/accounts/{id} |
Update account |
| DELETE | /api/v1/comm/accounts/{id} |
Remove account |
| POST | /api/v1/comm/accounts/{id}/test |
Test connection |
| POST | /api/v1/comm/accounts/{id}/connect |
Connect/IDLE listener |
| GET | /api/v1/comm/messages |
List messages |
| POST | /api/v1/comm/messages |
Send message |
| GET | /api/v1/comm/messages/{id} |
Get message |
| POST | /api/v1/comm/messages/{id}/read |
Mark read |
| POST | /api/v1/comm/messages/{id}/reply |
Reply |
| GET | /api/v1/comm/conversations |
List conversations |
| GET | /api/v1/comm/conversations/{id}/messages |
Conversation messages |
| POST | /api/v1/comm/search |
Semantic search |
| GET | /api/v1/comm/ai/queue |
Pending AI replies |
| POST | /api/v1/comm/ai/queue/{id}/approve |
Approve AI reply |
| POST | /api/v1/comm/ai/queue/{id}/reject |
Reject AI reply |
| POST | /api/v1/comm/webhooks/whatsapp |
WhatsApp inbound webhook |
| POST | /api/v1/comm/webhooks/twilio |
Twilio SMS webhook |
| POST | /api/v1/comm/webhooks/teams |
Teams webhook |
| POST | /api/v1/comm/calls/start |
Outbound voice call |
| POST | /api/v1/comm/calls/answer |
Answer inbound call |
| POST | /api/v1/comm/calls/hangup |
End call |
| POST | /api/v1/comm/calls/hold |
Hold/resume |
| POST | /api/v1/comm/calls/transfer |
Transfer |
| POST | /api/v1/comm/calls/dtmf |
Send DTMF |
| GET | /api/v1/comm/calls |
List active calls |
| GET | /api/v1/comm/calls/{id} |
Call status |
| GET | /api/v1/comm/voicemails |
List voicemails |
| GET | /api/v1/comm/voicemails/{id} |
Voicemail detail |
| DELETE | /api/v1/comm/voicemails/{id} |
Delete voicemail |
| POST | /api/v1/comm/voicemails/{id}/read |
Mark voicemail read |
| POST | /api/v1/comm/send |
Kernel-level fallback send (best-effort) |
Science worker. 5.0 architecture with the Science Source Registry â unified registry + dispatcher + 16-category aliases + per-provider compat endpoints.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/science/sources |
Enabled sources (optionally filter by category) |
| GET | /api/v1/science/sources/{id} |
One source detail |
| GET | /api/v1/science/sources/categories |
16-category taxonomy |
| POST | /api/v1/science/sources/request |
Request admin enable a source |
| GET | /api/v1/science/sources/my-requests |
My pending activation requests |
| GET | /api/v1/science/tools |
Role-filtered tool schemas (5 user + 6 admin) |
| POST | /api/v1/science/tools/execute |
Tool dispatch (science_list_sources, etc.) |
| POST | /api/v1/science/sources |
Add source (admin) |
| PUT | /api/v1/science/sources/{id} |
Update source (admin) |
| PUT | /api/v1/science/sources/{id}/enabled |
Toggle (admin) |
| PUT | /api/v1/science/sources/{id}/credentials |
Set API key (admin) |
| DELETE | /api/v1/science/sources/{id} |
Remove source (admin) |
| GET | /api/v1/science/sources/pending |
All pending requests (admin) |
| POST | /api/v1/science/sources/approve/{id} |
Approve (admin) |
| POST | /api/v1/science/sources/reject/{id} |
Reject with reason (admin) |
GET /api/v1/{category}/sources for each of the 16
categories: oa_papers, space,
particle_physics, genomics,
neuroscience, medical, chemistry,
earth, climate, astronomy,
archaeology, legal, patents,
funder, industry, custom.
Still served while the registry-driven dispatcher fully takes over.
| Category | Path families |
|---|---|
| Space Agencies | /api/v1/nasa/*, /api/v1/esa/*,
/api/v1/roscosmos/*, /api/v1/cnsa/*,
/api/v1/jaxa/*, /api/v1/isro/* |
| Telescopes | /api/v1/hubble/*, /api/v1/jwst/*,
/api/v1/spitzer/*, /api/v1/chandra/* |
| Particle Physics | /api/v1/cern/*, /api/v1/desy/*,
/api/v1/fermilab/*, /api/v1/hepdata/*,
/api/v1/inspire/*, /api/v1/pdg/* |
| Gravitational Waves | /api/v1/ligo/*, /api/v1/gwosc/* |
| Astronomy | /api/v1/eso/*, /api/v1/sdss/*,
/api/v1/alma/*, /api/v1/panstarrs/* |
| Earth Sciences | /api/v1/earthquakes, /api/v1/volcanoes/*,
/api/v1/noaa/*, /api/v1/seismic/* |
| Quantum | /api/v1/quantum/*,
/api/v1/arxiv/quantum |
| Materials | /api/v1/materials/*, /api/v1/cod/*,
/api/v1/nist/* |
| Genomics | /api/v1/ensembl/*, /api/v1/encode/*,
/api/v1/gtex/*, /api/v1/hmdb/* |
| Neuroscience | /api/v1/allen-brain/*,
/api/v1/openneuro/*,
/api/v1/neuromorpho/* |
| Climate | /api/v1/gbif/*, /api/v1/obis/*,
/api/v1/air-quality, /api/v1/ice-cores,
/api/v1/glaciers/* |
| Medical | /api/v1/clinical-trials, /api/v1/who/*,
/api/v1/gwas/*, /api/v1/openfda/*,
/api/v1/pubmed/* |
| Nuclear/Fusion | /api/v1/iaea/*, /api/v1/iter/*,
/api/v1/fusion/* |
| Agriculture | /api/v1/faostat/*, /api/v1/usda-plants,
/api/v1/food/* |
| Archaeology | /api/v1/paleobio/*, /api/v1/archaeology/*,
/api/v1/open-context |
| Bioinformatics | /api/v1/bio/analyze,
/api/v1/bio/translate, /api/v1/bio/align,
/api/v1/bio/blast, /api/v1/bio/variants |
| Pharmaceutical | /api/v1/pharma/compound,
/api/v1/pharma/dock, /api/v1/pharma/admet,
/api/v1/pharma/structure |
| CRISPR | /api/v1/crispr/design,
/api/v1/crispr/offtargets,
/api/v1/crispr/base-edit,
/api/v1/crispr/prime-edit |
| LIMS | /api/v1/lims/samples,
/api/v1/lims/experiments,
/api/v1/lims/audit/* |
Training worker. LoRA/QLoRA/SFT/DPO/RLHF/Distillation. Backends: Unsloth, Axolotl, TRL, DeepSpeed, MLX, llama.cpp, xLSTM.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /dashboard |
Web dashboard |
| GET | /dashboard/jobs |
Jobs view |
| GET | /dashboard/chains |
Chains view |
| GET | /dashboard/backends |
Backends view |
| GET | /api/v1/jobs |
List jobs |
| POST | /api/v1/jobs |
Create job |
| GET | /api/v1/jobs/{id} |
Job detail |
| POST | /api/v1/jobs/{id}/cancel |
Cancel |
| POST | /api/v1/jobs/{id}/pause |
Pause |
| POST | /api/v1/jobs/{id}/resume |
Resume |
| GET | /api/v1/jobs/{id}/logs |
Stream logs |
| GET | /api/v1/jobs/{id}/metrics |
Loss / lr / step metrics |
| GET | /api/v1/chains |
List training chains |
| POST | /api/v1/chains |
Create chain |
| GET | /api/v1/chains/{id} |
Chain detail |
| DELETE | /api/v1/chains/{id} |
Delete chain |
| POST | /api/v1/chains/{id}/run |
Run chain |
| GET | /api/v1/chains/templates |
Chain templates |
| GET | /api/v1/backends |
Available training backends |
| GET | /api/v1/gpus |
GPU inventory + utilisation |
| POST | /api/v1/training/federated/jobs |
Create federated learning job |
| GET | /api/v1/training/federated/jobs |
List FL jobs |
| GET | /api/v1/training/federated/jobs/{id} |
FL round status |
| POST | /api/v1/distill/run |
ModelâEMM distillation (admin) |
Native inference. Direct GGUF / xLSTM model loading with embedded llama.cpp.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /dashboard |
Web dashboard |
| GET | /v1/models |
Loaded + available models |
| POST | /v1/chat/completions |
Native chat (SSE) |
| POST | /v1/embeddings |
Native embedding |
| POST | /api/v1/models/load |
Load model into VRAM |
| POST | /api/v1/models/unload |
Unload model |
| POST | /api/v1/models/pull |
Pull from data worker |
| POST | /api/v1/models/convert |
Convert HF â GGUF |
| POST | /api/v1/models/import |
Import HF model |
| GET | /api/v1/models/cache |
Cache status |
| GET | /api/v1/gpu |
GPU live stats |
| POST | /api/v1/swarm/task |
Inbound swarm task |
| POST | /api/v1/peers/register |
Register pipeline peer |
IoT worker. Smart-home (Netatmo, HomeKit, Matter) + industrial (OPC-UA, Modbus, MQTT Sparkplug B).
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /dashboard |
Web dashboard |
| GET | /api/v1/iot/devices |
List discovered devices |
| POST | /api/v1/iot/devices |
Register device |
| GET | /api/v1/iot/devices/{id} |
Device detail |
| DELETE | /api/v1/iot/devices/{id} |
Unregister |
| POST | /api/v1/iot/devices/{id}/read |
Read tag/attribute |
| POST | /api/v1/iot/devices/{id}/write |
Write tag/attribute |
| GET | /api/v1/iot/alarms |
Active alarms |
| POST | /api/v1/iot/alarms/{id}/ack |
Acknowledge |
| GET | /api/v1/iot/historian/{tag} |
Time-series history |
| GET | /api/v1/iot/recipes |
Recipes (manufacturing) |
| POST | /api/v1/iot/recipes |
Add recipe |
| GET | /api/v1/iot/oee |
OEE per asset |
| GET | /api/v1/iot/predictive |
Predictive-maintenance scores |
Swarm controller. Three ports: API, Agent invocation/UAP, Web edge.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/swarms |
List swarms |
| POST | /api/v1/swarms |
Create swarm |
| GET | /api/v1/swarms/{id} |
Swarm detail |
| DELETE | /api/v1/swarms/{id} |
Delete swarm |
| POST | /api/v1/swarms/{id}/goal |
Set a goal |
| GET | /api/v1/swarms/{id}/agents |
Member agents |
| POST | /api/v1/swarms/{id}/agents |
Add agent |
| DELETE | /api/v1/swarms/{id}/agents/{aid} |
Remove agent |
| GET | /api/v1/swarms/{id}/topology |
Topology (hierarchical / mesh / star / ring / p2p / hybrid) |
| PUT | /api/v1/swarms/{id}/topology |
Update topology |
| GET | /api/v1/swarms/{id}/logs |
Trace logs |
| GET | /api/v1/mcp/servers |
MCP server registry |
| POST | /api/v1/mcp/servers |
Register MCP server |
| GET | /api/v1/agent-workers |
Linked agent workers |
| POST | /api/v1/agent-workers |
Register agent worker |
| DELETE | /api/v1/agent-workers/{id} |
Unregister |
| POST | /api/v1/agent-workers/refresh |
Refresh health |
| POST | /api/v1/agent-workers/chat |
Chat via auto-selected worker |
| POST | /api/v1/agent-workers/{id}/chat |
Chat via specific worker |
| POST | /api/v1/agents/invoke |
Invoke agent over UAP |
NOVA daemon. Optional module â
BUILD_NOVA=ON. Goals, episodic/semantic/procedural memory,
reasoning, meta-learning, safety.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /dashboard |
Dashboard |
| GET | /api/v1/nova/goals |
List goals |
| POST | /api/v1/nova/goals |
Submit goal |
| GET | /api/v1/nova/goals/{id} |
Goal detail |
| DELETE | /api/v1/nova/goals/{id} |
Cancel goal |
| GET | /api/v1/nova/memory/episodic |
Episodic memory |
| GET | /api/v1/nova/memory/semantic |
Semantic memory |
| GET | /api/v1/nova/memory/procedural |
Procedural memory |
| POST | /api/v1/nova/reasoning/plan |
Generate plan |
| POST | /api/v1/nova/reasoning/verify |
Verify plan |
| GET | /api/v1/nova/safety/constraints |
Active safety constraints |
| POST | /api/v1/nova/safety/kill |
Kill-switch |
| GET | /api/v1/nova/meta/learner |
Meta-learner state |
Controller. Cluster orchestration, topology, peer registration, deployment.
| Method | Path | Purpose |
|---|---|---|
| GET | /health |
Liveness |
| GET | /api/v1/health |
Detailed health |
| GET | /api/v1/cluster/topology |
Full cluster topology |
| GET | /api/v1/cluster/peers |
Known peer controllers |
| POST | /api/v1/cluster/register |
Peer registers itself (every 30s, heartbeat-driven) |
| POST | /api/v1/cluster/heartbeat |
Heartbeat |
| GET | /api/v1/cluster/workers |
All workers cluster-wide |
| POST | /api/v1/cluster/workers |
Deploy a worker via SSH |
| DELETE | /api/v1/cluster/workers/{id} |
Decommission worker |
| GET | /api/v1/cluster/routers |
Routers |
| GET | /api/v1/cluster/discover |
mDNS / DNS-SD scan |
| GET | /api/v1/models |
Aggregated model catalogue |
| GET | /api/v1/workers |
Workers (controller view) |
| GET | /api/v1/dashboard |
Controller dashboard |
| GET | /api/v1/dashboard/swarm |
Swarm management dashboard |
Rolling upgrade, migration, backup, distillation, plugin marketplace. Master-orchestrated; peers respond on every node.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/cluster/updates/check |
Check available upgrade |
| POST | /api/v1/cluster/updates/apply |
Apply cluster-wide |
| GET | /api/v1/cluster/updates/status |
Live progress (persisted in cluster_update_runs) |
| POST | /api/v1/system/upgrade |
Peer: download + sha256 verify + install |
| POST | /api/v1/system/upgrade/drain |
Peer: drain in-flight requests |
| POST | /api/v1/system/upgrade/checkpoint |
Peer: snapshot state |
| POST | /api/v1/system/upgrade/rollback |
Peer: revert to checkpoint |
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/backups |
List snapshots |
| POST | /api/v1/backups |
Create snapshot |
| GET | /api/v1/backups/{name} |
Manifest |
| POST | /api/v1/backups/{name} |
Re-run |
| POST | /api/v1/backups/{name}/verify |
Recompute SHA-256, report bad blobs |
| POST | /api/v1/backups/{name}/restore |
Restore in place |
| DELETE | /api/v1/backups/{name} |
Remove (blocked if a child depends) |
PKI. Internal CA + ACME (certbot) issuance + renewal + cluster fan-out. Audit ledger.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/pki/certificates |
List certificates |
| GET | /api/v1/pki/certificates/expiring |
Expiring soon |
| POST | /api/v1/pki/certificates/generate |
Mint self-signed |
| POST | /api/v1/pki/certificates/{id}/deploy |
Push cert to nodes |
| POST | /api/v1/pki/certificates/{id}/rotate |
Generate + deploy |
| DELETE | /api/v1/pki/certificates/{id} |
Soft-delete |
| POST | /api/v1/pki/acme/issue |
Request Let's Encrypt cert |
| POST | /api/v1/pki/acme/renew/{cert_id} |
Renew via certbot |
| POST | /api/v1/pki/peer/install |
Peer: install cert |
| POST | /api/v1/pki/peer/reload |
Peer: reload server |
| GET | /api/v1/audit/log |
Audit ledger |
| GET | /api/v1/audit/log/{event_id} |
Event detail |
| POST | /api/v1/audit/verify |
Verify chain |
| GET | /api/v1/security/policy |
Active security policy |
| PUT | /api/v1/security/policy |
Update policy |
| GET | /api/v1/security/sandbox |
Sandbox status |
| GET | /api/v1/security/tool-whitelist |
Tool whitelist |
| PUT | /api/v1/security/tool-whitelist |
Update whitelist |
Telemetry / OTLP, Dreams, Webhooks, mDNS discovery .
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/telemetry/config |
Current OTLP config |
| PUT | /api/v1/telemetry/config |
Update config |
| GET | /api/v1/telemetry/stats |
Buffer depths, flush results |
| GET | /api/v1/dreams/config |
Dream engine config |
| PUT | /api/v1/dreams/config |
Update config (admin opt-in) |
| POST | /api/v1/dreams/run |
Run one dream cycle |
| GET | /api/v1/dreams/last-runs |
Recent dream reports |
| POST | /api/v1/dreams/import-session |
Direct in-process import |
| GET | /api/v1/webhooks/subscriptions |
List |
| POST | /api/v1/webhooks/subscriptions |
Create |
| DELETE | /api/v1/webhooks/subscriptions/{id} |
Remove |
| POST | /api/v1/webhooks/subscriptions/{id}/test |
Test fire |
| GET | /api/v1/webhooks/deliveries |
Audit log |
| GET | /metrics |
Prometheus-compatible metrics |
Plugin marketplace on the edge module; plugin host serves Tool/Filter/Pipe/Action/Widget plugin types.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/marketplace/catalog |
Browse catalogue |
| GET | /api/v1/marketplace/installed |
Installed plugins |
| POST | /api/v1/marketplace/install |
Download + sha256 verify + extract + validate manifest |
| POST | /api/v1/marketplace/uninstall |
Remove |
| POST | /api/v1/marketplace/update |
Pull newer version |
| GET | /api/v1/plugins |
List loaded plugins |
| POST | /api/v1/plugins/{id}/enable |
Enable plugin |
| POST | /api/v1/plugins/{id}/disable |
Disable plugin |
| GET | /api/v1/plugins/{id}/valves |
Read plugin configuration |
| PUT | /api/v1/plugins/{id}/valves |
Update plugin configuration |
Per-tenant theme + branding. Public read, admin-gated writes.
| Method | Path | Access |
|---|---|---|
| GET | /api/v1/tenants/{tid}/theme |
Public read (chat shell consumes) |
| PUT | /api/v1/tenants/{tid}/theme |
Admin + themes license |
| POST | /api/v1/tenants/{tid}/branding/logo |
Admin + Pro+ |
| GET | /api/v1/tenants/{tid}/branding/logo |
Public read |
Controller-side license endpoints plus the external Eldric license-validation service.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/license |
Current license status |
| POST | /api/v1/license/activate |
Activate from local file |
| POST | /api/v1/license/validate |
Verify signature + expiration (optional server for
online check) |
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/licenses |
List all licenses |
| POST | /api/v1/licenses |
Create license |
| GET | /api/v1/licenses/{id} |
License detail |
| GET | /api/v1/licenses/{id}/download |
Signed file download |
| POST | /api/v1/licenses/{id}/revoke |
Revoke |
Admin auth requires three factors: X-API-Key +
X-Admin-Email + X-Admin-Password.
Eldric serves four xLSTM structured-ML workload classes natively — policy execution, time-series forecasting, vision-language encoding, and associative retrieval — at /api/v1/xlstm/policy/*, /api/v1/xlstm/forecast/*, /api/v1/xlstm/encode/*, and /api/v1/xlstm/retrieve/*.
Endpoints shipped in the run-up to 5.0 GA: chat feedback, the analyse → preview → commit upload flow, per-namespace vector config and bulk operations, classification with per-tenant taxonomy, the hash-chained audit read surface, trust-key management, and HuggingFace → GGUF conversion.
Customer's thumbs-up on a chat response triggers auto-ingest of cited sources into the appropriate knowledge base, feeds the dream cycle, and seeds the next ENRN training corpus. Thumbs-down marks the answer low-quality.
curl -X POST https://your-cluster.example.com/api/v1/chat/feedback \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"session_id": "sess-abc123",
"message_id": "msg-456",
"verdict": "accept"
}'
The four-step flow customers see in the chat shell when they drag a file in. The platform suggests; the user confirms; the ingest job runs.
Reads the first few KB, detects content type / language / structure, returns suggested chunking + enrichment defaults. No data persisted yet.
curl -X POST https://your-cluster.example.com/api/v1/upload/analyze \
-H "Authorization: Bearer $API_KEY" \
-F "file=@./paper.pdf"
# â {file_id, content_type, language, estimated_chunks,
# suggested_strategy, suggested_chunk_size, suggested_overlap,
# suggested_enrichment, extracted_keywords, topic_tags}
Returns the first 5â10 chunks the chosen strategy would produce, without persisting. Lets the operator adjust before commit.
curl -X POST https://your-cluster.example.com/api/v1/upload/preview-chunks \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"file_id":"...","strategy":"semantic","chunk_size":512,"overlap":50}'
Persists the file, runs chunking + embedding + enrichment per the chosen params, returns a job id for polling.
curl -X POST https://your-cluster.example.com/api/v1/upload/commit \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file_id": "...",
"tenant_id": "default",
"namespace_id": "ai-papers",
"strategy": "semantic",
"chunk_size": 512,
"overlap": 50,
"enrichment": {"authors": true, "doi": true, "topic_tags": true}
}'
# â 202 {job_id, estimated_duration_seconds}
curl https://your-cluster.example.com/api/v1/upload/jobs/<job_id> \
-H "Authorization: Bearer $API_KEY"
# â {status, chunks_done, chunks_total, embedding_done, error}
Uploads into this namespace skip the suggestion dialog (or pre-fill it with these values).
curl -X POST https://your-cluster.example.com/api/v1/vector/namespaces/<tenant>/<ns>/config \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"strategy":"semantic","chunk_size":512,"chunk_overlap":50}'
Returns counts of deleted and per-document failure reasons.
curl -X POST https://your-cluster.example.com/api/v1/vector/namespaces/<tenant>/<ns>/bulk-delete \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"doc_ids":["doc-1","doc-2","doc-3"]}'
Used after changing the embedding model or chunking strategy. Background job; poll with the returned job_id.
curl -X POST https://your-cluster.example.com/api/v1/vector/namespaces/<tenant>/<ns>/reindex \
-H "Authorization: Bearer $API_KEY"
# â 202 {job_id, documents}
curl https://your-cluster.example.com/api/v1/vector/ingest-queue \
-H "Authorization: Bearer $API_KEY"
# â {pending: [{job_id, tenant_id, namespace_id, status}, ...]}
Used by the model-upgrade detector. Returns the count and per-namespace breakdown.
curl https://your-cluster.example.com/api/v1/vector/stale-chunks \
-H "Authorization: Bearer $API_KEY"
# â {count: 12345, by_namespace: {...}}
curl -X POST https://your-cluster.example.com/api/v1/vector/chunk-preview \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"tenant_id":"default","namespace_id":"ai-papers","doc_id":"doc-123"}'
Three-tier resolution: base classifier â tenant overlay â LLM fallback when confidence is below threshold. Returns the assigned class with confidence and the source of the decision.
curl -X POST https://your-cluster.example.com/api/v1/router/classify \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"summarise the indemnification clause in contract X"}'
# â {
# "class": "ContractReview",
# "confidence": 0.91,
# "source": "overlay",
# "fallback_chain": ["base", "overlay"]
# }
Add your own intent classes ("PatientTriage", "ContractReview", "AnomalyTrend") alongside the 128 built-ins. Trains an overlay classifier from the labelled examples.
curl -X POST https://your-cluster.example.com/api/v1/router/custom-classes \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tenant_id": "law-firm-acme",
"class_name": "ContractReview",
"description": "queries about clause review, redlines, indemnification",
"examples": ["summarise the indemnification clause in...", "what'\''s the term length on..."]
}'
curl "https://your-cluster.example.com/api/v1/router/custom-classes?tenant_id=law-firm-acme" \ -H "Authorization: Bearer $API_KEY"
curl -X DELETE "https://your-cluster.example.com/api/v1/router/custom-classes?tenant_id=law-firm-acme&class_name=ContractReview" \ -H "Authorization: Bearer $API_KEY"
Hash-chained log of every AI-assisted decision and admin-side mutation. Tamper-evident: events cannot be retroactively edited.
curl "https://your-cluster.example.com/api/v1/audit/events?since=2026-05-01T00:00:00Z&tenant_id=hospital-cardiology" \ -H "Authorization: Bearer $API_KEY"
Returns the event detail including prev_hash and this_hash so compliance can verify the chain.
curl https://your-cluster.example.com/api/v1/audit/events/evt-abc123 \ -H "Authorization: Bearer $API_KEY"
Returns a signed JSON document (Ed25519 over the events array) the customer hands to their compliance auditor.
curl -X POST https://your-cluster.example.com/api/v1/audit/export \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"since":"2026-01-01T00:00:00Z","until":"2026-12-31T23:59:59Z","tenant_id":"hospital-cardiology"}'
Adds (or revokes) a third-party Ed25519 public key to the trust list so signed bundles from that key can be imported.
curl -X POST https://your-cluster.example.com/api/v1/bundle/trust \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"key_id":"acme-research","public_key":"<base64-ed25519>","label":"Acme research group"}'
curl -X DELETE https://your-cluster.example.com/api/v1/bundle/trust/acme-research \ -H "Authorization: Bearer $API_KEY"
Pulls a HuggingFace model into local storage and converts to GGUF for native inference or llama.cpp consumption. Long-running; returns a job id.
curl -X POST https://your-cluster.example.com/api/v1/models/convert \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hf_repo": "meta-llama/Llama-3.2-3B-Instruct",
"quantization": "Q4_K_M"
}'
This reference tracks the live 5.0 platform endpoint surface, including the legacy 4.x daemon endpoints still served in 5.0.x for compatibility. Updated on every patch ship.
If you find a divergence between this page and the actual response of an endpoint on a current 5.0.x build, please tell us â email office@eldric.ai.