POST
/signalRequest Body
{
"entity_id": 1,
"attribute": "name",
"value": "Alice"
}
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
entity_id | integer (u64) | Yes | — | Entity identifier. |
attribute | string | Yes | Max 256 bytes, non-empty, no control characters | Attribute name. |
value | string | Yes | Max 64 KB, non-empty, no control characters except \n, \r, \t | Attribute value. |
Response
{
"success": true,
"node_id": 0,
"error": null
}
{
"success": false,
"node_id": null,
"error": "Attribute length 300 exceeds maximum 256 bytes"
}
| Field | Type | Description |
|---|---|---|
success | boolean | Whether ingestion succeeded. |
node_id | integer or null | Created/existing node ID (if successful). |
error | string 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"}'