Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
323 views56 pages

(External) Coursera Enterprise - API Documentation

Uploaded by

Bechir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
323 views56 pages

(External) Coursera Enterprise - API Documentation

Uploaded by

Bechir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

Coursera: API documentation

Overview
As a customer of Coursera for Business/Campus/Govt, we can provide you with the ability
to seamlessly integrate our platform with your existing learning management systems (LMS
or LXP) through our APIs.

One of the fundamental building blocks of our Coursera platform is a program. A program
is an unordered grouping of multiple courses or specializations (ordered group of courses)
- curated by the organization and Coursera to offer a personalized experience to a group of
learners. This program on Coursera can also be customized with organization branding. An
organization can choose to have multiple programs and invite learners to one or many
programs - thereby giving them access to a branded and personalized learning experience
called program home.

Please find below an overview of the various integration components that we currently
support:

Single Sign-On (or SSO) allows users to pass between two systems without having to
manually type in a username and password while maintaining trust between the two
systems. It involves passing information about the user to Coursera from which Coursera
initializes an account for the user. It has numerous benefits, a few of which are outlined
below.
● Seamless Experience - When a user arrives at the Coursera program, they are
prompted to create their account. With SSO, the user can press the “Log in with XX”
button to initialize their account (if the first visit) and thereafter login with the same
button.

● User verification - This allows us to accept or reject an individual requesting access


to the enterprise program based on the email attribute passed in the SSO exchange.
We can also use the SSO exchange attributes to verify

This document does not cover our Single Sign-on configuration in detail. Please contact
your Coursera contact who will be able to provide our Single Sign-on documentation.

Content listing - This component of our C4B API suite provides high-level metadata about
an organization's active programs, along with the course and specialization content within
them. The high-level metadata provided for each course includes fields like title,
description, deep-link URL, placeholder image and course length. Dynamically pulling this
data from the Coursera platform will allow our enterprise partners to replicate their
program curriculums and course items in their LMS. The course content will always link to
the Coursera program with the deep-link URL. Course learning will always take place in the
Coursera course learning environment.

User Reporting - This component of our C4B API suite provides data on enrollments,
completions and grades. This data can be stored in the LMS alongside each learners profile.

User management - This component allows an administrator to invite a learner to a


learning program by adding their email address and external (unique) ID to the program
access list. We also provide the functionality to remove users' access from learning
programs. This will not delete the user’s account, but simply remove their access to the
sponsored enterprise program.

Skills management - This component provides APIs to allow you to list Coursera’s SkillSets
in your LMS/LXP and also provides data on your learners’ skill scores, Skillset progress, and
proficiency.
Glossary of terms

Organization An institution under which programs and contracts sit within.

Contract A grouping of licenses that programs are attached to.

Program A group of courses, hand-picked by an organization, usually


tailored to a competency map and arranged for a specific
audience, e.g. “Data Science for Practitioners”, “Digital Marketing
Foundations”, “Change Management for HR”. Programs are made
up of collections of courses.

Collections A group of courses that cluster around a theme, such as Business,


Finance, Leadership, or Data Science. Collections can be made of
individual courses or include specializations.

Course A package of videos, assessments, and quizzes. (10-20 hours long)

Specialization A group of courses arranged in a sequential series, that explore a


topic in a deeper way. The courses in a specialization are offered
from the same content provider or university.

Enrollment When a course has been registered for — if one user registers for
3 courses, then 3 enrollments are used up.

Please do not hesitate to reach out to your Coursera contact for any further clarification.
Table of contents
Overview

Glossary of terms

Table of contents

APIs
Authentication
Content Listing
Get list of programs
Get list of content in programs
Get list of curriculum collections in a program
Get course material
User Management
Check whether user is in a program
Invite user to a program
Invite multiple users to a program
Create a program membership for a user
Enroll user in a specific course or specialization
Get list of invitations in a program
Get list of memberships in a program
Delete invitation from a program
Remove membership from a program
Remove a user from all programs
User Reporting
Get member progress across an organization
Worked Example - Getting all enrollments for an organization
Get member progress across a program
Get member progress for a specific user within a program
Get member progress for individual course items
Get user enrollment state in a course or specialization
SkillSets & Skills Management
Get SkillSets in your organization
Get SkillSets in a program
Get SkillSet content recommendations
Get SkillSet progress for a single learner
Get Skills scores for a single learner (max 10 Skills)
Get Skills scores for a single skill (max 10 learners)

Single Sign-On (SSO)


APIs

Authentication
Coursera provides access to a suite of APIs that are exposed via OAuth 2.0. OAuth is an
authorization framework that allows third party applications (for example, an organization’s
learning management system) to access organization specific data and perform private
actions.

Before calling any of the APIs in this document, you need to obtain an OAuth token. The
Coursera Enterprise Services team will help you set up the OAuth client and provide you
with the necessary credentials.

To access the APIs, you will also need an orgId that is uniquely assigned to your account.
Again, the Coursera Enterprise Services team will provide you with the orgId.

Rate Limits
1. Request per service account limit: 2400/2 mins so it should never exceed 2400 requests
within 2 mins period. Block period is 5 mins.
2. Request per IP limit: 4000/3 mins. Block period is 5 mins.

Content Listing
These APIs provide high level metadata about programs, along with the course and
specialization content within them.

Get list of programs


Returns a paginated list of active learning programs created within your account.

URL
GET https://api.coursera.org/api/businesses.v1/:orgId/programs

Parameters
start Integer Optional Index of the first result to be returned. Default is
0.

limit Integer Optional Maximum number of results to be returned.


Default is 100.
Example request URL:
https://api.coursera.org/api/businesses.v1/5Y0BmCVvQ2KRdGiSGGiDEQ/programs?limit=10&start=0

Response format
200 OK
{
"elements": [
{
"id": "yePXtnxXEeaUlQqXZbuV2w",
"name": "Learning & Leadership",
"tagline": "Everyone at GlobeLand can learn to be a leader!",
"url": "https://www.coursera.org/programs/learning-and-leadership",
"contentIds": [
{
"contentId": "GdeNrll1EeSROyIACtiVvg",
"contentType": "Course"
},
{
"contentId": "Wl5ych5kEeWFIxLDnS6_kQ",
"contentType": "Course"
}
]
},
{
"id": "gQvpt4WdEeaCLQquMHJNjw",
"name": "Business Analytics",
"tagline": "Achieve fluency in business data strategies",
"url": "https://www.coursera.org/programs/cx-business-analytics",
"contentIds": [
{
"contentId": "utjeMEgmEeWJSQ6Y2aPmQQ",
"contentType": "Specialization"
}
]
}
],
"paging": {
"next": "10",
"total": 18
}
}

Fields:
id Unique identifier of the program.

name Name of the program.

tagline A phrase or short sentence that describes the program.

url The URL of the landing page of the program on Coursera. If an SSO
integration is configured with your Coursera program and you would
like to automatically attempt SSO login, you can add the
&attemptSSOLogin=true parameter to your program URL.

contentIds Identifier of courses and specializations in the program. Each content


identifier has two parts: contentId and contentType. The value of
contentID is a unique identifier for each piece of content. The value of
contentType is either “Course” or “Specialization”. The metadata of
each content item can be obtained from the content API.

paging Pagination variables. There are two parts: “next” is the index of the
first result in the next page of results, and “total” is the total number
of results. The “next” field is omitted if there are no more results
following the last one in the current response.

Get list of content in programs


Returns a paginated list of courses and specializations that are available through your
learning programs. If a program has a specialization, we also include the courses within it.

URL
GET https://api.coursera.org/api/businesses.v1/:orgId/contents

Parameters
start Integer Optional Index of the first result to be returned. Default is
0.

limit Integer Optional Maximum number of results to be returned.


Default is 100.
byProgramI String Optional Filter to only return results for a program or
ds programs. Default is all programs.

Example:
&q=byProgramIds&programIds={{program-id}},{
{program-id}}

Example request URL:


https://api.coursera.org/api/businesses.v1/5Y0BmCVvQ2KRdGiSGGiDEQ/contents?limit=10&start=0

Response format:
200 OK
{
"elements": [
{
"id": "Course~GdeNrll1EeSROyIACtiVvg",
"contentId": "GdeNrll1EeSROyIACtiVvg",
"contentType": "Course",
"slug": "learning-how-to-learn",
"name": "Learning How to Learn: Powerful mental tools to help you ...",
"description": "This course gives you easy access ...",
"instructors": [
{
"photoUrl": "https://coursera-instructor-photos...photo.jpg",
"name": "Dr. Barbara Oakley",
"title": "Ramón y Cajal Distinguished Scholar ... , McMaster University",
"department": "Professor of Engineering, ... Oakland University"
},
{
"photoUrl": "https://coursera-instructor-photos...photo.jpg",
"name": "Dr. Terrence Sejnowski",
"title": "Francis Crick Professor at the Salk Institute ...",
"department": "Computational Neurobiology Laboratory"
}
],
"partners": [
"name": "University of California, San Diego",
"logoUrl": "https://coursera-university-assets.../logo.png",
],
"programs": [
{
"contentUrl":
"https://www.coursera.org/programs/learning-and-leadership?productId=GdeNrll1EeSROy
IACtiVvg&productType=course&showMiniModal=true",
"programId": "yePXtnxXEeaUlQqXZbuV2w"
}
],
"languageCode": "en",
“subtitleLanguageCodes”: [
"ar",
"fr",
"pt-PT",
"it",
"vi",
"de",
"ru",
"es"
],
"extraMetadata": {
"definition": {
"skills": [
{
"skillName": "Cloud Computing",
"skillId": "cloud-computing"
},
{
"skillName": "Google Cloud Platform",
"skillId": "google-cloud-platform"
},
{
"skillName": "Data Analysis",
"skillId": "data-analysis"
},
{
"skillName": "Computer Networking",
"skillId": "computer-network"
},
{
"skillName": "SQL",
"skillId": "sql"
},
{
"skillName": "Finance",
"skillId": "finance"
},
{
"skillName": "Software Engineering",
"skillId": "software-engineering"
}
],
"estimatedLearningTime": 51669,
"promoPhoto": "https://coursera-course-photos...logo.png",
"domainTypes": [
{
"domain": {
"name": "Data Science",
"domainId": "data-science"
},
"subdomain": {
"name": "Data Analysis",
"subdomainId": "data-analysis"
}
},
{
"domain": {
"name": "Business",
"domainId": "business"
},
"subdomain": {
"name": "Leadership and Management",
"subdomainId": "leadership-and-management"
}
}
]
},
"typeName": "courseMetadata"
}
},
“partners”:
[
​ {
​ {
​ “name”: "Google",
​ “logoUrl”:
"https://d3njjcbhbojbot.cloudfront.net/api/utilitie
s/v1/imageproxy/http://coursera-university-assets.s
3.amazonaws.com/6b/7dddea1b364f6a816dfc53891e6d14/1
60x60_Google.png"
​ }
​ ],
​ “difficultyLevel”: "BEGINNER",
​ "name": "Google IT Support",
​ "contentId": "7lHCSlFIEeeffRIHljDI_g",
​ "description": "This 5-course certificate, developed by Google, includes
innovative curriculum designed to prepare you for an entry-level role in
IT support. A job in IT can mean in-person or remote help desk work in a
small business or at a global company like Google. The program is part
of Grow with Google, a Google initiative to help create economic
opportunity for all. Learn more. Upon completion of the certificate, you
can share your information with top employers like Cognizant, GE
Digital, Hulu, Infosys, Intel, KForce, MCPc, PNC Bank, RICOH USA,
Sprint, TEKSystems, Veterans United Home Loans, Walmart and their
subsidiaries, and of course, Google. You can also earn a CompTIA and
Google dual credential when you complete the Google certificate and pass
the CompTIA A+ certification exams. Through a mix of video lectures,
quizzes, and hands-on labs and widgets, the program will introduce you
to troubleshooting, customer service, networking, operating systems,
system administration and security. You’ll hear from Googlers with
unique backgrounds whose own foundation in IT support served as a
jumping off point for their careers. By dedicating ~5 hours a week, you
can complete in under six months. The content in the Google IT Support
Professional Certificate is licensed under a Creative Commons
Attribution 4.0 International License. Completing the program can earn
you up to 12 college credits, the equivalent of 4 associate degree-level
courses. Learn more in the FAQs below.",
​ "programs":
​ [
​ {
​ "contentUrl":
"https://www.coursera.org/programs/example-learning
-program-xfjgh?productId=7lHCSlFIEeeffRIHljDI_g&pro
ductType=s12n&showMiniModal=true",
​ “programId”: "FMf5QLeVEeistwoVRjxR6g"
​ }
​ ],
​ "id": "Specialization~7lHCSlFIEeeffRIHljDI_g",
​ "languageCode": "en",
​ "extraMetadata":
​ {
​ "typeName": "specializationMetadata",
​ "definition":
{
​ "courseIds":
​ [
​ {
​ "contentId":
"7sBiclFIEeetjQ5ppGVTyA",
​ "contentType": "Course"
​ },
​ {
​ "contentId":
"X2bX61doEeerkQ5vdwUqtA",
​ "contentType": "Course"
​ },
​ {
​ "contentId":
"bvaUWldrEeerkQ5vdwUqtA",
​ "contentType": "Course"
​ },
​ {
​ "contentId":
"hBmmv1drEeerkQ5vdwUqtA",
​ "contentType": "Course"
​ },
​ {
​ "contentId":
"lWwBiVdrEeesGQokJ1NePA",
​ "contentType": "Course"
​ },
​ {
​ "contentId":
"quF5rVdrEeesGQokJ1NePA",
​ "contentType": "Course"
​ }
​ ],
​ "tagline": "The launchpad to a career in IT"
​ }
​ },
​ "contentType": "Specialization",
​ "instructors":
​ [
​ {
​ "photoUrl":
"https://coursera-instructor-photos.s3.amazonaws.co
m/15/868c0049a911e8a11dcffe8b39d299/logo_GwG_vert_F
ullColor_cmykC_428x421px-copy.jpg",
​ "name": "Google",
​ "title": "",
​ "department": ""
​ }
​ ]
"paging": {
"next": "10",
"total": 34
}
}

Fields:
id Unique identifier of the content. It has two parts, contentType and
contentId, separated by “~”.

contentId The contentId part of the id.

contentType The contentType part of the id. There are two possible values:
“Course” or “Specialization”

name Name of the course or specialization.

description A description of the course or specialization.

slug The course URI slug associated with this course content

difficultyLevel The designated difficulty level of the course. There are three possible
values:
“BEGINNER”, “INTERMEDIATE” or “ADVANCED”

instructors The name, title, department, and photo (photoUrl) for each of the
instructors of the course or specialization.

partners The names and logos of the Coursera partners (universities and
companies) who have produced the course or specialization.

programs Programs that include this course or specialization. The contentUrl


field provides a deep link to the course.

programs > The contentUrl field provides a deep link to the course. If an SSO
contentUrl integration is configured with your Coursera program and you would
like to automatically attempt SSO login, you can add the
&attemptSSOLogin=true parameter to your contentUrl

languageCode ISO two letter language code

subtitleLanguag Array of ISO two letter language codes


eCodes

extraMetadata If the content is a specialization, this field contains the course IDs that
are in that specialization and taglines.
If the content is a course, this field contains information about
upcoming sessions of the course, a link to the course thumbnail
image (promoPhoto), a list of skills with skill id and name that it
develop (skills) and estimated learning time in seconds
(estimatedLearningTime).

skills The skills that are covered within this course

paging Pagination variables. There are two parts: “next” is the index of the
first result in the next page of results, and “total” is the total number
of results. The “next” field is omitted if there are no more results
following the last one in the current response.

Get list of curriculum collections in a program


Returns a paginated list of curriculum collections in your program.

URL
GET
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/curriculumCollectio
ns

Parameters
start Integer Optional Index of the first result to be returned. Default is
0.

limit Integer Optional Maximum number of results to be returned.


Default is 100.

Example request URL:


https://api.coursera.org/api/businesses.v1/AAF5FgTmRq2GzxwgweDj1g/programs/lJOsama
qEem20g64DwWM7A/curriculumCollections?limit=10&start=0

Response format
200 OK

{
"elements": [
{
"contents": [
{
"partners": [
{
"name": "Google Cloud",
"logoUrl":
"https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/http://coursera-universit
y-assets.s3.amazonaws.com/56/544d60f4a711e6b50cebd2a03c6e0d/cloud_logo_320x120.png"
}
],
"name": "Reliable Google Cloud Infrastructure: Design and Process",
"description": “Some description”,
"contentType": "Course",
"slug": "cloud-infrastructure-design-process",
"instructors": [
{
"photoUrl":
"https://coursera-instructor-photos.s3.amazonaws.com/c9/b2a070c36c11e68cc141fab179b5aa/Googl
e-Cloud-logo-color-850.jpg",
"name": "Google Cloud Training",
"title": "",
"department": ""
}
]
},
{
"partners": [
{
"name": "Google Cloud",
"logoUrl":
"https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/http://coursera-universit
y-assets.s3.amazonaws.com/56/544d60f4a711e6b50cebd2a03c6e0d/cloud_logo_320x120.png"
}
],
"name": "Networking in Google Cloud",
"description": "This specialization gives participants broad study of core
infrastructure and networking options on Google Cloud Platform. Through recorded lectures,
demonstrations, and hands-on labs, participants explore and deploy GCP networking
technologies, such as Google Virtual Private Cloud (VPC) networks, subnets, firewalls;
interconnection among networks; load balancing; Cloud DNS; Cloud CDN. The specialization
will also cover common network design patterns and automated deployment using Deployment
Manager.\n\nThis class is intended for the following participants:\n\n● Network Engineers
and Admins who are either using Google Cloud Platform or are planning to do so\n\n●
Individuals who want to be exposed to software-defined networking solutions in the
cloud.\n\nTo get the most out of this course, participants should have:\n\n*Prior
understanding of the OSI 7-layer model\n\n*Prior understanding of IPv4 addressing\n\n*Prior
experience with managing IPv4 routes",
"contentType": "Specialization",
"extraMetadata": {
"typeName": "specializationMetadata",
"definition": {
"courseIds": [
{
"contentId": "h9LqVq-lEeauxBIk_RF-8A",
"contentType": "Course"
},
{
"contentId": "dEWOXIntEeixGA4Edp1TqA",
"contentType": "Course"
},
{
"contentId": "UcnQ8LXsEeicHA7pKRXCQg",
"contentType": "Course"
}
],
"promoPhoto":
"https://d15cw65ipctsrr.cloudfront.net/81/0716c0b6c811e88cae95cc5edeac63/network-2.png",
"tagline": "Launch your career in Cloud Networking"
}
},
"slug": "networking-google-cloud-platform",
"instructors": [
{
"photoUrl":
"https://coursera-instructor-photos.s3.amazonaws.com/c9/b2a070c36c11e68cc141fab179b5aa/Googl
e-Cloud-logo-color-850.jpg",
"name": "Google Cloud Training",
"title": "",
"department": ""
}
]
}
],
"description": "Collection description goes here...",
"id": "lJOsamaqEem20g64DwWM7A~BXGkm",
"title": "1 person program - FULL Collection",
"collectionId": "BXGkm",
"programId": "lJOsamaqEem20g64DwWM7A"
}
],
"paging": {
"next": "2",
"total": 7
},
"linked": {}
}

Get course material


Returns a paginated list of individual course materials for a given course.
URL
GET
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/courseMaterials/:c
ourseId

Example request URL:


https://api.coursera.org/api/businesses.v1/llczQfWOQpuoaOcL0kHGSA/programs/oI7CnOo
EEemd0wpZGAM7WA/courseMaterials/daG-a-O1EeijKBISCWxf6g

Response format
200 OK

{
"elements": [
{
"id": "daG-a-O1EeijKBISCWxf6g",
"modules": [
{
"name": "What is AI?",
"id": "ze5oi",
"lessons": [
{
"name": "What is AI?",
"id": "v2asv",
"items": [
{
"itemType": "VIDEO",
"name": "Week 1 Introduction",
"deeplinkUrl":
"https://www.coursera.org/programs/qa-program-1-uznco?showMiniModal=true&attemptSSOLogin=tru
e&productType=course&productId=daG-a-O1EeijKBISCWxf6g&itemId=SRwLN",
"id": "SRwLN"
},
{
"itemType": "EXTERNAL_TOOL",
"name": "Have questions? Meet us on Discourse!",
"deeplinkUrl":
"https://www.coursera.org/programs/qa-program-1-uznco?showMiniModal=true&attemptSSOLogin=tru
e&productType=course&productId=daG-a-O1EeijKBISCWxf6g&itemId=I7aQ4",
"id": "I7aQ4"
},
{
"itemType": "QUIZ",
"name": "Week 1 Quiz",
"weightPercentage": 25,
"deeplinkUrl":
"https://www.coursera.org/programs/qa-program-1-uznco?showMiniModal=true&attemptSSOLogin=tru
e&productType=course&productId=daG-a-O1EeijKBISCWxf6g&itemId=xMfOj",
"id": "xMfOj"
}
]
}
]
},
{
"name": "Building AI Projects",
"id": "4jKrc",
"lessons": [
{
"name": "Building AI Projects",
"id": "OnoOA",
"items": [
{
"itemType": "VIDEO",
"name": "Week 2 Introduction",
"deeplinkUrl":
"https://www.coursera.org/programs/qa-program-1-uznco?showMiniModal=true&attemptSSOLogin=tru
e&productType=course&productId=daG-a-O1EeijKBISCWxf6g&itemId=fsbCO",
"id": "fsbCO"
},
{
"itemType": "VIDEO",
"name": "Workflow of a machine learning project",
"deeplinkUrl":
"https://www.coursera.org/programs/qa-program-1-uznco?showMiniModal=true&attemptSSOLogin=tru
e&productType=course&productId=daG-a-O1EeijKBISCWxf6g&itemId=z6hU1",
"id": "z6hU1"
}
]
}
]
}
]
}
],
"paging": {},
"linked": {}
}

Fields:

Course Materials

id Type: string
Description: courseId
modules Type: array of Modules
Description: an array of modules in the course (Note: the course
structure hierarchy is course -> modules -> lessons -> items)

Module
id Type: string
Description: module ID

name Type: string


Description: module name

lessons Type: array of Lessons


Description: an array of lessons in the module

Lesson
id Type: string
Description: lesson ID

name Type: string


Description: lesson name

items Type: array of Items


Description: an array of items in the lesson

Item
id Type: string
Description: item ID

name Type: string


Description: item name

itemType Type: string


Description: item type. Possible values include
VIDEO
READING
QUIZ
PEER_REVIEW
PROGRAMMING_ASSIGNMENT
EXTERNAL_TOOL
LAB
DISCUSSION
PLUGIN
ASSIGNMENT
TEAMMATE_REVIEW
DEPRECATED_OR_NOT_LAUNCHED
$UNKNOWN

NOTE: This list is subject to change as item types are added or


updated.

deeplinkUrl Type: string


Description: deep-link URL to the item (SPECIFIC TO THE
PROGRAM). It also enrolls the learner in the course if they are not
already enrolled.

weightPercentage Type: optional double


Description: The item grading weight in percentages.
e.g. 15.5% would be 15.5

prerequisiteItemId Type: optional string


Description: item ID of the prerequisite item to unlocking this item

e.g. If completion of item “abcde” is required to unlock “qwert”, “qwert”


would have a prerequisiteItemId of “abcde”.
This does NOT include implicit prerequisites (e.g. prerequisite of
“abcde”).

User Management
Before we dive into various APIs highlighting the user administration flow, it would be good
to understand the different stages a learner goes through:

1. Invited to program, either via personalized email invitation or whitelisted email


domain
2. Visits program home where they can browse the program offering. When they are
ready to join the program, they are prompted to log in (with or without SSO)
3. Post login, they are prompted to accept membership into the program
4. They can now enroll into the courses and specializations offered within the enrolled
program

Check whether user is in a program


This checks whether a user is a member of a specified program.
The external user id in the request will be set either via SSO, or added when inviting the
user.

URL
GET
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/memberships/:pro
gramId~:externalId

Response format
HTTP Code - 200 Ok if user is a member
Note that the “id” provided in the response corresponds to the composed “id” in the URL of
this request.

{
"elements": [
{
"fullName": "John Doe",
"email": "[email protected]",
"externalId": "johndoe-sample-domain-ID",
"programId": "4LVhtQQNEemZUwrw3z8SgA",
"id": "4LVhtQQNEemZUwrw3z8SgA~johndoe-sample-domain-ID",
}
],
"paging": {},
"linked": {}
}

Invite user to a program


This adds users as invitees to a program.
The external user id in the request can be an LMS / App specific identifier that can be later
used for downstream calls.
You can also trigger the invitation email to be sent automatically by specifying true for
sendEmail in the request.

URL
POST
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/invitations?contrac
tId=:contractId
Parameters
contractId String Optional Id of the specific contract to invite a learner to.
Only needed if there are multiple contracts
attached to the program.

Request object
{
"externalId": "413861904646",
"fullName": "John Doe",
"email": "[email protected]",
"sendEmail": false
}

Response format
201 Created

{
"id": "p5Zp4c0nEea0zwpn63qgwg~413861904646",
"programId": "p5Zp4c0nEea0zwpn63qgwg",
"externalId": "413861904646",
"fullName": "John Doe",
"email": "[email protected]"
}

Response format
201 Created

{
"id": "p5Zp4c0nEea0zwpn63qgwg~413861904646",
"programId": "p5Zp4c0nEea0zwpn63qgwg",
"externalId": "413861904646",
"fullName": "John Doe",
"email": "[email protected]"
}

Invite multiple users to a program


This adds multiple users as invitees to a program.
The external user id in the request can be an LMS / App specific identifier that can be later
used for downstream calls.
You can also trigger the invitation email to be sent automatically by specifying true for
sendEmail in the request.

URL
POST
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/invitations?action=
multiCreate
Parameters
contractId String Optional Id of the specific contract to invite a learner to.
Only needed if there are multiple contracts
attached to the program.

Request object
{
"Invitees":[
{
"externalId": "413861904646",
"fullName": "John Doe",
"email": "[email protected]",
},
{
"externalId": "413861904647",
"fullName": "John Doe 2",
"email": "[email protected]",
},
],
"sendEmail": false
}
Response format
200 Created

{
"programId": "p5Zp4c0nEea0zwpn63qgwg",
"successful":[
{
"invitationId": "y9OX9K8-TZGiWXKg8ZEzng"
"externalId": "413861904646",
"fullName": "John Doe",
"email": "[email protected]"
}
],
"failed":[
{
"errorCode": "INVITATION_ALREADY_EXISTS",
"message": "An active invitation already exists for [email protected] in
program _4R9y4T_EeiCTg7PxGqkyA",
"externalId": "413861904647",
"fullName": "John Doe 2",
"email": "[email protected]"
}
]
}

Create a program membership for a user


Creates a program membership for the user. Note that this will only work if the user
already has a Coursera account.

URL
POST
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/memberships

Request object
{
"fullName": "John Doe",
"email": "[email protected]",
“externalId”: “johndoe-sample-domain-ID”,
“sendWelcomeEmail”: false // Flag for sending Coursera welcome email
}

Response format
HTTP Code - 201 Created
{
"elements": [
{
"fullName": "John Doe",
"email": "[email protected]",
"externalId": "johndoe-sample-domain-ID",
"programId": "4LVhtQQNEemZUwrw3z8SgA",
"id": "4LVhtQQNEemZUwrw3z8SgA~johndoe-sample-domain-ID",

}
],
"paging": {},
"linked": {}
}

Enroll user in a specific course or specialization


Enrolls a selected user into a specific course. Note that this will only work if the user
already has a Coursera account and a current program membership.

URL
POST
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/programEnrollmen
ts

Request body - json/application

{
“externalId”: “johndoe-sample-domain-ID”, // Any string
“contentType”: “Course”, // Course or Specialization
“contentId”: “6EAVDavbEeaPvQ5eOPtN_A”, // UUID
“action”: “ENROLL” // ENROLL or UNENROLL
}

Response format
HTTP Code - 201 Created

{
"elements": [
{
"fullName": "John Doe",
"email": "[email protected]",
"externalId": "johndoe-sample-domain-ID",
"programId": "4LVhtQQNEemZUwrw3z8SgA",
"id": "4LVhtQQNEemZUwrw3z8SgA~johndoe-sample-domain-ID",

}
],
"paging": {},
"linked": {}
}

Get list of invitations in a program


Returns a paginated list of pending invitations in your program.

URL
GET https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/invitations

Parameters
start Integer Optional Index of the first result to be returned. Default is
0.

limit Integer Optional Maximum number of results to be returned.


Default is 100.
Example request URL:
https://api.coursera.org/api/businesses.v1/5Y0BmCVvQ2KRdGiSGGiDEQ/programs/p5Zp4c0nEea0z
wpn63qgwg/invitations?limit=10&start=0

Response format
200 OK

{
"elements": [
{
“createdAt”: 1602490628732,
"id": "p5Zp4c0nEea0zwpn63qgwg~413861904646",
"programId": "p5Zp4c0nEea0zwpn63qgwg",
"externalId": "413861904646",
"fullName": "John Doe",
"email": "[email protected]"
}
],
"paging": {
"next": "10",
"total": 180
}
}

Get list of memberships in a program


Returns a paginated list of accepted members in your program.

URL
GET https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/memberships

Parameters
start Integer Optional Index of the first result to be returned. Default is
0.

limit Integer Optional Maximum number of results to be returned.


Default is 100.
Example request URL:
https://api.coursera.org/api/businesses.v1/5Y0BmCVvQ2KRdGiSGGiDEQ/programs/p5Zp4c0nEea0z
wpn63qgwg/memberships?limit=10&start=0

Response format
200 OK

{
"elements": [
{
“joinedAt”: 1602490628732,
"id": "p5Zp4c0nEea0zwpn63qgwg~413861904646",
"programId": "p5Zp4c0nEea0zwpn63qgwg",
"externalId": "413861904646",
"fullName": "John Doe",
"email": "[email protected]"
}
],
"paging": {
"next": "10",
"total": 245
}
}

Delete invitation from a program


Delete a pending program invitation.

URL
DELETE
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/invitations/:progra
mId~:externalId

Response format
204 No Content
Remove member from a program
Remove a user from the program. The membership id here is the id returned by the API call
to list of memberships. The learner will need to be reinvited to rejoin the program unless
the “softDelete” parameter is “true” (more information below).

URL
DELETE
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/memberships/:pro
gramId~:externalId?softDelete=true

Parameters
softDelete Boolean Optional If set to true, allows the deleted member to
rejoin the program without the need to be
reinvited. Default is false.

Response format
204 No Content

Remove a user from all programs


Remove a user from all programs. This also revokes access to the corresponding courses /
specializations in the programs. The learner will need to be reinvited to rejoin the programs
unless the “softDelete” parameter is “true” (more information below)

URL
DELETE https://api.coursera.org/api/businesses.v1/:orgId/users/:externalId?softDelete=true

Parameters
softDelete Boolean Optional If set to true, allows the deleted member to
rejoin the program without the need to be
reinvited. Default is false.

Response format
204 No Content
User Reporting

Get member progress across an organization


Returns a paginated list of course progress summaries for all users that are managed in
your account.

Each entry in the list represents a single user’s progress for a single course. The overall
progress is a number between 0 to 100, highlighting the percentage of items completed by
the learner. It is possible for a learner to have COMPLETED a course but have overall
progress < 100, as a learner needs only to pass all graded items in order to complete a
course.

URL
GET https://api.coursera.org/api/businesses.v1/:orgId/enrollmentReports

Parameters

Parameter Type Default Description

start Integer 0 Index of the first result to be


returned.

limit Integer 100 Maximum number of results to


be returned.

includeS12n Boolean false Include S12n (Specialization)


enrollments.

q String Can be set to “byProgramId”. If


set, the request will get
enrollment across specified
program of an organization.
Need to specify parameter
“programId”.

programId String Query will return enrollments


for specified programId in this
organization.

includeDeletedMembers Boolean false If set to true, will include deleted


members.

includeExpiredContracts Boolean false Returns historical reporting data


from past contracts that have
expired.

contractIds A List of contract IDs used to


filter result data. If not supplied,
all data will be returned
unfiltered.

Please ask your Customer


Success Representative for a list
of your Contract IDs.

enrollAtBefore Long Range query filter based on


(Milliseconds) timestamp. All enrollments with
enrollAt timestamp greater than
input timestamp will be filtered
out.

enrollAtAfter Long Range query filter based on


(Milliseconds) timestamp. All enrollments with
enrollAt timestamp lower than
input timestamp will be filtered
out.

lastActivityBefore Long Range query filter based on


(Milliseconds) timestamp. All enrollments with
lastActivity timestamp greater
than input timestamp will be
filtered out.

lastActivityAfter Long Range query filter based on


(Milliseconds) timestamp. All enrollments with
lastActivity timestamp lower
than input timestamp will be
filtered out.

completedAtBefore Long Range query filter based on


(Milliseconds) timestamp. All enrollments with
completedAt timestamp greater
than input timestamp will be
filtered out.

completedAtAfter Long Range query filter based on


(Milliseconds) timestamp. All enrollments with
completedAt timestamp lower
than input timestamp will be
filtered out.
Example request URL:
https://api.coursera.org/api/businesses.v1/5Y0BmCVvQ2KRdGiSGGiDEQ/enrollmentReports?include
S12n=true&limit=10&start=0

Response format
200 OK

Data Refresh Interval (how often the data is refreshed from the Coursera portal )
4 hours

{
"elements": [
{
"approxTotalCourseHrs": 2.98,
"overallProgress": 37,
"membershipState": "MEMBER",
"contentId": "r0GnHOZaEees-Q6jQMxlrg",
"externalId": "[email protected]",
"lastActivityAt": 1569229361000,
"id": "[email protected]~dfsfsdfs~fffg",
“grade”: “0.922300033569336”,
"contentType": "Course",
"programId": "gywzv9MFEeml3w46OqZe-A",
"enrolledAt": 1568138449555,
"isCompleted": true,
"completedAt": 1568748366896,
"updatedAt" : 1568748366896,
"contentName" : "Learning how to learn",
"contentSlug" : "learning-how-to-learn-xdek",
"partnerNames" : "Deep Teaching Solutions",
"contentCertificateUrl" : "xxx",
"fullName" : "John Doe",
"email" : "[email protected]",
"programName" : "Amazing program!",
"programSlug" : "amazing-program-yahs",
"contractId" : "Aa2KcwQFEeu-4goLfKsLtQ",
"contractName" : "Learning Initiative Licenses",
"learnerProfileStandardFields" : {
"managerName" : "abcdef",
"managerEmail" : "abcdef",
"jobTitle" : "abcdef",
"jobType" : "abcdef",
"businessUnit" : "abcdef",
"businessUnit2" : "abcdef",
"locationCity" : "abcdef",
"locationRegion" : "abcdef",
"locationCountry" : "abcdef"
},
"courseType" : "Course",
"numCoursesInSpecialization" : 0
}
}
}

Fields:
id Unique identifier of the entry. It has three parts, separated by “~”:
externalId, contentType, and contentId.

externalId Unique external identifier for a user, based on SSO credentials or


manually set value when inviting learner.

contentId Unique identifier for a “Course” or a “Specialization”.

contentType The contentType will always be “Course” or “Specialization”.

isCompleted A boolean for course completion status. A course is marked as


completed when the user has finished all graded assignments.

completedAt Timestamp for user completed course


(optional)
grade Average percentage score across all graded assignments. Appears
only if ‘isCompleted’ is true

lastActivityAt Latest activity timestamp for course


(optional)

membershipState The membership state of the learner:


“MEMBER”, “DELETED_MEMBER”, “INVITED”,
“INVITED_EMAIL_NOT_VERIFIED”, “WHITELISTED”, “NOT_MEMBER”

enrolledAt Timestamp for user enrollment in the course.

overallProgress A number between 0 to 100, highlighting percentage of items


(optional) completed by the learner. This field is only present when
contentType is “Course”.

approxTotalCourse Numbers of hours that the learner has spent in the course
Hrs
(optional)

collectionId ID of the collection the learner enrolled through. This field is only
(optional) (default present when a learner enrolled in a course or a specialization
is none now) through a collection on web.

collectionName Name of the collection that corresponds to `collectionId` (see


(optional) above).

deletedAt Timestamp for membership deletion


(optional)

updatedAt Timestamp for when the record was last updated.

contentName Name of the content.

contentSlug The slug or URL-friendly version of the content name.

partnerNames Name(s) of the partner(s) associated with the content.

contentCertificateU URL to access the earned certificate.


rl

fullName The learner's full name.

email The learner's email address.

programName The name of the program.

programSlug The slug or URL-friendly version of the program name.


contractId The identifier of the contract.

contractName The name of the contract.

learnerProfileStand The “Enhanced learner profile attributes” set through the user
ardFields panel: managerName, managerEmail, jobTitle, jobType,
businessUnit, businessUnit2, locationCity, locationRegion,
locationCountry

courseType The type of course:


Course, Guided Project, Qwiklabs Project, Self-Paced Project, Short
Form Content

numCoursesInSpec The number of courses in the specialization.


ialization

paging Pagination variables. There are two parts: “next” is the index of the
first result in the next page of results, and “total” is the total
number of results. The “next” field is omitted if there are no more
results following the last one in the current response.

Example - Getting all enrollments for an organization

Request enrollments for an organization

HTTP GET

URL https://api.coursera.org/api/businesses.v1/:orgId/enrollmentReports

Note Returns a list of first 100 Course enrollments (no S12n [Specializations]) without
deleted member's progress. Default page size is 100. To fetch more see the
example below.

Request the second 100 enrollments for an organization.

HTTP GET

URL https://api.coursera.org/api/businesses.v1/:orgId/enrollmentReports?start=100&li
mit=100

Note Returns a list of Course enrollments (no S12n [Specializations]) without deleted
member's progress

Request Course and Specialization enrollments for members of an organization. Include


deleted member's enrollments as well.
HTTP GET

URL https://api.coursera.org/api/businesses.v1/:orgId/enrollmentReports?includeS12n
=true&includeDeletedMembers=true

Note Returns the first 100 member progress records. To include more modify start and
limit accordingly to fetch more

Request enrollmentReports data for multiple specific expired contracts

HTTP GET

URL https://api.coursera.org/api/rest/businesses.v1/hTxI5vWMRcW23UHPfbcsxA/enrol
lmentReports?includeExpiredContracts=true&contractIds=2o-oGwQEEeu-4goLf
KsLtQ&contractIds=Aa2KcwQFEeu-4goLfKsLtQ

Note You can add multiple Contract IDs to filter by repeating the “contractIds”
argument (contractIds=<id-1>&contractIds=<id-2>....). Returns the first 100
member progress records. To include more modify start and limit accordingly to
fetch more

Get member progress across a program


Request enrollments for all learners within a specific program

HTTP GET

URL https://api.coursera.org/api/businesses.v1/:orgId/enrollmentReports?q=byProgra
mId&programId=:programId

Note Result will include the first 100 enrollments. Results will not have enrollments
related to deleted members or specializations

Request the second 200 Course enrollments for a program

HTTP GET

URL https://api.coursera.org/api/businesses.v1/:orgId/enrollmentReports?q=byProgra
mId&programId=:programId&start=100&limit=200
Request course and specialization enrollments for all members including deleted
members of the program.

HTTP GET

URL https://api.coursera.org/api/businesses.v1/:orgId/enrollmentReports?q=byProgram
Id&programId=:programId&includeS12n=true&includeDeletedMembers=true

Get member progress for a specific user within a program


Returns a list of course progress summaries for the specified user and program within your
account.

URL
GET
https://api.coursera.org/api/businesses.v1/:orgId/enrollmentReports?q=byUserProgramId&
programId=:programId&externalId=:externalId

Parameters
programId String Required Unique identifier of the program.

externalId String Required Unique identifier of the user.

Example request URL:


https://api.coursera.org/api/businesses.v1/q73HA_cyQfOnBuybY6c2Vw/enrollmentReports?q=byUse
rProgramId&programId=Z_-MLKnKEeqG4xLgdQORFw&externalId=SU3408075

Response format
Same as the response format for the Get member progress across an organization section
above, but with the paging field empty.

Get member progress for individual course items


Retrieve course item-specific grading information with search criteria

URL
GET
https://api.coursera.org/api/businesses.v1/:orgId/courseGradebookReports?q=search

Parameters
programId String Required
courseId String Optional

emailOrExternalId String Optional

includeDeletedMembers Boolean Optional (default = false)

includeExpiredContracts Boolean Optional (default = false)

start Start token string Optional

limit Integer Optional page size (max


1000)

Example request URL:


https://api.coursera.org/api/businesses.v1/lUpg_rsjQY6z9yxRNIejBA/courseGradebookReports
?q=search&[email protected]&courseId=B8Syn4zlEeeFiQ7tViah-g

Response format
HTTP Code - 200 Ok
response body will contain a list of enrollment grade reports

{
"elements": [
{
"completedAt": 1585392590000,
"overallProgress": 72,
"approxTotalLearningHrs": 64.41,
"fullName": "Joe Doe",
"externalId": "[email protected]",
"lastActivityAt": 1585392991000,
"courseName": "Programming for Everybody (Getting Started with
Python)",
"overallCourseGrade": 96.7,
"id": "[email protected]~7A1yFTaREeWWBQrVFXqd1w",
"riskFlags": [],
"courseId": "7A1yFTaREeWWBQrVFXqd1w",
"programId": "aaaaaaaaaaaaaaa",
"itemGradebooks": [
{
"itemId": "WiLXL",
"itemName": "Chapter 1",
"itemType": "QUIZ",
"itemOrder": 1,
"isItemPassed": true,
"itemRiskFlags": [],
"itemDeadline": 1585392991000,
"moduleName": "Chapter One: Why We Program (continued)",
"lessonId": "AKJtt",
"itemGrade": 100,
"moduleId": "AWp2B",
"itemWeight": 9.17,
"lessonName": "Review: Chapter 1"
},
{
"itemId": "RqkS3",
"itemName": "Assignment: Write Hello World",
"itemType": "LTI",
"itemOrder": 2,
"isItemPassed": true,
"itemRiskFlags": [],
"moduleName": "Chapter One: Why We Program (continued)",
"lessonId": "D9XcC",
"itemGrade": 100,
"moduleId": "AWp2B",
"itemWeight": 8.26,
"lessonName": "Assignment: Chapter 1"
}
],
"enrolledAt": 1576734892000,
"isCompleted": true
}
],
"paging": {
"next": "5",
"total": 5500
},
"linked": {}
}

Fields
Id Unique identifier of the entry. It has two parts, separated by “~”:
externalId, and courseId.
fullName Full name of the learner based on the name from invitations.

externalId Unique external identifier for a user. If no external identifier is


configured, it will be email instead.

programId Unique identifier for a learning program.

courseId Unique identifier for a course.

courseName Name of a course.

isCompleted A boolean for course completion status. A course is marked as


completed when the user has finished all graded assignments.

completedAt Timestamp for user completed course


(optional)

lastActivityAt Latest activity timestamp for course


(optional)

enrolledAt Timestamp for user enrollment in the course.

overallProgress A number between 0 to 100, highlighting percentage of items


completed by the learner.

approxTotalLearningH Approximate total learning hours for this course


rs

collectionName Name of the collection the learner enrolled through. This field
(optional) is only present when a learner enrolled in a course or a
specialization through a collection on web.

deletedAt Timestamp for membership deletion


(optional)

overallCourseGrade A number between 0 to 100 which is the weighted sum of


completed graded items

currentCourseGrade A number between 0 to 100 representing the grade that the


(optional) learner has achieved so far.

itemGradebooks See below

riskFlags An array of risk flags. Possible values are: “INACTIVE”

paging Pagination variables. There are two parts: “next” is the index of
the first result in the next page of results, and “total” is the total
number of results. The “next” field is omitted if there are no
more results following the last one in the current response.
Course item fields
itemId Unique identifier for an item in a course.

itemName Name of the item

itemType Type of the course item (e.g. quiz, peerReview).


Possible values are “QUIZ”, “PEER_REVIEW”,
“STAFF_GRADED_ASSIGNMENT”,
“PROGRAMMING_ASSIGNMENT”, “DISCUSSION_PROMPT”,
“LTI”, “UNKNOWN”

itemDeadline (optional) Timestamp of the personalized item deadline for the


learner (UNIX epoch time in milliseconds)

moduleName Name of the module

moduleId Unique identifier for the module

lessonName Name of the lesson

lessonId Unique identifier for the lesson

itemWeight A number between 0 to 100.

itemOrder The order of the item within the course branch.

isItemPassed Boolean; NULL if not attempted

itemGrade A number between 0 to 100; NULL if not attempted

itemRiskFlags An array of item-level risk flags. Possible values are:


CONFIRMED_PLAGIARISM, SUSPECTED_PLAGIARISM,
FAILED_ASSIGNMENT

If a learner has failed the assignment because of


confirmed plagiarism, only CONFIRMED_PLAGIARISM is
included.

Get user enrollment state in a course or specialization


For a specific user, returns whether they are currently enrolled in a specific course
GET
https://api.coursera.org/api/businesses.v1/:orgId/programs/:programId/programEnrollments/:ext
ernal_id~:content_type~:content_id

Example request URL:


https://api.coursera.org/api/businesses.v1/q73HA_cyQfOnBuybY6c2Vw/programs/Z_-MLKnKEe
qG4xLgdQORFw/programEnrollments/SU3408075~Course~uR9ep230EeqX8gpNBtLRnw

Response format
HTTP Code - 200 Ok
Note that the “id” provided in the response corresponds to the composed “id” in the URL of
this request.

{
"elements": [
{
"contentId": "6EAVDavbEeaPvQ5eOPtN_A",
"externalId": "johndoe-sample-infosys-ID",
"state": "AVAILABLE",
"id": "johndoe-sample-infosys-ID~Course~6EAVDavbEeaPvQ5eOPtN_A",
"contentType": "Course"
}
],
"paging": {},
"linked": {}
}

SkillSets & Skills Management

Get SkillSets in your organization


Returns a paginated list of all SkillSets in an enterprise organization. Each entry in the list
represents a single SkillSet.

URL
GET https://api.coursera.org/api/rest/v1/enterprise/organizations/:orgId/skillsets

Parameters

orgId String Required Unique ID of organization used to return


SkillSets for the organization

limit Integer Optional Maximum number of results to be returned.


Default is 100.

offset Integer Optional Index of the first result to be returned. Default is


0.

Example request URL:


https://api.coursera.org/api/rest/v1/enterprise/organizations/tToSYuyVRoeaZdLBJ2LkhA/skillset
s?limit=6&offset=6

Response format
200 OK

{
"elements": [
{
"skillsetName": "Testing for Software Engineers",
"skillsetId": "IZWq3arXEeyocA7ufKX12w",
"skillsetDescription": "Testing for Software Engineers helps you to
upskill in software testing. This SkillSet provides you with content
recommendations that will allow you to excel in a single target skill for
career advancement. Move your software testing skill score from beginner to
intermediate.",
"programs": [
{
"programId": "cPivrKrTEeyIYQooRJvhxw",
"programName": "Engineering Program",
"skillsetDeeplink":
"https://www.coursera.org/programs/engineering-program-x9j9m/skillsets/test
ing-for-software-engineers-qfgzk?apiSource=enterprise_external_api_skillset
s&isExternal=true"
}
],
"skills": [
{
"skillName": "Software Testing",
"skillId": "software-testing",
"targetScore": 250
}
]
}
],
"total": 7,
"nextPage": ""
}
Fields:
skillsetName Name of the Skillset in your learning program

skillsetId Unique identifier of the SkillSet

skillsetDescription Description of the SkillSet

programs Details on the programs that contain this Skillset

programId Unique identifier for your learning program

programName Name of your learning program

skillsetDeeplink Dedicated URL for your learners to access the SkillSet from your
LMS or LXP

skills Details on the Skills gained by enrolling in the Skillset

skillName Name of Skill

skillId Unique identifier of the Skill

targetScore Skill score required to fulfill Skill score requirement towards SkillSet
progress

Get SkillSets in a program


Returns a paginated list of all SkillSets in your enterprise program. Each entry in the list
represents a single SkillSet.

URL
GET https://api.coursera.org/api/rest/v1/enterprise/programs/:programId/skillsets

Parameters

limit Integer Optional Maximum number of results to be returned.


Default is 100.

offset Integer Optional Index of the first result to be returned. Default is


0.

programId String Required Query will return SkillSets for specified


programId in this organization.

Example request URL:


https://api.coursera.org/api/rest/v1/enterprise/programs/_yQsunMZEeydlxIFI8TsBQ/skillsets?limi
t=2&offset=1

Response format
200 OK

{
"elements": [
{
"skillsetName": "Accountant",
"skillsetId": "RphzA6rTEeyocA7ufKX12w",
"skillsetDescription": "Accountant empowers you to reskill by revisiting core
accounting operations. This SkillSet refreshes your knowledge of accounting
principles and practices, spreadsheets, and data analysis tools. Choose from any of
our content recommendations in 5 target skills. Move your skill score to the next
level in accounting, communication, data analysis software, general accounting, and
spreadsheet software.",
"programId": "_yQsunMZEeydlxIFI8TsBQ",
"programName": " Learning Program",
"deeplink":
"https://www.coursera.org/programs/learning-program-itfhe/skillsets/accountant-f0sr
r?apiSource=enterprise_external_api_skillsets&isExternal=true",
"skills": [
{
"skillName": "Data Analysis Software",
"skillId": "data-analysis-software",
"targetScore": 250
},
{
"skillName": "Accounting",
"skillId": "accounting",
"targetScore": 425
},
{
"skillName": "Communication",
"skillId": "communication",
"targetScore": 250
},
{
"skillName": "Spreadsheet Software",
"skillId": "spreadsheet-software",
"targetScore": 250
},
{
"skillName": "General Accounting",
"skillId": "general-accounting",
"targetScore": 100
}
]
},

Fields:
skillsetName SkillSet as written in your learning program

skillsetId Unique identifier for a SkillSet

skillsetDescription Description of the SkillSet

programId Unique identifier for your learning program

programName Name of your learning program

deeplink Dedicated URL for your learners to access the SkillSet from your
LMS or LXP

skills Details on the Skills gained by enrolling in the Skillset

skillName Name of Skill

skillId Unique identifier of the Skill

targetScore Skill score required to fulfill Skill score requirement towards SkillSet
progress

Get SkillSet content recommendations


Returns a paginated list of all content recommendations for a skill within a SkillSet.

Each entry in the list represents a single SkillSet.

URL
GET
https://api.coursera.org/api/rest/v1/enterprise/programs/:programId/skillsets/:skillsetId/skills/:skillI
d/recommendations

Parameters
programId String Required Unique identifier of your learning program

skillsetId String Required Unique identifier of the SkillSet in your learning


program

skillId String Required Unique identifier of the Skill within a SkillSet

totalRecs Integer Required Parameter used to limit total number of course


recommendations

email String Optional Parameter used to pull learner-specific course


recommendations

Example request URL:


https://api.coursera.org/api/rest/v1/enterprise/programs/_yQsunMZEeydlxIFI8TsBQ/skillsets/IZW
q3arXEeyocA7ufKX12w/skills/software-testing/recommendations?totalRecs=2&email=rhealy@c
oursera.org

Response format
200 OK
{
"skillName": "Software Testing",
"skillId": "software-testing",
"programId": "_yQsunMZEeydlxIFI8TsBQ",
"elements": [
{
"name": "Software Development Lifecycle",
"id": "9FGXduzMEeaPUAr6dzYJCA",
"productType": "specialization",
"logo":
"https://d15cw65ipctsrr.cloudfront.net/17/6b66f0a7ea11e7a885e33e8374f520/so
ftware_development_lifecycle_logo_pexels_CC0.jpg",
"deeplink":
"https://www.coursera.org/programs/learning-program-itfhe/skillsets/testing
-for-software-engineers-qfgzk/skill/software-testing?apiSource=enterprise_e
xternal_api_skillsets&isExternal=true&showMiniModal=true&collectionId=store
dCollection~IZLEzqrXEeyo8Ao9i53Qcw&productId=9FGXduzMEeaPUAr6dzYJCA&product
Type=s12n"
},
{
"name": "Lean Software Development",
"id": "c20ET-PsEeavJhLJu8-cXg",
"productType": "course",
"logo":
"https://coursera-university-assets.s3.amazonaws.com/2e/0cd5e2383ba38999964
7887f51de4c/UofMD2D200x48transp.png",
"deeplink":
"https://www.coursera.org/programs/learning-program-itfhe/skillsets/testing
-for-software-engineers-qfgzk/skill/software-testing?apiSource=enterprise_e
xternal_api_skillsets&isExternal=true&showMiniModal=true&collectionId=store
dCollection~IZLEzqrXEeyo8Ao9i53Qcw&productId=c20ET-PsEeavJhLJu8-cXg&product
Type=course"
}
]
}

Fields:
skillName Name of the Skill within a SkillSet

skillId Unique id of the Skill within a SKillset

programId Unique id of the program of your learning program

name Name of the content recommendation

id Unique identifier of the content recommendation

productType Classification of the content recommendation. “Course” or


“Specialization”

logo Cover image of the content as displayed in Coursera

deeplink Dedicated URL for your learners to access the content from your
LMS or LXP

Get SkillSet progress for a single learner


Returns the Skillset progress of a single learner in your learning program

URL
GET
https://api.coursera.org/api/rest/v1/enterprise/programs/:programId/skillsets/learner-progress?e
mail=:email&skillsetIds=:skillsetIds

Parameters
programId String Required Unique identifier of your learning program

skillsetIds String Required Unique identifier of the SkillSet(s) in your


learning program. Use comma delimiter to
query on multiple SkillSets

email String Required Email of your learner

totalRecs Integer Optional Parameter used to limit total number of course


recommendations

limit Integer Optional Maximum number of results to be returned.


Default is 100.

offset Integer Optional Index of the first result to be returned. Default is


0.

Example request URL:


https://api.coursera.org/api/rest/v1/enterprise/programs/_yQsunMZEeydlxIFI8TsBQ/skillsets/lear
[email protected]&skillsetIds=9YIu5nMgEeyZBwrbiliZxQ&offset=0&limit
=2

Response format
200 OK

{
"learnerName": "Jerry",
"learnerEmail": "[email protected]",
"learnerExternalId": "",
"elements": [
{
"skillsetName": "Software Engineer",
"skillsetId": "9YIu5nMgEeyZBwrbiliZxQ",
"progressPercent": 38
}
],
"total": 1,
"nextPage": ""
}

Fields:
learnerName Name of learner
learnerEmail Email of learner

learnerExternalId Unique id of learner

skillsetName Name of SkillSet

skillsetId Unique identifier of SkillSet

progressPercent [0,100] range of learner’s Skillset progress. A value of 100 means


they have completed the SkillSet by hitting the required Skills score
target

Get Skills scores for a single learner (max 10 Skills)


Returns the skills scores of a single learner in your learning program

URL
GET
https://api.coursera.org/api/rest/v1/enterprise/programs/:programId/learner-skill-scores?email=:e
mail&skillIds=:skillIds

Parameters

programId String Required Unique identifier of your learning program

email String Required Email of your learner (your API call needs either
email OR external ID)

externalId String Required Unique Id of your learner (your API call needs
either email OR external ID)

skillIds Integer Required Unique identifier of Skills. Can query up to 10


skills using comma delimiter

Example request URL:


https://api.coursera.org/api/rest/v1/enterprise/programs/_yQsunMZEeydlxIFI8TsBQ/learner-skill-
[email protected]&skillIds=computer-programming,software-engineering

Response format
200 OK
{
"learnerEmail": "[email protected]",
"learnerName": "Jerry",
"externalId": "ABC123",
"elements": [
{
"skillId": "computer-programming",
"skillName": "Computer Programming",
"skillDescription": "Learn computer programming to develop software
solutions. From data and logic to software engineering, you'll be equipped for
building business applications, video games, and more.",
"skillScore": 315,
"skillProficiency": "INTERMEDIATE"
},
{
"skillId": "software-engineering",
"skillName": "Software Engineering",
"skillDescription": "Learn software engineering to build modern computer
applications. From data structures and logic to development tools and techniques,
you'll be equipped to design, develop, and maintain software.",
"skillScore": 100,
"skillProficiency": "BEGINNER"
}
]
}

Fields:
learnerName Name of learner

learnerEmail Email of learner

exernalId Unique id of learner

skillId Unique identifier of Skill

skillName Name of Skill

skillDescription Description of Skill

skillScore Learner’s Skill score for the Skill

skillProficiency Learner’s skill level. Can be one of the following values:


CONVERSANT, BEGINNER, INTERMEDIATE, ADVANCED

Get Skills scores for a single skill (max 10 learners)


Returns the Skill scores of a single skill for up to 10 learners
URL
GET
https://api.coursera.org/api/rest/v1/enterprise/programs/:programId/skills/:skillId/scores?emails=:
email&externalUserIds=:externalId

Parameters

programId String Required Unique identifier of your learning program

skillId String Required Unique identifier of a Skill

email String Required Email of your learner (your API call needs either
email OR external ID)

externalUs STring Required Unique Id of your learner (your API call needs
erIds either email OR external ID)

Example request URL:


https://api.coursera.org/api/rest/v1/enterprise/programs/_yQsunMZEeydlxIFI8TsBQ/skills/compu
ter-programming/[email protected]&externalUserIds=107480455

Response format
200 OK
{
"skillId": "computer-programming",
"skillName": "Computer Programming",
"skillDescription": "Learn computer programming to develop software
solutions. From data and logic to software engineering, you'll be equipped
for building business applications, video games, and more.",
"elements": [
{
"learnerEmail": "[email protected]",
"learnerName": "Jerry",
"externalId": "ABC123",
"skillScore": 312,
"skillProficiency": "INTERMEDIATE"
}
]
}
Fields:
learnerName Name of learner

learnerEmail Email of learner

exernalId Unique id of learner

skillId Unique identifier of Skill

skillName Name of Skill

skillDescription Description of Skill

skillScore Learner’s Skill score for the Skill

skillProficiency Learner’s skill level. Can be one of the following values:


CONVERSANT, BEGINNER, INTERMEDIATE, ADVANCED

Single Sign-On (SSO)


We provide the ability for learners in organizations to connect to Coursera using existing
credentials. For example, you can set up an integration between your LMS and Coursera
where-in users who are already authenticated in the LMS do not need to provide their login
information again when they visit Coursera.

Under the hood, SSO works by defining a common protocol between Coursera and the
third party that wants to act as the identity provider. Coursera supports SAML 2.0.

To learn more about our Single Sign-On, please see our Single Sign-On documentation. If
you have not been provided with this, please contact your Coursera contact who will be
able to provide it to you.

SSO Enabled Deeplinks


You can now append a URL parameter onto Program/Course links to automatically initiate
an IdP-initiated SSO login attempt.

See in bold below, the URL parameter ?attemptSSOLogin=true can be appended to any
Coursera for Business program URL or course deep link within the program

Program URL:
https://www.coursera.org/programs/your-program-title?attemptSSOLogin=true
Program course deep-link:
https://www.coursera.org/programs/your-program-title?authProvider=test&productId=jYd9
1UquEeWpQA4vMed_oQ&productType=course&showMiniModal=true&attemptSSOLogin
=true

NOTE: If you would like to have these above SSO parameters automatically added to your
Content URLs, please reach out to your customer success manager to enable this.

You might also like