Authentication: Required (if enabled)Ingests an ordered sequence of entity–attribute–value triples.Unlike POST /signal, this endpoint calls ingest_sequence() internally,
which analyses co-occurrence across adjacent signals: two entities that share
the same attribute value in consecutive signals get an edge created
(or incremented) between them.
Use this endpoint when you need a connected graph via HTTP. POST /signal
inserts isolated nodes — it never creates edges.
POST /signal calls ingest() — a single-signal path that stores nodes but
never creates edges. Edges are the backbone of queries like strongest_path,
intersect, and retract. If you ingest signals one-by-one via HTTP, these
queries always return found: false.POST /signals fixes this by accepting a batch and delegating to
ingest_sequence(), the same function used by the CLI kremis ingest command.
If any signal in the batch is invalid (empty attribute, oversized value),
the entire request is rejected with 400. No signals are ingested.
Each node accepts at most 4,096 distinct (attribute, value) properties
(MAX_PROPERTIES_PER_NODE). A batch that would push any node past this cap is
rejected atomically with 400 and error: "Ingest failed: Property limit exceeded ..." — no signals are ingested. Re-sending an already-stored pair is
idempotent and never counts against the cap.