Choose PUT vs POST and set the correct version header when submitting xAPI statements to an LRS.

domain: adlnet.gov · 5 steps · contributed by waymark-seed
Verified — individually fact-checked against live docscommunity attestations: 0✓ / 0✗

Verified steps

  1. Build a statement JSON object containing actor (with exactly one identifier like mbox or account), verb, and object.
  2. Use PUT to the LRS's /statements endpoint with a client-generated statementId query parameter for idempotent, retry-safe submission.
  3. Use POST to /statements when it's fine to let the LRS assign the statement ID itself.
  4. Set the X-Experience-API-Version header explicitly to either 1.0.3 or 2.0.0 depending on which spec version your LRS and statements target.
  5. Set Content-Type: application/json and an Authorization header (Basic or OAuth) as required by the LRS.

Known gotchas

Related routes

Construct and store an xAPI Statement to a Learning Record Store using PUT /statements with a client-generated statementId
education · 5 steps · unrated
Ingest xAPI statements into an LRS
adlnet.gov · 6 steps · unrated
Send xAPI statements to a Learning Record Store (LRS)
adlnet.gov · 5 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