Get user learning plan and completed courses statistics (API)

  • 17 October 2022
  • 3 replies

Dear community,


Can you please help me to figure the best way how to retrieve user learning plan data by API?


I need information on user learning plan progress and how many courses from each learning plans are passed. 


Learning plan progress I can retrieve by: /learningplan/v1/learningplans/enrollments 

But is it possible to get the review of user all enrolled learning plans courses progress ?


API: /learningplan/v1/learningplans/4/courses/enrollments allows to do it but only for one learning plan at the time, which is not optimal for me. 


Or at least, I need to know how many courses each learning plan has, so I can calculate the number of  completed courses knowing progress percentage. 


Thank you for the advice in advance!

3 replies

Userlevel 7
Badge +4

So you could go the route of knowing the number of courses and guessing, use the GET /learn/v1/lp/{lp_id}

However, might have a different route to go for you. For some things like this I build a report in Docebo that does a better job of getting the information you need, and then use the report API to pull in the current version/groupings.

Thank you @Bfarkas for the reply!

I also started my investigation from the report option, but faced some limitations such as:

  • no possibility to dynamically filter report by API calls.
  • no possibility to create report that will list some aggregated information, for instance, list me all created learning plans and number of courses in each. 

Even if I return user courses with statuses, I do not see to which learning plan each course belongs to. 


Maybe I missing something here, but it is a really a big gap in Docebo APIs. 

Userlevel 7
Badge +4

Yeah, so from your description I assume you are doing a lot of bulk tracking here. I agree some of those pieces are definitively missing, combined with the API calls per hour limitation, ended up the reports route to basically get bulk data, then convert it into a JSON feed so you can program any of those filters you want. For the “what courses are in the LP”, ended up with basically a separate lookup table that gets updated when curriculum gets updated so it is also signed and approved, were doing the independent lookup I posted previously, but it ends up being so repetitive and wasteful.