04 · REFERENCE

Native REST API

Port 8080. Use it for anything new. The native surface has the explain plan, the turbo-ingest path, and the log-shaped endpoints the ES compat layer can't express cleanly.

METHOD
PATH
DESCRIPTION
GET
/v1/health
Liveness + readiness. Returns {status, uptime_s, version}.
GET
/v1/metrics
Prometheus text format. Scrape-friendly. See Metrics.
PUT
/v1/indices/:name
Create an index with a field mapping body.
GET
/v1/indices/:name
Return schema, segment list, doc count.
DELETE
/v1/indices/:name
Drop the index.
POST
/v1/indices/:name/docs
Single-doc indexing. JSON body.
POST
/v1/indices/:name/turbo-ingest
NDJSON bulk path. Parallel tokenization behind the scenes.
POST
Unified query endpoint — full-text, term, range, KNN, hybrid.
POST
/v1/indices/:name/_explain
Return the optimizer tree with per-node cost and row counts.
POST
/v1/indices/:name/logs
Log-optimized ingest path. Auto-detects Apache/Nginx/ISO timestamps.
POST
/v1/indices/:name/syslog
Syslog RFC-5424 ingest.
POST
/v1/indices/:name/otlp
OpenTelemetry OTLP ingest. No collector sidecar.
GET
/v1/indices/:name/_mapping
Field catalog. Drives the dashboards' schema-aware UIs.

Request body shape — /v1/indices/:name/search

{
  "query": {
    "bool": {
      "must":   [ { "match": { "message": "login failed" } } ],
      "filter": [
        { "term":  { "service": "auth" } },
        { "range": { "@timestamp": { "gte": "now-1h" } } }
      ]
    }
  },
  "aggs": {
    "by_host": { "terms": { "field": "host", "size": 10 } }
  },
  "size": 100,
  "sort": [ { "@timestamp": "desc" } ]
}

Source · engine/crates/api/src/native.rs · router.rs