Skip to main content

Get eLearning progress reports with the REST API

Use the eLearning API to return a collection of progress status report cards, in JSON format, for the eLearning users you manage. The response includes report cards of all eLearning users in your organization.

Resource URL​

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

Parameters​

NameQuery or Path ParameterTypeDescription
user_id QueryStringOptional. User identifier.
course_idQueryStringOptional. Course identifier.
pageQueryIntegerOptional. Page number. Default is 0.
sizeQueryIntegerOptional. Page size. Default is 50 users per page, maximum is 500 users per page.

HTTP codes​

HTTP CodeDescriptionType
200Success. Array of progress status report cards.Object
400Invalid request.Null
403Access denied.Null
404Not found.Null
500Server-side error.Null

Example request​

This 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​

This example response conforms to the Hypertext Application Language content type application/hal+json, which includes a link to the learner endpoint and course endpoint.

HTTP/1.1 200 OK
Content-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
}
}