Skip to main content

Coach Reporting

Retrieve learning analytics from Showpad Coach, including statistics for Courses, Paths (formerly Checklists), Curricula, and user progress. This is the same data available on the Coach Reports page in the Admin App.

TL;DR
  • List report objects? Use GET /objects
  • Describe fields? Use GET /objects/{objectId}/describe
  • Query results? Use GET /objects/{objectId}?parameters=...
  • Parameters are passed as Base64-encoded JSON in the query string

When to use the API

LMS
Integration
Training
Analytics
Compliance
Tracking
Performance
Dashboards
Sync course completion data with your learning management system.Analyze training engagement and identify knowledge gaps.Track certification status and ensure compliance requirements are met.Build custom dashboards showing team learning progress.
Prerequisites
  • Plan: Showpad Coach license
  • Permissions: Admin or Manager role with access to Coach Reports
  • Authentication: Valid OAuth 2.0 access token (learn more)

What you'll learn

See the Report Definitions page for complete field documentation for all objects.

Requests

Base Endpoint

The base endpoint is:

https://{{subdomain}}.showpad.biz/api/learn/reporting/v3/json

Every request needs to be prefixed with the base endpoint.

You can make the following requests with the base endpoint:

HTTP RequestDescription
GET /objectsList all possible objects.
GET /objects/{objectId}/describeDescribe fields and data types within an object.
GET /objects/{objectId}Receive paginated object results from a query.

Object

caution

Do not supply request parameters with this method.

To retrieve a list of all possible objects:

curl -X GET "https://{subdomain}.showpad.biz/api/learn/reporting/v3/json/objects" \
-H "Authorization: Bearer {access_token}"

A successful request returns 200 OK with an Object response:

{
"objects": [
{
"id": "string",
"displayName": "string",
"urls": {
"describe": "string",
"object": "string"
}
}
]
}
Property NameValueDescription
objectslistList of available report types.
objects[].idstringThe API identifier of the object.
objects[].displayNamestringThe display name of the object.
objects[].urls.describestringThe path of the URL to describe the object's fields.

Describe

caution

Do not supply request parameters with this method.

To retrieve the field descriptions and data types within an object:

curl -X GET "https://{subdomain}.showpad.biz/api/learn/reporting/v3/json/objects/{objectId}/describe" \
-H "Authorization: Bearer {access_token}"

A successful request returns 200 OK with a Describe response:

{
"fields": [
{
"id": "string",
"displayName": "string",
"type": "string",
"options": ["string"]
}
]
}
Property NameValueDescription
fieldslistList of available fields for the chosen object.

See Report Definitions for details about all objects and their available fields.
fields[].idstringThe API identifier of the field.
fields[].displayNamestringThe display name of the field.
fields[].typestringThey type of value that is stored in the field. Possible values are: int, picklist, string, float, percent, and date.
fields[].optionslistThe options that are available for picklists.

Result

curl -X GET "https://{subdomain}.showpad.biz/api/learn/reporting/v3/json/objects/{objectId}?parameters={base64_params}" \
-H "Authorization: Bearer {access_token}"

Request Parameters

Parameter NameValueDescription
parametersstringBase64 encoded JSON representing requesting parameters.

Parameter creation for results request

Any requests made without specific parameters will be set to the default values. Once the parameters are set, encode the JSON to base64 and pass it as the value for parameters in the request query string.

Operators

OperatorDescriptionAvailable Field Types# of Values
eqEqual tostring, int, float, percent, date1
neNot equal tostring, int, float, percent, date1
coContainsstring1
bwBegins withstring1
ncNot containsstring1
inInpicklistAt least 1
ltLess thanint, float, percent, date1
leLess than or equal toint, float, percent, date1
gtGreater thanint, float, percent, date1
geGreater than or equal toint, float, percent, date1
beBetweenint, float, percent, date2
nbNot betweenint, float, percent, date2

Example Request

The parameters below will return the first 100 curriculums with the title "Example Curriculum", sorted by Curriculum Title ascending.

Compressed and Base64-encoded, the above JSON produces:

ewogInBhZ2UiOiAxLAogInJlc3VsdHNQZXJQYWdlIjogMTAwLAogImZpbHRlcnMiOiBbCiB7CiAgICJmaWVsZCIgOiAgImN1cnJpY3VsdW1UaXRsZSIsCiAgICJvcGVyYXRvciIgOiAiZXEiLAogICAidmFsdWVzIjogWwogICAiRXhhbXBsZSBDdXJyaWN1bHVtIgogICBdCiAgfQogXSwKICJmaWVsZHMiOiBbCiAiY3VycmljdWx1bVRpdGxlIiwKICJjb3Vyc2VDb3VudCIsCiAidXNlckNvdW50IiwKICJzdGFydENvdW50IiwKICJzdGFydFBlcmNlbnRhZ2UiLAogInRlc3RBdmVyYWdlIiwKICJwaXRjaEF2ZXJhZ2UiCiAgXSwKICAic29ydCI6IHsKICAiZmllbGQiOiAiY3VycmljdWx1bVRpdGxlIiwKICAiZGlyZWN0aW9uIjogImFzYyIKICB9CiB9

Pass this Base64 string as the value for parameters in the query string:

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
"https://{subdomain}.showpad.biz/api/learn/reporting/v3/json/objects/Curriculum?parameters=ewogInBhZ2UiOiAxLAogInJlc3VsdHNQZXJQYWdlIjogMTAwLAogImZpbHRlcnMiOiBbCiB7CiAgICJmaWVsZCIgOiAgImN1cnJpY3VsdW1UaXRsZSIsCiAgICJvcGVyYXRvciIgOiAiZXEiLAogICAidmFsdWVzIjogWwogICAiRXhhbXBsZSBDdXJyaWN1bHVtIgogICBdCiAgfQogXSwKICJmaWVsZHMiOiBbCiAiY3VycmljdWx1bVRpdGxlIiwKICJjb3Vyc2VDb3VudCIsCiAidXNlckNvdW50IiwKICJzdGFydENvdW50IiwKICJzdGFydFBlcmNlbnRhZ2UiLAogInRlc3RBdmVyYWdlIiwKICJwaXRjaEF2ZXJhZ2UiCiAgXSwKICAic29ydCI6IHsKICAiZmllbGQiOiAiY3VycmljdWx1bVRpdGxlIiwKICAiZGlyZWN0aW9uIjogImFzYyIKICB9CiB9"

Next steps

Was this page helpful?