Welcome to the Panopto Community

Please note: All new registrants to the Panopto Community Forum must be approved by a forum moderator or admin. As such, if you navigate to a feature that is members-only, you may receive an error page if your registration has not yet been approved. We apologize for any inconvenience and are approving new members as quickly as possible.

API for total views, download counts, minutes delivered, average minutes delivered, unique viewers,

Could you please provide me with the API for total views, download counts, minutes delivered, average minutes delivered, unique viewers, the number of users in a Moodle course, Moodle course code, and faculty information? According to the Swagger documentation officially provided by Panopto, I can't seem to find the data I mentioned available in the public API.

Could you please guide me on how to access this data or point me to the relevant API?

Tagged:

Answers

  • I'm reaching out as there hasn't been any response to my previous inquiry. Could you kindly provide me with the API endpoints for retrieving the following data: total views, download counts, minutes delivered, average minutes delivered, unique viewers, the number of users in a Moodle course, Moodle course code, and faculty information?

    According to the Swagger documentation officially provided by Panopto, I can't seem to find the data I mentioned available in the public API. Any assistance or guidance you can provide on this matter would be greatly appreciated.

  • Hi Sonic,

    Since Moodle courses are provisioned to Panopto as folders you could potentially use SOAP API for this.

    Use SOAP GetFolderSummaryUsage(auth, folderId, beginRange, endRange, granularity) for:

    • views (Views)
    • unique viewers (UniqueUsers)
    • minutes delivered (MinutesViewed)
    • average minutes delivered (compute MinutesViewed / Views)

    I hope this helps.

    Thanks,

    Adis

  • Hi Adis,
    May I know more about

    GetFolderSummaryUsage, and its endpoint structure and its parameter? we are using Oauth to retrieve tokens, can you direct me to documentation about it? thanks a lot!

    Best,

    Sonic

  • Hi Sonic,

    Here is documentation for GetFolderSummaryUsage:
    https://support.panopto.com/resource/APIDocumentation/Help/html/b97e3391-2d89-9df5-bdfc-7a501b5770e3.htm

    Here is how you authenticate:
    https://support.panopto.com/resource/APIDocumentation/Help/html/44e5a0e8-7108-2784-0311-182d8f7965c7.htm

    General API resources:
    https://support.panopto.com/s/article/api-0

    Let me know if you have any questions.

    Thanks,

    Adis

  • Hi Adis,

    do you know how the SOAP API endpoint URL is structured?
    we want to do a quick poc without implementing entire C# application.

    Thanks,

    Sonic

  • Hi Sonic,

    Here is a quick prototype for Postman..

    • Method: POST
    • URL: https://{YourServer}/Panopto/PublicAPI/4.6/UsageReporting.svc?singlewsdl
    • Headers:
      • Content-Type: text/xml; charset=utf-8
      • SOAPAction: "http://tempuri.org/IUsageReporting/GetFolderSummaryUsage"
    • Body (raw XML):
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:pan="http://schemas.datacontract.org/2004/07/Panopto.Server.Services.PublicAPI.V40">
    <soapenv:Header/>
    <soapenv:Body>
    <tem:GetFolderSummaryUsage>
    <tem:auth>
    <pan:Password>XXX</pan:Password>
    <pan:UserKey>XXX</pan:UserKey>
    </tem:auth>
    <tem:folderId>0000000-0000-0000-0000-000000000</tem:folderId>
    <tem:beginRange>2023-10-01T00:00:00</tem:beginRange>
    <tem:endRange>2026-01-31T23:59:59</tem:endRange>
    <tem:granularity>Daily</tem:granularity>
    </tem:GetFolderSummaryUsage>
    </soapenv:Body>
    </soapenv:Envelope>

    I hope this helps.

    Thanks,

    Adis

  • Hi Adis,

    I tested your prototype and received 500 error,

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring xml:lang="en-US">An error occurred deserializing the message. See server logs for details</faultstring></s:Fault></s:Body></s:Envelope>

    do you know how to i get Username and PassKeys? I tried my Panopto account and password and it seems not to be the case, would you please clarify it? thanks!

    Sonic

  • Hi Sonic,

    It can be regular user here but you need either be an admin or creator on the folder for which you are trying to get the analytics. Please make sure you have the right folderId.

    I have tested this on my machine and it returns the response.

    Thanks,

    Adis

  • Hi Adis,

    I searched by a specific folder ID and it now returns data, do you know if we can have json as data output? thanks!

    Sonic

  • Hi Sonic,

    It depends what you need. You would need some lib to convert xml to json.
    If you are still doing this in Postman you can follow the steps below.

    1. Open your SOAP request in Postman.
    2. Click on the Tests tab.
    3. Paste the following code:
    // Convert XML response to JSON
    var jsonData = xml2Json(responseBody);
    // Log it to the Postman Console (Ctrl + Alt + C) to see the JSON
    console.log(jsonData);
    // Optional: Set a variable to use this JSON data in the next request
    pm.environment.set("last_soap_response_json", JSON.stringify(jsonData));

    Then when you click Send, open the Postman Console at the bottom left to see your data in JSON format.

    I hope this helps.

    Thanks,

    Adis

  • Is there a restful API equivalent to the SOAP API you suggested?

    Panopto API https://support.panopto.com/s/article/api-0

     

    Documentation: 

    https://support.panopto.com/resource/APIDocumentation/Help/html/c40c21c6-dc7a-d822-8c99-b276ee8337c…

     

    According to the guide, SOAP is used more for legacy integration, Restful is the more modern way, and Panopto is moving towards Restful. Restful should be preferred.

  • Hi Sonic,

    It's true that we prefer REST but unfortunately what you need is not available in REST at the moment.
    We are working to move everything to the REST API, but not sure when this will be done.

    Let me know if you have any other questions.

    Thanks,

    Adis

Sign In or Register to comment.