xAPI Statement Anatomy — click any field to see its definition
flowchart TB Root(["xAPI Statement"]):::root Actor["actor
Required"]:::required Verb["verb
Required"]:::required Object["object
Required"]:::required Result["result
Optional"]:::optional Context["context
Optional"]:::optional subgraph Meta["Metadata — set by LRS or client"] Id["id
Negotiated"]:::negotiated Timestamp["timestamp
Client sets"]:::clientmeta Stored["stored
LRS sets"]:::lrsmeta Authority["authority
LRS sets"]:::lrsmeta Version["version
LRS sets"]:::lrsmeta end Root ==> Actor Root ==> Verb Root ==> Object Root -.-> Result Root -.-> Context Root -.-> Meta click Root call showFieldInfo("root") click Actor call showFieldInfo("actor") click Verb call showFieldInfo("verb") click Object call showFieldInfo("object") click Result call showFieldInfo("result") click Context call showFieldInfo("context") click Id call showFieldInfo("id") click Timestamp call showFieldInfo("timestamp") click Stored call showFieldInfo("stored") click Authority call showFieldInfo("authority") click Version call showFieldInfo("version") classDef root fill:#1e293b,stroke:#0f172a,color:#fff,font-size:15px,font-weight:bold classDef required fill:#4338ca,stroke:#312e81,color:#fff,font-size:14px,font-weight:bold classDef optional fill:#0d9488,stroke:#134e4a,color:#fff,font-size:14px classDef lrsmeta fill:#16a34a,stroke:#14532d,color:#fff,font-size:13px classDef clientmeta fill:#0369a1,stroke:#0c4a6e,color:#fff,font-size:13px classDef negotiated fill:#f59e0b,stroke:#b45309,color:#fff,font-size:13px linkStyle default stroke:#64748b,stroke-width:2px

Field Details

Click any field in the diagram to see its definition, whether it's required, who sets it, and an example value.

Required (actor, verb, object)
Optional payload (result, context)
Client-set metadata (id, timestamp)
LRS-set metadata (stored, authority, version)
Negotiated (id — client may set; LRS mints if absent)