Ingest xAPI statements into an LRS

domain: adlnet.gov · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Provision or select an LRS that conforms to the xAPI specification (1.0.3 is the current stable version); note the LRS's statements endpoint URL (typically https://lrs.example.com/xAPI/statements) and authentication credentials.
  2. Construct a valid xAPI statement as a JSON object with at minimum an actor (with objectType, name, and mbox or account), a verb (with id URI and display map), and an object (with objectType and id); add result, context, and timestamp fields as required by your use case.
  3. Send the statement to the LRS via HTTP POST to /xAPI/statements with Authorization: Basic base64(key:secret) (or Bearer token if the LRS supports OAuth), Content-Type: application/json, and X-Experience-API-Version: 1.0.3 header.
  4. For single idempotent statement submission, use HTTP PUT to /xAPI/statements?statementId={uuid} with the same headers; the LRS returns 204 on success and 409 Conflict if a statement with that UUID already exists with different content.
  5. Batch multiple statements by sending a JSON array in the POST body to /xAPI/statements; the LRS returns an array of the newly assigned statement IDs in the same order.
  6. Query stored statements via GET /xAPI/statements with filter parameters such as agent, verb, activity, since, and until to verify ingestion and support analytics; the LRS returns a StatementResult envelope with statements array and more URL for pagination.

Known gotchas

Related routes

Send xAPI statements to an LRS and query statements by actor and activity
xapi.com · 6 steps · unrated
Send xAPI statements to a Learning Record Store (LRS)
adlnet.gov · 5 steps · unrated
Query an LRS for xAPI statements filtered by actor and verb using GET /statements
adlnet.gov · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans