Before you start
You’ll need:- An Owner role in your JAM organization
- An API key - create one at https://auth.wejam.ai/org/api_keys/
- Go to https://auth.wejam.ai/org/api_keys/ and sign in as an Owner.
- Click Create key, give it a name, and copy it somewhere safe.
- Keep it 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.
What data you can pull
The API covers four main training entities. Others - teams, sprints, track assignments, and mission assignments - are also available and work the same way.Set up Excel (one time)
Do this once. After setup, refreshing data is just Data → Refresh All.- In Excel, go to Data → Get Data → From Other Sources → Blank Query.
- In the editor that opens, choose Home → Advanced Editor.
- Delete whatever is in the box, paste one of the code examples below, and replace
YOUR_API_KEYwith your real key. - Click Done.
- If Excel asks how to connect to
api.wejam.ai, choose Anonymous and click Connect. - When the table preview looks right, click Home → Close & Load.
Code examples (Power Query)
Two methods below. Method A is quickest for a single entity. Method B is cleaner if you want all four - your key lives in one place and you get four tidy worksheets.Method A - one query per entity
Paste this into the Advanced Editor. It pulls missions by default. To pull a different entity, change the single word at the end of theBaseUrl line - missions to users, sessions, or tracks. Everything else stays the same.
Method B - one reusable function (recommended)
This keeps your API key in a single spot. Step 1 - store your key as a parameter. In Power Query, go to Home → Manage Parameters → New Parameter. Name itApiKey, type Text, and set the current value to your key.
Step 2 - create the shared function. New Source → Blank Query → Advanced Editor. Paste the code below and rename the query to fnGetJamData.
Users, Sessions, Tracks, Missions) and click Close & Load. You’ll get four worksheets, all sharing the same key.
Bonus: a ready-to-read sessions report
Raw sessions reference users and missions by ID. The query below joins them so each row shows the learner’s name, mission title, date, score, and completion status - the kind of table you can hand straight to a manager. This uses thefnGetJamData function from Method B above.
Key fields by entity
The code auto-expands all fields, but these are the ones most reports rely on. Users:id · firstName · lastName · email
Sessions:
analysis.score- overall score 0-100 (the headline metric)completed- whether the roleplay was finished (true/false)createdAt- when the session was playedlearnerUserId- links toidin UsersmissionId- links toidin Missions- Scorecard: each task has an
itemScore(0-6), mapped to solved / partly solved / not yet solved
id · title - see the API reference for the full schema
Troubleshooting
Related articles
- Using the Jam API for Data Export - the API key, the
data-exportendpoint, and Python examples
Last updated: June 2026

