eLearning Progress API

eLearning

Use the eLearning Progress API to return a collection of progress status report cards in JSON format for Veracode eLearning users you manage. If you are a user with the Executive and eLearning role, the response includes report cards of all eLearning users of the organization.

Resource URL

https://api.veracode.com/elearning/v1/reportcards

Table. Parameters
Name Query or Path Parameter Type Description
user_id Query String Optional. User identifier.
course_id Query String Optional. Course identifier.
page Query Integer Optional. Page number. Defaults to 0.
size Query Integer Optional. Page size. Defaults to 50 users per page, maximum is 500 users per page.
Table. Response Codes
HTTP Code Description Type
200 An array of progress status report cards. Object
400 Invalid request. Null
404 Not found. Null
403 Access denied. Null
500 Server-side error. Null

Example Request

The following example assumes you have correctly configured your credentials and configured any required HMAC authentication libraries.

import java.net.URI;
        
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
        
import com.veracode.security.apisigning.ClientCryptoLib;
        
public class GetReportCardsClient {
        
    // An API Id for authentication
    private final static String API_KEY = "API_KEY_GOES_HERE";
        
    // The secret key corresponding to the API Id
    private final static String API_SECRET = "API_SECRET_GOES_HERE";
        
    public static void main(String[] args) throws Exception {
        
        URI uri = URI.create(
          "https://api.veracode.com/elearning/v1/reportcards?course_id=CRLF&user_id=jsmith");
        String authHeader = ClientCryptoLib.calculateAuthorizationHeader(ClientCryptoLib.VERACODE_HMAC_SHA_256, API_KEY,
          API_SECRET, uri.getHost(), uri.getPath().concat("?"+uri.getQuery()), HttpGet.METHOD_NAME);
        
        HttpGet request = new HttpGet(uri);
        request.addHeader("Authorization", authHeader);
        
        CloseableHttpResponse response = HttpClients.createDefault().execute(request);
        HttpEntity entity = response.getEntity();
        JSONObject json = new JSONObject(EntityUtils.toString(entity, "UTF-8"));
        
        System.out.println(json.toString(4));
     }
}

Example Response

The following response conforms to the Hypertest Application Language content type (application/hal+json), which includes a link to the learner endpoint and course endpoint.

GET/elearning/v1/reportcardsHTTP/1.1
        HTTP/1.1200OKContent-Type:application/json
{
  "_embedded": {"reportcards": [{
    "timeSpentOnCourse": 0.24,
    "_links": {
        "learner": {"href": "https://api.veracode.com/elearning/v1/learners/jsmith"},
        "course": {"href": "https://api.veracode.com/elearning/v1/courses/CRLF"}
     },
     "courseStartedDate": "2018-05-11T00:00:00.000Z",
     "courseStatus": "Passed",
     "progressPercent": 100,
     "numberOfAttempts": 1,
     "courseCompletedDate": "2018-05-11T00:00:00.000Z"
   }]},
   "_links": {"self": {"href": "https://api.veracode.com/elearning/v1/reportcards?user_id=jsmith&course_id=CRLF&page=0&size=50"}},
   "page": {
      "number": 0,
      "size": 50,
      "totalPages": 1,
      "totalElements": 1
   }
 }