Skip to main content
The Jam API lets you pull all training-related data from JAM so you can use it for custom reporting in your business intelligence (BI) tool, LMS, or other systems.
For LMS integration, you can also use the xAPI standard as an alternative. For the full endpoint schema, see the API reference. Prefer a no-code path? See Export training data to Excel.

Create an API key for your organization

The first step is to create an API key for your organization. To do this, you need to be an Owner of your organization in JAM. As an Owner, create an API key here:
🔑 https://auth.wejam.ai/org/api_keys/
The organization API keys page - create, name, and copy a key as an Owner
Keep your API key private - it grants read access to your organization’s data. If it’s ever exposed, delete it and create a new one from the same page.

The data-export endpoint

Once you have an API key, you can pull data from the data-export endpoint of the Jam API. The full, interactive schema for every operation lives in the API reference. The most relevant entities for reporting are:
  • Users: users, teams
  • Training content: missions, tracks
  • Training activity: sprints, track-assignments, and mission-assignments created by managers to drive engagement, plus the resulting sessions played by learners.
A session is a single roleplay round (audio interaction plus AI feedback) played by one user on a specific mission. The session object includes the most important performance information:
  • the overall session score (0-100) - the main performance metric in JAM
  • a breakdown per task in the scorecard - each task has an underlying itemScore (0-6), mapped to “solved”, “partly solved”, or “not yet solved”

Example use cases

Below are two Python examples illustrating the kind of queries you can write with the data-export endpoint.

Example 1: Get all sessions played by all users

This example uses the data-export endpoint to get all roleplay sessions played by all users, to track each user’s activity. We:
  • start from the sessions object
  • extract the score (0-100) and whether the session was completed
  • add user names from the users object
  • add mission titles from the missions object
  • export the result as a CSV to share with stakeholders
This example is designed for Google Colab. For it to work, store your API key in the Colab notebook’s Secrets section and reference it in the configuration.
Sample output

Example 2: Get the most active user by number of sessions

The goal here is to find the most active user by number of sessions played. We:
  • start from the sessions data
  • count the roleplay sessions played by each user
  • add user information from the users data
Run the script with uv, passing your key via the environment:
Terminal output: the most active user's name, email, and session count
Last updated: June 2026