Ingest a batch of agent signals
Accepts a batch of agent signals, either mined by the Tessl CLI from local agent logs or emitted at the moment they happen. The owning org and user are derived from the authenticated actor — client-supplied attribution fields are stripped. This is a best-effort validated container: the shared spine of every signal is validated, but signalType is free text and attributes is open, so a new signal type can be emitted without a coordinated backend release. attributes is still bounded in size and nesting depth and may never carry a tool-response body, whatever the signal type. Rejected with 400 when the org has not enabled agent-signal collection. Insertion is idempotent on (orgId, signalType, provider, sessionId, signalTimestamp, invocation): a resend within the same org is a no-op, reported as a duplicate. Two distinct signal types sharing the rest of the tuple are stored independently. Timestamps are normalized to UTC milliseconds before storage, so idempotency is preserved regardless of source precision or timezone representation. Returns how many signals were newly accepted and how many were duplicates. At most 1000 signals per request. A request from a CLI older than this generic spine — sending only the deprecated skillName/skillScope/skillTile/installedSkills fields and none of signalType/name/namespace — is still accepted and mapped onto the fields above; rows built this way carry attributes.legacyPayload: true. A payload that mixes any deprecated field with any generic field (signalType, name, namespace), or that carries neither signalType nor any deprecated field, is rejected with 400: the deprecated and generic shapes cannot be combined unambiguously, so a sender must use one or the other.
Headers
Request body
Response
Default Response
Changes
Changed in 3 of the 55 revisions of this API.9
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
- ○
added the new optional request property
//new-optional-request-property
- ○
added the new optional request property
//new-optional-request-property
- ○
added the new optional request property
//new-optional-request-property
- ○
added the new optional request property
//new-optional-request-property
- ○
the request property
//became optionalrequest-property-became-optional
- ○
the request property
//became optionalrequest-property-became-optional
- ○
- ○
endpoint added
endpoint-added
- ○