What is it?
The MC Professional API Continuing Education resource allows a 3rd party client to retrieve, update and create continuing education credits from a profile as well as upload and get certificates.
Get a credit by credit id
This resource returns a single credit.
Scope
To access this resource, the access token must have the read scope.
Permissions
This resource is available to administrators.
Request
The request to get a continuing education credit is an HTTP GET to the /api/v1/continuing-education/credit/<creditId> endpoint. The following is the format of the request:
GET /api/v1//continuing-education/credit/<creditId> HTTP/1.1
Host: <orgId>.memberclicks.net
Accept: application/json
Authorization: Bearer <accessToken>
Cache-Control: no-cache
- orgId: the MC Professional organization ID
- accessToken: the access token issued by the authorization server
Example
Using the example values below, the following is the resulting request:
- creditId: 10013
- orgId: apiexample
- accessToken: eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0NjgzNTE5NzcsInVzZXJfbmFtZSI6IjEwMDEzNDU2MzAiLCJzY29wZSI6WyJyZWFkIl0sInNlcnZpY2VJZCI6NzM0MCwiYXV0aG9yaXRpZXMiOlsiUk9MRV9BRE1JTiIsIlJPTEVfRklOQU5DSUFMX0FETUlOIiwiUk9MRV9VU0VSIiwiUk9MRV9DTVNfQURNSU4iLCJST0xFX1BST0ZJTEVfSU1QT1JUX0FETUlOIiwiUk9MRV9QUk9GSUxFX0FETUlOIiwiUk9MRV9DT01NVU5JVFlfQURNSU4iLCJST0xFX01FTUJFUlNISVBfQURNSU4iLCJST0xFX0ZPUk1TX0FETUlOIiwiUk9MRV9SRVBPUlRJTkdfQURNSU4iXSwidXNlcklkIjoxMDAxMzQ1NjMwLCJqdGkiOiJkZDkwM2YwNC03Y2FjLTQyMDctOTY3Zi1jOTg2MmY1NDI5ZWYiLCJjbGllbnRfaWQiOiI4WmdaeFY5QjhyZHdWWEo4bHp1aCJ9.CyE4PPH9ZH9uvPSoUFRDZh6pO7VjAkF0MZ9IBcCRaxk
GET /api/v1//continuing-education/credit/10013 HTTP/1.1
Host: apiexample.memberclicks.net
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0NjgzNTE5NzcsInVzZXJfbmFtZSI6IjEwMDEzNDU2MzAiLCJzY29wZSI6WyJyZWFkIl0sInNlcnZpY2VJZCI6NzM0MCwiYXV0aG9yaXRpZXMiOlsiUk9MRV9BRE1JTiIsIlJPTEVfRklOQU5DSUFMX0FETUlOIiwiUk9MRV9VU0VSIiwiUk9MRV9DTVNfQURNSU4iLCJST0xFX1BST0ZJTEVfSU1QT1JUX0FETUlOIiwiUk9MRV9QUk9GSUxFX0FETUlOIiwiUk9MRV9DT01NVU5JVFlfQURNSU4iLCJST0xFX01FTUJFUlNISVBfQURNSU4iLCJST0xFX0ZPUk1TX0FETUlOIiwiUk9MRV9SRVBPUlRJTkdfQURNSU4iXSwidXNlcklkIjoxMDAxMzQ1NjMwLCJqdGkiOiJkZDkwM2YwNC03Y2FjLTQyMDctOTY3Zi1jOTg2MmY1NDI5ZWYiLCJjbGllbnRfaWQiOiI4WmdaeFY5QjhyZHdWWEo4bHp1aCJ9.CyE4PPH9ZH9uvPSoUFRDZh6pO7VjAkF0MZ9IBcCRaxk
Cache-Control: no-cache
Response
A successful request will return an HTTP status 200 OK with the response in the following format:
HTTP/1.1 200 OK
{
"eventName": "ProdSquad",
"hours": 3,
"location": "Atlanta",
"startDate": 1549482562387,
"endDate": 1549482562387,
"instructor": "Erin Hall",
"description": "Join the product team at MC",
"profileId": 357434
}
Get Credits By Profile Id
This resource is used to obtain the list of all credits belonging to a specific user.
Scope
Access token must have read scope
Permission
This resource is available to users
Request
GET /api/v1/continuing-education/credit?profileId={{profile-id}}&pageNumber={{page-number}}&pageSize={{pageSize}}
- Default pageNumber is 1.
- Default pageSize = 10. Max page size is 100.
- Profile Id is a required query parameter
- Headers:
- Host: <orgid>.memberclicks.net
- Accept: application/json
- Authorization: Bearer <accessToken>
Sample Response
{
"totalCount": 32,
"count": 5,
"pageNumber": 3,
"pageSize": 5,
"totalPageCount": 7,
"firstPageUrl": "https://orgid.memberclicks.net/api/v1/continuing-education/credit?profileId=358111&pageSize=5&pageNumber=1",
"previousPageUrl": "https://orgid.memberclicks.net/api/v1/continuing-education/credit?profileId=358111&pageSize=5&pageNumber=2",
"nextPageUrl": "https://orgid.memberclicks.net/api/v1/continuing-education/credit?profileId=358111&pageSize=5&pageNumber=4",
"lastPageUrl": "https://orgid.memberclicks.net/api/v1/continuing-education/credit?profileId=358111&pageSize=5&pageNumber=7",
"items": [
{
"creditId": 95746,
"eventName": "test",
"categoryName": "Ericsson 3",
"hours": 5,
"location": "Atlanta, GA",
"startDate": “01/01/2019”,
"endDate": “10/24/2019”,
"expirationDate": “01/01/2021”,
"instructor": "test",
"description": "Let's have fun, okay?",
"profileId": 358111
},
{
"creditId": 97217,
"eventName": "test",
"categoryName": "Ericsson 3",
"hours": 5,
"location": "Atlanta, GA",
"startDate": “09/01/2019”,
"endDate": “09/02/2019”,
"expirationDate": “01/01/2020”,
"instructor": "test",
"description": "Let's have fun, okay?",
"profileId": 358111
},
{
"creditId": 98551,
"eventName": "test",
"categoryName": "Ericsson 3",
"hours": 5,
"location": "Atlanta, GA",
"startDate": “09/01/2019”,
"endDate": “09/02/2019”,
"expirationDate": “01/01/2020,
"instructor": "test",
"description": "Let's have fun, okay?",
"profileId": 358111
},
{
"creditId": 98554,
"eventName": "test",
"categoryName": "Ericsson 3",
"hours": 5,
"location": "Atlanta, GA",
"startDate": “07/01/2019”,
"endDate": “07/04/2019”,
"expirationDate": “12/25/2020”,
"instructor": "test",
"description": "Let's have fun, okay?",
"profileId": 358111
},
{
"creditId": 10263,
"eventName": "Architecture Sync Up",
"categoryName": "",
"hours": 5,
"location": "",
"startDate": “01/01/2019”,
"endDate": “01/05/2019”,
"expirationDate": “06/01/2020”,
"instructor": "",
"description": "",
"profileId": 358111
}
]
}
- List of credits is sorted by endDate in descending order, followed by creditId in ascending order
Save a credit
This resource is used to save a credit to a given profile in the org
Scope
Access token must have write scope
Permission
This resource is available to administrators
Request
POST /api/v1/continuing-education/credit
- Headers:
- Host: <orgid>.memberclicks.net
- Accept: application/json
- Authorization: Bearer <accessToken>
- Content-Type: application/json
- Body:
{
"eventName": "API Design",
"hours": 3,
"location": "Atlanta",
“categoryName” : “Education”
"startDate": “01/01/2019”,
"endDate": “01/01/2019”,
"expirationDate" : “01/01/2020”,
"instructor": "John Smith",
"description": "learn",
"profileId": 358111,
}
- Required fields are eventName, startDate, endDate, and profileId
- Dates must be in MM/DD/YYYY format. Months can be 1 or 2 digits. Day can be 1 or 2 digits. Year must be 4 digits.
- startDate must be before endDate
- CategoryName is case insensitive, category must be set up in MC Professional. For Classroom API, it is recommended to create a category named ‘Online’ in MC Professional and populate this as the category.
Sample Response
{
"timestamp": 1564419993169,
"status": 201,
"message": "Created",
"id": "119849",
"url": "https://orgid.memberclicks.net/api/v1/continuing-education/credit/119849",
"item": {
"creditId": 119849,
"eventName": "API Design",
"categoryName": "Education",
"hours": 3,
"location": "",
"startDate": “01/01/2019”,
"endDate": “01/01/2019”,
"expirationDate": “01/01/2020”,
"instructor": "John Smith",
"description": "learn",
"profileId": 358111
}
}
Location: https://orgid.memberclicks.net/api/v1/continuing-education/credit/119849
- Note: Use the creditId to upload the certificate
Upload Certificate
This resource is used to upload a certificate to an existing credit. If a certificate already exists for the credit, it will be replaced by the new certificate
Scope
Access token must have write scope
Permission
This resource is available to administrators
Request
POST /api/v1/continuing-education/credit/{{credit-id}}/certificate
- Headers:
- Host: <orgid>.memberclicks.net
- Accept: application/json
- Authorization: Bearer <accessToken>
- Content-Type: multipart/form-data
- Body:
Key: file, Value: <the file>
- Max file size is 10MB
Sample Response
{
"creditId": 88337,
"eventName": "test",
"categoryName": "Ericsson 3",
"hours": 5,
"location": "Atlanta, GA",
"startDate": “12/12/2019”,
"endDate": “12/24/2019”,
"expirationDate": “1/1/2020”,
"instructor": "test",
"description": "Let's have fun.",
"profileId": 358111
}
Get Certificate
This resource is used to get a certificate for an existing credit
Scope
Access token must have read scope
Permission
This resource is available to users
Request
GET /api/v1/continuing-education/credit/{{credit-id}}/certificate
- Headers:
- Host: <orgid>.memberclicks.net
- Authorization: Bearer <accessToken>
Sample Response
- Headers:
- Content-Disposition: attachment; filename="{{filename}}"
- Content-Type: {{file-content-type}} (such as application/pdf or image/png)
- Filename and content type are based on the original certificate upload