# APIs in LearningSpace

This page lists and describes the LearningSpace **API**s (*Application Programming Interfaces*) that allow other software to interact with the LearningSpace system programmatically.  

## Data API Access

The LearningSpace Data API provides access to various data points from the system, allowing customers to retrieve information about Activities, Cases, Events, Students, video recordings, and more. 


:::tip
Step-by-step [Data API - How-to Guide](/doc/8192c270-bbfd-4f6e-b188-e32be98cea88) 

:::

The Data API access can be manually **toggled on or off** on the [Security NEW](/doc/8add9d62-62ff-4446-84e4-07652bf28e5b)  of the [System Manager](/doc/dde83ad9-36b6-41e3-9492-33a2b77fbec7).

 ![](https://outline-production-attachments.s3-accelerate.amazonaws.com/uploads/03fa1014-cf0e-4191-ba80-50d24eef65d4/3a0ed833-f6ca-4689-bae8-81e5c376ae78/API%20INFO%20BUBBLE.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA4EOUDTOVUICLPZ4P%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T121500Z&X-Amz-Expires=86400&X-Amz-Signature=a7aae4cef96f16b34c0ba05e15059ca6feee525d2a6364e51220934e9524957f&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =556x368")


Once Data API access has been enabled, the Institution’s System developers can proceed using the API documentation provided by LearningSpace support.


:::info
An OpenAPI descriptor is generated, which describes the API contents available at `https://[learning.space.url]/api/openapi/views.yaml`

:::


:::tip
The [**API key**](https://kb.learningspace.elevatehealth.net/doc/security-new-l3JLjVGibe#h-api-key) generated for [Raw Data](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/how-to-use-the-raw-data-api-FcH4XNrSPD) is also used for the Data API.

See [How to Generate a Raw Data API key](/doc/c43e3994-8e68-4267-bf6a-71e0ce4a8d1b) 

:::


Once Data API Access is activated, the ***'All events are accessible via API by default'*** **checkbox** will also appear *(checked by default)* to make **all events available** by default within the system. 

 ![](https://outline-production-attachments.s3-accelerate.amazonaws.com/uploads/03fa1014-cf0e-4191-ba80-50d24eef65d4/a9760958-9db2-4fe2-95b1-34a186937fb4/API%20ACTIVE_checkbox%20on_successful.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA4EOUDTOVUICLPZ4P%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T121500Z&X-Amz-Expires=86400&X-Amz-Signature=e133bd92c2da4ec58a7a851d87f8066ee46642530ae3ee97f672df2917b3cef8&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =599x368")


:::info
The data API toggle is in the "off" position by default.

:::


:::tip
If the ***'All events are accessible via API by default'*** option is unchecked in the System manager, only the events selected in the [Calendar Module](/doc/426c013c-ec3a-4798-a7b1-3ae8ec9300d4)will be added to the range of Data API.

 ![](https://outline-production-attachments.s3-accelerate.amazonaws.com/uploads/03fa1014-cf0e-4191-ba80-50d24eef65d4/a26b0ce8-4f8c-45c2-8002-ea6c760ae537/EDIT%20EVENT_API%20ON.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA4EOUDTOVUICLPZ4P%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T121500Z&X-Amz-Expires=86400&X-Amz-Signature=84be602da82adfe236f2adf6992b0c425a66a053cc621e77c18992f4523d07d4&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =2866x704")


:::

  
Both the [events created in the Calendar](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/calendar-how-to-KhBAPZEVFp) and [in Advanced Scheduling](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/how-to-add-new-events-in-activity-scheduler-Nnd8NOn2DC) can be saved as API Access-capable events.

 ![](https://outline-production-attachments.s3-accelerate.amazonaws.com/uploads/03fa1014-cf0e-4191-ba80-50d24eef65d4/0610c78c-bbf8-4960-af41-7fde9c8af13e/EDIT%20EVENT_ADV%20SCHED.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA4EOUDTOVUICLPZ4P%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T121500Z&X-Amz-Expires=86400&X-Amz-Signature=265152e89b878ee9928f19431d59ccf5855af5047a7a0dd5a8616dac83dcecf4&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =1190x300")



:::success
***TIP:*** Notes can also be edited and saved for an Advanced scheduled event.  

 ![](https://outline-production-attachments.s3-accelerate.amazonaws.com/uploads/03fa1014-cf0e-4191-ba80-50d24eef65d4/b2604230-0f89-40cb-9eb0-6a13e137f119/EDIT%20NOTES.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA4EOUDTOVUICLPZ4P%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T121500Z&X-Amz-Expires=86400&X-Amz-Signature=691869f6b32a27647b1f9e450901578c8e45b43cb633d625a464e1601f3416a2&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =770x297")


:::

### Content provided by the Data API

A **detailed specification** for the actual development can be utilized via the **generated OpenAPI descriptor**, which describes the API contents. This specification is available at:  
**https://[learning.space.url]/api/openapi/views.yaml**.


:::info
Authentication is required via a **bearer token** (JWT), which can be obtained through the LearningSpace [API Key](/doc/how-to-generate-a-data-api-key-XUjU14AyLi).

:::

### **Available Endpoints**


 1. **Activities**
    * **GET** `/api/data/v1/activities`
      * Retrieve a list of activities.
      * The response includes activity details such as ID, title, start, and end dates.
 2. **Cases**
    * **GET** `/api/data/v1/cases`
      * Retrieve a list of cases.
      * The response includes case details such as *patient name, presenting complaint, case ID, and case number.*
 3. **Events of an Activity**
    * **GET** `/api/data/v1/events/activity/{ActivityID}`
      * Retrieve events related to a specific activity.
      * Requires ActivityID as input.
 4. **Nbome Events**
    * **GET** `/api/data/v1/events/nbome`
      * Retrieve events marked as ready for NBOME integration.
 5. **Student Assessments (NBOME)**
    * **GET** `/api/data/v1/student-assessments/nbome/event/{EventID}`
      * Retrieve student assessment results for a specific event.  
        The results adhere to the NBOME format.

        
:::info
         *IMPORTANT:* If **two SPs** are assigned to **one station** of a scheduled event, every [Case item](/doc/items-Jg8T3db0qZ) of the [section](/doc/sections-5ToJRGE5sd) will appear duplicated in the Data API (*one with the name of the first SP, the other with the name of the second SP, respectively*).

        :::
 6. **Student Video Recordings for NBOME**
    * **GET** `/api/data/v1/student-video-recordings/nbome/event/{EventID}`
      * Retrieve student video recordings for a specific NBOME event.
 7. **Students**
    * **GET** `/api/data/v1/students`
      * Retrieve a list of students.
      * The response includes student details such as *ID, full name, and NBOME ID*.
 8. **Student Video Recordings for Event and Case**
    * **GET** `/api/data/v1/student-video-recordings/event/{EventID}/case/{CaseID}/student/{StudentID}`
      * Retrieve video recordings for a specific student, event, and case.
 9. **Video Files for Video Recording**
    * **GET** `/api/data/v1/video-files/video-recording/{VideoRecordingID}`
      * Retrieve a list of video files associated with a specific video recording.

        
:::success
        When requesting **video content**, you will receive **links to** the video recordings in MP4 format**.**

        :::
10. **Responses**
    * **GET**  `/api/data/v1/assessment/activity/{ActivityID}/responses`   
      * Provides a list of responses for all learners in all checklists and all cases assigned to an Activity     
    * **GET** `/api/data/v1/assessment/activity/{ActivityID}/case/{CaseID}/responses`       
      * Provides a list of responses for all learners in all checklists in one case, assigned to an Activity
    * **GET** `/api/data/v1/assessment/activity/{ActivityID}/case/{CaseID}/learner/{LearnerID}/responses`
      * Provides a list of responses for one learner in all checklists in one case assigned to an Activity
11. **Case items**
    * **GET**  `/api/data/v1/assessment/activity/items`    
      * Provides a list of all activities with their assigned cases and checklist items, along with all possible answer options 
    * **GET** `/api/data/v1/assessment/activity/{ActivityID}/items`       
      * Provides a list of one specific activity with its assigned cases and checklist items, along with all possible answer options 
    * **GET** `/api/data/v1/assessment/activity/{ActivityID}/case/{CaseID}/items`      
      * Provides a list of one specific activity and one specific assigned case and checklist items, along with all possible answer options 
12. **Comments Report**
    * **GET**  `/api/data/v1/assessment/activity/{ActivityID}/case/{CaseID}/learner/{LearnerID}/comments`
      * Provides the content of the comments report   

### **Response Format**

Each response will include the following:

* **success**: A boolean indicating if the request was successful.
* **total**: The total number of records returned.
* **offset**: The offset value, useful for pagination.
* **limit**: The number of records returned in the current request.
* **data**: An array containing the data objects related to the request.

### **Authentication**

The API uses **Bearer Authentication**. You will need to provide a valid JWT token in the `Authorization` header of your request.


:::info
For more information, see [**Data API - New Reporting API Expansion**](https://kb.learningspace.elevatehealth.net/s/01d3ed73-9ca1-4e34-a37d-1beff735f8fb)**.**

:::

## External Calendar API Endpoint

With the help of the **External Calendar API Endpoint** feature, users will be able to **process events** (including *date, event name,* and *room name*)  using their **software integration components** and work with the event information in any way they desire, like:

* forwarding them to external calendar applications,
* or presenting it as a static webpage.

 ![](https://outline-production-attachments.s3-accelerate.amazonaws.com/uploads/03fa1014-cf0e-4191-ba80-50d24eef65d4/bd40e7a5-6eb5-4ad5-b427-575ba77b39cf/JSON%20info%20bubble.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA4EOUDTOVUICLPZ4P%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T121500Z&X-Amz-Expires=86400&X-Amz-Signature=7eb7bb0c462304f44e05cb27943f9a6023b19396b42d672ecec5882c7fd8d276&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =685x454")


:::info
For more details, please visit the [**External Calendar API Endpoint**](/doc/external-calendar-api-endpoint-pRmzhXyOze) or the [**How to Utilize External Calendar API Endpoint**](/doc/how-to-utilize-external-calendar-api-endpoint-wQEczI6ztH) pages.

:::


## Learner Schedule API

This API allows exporting the times (i.e., rounds in) the learner is scheduled for, given a timeframe.

:question: ***Use case:*** *using this data to enter into an external calendar software or to provide notifications (e.g., text messages to a phone) for learners about their scheduled exams.* *Output format: XML*

By specifying an email address (learner email address saved in ) and a date range, the Student Calendar API returns the scheduled Activity titles and the start and end dates of the round(s) the learner has been scheduled to.

## Video Recording Control API

This API provides video-related functionality in LearningSpace to external applications. Such external applications can use simple HTTP GET commands to control LearningSpace's video recording capabilities. LearningSpace also provides download access to recorded video content.

:grey_question: ***Use case:*** *The customer develops external tools to perform scheduled or automated recordings using the LearningSpace A/V system.*

### Goal of Integration

The end user wants to **control the room's Recording State** from within the room. Recording State control means that users can start and stop video recordings. Annotations can also be added to the recordings to tag them with notes, remarks, or participant names.

While the Recording State can be controlled by a logged-in Video Control privilege user from a connected client computer, the end user might want a more direct way to control it. It is equally important for those in the room to understand the status of Recording in the room.

A similarly important piece of information regarding video recording privacy and access control is the ability to assign the video recording to an Activity (a building block for tying together participants, schedule, curriculum, and access control).

Finally, adding notes or participant names to the recording from the Touch Panel enables easier lookup and identification of the recording, and also provides a way to direct debriefing sessions or provide performance-related feedback to participants.

### Typical Use Case

The end user in the simulation room uses the touch panel to check the Recording status (recording or not recording). Before starting a recording, the end user can select an Activity defined to assign the recording. During recording, the touch panel can be used to add annotations. Finally, the recording can be stopped to reset the room's recording state.

### Components of the integration

* Touch Panel
* Touch Panel Master Controller
* Recording API


:::tip
For more details, please contact the **AVS Support team** using any of the contact options available [**here**](/doc/customer-aftercare-one-pager-GBWMe1BcfS).

:::

## Privacy API

This LearningSpace API allows a device to control the room’s [**privacy settings**](/doc/privacy-mode-for-standardized-patients-sps-Xw3JbxdOuN) directly from within the room, using a **wall-mounted touch panel** (a network device panel).


:::info
 Since the touch panels are behind a Touch Panel Master Controller, which makes requests to LearningSpace, **all requests appear to come from the same IP address** to LearningSpace.

:::

### Setup process


1. Add the Touch Panel Master Controller computer to LearningSpace as an [additional station](/doc/how-to-configure-stations-MPs2FWkP2L).
2. Add the Touch Panel Master Controller [station to all the rooms](/doc/how-to-assign-a-station-to-a-room-6I8BFuWjma) that need to be controlled.
3. Use curl to verify the operation of the API at <http://learning.space.address/w/api/v2/privacy.cgi,>  

   
:::success
   It acts/performs just like pressing the privacy buttons on the UI.

   :::

**Note:** If the computer is not a station in any room in LearningSpace, nothing happens:  since the station's IP is used to look up the associated room, this **API does not allow non-stations to control the privacy** of LearningSpace.


:::success
[SP toolbar](/doc/how-to-manage-privacy-mode-for-sp-users-io5MUyZap6) still works alongside this new tool.

:::

 ![Blacked-out Camera Views - SP Privacy Mode Active](https://outline-production-attachments.s3-accelerate.amazonaws.com/uploads/03fa1014-cf0e-4191-ba80-50d24eef65d4/e46f6aa3-6826-4973-8ae9-45046c13a331/SP%20Privacy%20mode_API.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA4EOUDTOVUICLPZ4P%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T121500Z&X-Amz-Expires=86400&X-Amz-Signature=b2ee71c1e9c6cd9b34b4b36a77f4623ab0896326098908ea6df13604b0fe3703&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =1216x590")



:::tip
For more information, please contact the **AVS Support team** using one of the available contact options listed [**here**](/doc/customer-aftercare-one-pager-GBWMe1BcfS).

:::

---

**Documents**

- [User Guide](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/user-guide-WPv4VxhtWB)
- [FAQ](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/faq-YoxOQOjvnY)
- [Training Videos](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/training-videos-D2ycsEwqPt)
- [Module Introduction Videos](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/module-introduction-videos-I6OQ6H7SUT)
- [Release Notes](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/release-notes-BcFFMsc0RV)
- [Distance Learning with LearningSpace](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/distance-learning-with-learningspace-eAfwW23Hxg)
- [Preventing Copy-Paste in LearningSpace](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/preventing-copy-paste-in-learningspace-sPD0IIUuk0)
- [Important Technical Notification Regarding Adobe Flash Player](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/important-technical-notification-regarding-adobe-flash-player-eQtMLwLmTJ)
- [iPad support - Technical information](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/ipad-support-technical-information-dLmeFvKofC)
- [TeamViewer Link](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/teamviewer-link-QyKZBMqUT9)
- [YouTube videos about LearningSpace](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/youtube-videos-about-learningspace-TMb3zdc0LC)
- [Customer Aftercare One-Pager](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/customer-aftercare-one-pager-GBWMe1BcfS)
- [Case Studies](https://kb.learningspace.elevatehealth.net/s/ent-hs/doc/case-studies-VcAbFqXSz7)