Welcome to the Panopto Community

Directly retrieving viewership rates and quiz scores for specific users and videos via the API

We are currently using the Panopto API to check the viewership rates of required videos and quiz results, and to grant network access privileges to students who meet the criteria.

Currently, we retrieve and process quiz result files for all users; however, as the number of users increases, the volume of data is growing, and we are exploring ways to improve processing efficiency.

Please clarify the following:

- Is there an API that allows us to directly retrieve viewership rates and quiz scores for specific users or specific videos?

- Is it possible to filter the retrieved data by a specific time period (e.g., the past 30 days)?

- Please explain how to search for APIs in the SOAP API documentation and the differences between versions such as V42 and V46. For example,

what are the differences between Panopto.Server.Services.PublicAPI.V42.Soap and Panopto.Server.Services.PublicAPI.V46.Soap?

Thank you.

Answers

  • Adis HrnjicaAdis Hrnjica Whiz Kid

    Hi Sakae,

    Thank you for the questions. Viewing and quiz data are available through the public API. There is no single call that returns one student's completion percentage and quiz score for one video, limited to the past 30 days.

    Viewing

    • GET /Panopto/api/v1/sessions/{sessionId}/viewers returns each viewer of a video, including PercentCompleted (0–100). This is the student's overall completion, and it is not limited to a date range. Results come back 100 at a time; pageNumber starts at 0.
    • GET /Panopto/api/v1/users/{userId}/sessions/viewed returns the videos a student has watched, again with overall completion and no date filter.
    • For activity inside a date range, SOAP GetSessionDetailedUsage (one video) and GetUserExtendedDetailedUsage (one student) return individual viewing events between beginRange and endRange in UTC. GetSessionUserDetailedUsage returns one student's events for one video, including timestamps, but it does not accept a date range.
    • For many students and videos at once, call QueueReport with report type SessionsViewsByUsers and a start and end time, then download it with GetReport. Minutes viewed are limited to that window. Percentage watched is the student's overall completion of the video.

    Quiz scores

    GetQuizResultDownloadUrl(sessionId, reportType) returns a download URL for one video. UserResultsSummary has one row per student, with questions and correct answers. DetailedResultsBySection has one row per answer. The call accepts a session id only, so the file includes every student with a result on that video. Calling it once per required video, then keeping the rows you need, avoids downloading results for other videos.

    Finding operations, and V42 compared with V46

    REST methods are listed at https://<your Panopto server>/Panopto/api/Docs.

    SOAP is one WSDL per service. Open the service URL, or append ?wsdl, and search for the operation name. For example: https://<server>/Panopto/PublicAPI/4.6/UsageReporting.svc. The same services exist under /PublicAPI/4.0/ and /PublicAPI/4.2/.

    The number in the URL is the API generation. The namespace in the WSDL is the contract version of that service, so it can be older than the URL. V42.Soap is the 4.2 contract for Session Management, Remote Recorder Management, and Auth. V46.Soap is only Session Management, served by /PublicAPI/4.6/SessionManagement.svc, and it adds later folder and session operations. Usage Reporting was not revised, so its namespace remains Panopto.Server.Services.PublicAPI.V40 on the 4.0, 4.2, and 4.6 URLs.

    I hope this helps.

    Thanks,

    -Adis

Sign In or Register to comment.