Authentication: Required (if enabled)
Ingest a signal representing a grounded observation: Entity | Attribute | Value .
Request Body
{
"entity_id" : 1 ,
"attribute" : "name" ,
"value" : "Alice"
}
Field Type Required Constraints Description entity_idinteger (u64) Yes — Entity identifier. attributestring Yes Max 256 bytes, non-empty, no control characters Attribute name. valuestring Yes Max 64 KB, non-empty, no control characters except \n, \r, \t Attribute value.
Response
200 OK — Success
400 Bad Request — Validation Error
{
"success" : true ,
"node_id" : 0 ,
"error" : null
}
Field Type Description successboolean Whether ingestion succeeded. node_idinteger or null Created/existing node ID (if successful). errorstring or null Error message (if failed).
Each node accepts at most 4,096 distinct (attribute, value) properties
(MAX_PROPERTIES_PER_NODE). Storing a new property beyond this cap returns
400. Re-sending an already-stored pair is idempotent and never counts
against the cap.
Example
curl -X POST http://localhost:8080/signal \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"entity_id": 1, "attribute": "name", "value": "Alice"}'