Base URL http://localhost:4382 (self-host) or your cloud endpoint. Every request: Authorization: Bearer <token>. Errors return { error: { code, message, details?, retry_after_ms? } }; 429/503 and idempotent 500 are safely retryable.
/v1/tables/{table}/docsAppend one JSON doc or an array (≤1000 & ≤8MB). Auto-creates the table. Send Idempotency-Key for free exactly-once. 200 ⇒ fsync'd to WAL; offsets strictly monotonic & immediately readable.
/v1/tables/{table}/docs?from_offset&max_count&max_wait_msPull by offset, transparently across hot memtable and cold S3 Parquet. max_wait_ms>0 long-polls until new data or timeout.
/v1/tables/{table}/tail?from_offset=<u64|latest>Real-time subscribe (SSE). id:<offset> + data:<doc>; 15s heartbeat; reconnect via Last-Event-ID. WebSocket variant on the same path.
/v1/kv/{bucket}/{key}Read value + version + expires_at. Expired keys read as absent (lazy expiry).
/v1/kv/{bucket}/{key}?ttl_secondsWrite / CAS (If-Match) / create-only (If-None-Match: *). No condition = last-write-wins. ttl_seconds sets TTL; omit to clear it.
/v1/kv/{bucket}/{key}Delete (optional If-Match). Version sequence is not reused (G-NO-ABA).
/v1/kv/{bucket}/{key}/incrementAtomic increment by i64 delta. No lost updates under concurrency. Never blindly retried by SDKs.
/v1/kv/{bucket}?prefix&cursor&limitPrefix list in key order (snapshot-consistent). Expired entries omitted.
/v1/kv/{bucket}/{key}/expireSet / reset / clear TTL on a live key (ttl_seconds number or null). Bumps version.
/v1/querySingle-statement SELECT. Positional params $1..$n. JSON paths data['a']['b'], full-text contains/token_match/regexp_like, vector_distance kNN. Snapshot-consistent (includes committed mutations). JSON or Arrow output.
/v1/tables/{table}/mutationsSubmit batch update/delete (op, where, params, set, dry_run). 202 async; commit = manifest version bump, atomically visible. 10/min per table, serial FIFO.
/v1/mutations/{mutation_id}Poll mutation state (pending|running|applied|failed) + affected_rows + committed_manifest_version.
/v1/tables/{table}Create / configure (ttl_days, description). Idempotent.
/v1/tablesList tables with name, doc_count, bytes, max_offset, ttl_days.
/v1/tables/{table}Single table detail + current inferred schema.
/v1/tables/{table}Async whole-table delete (irreversible). Requires header X-Confirm-Delete: {table}.
/v1/usageCurrent usage + tier limits (ingest/scan/storage/kv).
/healthzLiveness probe (no auth). Returns 200 "ok".