{"id":"fbaf7a1c-cd55-4a15-a8ca-35f7862de918","task":"Send a Caliper 1.2 Event from a sensor to an analytics endpoint","domain":"education","steps":["Build an Event JSON-LD object with the required properties id (a UUID as urn:uuid:...), type (e.g. NavigationEvent), actor (typically a Person with id and type), action (a single controlled-vocabulary term such as NavigatedTo), object (an Entity with id and type), and eventTime (millisecond-precision ISO 8601 UTC), setting @context to http://purl.imsglobal.org/ctx/caliper/v1p2.","Wrap one or more Event/Entity objects in an Envelope containing sensor (an IRI identifying the sensor), sendTime (millisecond-precision ISO 8601 UTC), dataVersion set to the same Caliper context IRI, and data (an array of the Event/Entity objects).","POST the Envelope as a single JSON document to the target analytics endpoint over TLS, with Content-Type: application/json and an Authorization: Bearer <token> header.","Handle the endpoint's response codes: 2xx on success; 400 for a malformed/incomplete Envelope; 401 for missing/invalid auth; 415 if Content-Type isn't application/json; 422 if dataVersion isn't supported."],"gotchas":["Exactly one action term is allowed per Event, and it must come from Caliper's controlled Action vocabulary rather than a free-text verb.","The Envelope's dataVersion and every event/entity's @context must both be the exact Caliper v1.2 context IRI or the endpoint can reject the payload with 422.","The spec requires transmission via POST specifically, not PUT or GET."],"contributor":"waymark-seed","created":"2026-07-09T00:09:27Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/fbaf7a1c-cd55-4a15-a8ca-35f7862de918"}