Generating xAPI logs from tabular data: The csv2xAPI tool

Our solution to combine data from multiple sources in the scope of the ISILA project consists of a tool to convert from pretty much any CSV file (or other tabular format) to xAPI JSON logs that can be sent to a Learning Record Store. The tool that we have developed for this purpose is called csv2xAPI and is available at the following URL:

Interface of the csv2xAPI tool

Using the tool requires the following 3 steps:

  1. Uploading the data:
    • Users can upload their CSV (or Excel, tsv, etc.) data into the app.
    • If the data is in wide format, for example, a survey where each row represents one student with multiple columns representing different responses to different questions, users can choose which columns to pivot so that each row corresponds to an xAPI statement.
    • If the data is already in the long format, for example, an event log, where each row represents an interaction and there are —potentially— multiple rows per user, then no additional pre-processing is required.
  2. Mapping the data columns to xAPI
    • Users then map the columns from their data to the xAPI components (such as actor, verb, object, etc.).
    • If the column names of the dataset match the xAPI parts (timestamp,,,, etc.) the mapping is performed automatically.
  3. Sending the records to the LRS:
    • Users must provide the necessary details for their LRS (Learning Record Store): endpoint, client and secret
    • After hitting “Send,” the statements are sent to the LRS.

The source code is available on GitHub with an open-source license:

A tutorial on how to use the tool is available here: