Developer LRS quickstart
Simplest Data Docs
Simplest Data Docs

#Developer LRS quickstart

Pull release 1.0.1, start the LRS, and send your first xAPI statement.

#1. Check prerequisites

You need:

  • Linux or macOS;
  • Docker installed, running, and able to use Compose;
  • a browser for device authorization and license acceptance;
  • curl and python3 available in your shell.

Simplest Data LRS 1.0.1 is a linux/amd64 image. Docker can run it through emulation on Apple Silicon, but native arm64 is not supported.

#2. Pull release 1.0.1

Shell
curl -fsSL https://registry.simplestdata.com/lrs | sh -s -- pull 1.0.1

By doing so, the flow opens browser authorization, handles license acceptance, pulls release 1.0.1, and installs the simplestlrs command.

If simplestlrs is not found after installation, add ~/.local/bin to your PATH and open a new shell.

#3. Start the LRS

Shell
simplestlrs start 1.0.1

The LRS is available at http://127.0.0.1:8000 by default.

First start

Docker may need to download the required runtime dependencies, so the first start can take a little longer.

#4. Verifythe LRS is ready

Shell
curl -fsS http://127.0.0.1:8000/readyz

A ready runtime returns {"status":"ready"}.

#5. Send your first statement

Shell
STMT_ID=$(python3 -c 'import uuid; print(uuid.uuid4())')
curl -i -X PUT "http://127.0.0.1:8000/xAPI/statements?statementId=$STMT_ID" \
  -H 'Content-Type: application/json' \
  -H 'X-Experience-API-Version: 2.0.0' \
  --data "{\"id\":\"$STMT_ID\",\"actor\":{\"mbox\":\"mailto:developer@example.com\"},\"verb\":{\"id\":\"http://adlnet.gov/expapi/verbs/experienced\"},\"object\":{\"id\":\"https://example.com/activities/developer-quickstart\"}}"
printf '%s\n' "$STMT_ID"

A successful PUT returns 204 No Content. Keep the printed statement ID for the next step.

#6. Read your first statement

Shell
curl -fsS "http://127.0.0.1:8000/xAPI/statements?statementId=$STMT_ID" \
  -H 'X-Experience-API-Version: 2.0.0' \
  -H 'Accept: application/json'

The LRS returns the statement you just stored.


#✓ You're ready.

Your LRS is running, and you've successfully written and retrieved your first xAPI statement.

#Next steps

Continue with...