Exporting your data (xAPI + business CSV)
Your training data is yours. When it's time to move results into your LMS, your learning-record store (LRS), a data warehouse, or a leadership report, CommandIQ hands the data back in the formats your systems already speak — no integration project and no waiting on us.
There are two places to export from:
- Org-wide — every scored attempt in a course, from Org Admin → xAPI Export.
- One learner — a single person's record, from their Performance panel.
Why it works this way
- No lock-in. Everything is a standard, on-demand download. You are never locked into CommandIQ to get your own results out.
- Standards + business formats, side by side. Systems that speak xAPI (your LRS) get canonical statements. People who live in spreadsheets get clean CSVs in the shapes analysts actually ask for.
- The export means the same thing wherever it lands. Each row carries a stable actor identity and the module name that was frozen when the learner completed it — so renaming a module later never rewrites your historical exports.
The formats at a glance
| Format | Where | Best for |
| xAPI (JSONL) | Org-wide + per-learner | Bulk upload to an LRS. One xAPI statement per line. |
| xAPI CSV preview | Org-wide | The same statements flattened to one row per attempt, for a quick spreadsheet look. |
| Business CSV — per-learner rollup | Org-wide | One row per person: overall score + readiness stage. |
| Business CSV — per-module matrix | Org-wide | One row per module: attempts, pass count, average score. |
| Business CSV — per-attempt rows | Org-wide + per-learner | Full detail: one row per attempt. |
Org-wide export
Step 1 — Open the xAPI Export tab
Go to Org Admin and choose the xAPI Export tab. You'll see the export panel with a course picker, optional date filters, the xAPI download buttons, and the Business CSV options.

Step 2 — Pick a course and (optionally) a date range
- Course — one course per export. Statements are scoped to attempts in the course you select.
- Start date / End date — both optional. The filter applies to when each attempt was scored. Leave both blank to export every scored attempt in the course.
- Include testing learners — off by default. Synthetic and QA learners are excluded so your export reflects real people. Tick this only if you deliberately want the test records included.

Step 3 — Download xAPI, or preview it as a spreadsheet
- Download xAPI (JSONL) — every scored attempt as xAPI statements, one per line. The industry-standard format your LRS expects for a bulk upload.
- xAPI CSV preview — the same statements flattened into a spreadsheet: one row per attempt, with actor, verb, object (the module), score, course, and timestamps.
Step 4 — Or export a business CSV
Under Business CSV (cohort), choose the shape that fits the question you're answering:
- Per-learner rollup — one row per person, with their overall course score and readiness stage.
- Per-module matrix — one row per module, with number of attempts, number of passes, and average score.
- Per-attempt rows — one row per attempt (learner, module, score, timestamp).

Every download happens right in your browser — no email, no queue, no waiting.
Per-learner export
Sometimes you need just one person's record — a records request, a transfer, or a one-off review.
- Go to Performance and open the learner (search or pick them from the list).
- At the top of their panel, use the Export row:
- xAPI (JSONL) — that learner's statements only.
- CSV (attempts) — that learner's per-attempt rows only.
Both are scoped to exactly that person, so you're never over-sharing a whole cohort when you only need one record.

About actor identity and module names
- Actor identity uses an
account with your org's home page plus the learner's stable display ID, and also carries the learner's email (mbox) when one is on file. The same learner is recognizable across every export and inside your LRS.
- Module names come from the snapshot frozen at the time the learner completed the module. Rename a module later and your historical exports still show the name it had when the attempt happened — nothing is rewritten after the fact.
- The Advanced — xAPI URI overrides section lets you tune the URIs used in statements so they match your LRS's expectations.

The testing-learner toggle
By default, both the org-wide export and the per-learner tools exclude learners flagged as testing (synthetic or QA records). This keeps your exports clean and about real people.
- On the org-wide tab, tick Include testing learners to add them back in for a specific export.
- The flag is a filter only — it never deletes anyone. You can flip it on and off freely.
Frequently asked
Do I need to set up an integration first?
No. Every export is an on-demand download. Nothing needs to be provisioned.
Can I export more than one course at once?
The xAPI and business exports are one course per download. Run the export once per course, or use the per-attempt CSV and combine downstream.
What if I change a module name after learners completed it?
Your existing exports are unaffected — the module name is captured at completion time and never rewritten.
Which format should I hand to our LRS team?
The xAPI (JSONL) file. It's the canonical bulk-upload format. Hand the business CSVs to analysts and program leads who work in spreadsheets.
Related — Learn more
Start with the overview
Related articles