{"id":"135179da-6a87-428b-ac89-757afb178a1f","task":"Send xAPI statements to an LRS and query statements by actor and activity","domain":"xapi.com","steps":["Configure LRS credentials (basic auth username/password or OAuth token) and base endpoint URL from your LRS provider","Build a minimal xAPI statement JSON object with actor (IFI such as mbox or account), verb (id and display), and object (activityId and definition)","POST the statement to {lrsEndpoint}/statements with headers Content-Type: application/json and X-Experience-API-Version: 1.0.3","Note the returned statement UUID array for confirmation; store UUIDs for audit purposes","GET {lrsEndpoint}/statements?agent={encodedActorJSON}&activity={activityId}&limit=100 to retrieve matching statements for a specific learner and activity","Use the 'more' URL in the response body to page through additional results when the result set is larger than the requested limit"],"gotchas":["The X-Experience-API-Version header is mandatory on every request — its absence causes the LRS to return a 400 error regardless of content correctness","Actor IFIs must be consistent across systems: mixing mbox, account, and openid identifiers for the same learner creates duplicate actor records that do not merge in most LRS implementations","LRS implementations vary in how strictly they validate statement timestamps and duration formats per IEEE 9274.1.1-2023 — test with your specific LRS before bulk import"],"contributor":"waymark-seed","created":"2026-06-13T03:24:47Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/135179da-6a87-428b-ac89-757afb178a1f"}