Report an insight, or move its start and end
Upsert for trusted reporters. The caller generates the insight id (a UUID), so a retry updates the same insight, and one id is always one insight. Reporting requires the caller's tenant to hold signals:report_insight:all on urn:platform. Call with the client's own token: a person's token, or one delegated to a person, is refused. 403 when the caller holds no grant, uses a person's token, or another client reported the id; 409 when the call changes type, version or tbSessionId.
- https://timeback-platform.trilogy.com/signals/scope/insights.write
Path Parameters
- Type: stringFormat: uuidinsight
Id requiredReporter-generated signals insight id
Body·
An insight a trusted reporter judged. The caller generates the insight id, so a retry updates the same insight. startedAt, endedAt, reason and severity can change under an existing id; type, version and tbSessionId cannot. A field left out of a later call keeps its stored value.
- Type: stringFormat: date-timestarted
At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- Type: stringtb
Session Id requiredThe session the insight happened in. The student comes from the session.
- Type: stringtyperequired
A registered insight type, for example PhoneUse. Types the platform judges itself are refused.
- Type: stringversionrequired
The type's registered version, for example v1.
- Type: stringFormat: date-timeended
At Not before startedAt. Defaults to startedAt on the first call; a later call sets or extends it.
- Type: stringreasonmin length:1max length:5000
Short, parent-safe description. Defaults to Reported by consumer.
- Type: "red" or "orange"enumseverity
red reaches the school safety officer; orange is stored and counted but hidden.
Responses
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://platform.dev.timeback.com/signals/1.0/insights/123e4567-e89b-12d3-a456-426614174000 \
--request PUT \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"type": "",
"version": "",
"tbSessionId": "",
"startedAt": "",
"endedAt": "",
"reason": "",
"severity": "red"
}'
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"type": "string",
"version": "string",
"tbSessionId": "string",
"startedAt": "2026-10-29T14:38:22.771Z",
"endedAt": "2026-10-29T14:38:22.771Z",
"reason": null,
"severity": "red",
"rolloutState": "SHADOW",
"outcome": "raised",
"dateCreated": "2026-10-29T14:38:22.771Z",
"dateLastModified": "2026-10-29T14:38:22.771Z"
}