Data API - New Reporting API Expansion
LearningSpace’s new Data API endpoints no longer rely on the legacy raw data API. These new endpoints can be used to extract the same type of data on the same scale as the legacy data API.
Most customers who extract assessment data from LearningSpace require more generic options: a generic, flexible Data API solution that:
follows modern technological and industry standards
focuses on assessment data in LearningSpace
replaces the legacy raw data API functionality
This new Data API is the future, and we encourage customers to move away from the legacy, so-called Raw Data API.
Technical Documentation
Authentication
Authentication via a JWT token obtained from the API key is available on the LearningSpace UI.
For more details, see: How to Generate a Data API key
New API endpoints
Three areas are targeted with new API endpoints:
Responses → Item-level submitted evaluation data used by LearningSpace to calculate learner performance scores (case total scores, activity total scores, etc.).
Comments → Scoring comments submitted during open-ended question scoring, along with the associated textual responses and points given. Formative feedback, comments, or any text submitted in text and structured text items.
Items → Questions/items of evaluation checklists along with possible answer options and point values (not submitted data).
Response endpoints
/v1/assessment/activity/{ActivityID}/responses
/v1/assessment/activity/{ActivityID}/case/{CaseID}/responses
/v1/assessment/activity/{ActivityID}/case/{CaseID}/learner/{LearnerID}/responsesparameters:ActivityID: ID of the activity
CaseID: ID of the caseLearnerID: ID of the usercolumns:LearnerName: FUll name of the userLearnerID: ID of the userLearnerUCID: UCID of the userActivityID: ID of the activityActivityTitle: Title of activityActivityStartDate: Start date of the activityActivityEndDate: End date of the activityLearnerGroupID: Group id of the activityCaseID: ID of the caseCaseTitle: Title of the activityQuestionID: ID of the questionScorePercentage: Percentage of achived score per itemAchievedPoints: Number of achived pointsMaxAchievable: Number of max achiable pointsSectionTitle: Title of the sectionSectionAbbreviation: Short title of the sectionAnswerText: The answer for a question given by the userVirtualSectionTags: Virtual section tags
Items endpoints
/v1/assessment/activity/items
/v1/assessment/activity/{ActivityID}/items
/v1/assessment/activity/{ActivityID}/case/{CaseID}/itemsparameters:ActivityID: ID of the activity
CaseID: ID of the casecolumns:
ActivityTitle: Title of the activityActivityID: ID of the activityCaseID: ID of the caseCaseTitle: Title of the caseCasePart: Name of the case part (e.g. Pre-Encounter, SP)SectionID: ID of the sectionSectionRank: Order of the section within the case partSectionTitle: Title of the sectionSectionAbbreviation: Short title or abbreviation of the sectionQuestionID: ID of the questionQuestionPhrase: Question text or phraseQuestionRank: Order of the question within the sectionQuestionType: Question type name (e.g. Radiobutton, Drop-down)AnswerValue: Value of a possible answer option for the questionAnswerDescription: Text or phrase for that answer optionAnswerRank: Order of the answers within the questionQuestionnaireItemPhrase: Phrase of the questionnaire item from the special section; NULL when the question does not use questionnaire scoringQuestionnaireItemRank: Order of the question within a special sectionMinScore: Minimum score for an OEQS question with direct scoring; NULL otherwiseMaxScore: Maximum score for an OEQS question with direct scoring; NULL otherwiseisHiddenCase: Whether the case is marked hidden in Case Manager ('true' or 'false')
Comments endpoints
/v1/assessment/activity/{ActivityID}/case/{CaseID}/learner/{LearnerID}/commentsparameters:ActivityID: ID of the activityCaseID: ID of the caseLearnerID: ID of the usercolumns:LearnerName: Full name of the userLearnerID: Unique ID of the userLearnerUCID: UCID of the userActivityID: ID of the activityActivityTitle: Title of the activityCaseID: ID of the caseCaseTitle: Title of the caseCasePart: Name of the specific part of the case to which the response belongsQuestionID: ID of the questionQuestionPhrase: The text or phrase of the questionAchievedPoints: Number of points the user achieved for the questionAnswerText: The user's answer to the questionComment: Comment provided in OEQS for the learner's responseisReportedCommentItem: Marked as a "Reported Comment Item in case editor
API Response Examples (mock data)
Responses:
{"LearnerName":"bandi mid_name last_name","LearnerUID":146, "LearnerUCID":null,"ActivityTitle":"Test OSCE","ActivityID":35,"LearnerGroupID":130,"CaseID":50, "CaseTitle":"Abdominal Pain","QuestionID":1005,"ScorePercentage":0.9800000190734863,"AchievedPoints":98,"MaxAchievable":100,"SectionTitle":"SP History","SectionAbbreviation":"SH","ActivityStartDate":"2026-01-21T00:00:00.000Z","ActivityEndDate":"2026-01-31T23:55:00.000Z","AnswerText":"A3","VirtualSectionTags":"HX" },
Items:{"ActivityTitle": "Test OSCE","ActivityID": 111,"CaseID": 222,"CaseTitle": "Abdominal Pain","SectionID": 3333,"SectionRank": 0,"SectionTitle": "SP History","SectionAbbreviation": "SH","CasePart": "SP Part","QuestionID": 19354,"QuestionPhrase": "Past medical history","QuestionRank": 14,
"QuestionType": "Drop-down (single select)",
"AnswerValue": 1,
"QuestionnaireItemPhrase": null,
"AnswerDescription": "Asks",
"AnswerRank": 0,
"QuestionnaireItemRank": null,
"MinScore": null,
"MaxScore": null,
"isHiddenCase": "true"}
Comments:{"LearnerName": "bandi mid_name last_name","LearnerUID": 146,"LearnerUCID": null,"ActivityTitle": "Test OSCE","ActivityID": 36,"CaseID": 53,"CaseTitle": "Abdominal Pain","QuestionID": 1086,"QuestionPhrase": "Physical Exam Findings","AchievedPoints": 4,"AnswerText": "34 yo male with abdominal pain admitted this morning...","Comment": "Physical exam well performed","CasePart": "SP","isReportedCommentItem": "true"}
Pagination Parameters
total: Total number of itemslimit: How many results per request (default is 100)offset: Where the results start (default is 0)
Search Parameters
Search parameters can now be used in API calls. All values returned as columns can be used as search parameters for filtering. Example:
/api/data/v1/assessment/activity/111/case/222/responses?LearnerUCID=1234567Multiple search parameters can be used in a single API call.
Getting Started
The following parameters can be used in API calls:
ActivityIDCaseIDLearnerID
These IDs correspond to internal LearningSpace identifiers and are not currently visible in the LearningSpace user interface. You need to match these IDs to their actual activities, cases, and learners in LearningSpace.
Step 1
Retrieve the list of ActivityIDs and CaseIDs using:
/v1/assessment/activity/itemsStep 2
Use the retrieved IDs in subsequent API calls to filter the dataset and retrieve data for specific:
Activities
Cases
Learners
Important information
Event-level restrictions do not apply to these API endpoints. Data for all activities in LearningSpace can be extracted regardless of the event-level Data API access configured in the LearningSpace user interface.
Differences between the NBOME student assessment endpoint and the new responses endpoint
Although both API endpoints extract the same type of data from LearningSpace (evaluation data), there are a few differences:
No NBOME-specific terms are used in the dataset extracted via the responses endpoint.
No event-level restrictions apply to the responses endpoint (“data api access” does not have to be enabled at the event level). In fact, having an event is not a requirement. If data entry is submitted within an Activity, it will be retrieved via the responses endpoint.
The Responses endpoint does not require a certain event configuration (advanced scheduled event, learner, and SP assignments in place)
Not only can assessment data generated by using SP and the Learner Post-Encounter checklist be extracted using the responses endpoint.