Types and request/response models
The JSON object
type.
The JSON string
type.
The JSON number
type.
A number that does not have a fractional part.
One of the JSON values true
or false
.
A string with a date in ISO 8601 format.
A string containing a date and time in ISO 8601 format.
A string containing only the following ASCII characters:
Uppercase letters (A
-Z
)
Lowercase letters (a
-z
)
Digits (0
-9
)
+
, -
, or _
A string containing an email address. Our (non-standard) definition of an email
address is given by the following grammar:
email ::= email-char + @
email-char +
email-char ::= any character other than the following:
@
(at-sign)
(space)
\t
(horizontal tab)
\n
(new line)
\v
(vertical tab)
\f
(form feed)
\r
(carriage return)
A string having one of the following values:
A string having one of the following values:
This field indicates whether a VFO container is a trial, a paid org (active) or an expired trial. All orgs
start out as trials.
A string having one of the following values:
container
base
portal
topic
Field
Type
Description
streetAddress
string
House number and street.
extendedAddress
string
(Optional) A second line in the address.
locality
string
Name of the town, city, or other locality.
region
string
US state (e.g. "California") or other regional division within country.
postalCode
string
US or other country postal code.
countryName
string
E.g. "USA" or other country name.
A string containing a UUID produced by calling the Java method java.util.UUID.randomUUID
.
A string in the format $devKey/$name
, with an optional suffix @$version
, where devKey
is
the user key of the gadget developer, name
is the slug -format name of the gadget,
and version
is the gadget version .
A string in the format $major.$minor.$patch
, where major
, minor
, and patch
are
non-negative integers.
A string having one of the following values:
sandbox
: The gadget has been uploaded, and can be used in courses, but those courses cannot be published.
approved
: The gadget is approved for use in published courses.
rejected
: The gadget is rejected for use in published (or any) courses, and will not appear to authors.
deprecated
: A newer version of a gadget with the same developer and name has been uploaded and approved.
A string that is either a username (in slug format) or a user ID .
A string that is either a course ID or encodes a 64-bit signed integer, which is the
"internal" database ID of the course. The internal ID is still in use for historical reasons, but should
eventually be phased out.
To be valid, a value of an ID type must denote an existing object.
ID type
Base type
Additional constraints
asset
uuid
None.
asset representation
uuid
None.
bundle id
string
Parseable as a 64-bit signed integer.
course
string
An arbitrary sequence of lowercase letters (a-z) and digits (0-9). Minimum length of six characters. The intent is for the IDs to be non-sequential and therefore hard to guess.
course instance
string
Parseable as a 64-bit signed integer.
gadget instance
string
None.
gadget manifest
string
Parseable as a 64-bit signed integer.
lesson
string
None.
org
string
Parseable as a 64-bit signed integer
program
string
Parseable as a 64-bit signed integer.
session
uuid
None.
tray label
string
None.
user
string
Parseable as a 64-bit signed integer.
lock
string
Parseable as a 64-bit signed integer.
userGroupId
string
Parseable as a 64-bit signed integer.
When JSON object models are supplied in request bodies, it should be assumed that all specified fields are required, and all unspecified fields are ignored. Any differences from the default behavior should be documented in each endpoint. For JSON object models supplied in response bodies, each field will be provided unless it is undefined, again with execeptions from the rule documented on a per-endpoint basis.
Field
Type
Description
streetAddress
string
Number and street
extendedAddress
string
Apartment, suite, floor, etc.
locality
string
City, town, village, etc.
region
string
State, county, province, etc.
postalCode
string
e.g. ZIP code
countryName
string
e.g. United States of America
or USA
Field
Type
Description
id
asset ID
Unique API-generated identifier.
title
string
Asset title.
tags
array of string
A sorted sequence of labels, intended to describe the asset and be useful for categorizing it or finding it in a search.
representations
array of asset representation
Contains metadata about each specific media file that can be used to display the asset.
Field
Type
Description
id
asset representation ID
Unique API-generated identifier.
location
string
The path under which the representation's content can be found in storage.
contentType
string
The Internet media type of the representation.
original
bool
true
if the representation was uploaded by an API client; false
if the representation was generated from the original.
scale
string
The height and width of the representation in pixels, e.g. "640x480"
.
available
bool
true
if the representation is available at location
in storage; false
if is not (yet) available; and omitted if it will never be available (e.g., because video transcoding was disabled when the asset was uploaded).
Field
Type
Description
authenticator
authenticator ID
Unique API-generated identifier
role
program role
Authenticator's role within a program
Field
Type
Description
address
address
The billing address.
name
string
Name of the person or entity being billed.
phone
string
Contact phone number.
email
string
Contact email address.
A JSON object of the form {"$commandId": {"_1": $status, "_2": "$message"}}
, where
commandId
is the ID of the command that was rejected;
status
is the HTTP status code of the response;
message
is the error message provided with the response.
Field
Type
Description
authorBio
string
A description of the author(s) of the course. Omitted if not defined.
catalogs
array of string
Always contains sandbox
, because the course is always editable. Will also contain labs
if the course has been published.
courseId
course ID
Duplicate of id
.
coverImage
asset
An image representing the course. Omitted if the course does not have a cover image.
createdAt
date-time
The creation time of the course.
currentPosition
progress
Information on the user's progress in the course. If null
, the user does not have any progress (i.e., they have not started the course).
duration
string
Legacy field defining the number of seconds a session of this course would last, formatted as an integer.
id
course ID
Unique, API-generated identifier.
isEditable
boolean
Has value true
if the requesting user can edit the course; false
otherwise.
longDesc
string
A paragraph or longer description of the course. Omitted if not defined.
org
org
Information about the course's org, if it belongs to one. Otherwise omitted.
palette
array of gadget manifest
The manifests of all gadget instances in the course.
programId
program ID
The ID of the program the course belongs to.
public
boolean
Whether or not the course is in a public program.
revision
course revision
Omitted if the course state does not correspond to a saved revision. Has value null
if the course sandbox is published (legacy publishing). Otherwise, the value is an object describing what revision the course state corresponds to.
shortDesc
string
A summary statement of the course. Omitted if not defined.
status
string
Has the value complete
if the requesting user has finished the course. Omitted otherwise.
tags
array of string
Tags associated with the course, ordered lexicographically.
title
string
The title of the course. Omitted if the course doesn't have a title.
theme
theme revision
The theme revision assigned for the course. Optional.
themeId
theme ID
The ID of theme to be assigned for the course. Optional.
users
array of course publisher
The users with publishing rights for the course.
vfo
array of response org
The list of VFO orgs where the course is shared (possibly, an empty list).
isBlendedCover
boolean
coverColor
string
html color value: from #000
to #fff
and from #000000
to #ffffff
, case insensitive
containerId
org ID
VFO container Id for a course, if it belongs to one
settings
object
Any valid JSON object.
A base course extended with the following fields:
Field
Type
Description
assetUrlTemplate
string
Provides a template which, when an asset ID is substituted into it, produces a URL where that asset's content can be retrieved. This allows clients to not have to know where assets are stored; they can determine the location using this field.
isTracked
boolean
Whether or not the user is tracked in the course's program.
isBlocked
boolean
Whether or not completion of the course is blocked, e.g., by a quiz that must be passed to proceed.
lessons
array of lesson
The lessons of the course, in order.
lastPublished
date-time
Timestamp of the recent revision publishing.
A base course extended with the following fields:
Field
Type
Description
authors
array of course author
Information on each author of the course.
Field
Type
Description
id
user ID
The user ID of the course author.
A response user object with only the fields username
, fn
, fullName
, image
, and
the following extra field:
Field
Type
Description
permissions
array of string
An array, either empty or containing the single element PublishCourses
.
JSON object representation of the most recent revision for specific theme ID.
Field
Type
Description
themeId
theme ID
Theme ID
revisionId
theme revision ID
Revision ID. Most recent for specific theme ID.
Field
Type
Description
courseId
course ID
A new revision was created for this course.
revisionId
course instance ID
Unique, API-generated identifier for the new course revision.
Course grade statistics response
Course grade statistics quiz response
Field
Type
Description
name
boolean
Name of the quiz-like gadget.
title
string
The title of the quiz-like gadget. (The title
attribute of the gadget's config.)
learners
integer
The number of tracked learners who submitted any responses for this gadget.
avg_score
number
Average score, between 0 and 1, over all tracked learners who submitted any responses to this gadget.
Course user quiz grade response
Field
Type
Description
id
string
Gadget instance ID in the course.
name
boolean
Name of the quiz-like gadget.
title
string
The title of the quiz-like gadget. (The title
attribute of the gadget's config.)
score
number
Score, between 0 and 1, computed for this gadget.
Course user data response
Field
Type
Description
id
user ID
User ID
email
string
User's email
title
string
Title of the course
lastActivity
date-time
Timestamp of last activity of the user in the course
courseCompleted
boolean
True if course was completed
currentLessonId
lesson ID
Last visited lesson's ID
lastSurveyCompleted
string
Title of the last survey completed (if applicable)
Course user update request
Field
Type
Description
tracked
boolean
(Optional) Set the user to tracked or not tracked for the given course
roles
Array of string
(Optional) Set the user's roles in the given course. Allowed roles: "author"
, "contributor"
, "publisher"
. One or more roles can be specified.
Course user update response
A Course user update request augmented with the following fields:
Field
Type
Description
user
Response user
User whose permission information was requested.
Note that the "publisher" role subsumes the "author" role, and the "author" role is listed only if "publisher" is not present.
Field
Type
Description
tracked
boolean
(Optional) Set the user to tracked or not tracked for the given course
roles
Array of string
(Optional) Set the user's roles in the given course. Allowed roles: "author"
, "contributor"
, "publisher"
. One or more roles can be specified.
Field
Type
Description
completed
boolean
Whether the user has completed the course.
currentPosition
progress
Information on the user's progress in the course. If null
, the user does not have any progress (i.e., they have not started the course).
cumulativeGrade
number
Cumulative grade of the user in the course.
Course userstate response
Field
Type
Description
currentPosition
progress
Information on the user's progress in the course. If null
, the user does not have any progress (i.e., they have not started the course).
userstates
map from gadget instance ID s to gadget user state s
The cumulative grade is a floating-point number between 0 and 1, rounded to 2 digits after the decimal point.
This is the score achieved by the user in the course, counting all quiz-like gadgets in the course.
Quiz-like gadgets are gadgets complying with the Quiz 1.0 API.
Currently these gadgets are whitelisted in the code (see CourseEndpoints.scala
, in the class GetCourseStatistics
, the value allowedGadgetNames
) as quiz
, am-sample-quiz
(used in tests only), critical-reading
, math
, writing
.
The cumulative grade is computed by finding all quiz-like gadgets in the course, grading each one on the scale between 0 and 1 (so all quiz-like gadgets have equal weight). All these gadget scores are added and divided by the total number of quiz-like gadgets in the course. So, the cumulative grade is 1.0 only if the user has achieved 100% on each quiz-like gadget in the course.
If the user never submitted a quiz, the grade is 0 for that quiz. The cumulative grade is also 0 if there are no quiz-like gadgets in the course.
This response applies to quiz-like gadgets.
Field
Type
Description
user
{"id": user ID }
The user's id
grade
number
Grade for that user
Field
Type
Description
key
String
The feature key name
isEnabled
Boolean
config
String
Optional configuration data for the feature
Here are the features currently known to the API:
disassociateCourseIdWithCommandId
enforceIncrementalGadgetVersions
gadgetApproval
restrictUpdateCourseUser
superadminPutCourse
usernames
validateGadgetPalette
autoEnrollCourses
Use the update features endpoint to create a new feature name.
autoEnrollCourses
takes a comma-separated list of course keys as its config
value. For example: "crs123","crs456".
Other features do not use the config field.
An arbitrary JSON object that defines the appearance and behavior of a gadget instance in a course. There
is no spec for it because each gadget stores different data in it.
Field
Type
Description
config
gadget config
The configuration of the gadget instance.
type
gadget type
The gadget type that the instance derives from.
This is used to insert a new gadget into a lesson.
Contains all of the fields in base gadget instance , plus the following:
Field
Type
Description
index
integer
(Optional) The zero-based index at which to insert the gadgets into the lesson. Default is to add to the end of lesson.
This is used to insert many new gadgets at once into a lesson.
Field
Type
Description
index
integer
(Optional) The zero-based index at which to insert the gadgets into the lesson. Default is to add to the end of lesson.
gadgets
Array of base gadget instance
Contains all of the fields in base gadget instance ,
plus the following:
Field
Type
Description
id
gadget instance ID
Gadget instance identifier. Must be unique within the instance's lesson, but it is not required to be globally unique. Can be specified by the user in certain cases.
userState
gadget user state
The user state of the gadget instance, for a particular user.
Field
Type
Description
author
string
Name of the gadget's author. (Optional.)
documentationUrl
string
URL for a tutorial document explaining the usage of the gadget. (Optional.)
defaultConfig
gadget config
Config to use when an instance of the gadget is added to a course.
description
string
Description of the gadget.
exampleUrl
string
URL for a brief demonstration of the gadget. (Optional.)
exec
string
How gadget logic is executed on the server, if applicable. (Optional.)
id
gadget manifest ID
Unique, API-generated identifier.
latestVersion
gadget version
The highest approved version out of all gadget manifests having the same developer user and gadget name.
launcher
string
Used only by the frontend. Admissible values include "iframe" and "react". (Optional.)
name
slug
Name of the gadget. A developer can upload multiple gadgets related by name, but having different versions.
noToggleSwitch
boolean
Used only by the frontend.
noAudioRecorder
boolean
Used only by the frontend.
noAudioPlayer
boolean
Used only by the frontend.
private
array of string
Names of gadget config fields that should only be seen by authors, e.g. a quiz answer key. The fields will be removed from gadget configs before sending them to learners.
responsive
boolean
Indicates whether the gadget supports responsive (mobile) display. Defaults to false.
status
gadget status
Modifiable properties of the gadget.
title
string
Display name of the gadget.
username
string
The developer's username if it exists, otherwise their user ID.
version
gadget version
The version number of the gadget.
baseUrl
string
The base URL of the gadget project.
Note: baseUrl
is a computed field, that is, the gadget author does not need to specify it when uploading a gadget, and if specified, this field will be ignored during upload. The platform will compute this URL when fetching the gadget manifest. An example value is /gadgets/versal/slideshow-iframe/0.2.4/
Field
Type
Description
catalog
gadget catalog
The lifecycle state of the gadget.
hidden
boolean
Whether or not the gadget is hidden from the user interface.
An arbitrary JSON object that stores any persistent state of a user's interaction with a gadget instance. There
is no spec for it because each gadget stores different data in it.
Field
Type
Description
gadgets
array of gadget instance response
The gadget instances in the lesson, in order of appearance.
id
lesson ID
Lesson identifier. Must be unique within the course instance, but it is not required to be globally unique. Can be specified by the user in certain cases.
isAccessible
boolean
Whether or not the lesson can be viewed, due to blocking from e.g. a quiz that must be passed to proceed. Lessons after a blocked lesson are not accessible.
title
string
The lesson title.
Field
Type
Description
address
address
The mailing address of the org. Omitted if not defined.
billing
billing contact
Contact information for billing the org. Omitted if not defined.
id
org ID
Unique, API-generated identifier.
image
asset
Asset metadata for the image representing the org. Omitted if not defined.
title
string
Word or short phrase naming or describing the org. Omitted if not defined.
orgName
slug
A unique, human-readable user identifier. It is used in the type strings of gadgets created by the org in place of the org ID, if defined.
users
array of org member
Contains one element for each user belonging to the org.
Field
Type
Description
user
user
The user belonging to the org.
roles
array of org role
The user's roles in the org.
Field
Type
Description
roles
array of org role
The user's roles in the org.
Field
Type
Description
currentLesson
integer
One-based index of the lesson in the most recent progress update .
lastLesson
integer
One-based index given by currentLesson
before the most recent progress update.
currentLessonId
string
Lesson ID of the current lesson in the most recent progress update .
visitedRevisionId
course instance ID
The ID of the last visited course revision.
maxLessonId
string
The ID of the highest-indexed lesson the learner has visited in the course.
availableLessonCount
integer
Total number of lessons available in the last visited course revision.
updatedAt
date-time
Date and time of the most recent progress update.
Field
Type
Description
lessonIndex
integer
DEPRECATED One-based index of the lesson that the learner has reached. (Optional, deprecated.)
currentLesson
integer
DEPRECATED One-based index of the lesson that the learner has reached. (Optional, deprecated.)
currentLessonId
string
Lesson ID of the lesson that the learner has reached. (Optional until transition to new site code.)
When this data is used as request body for updating the progress information,
one or both of lessonIndex
or currentLessonId
may be specified. If currentLessonId
is specified, lessonIndex
is ignored.
When this data is used as response for fetching the progress information, all three fields will be reported (for compatibility).
Field
Type
Description
displaySection
slug
Learner current page in standalone player
currentLessonId
string
Lesson ID of the lesson that the learner has reached. (Required if displaySection
value is LESSON
)
When this data is used as request body for updating the progress information. If displaySection
is not equal LESSON
, currentLessonId
is ignored.
Field
Type
Description
userId
user ID
The session user.
email
email
The email address of the session user.
expiresIn
number
DEPRECATED - HAS NO EFFECT The duration of the session, in milliseconds. Must be a non-negative integer.
Field
Type
Description
sessionId
session ID
Unique, API-generated identifier.
user
response user
The owner of the session.
Response session information
Field
Type
Description
sessionType
string
Self-explanatory. It is one of the following values: PartnerKey
, InternalIntegrationKey
, LegacyAuthenticator
, VFOAccessKey
, VFOUserSession
, PlainUserSession
.
userId
user ID
The session user if user session. Otherwise not present.
vfoRootOrgId
org ID
ID of the VFO org if VFO session. Otherwise not present.
isVFOContainerLocked
boolean
Self-explanatory.
Field
Type
Description
type
string
Self-explanatory. It currently has a single allowed value, VersalPro
.
Using an object instead of a string leaves room for adding more fields in the future.
Field
Type
Description
username
slug
A unique, human-readable user identifier. It is used in the type strings of gadgets created by the user in place of their user ID, if defined.
email
email
Unique email address.
firstname
string
Given name.
lastname
string
Family name.
fullname
string
Full name.
fn
string
Alternate full name.
displayname
string
Formatted display name chosen from user's non-null name fields. Display name is chosen in the following order: fullName
, fn
, firstName + " " + lastName
, firstName
, lastName
, "Unknown"
company
string
Legacy field.
country
string
Legacy field.
location
string
Place of residence.
longDesc
string
A paragraph about the user.
name
string
Legacy field.
newsletter
string
Legacy field.
newsletter_lang
string
Legacy field.
registered
boolean
Legacy field.
shortDesc
string
A brief statement about the user.
state
string
Legacy field.
usage
string
Legacy field.
website
string
The URL of the user's website.
zip
string
Legacy field.
A base user extended with the following fields:
Field
Type
Description
id
user ID
Unique API-generated identifier.
image
asset
Profile image asset metadata.
orgs
array of org
Orgs the user belongs to.
subscriptions
array of subscription
Subscriptions granted to the user.
marketingRoles
marketing roles
Marketing roles of the user.
A set of fields, which describe user roles:
Field
Type
Description
isAdmin
boolean
If user has AdministerOrg
permission in at least one org.
isInstructor
boolean
If user has TeachCourses
permission without AdministerOrg
in at least one org.
isLearner
boolean
If user is enrolled in at least one course, but he is not administrator, instructor, nor course editor.
Text, not JSON. An example:
project: rest-api
version: 0.110.3
git hash: 27e80d2
built: 10 Feb 2015 16:42:14 PST
tag: rapi6
Field
Type
Description
passed
boolean
true
if single check passed.
details
Any
Optional details of why the single check passed or failed.
Field
Type
Description
label
slug
Tray ID
title
string
Human-readable title of the tray.
public
boolean
(Optional, default = false) Whether the tray is public (can be read by other users).
Field
Type
Description
title
string
Human-readable title of the tray.
bundles
array of bundle item responses
An ordered collection of bundle items that exist in the tray.
Field
Type
Description
id
bundle ID
ID of the bundle.
title
string
(Optional) A short title of the bundle.
icon
string
(Optional) The bundle's icon URL.
provider_id
string
(Optional) The ID of this bundle as given by the bundle's provider.
gadgets
array of base gadget instance
An ordered collection of gadget items in the bundle.
manifests
array of gadget manifest
A set of manifests for all gadget items in the bundle, sorted by gadget type.
Bundle item metadata request
Field
Type
Description
title
string
(Optional) A short title of the bundle.
icon
string
(Optional) The bundle's icon URL.
Field
Type
Description
index
integer
(Optional, default = 0) Zero-based index at which a new bundle must be inserted into a tray.
title
string
(Optional) A short title of the bundle.
icon
string
(Optional) The bundle's icon URL.
provider_id
string
(Optional) The ID of this bundle as given by the bundle's provider.
gadgets
array of base gadget instance
An ordered collection of gadget items in the new bundle.
Versal For Organizations (VFO)
Field
Type
Description
name
string
(Optional) A short name of the org.
status
org status
(Optional) Org Status
website
string
(Optional) Website
location
string
(Optional) Location
image
asset
(Optional) Asset metadata for the image representing the org. When creating org, the asset can contain only the asset id.
location
location data
(Optional) Organization's geographical location.
website
string
(Optional) The org's website URL.
Field
Type
Description
name
string
(Optional) A short name of the org.
image_id
asset ID
(Optional) Unique API-generated identifier for the org image (obtained from the API after uploading an image asset).
location
location data
(Optional) Organization's geographical location.
website
string
(Optional) The org's website URL.
Base org extended with the following fields:
Field
Type
Description
id
org ID
ID of the org.
parentId
org ID
ID of the org's parent
containerId
org ID
ID of the org's container
orgType
org type
settings
object
Any valid JSON object.
Field
Type
Description
orgStatus
org status
New value for org status
Org Status Response Model
Field
Type
Description
orgId
org ID
ID of the org
orgStatus
org status
New value for org status
Field
Type
Description
isPortalEnabled
boolean
Does this org have org portals?
defaultOrgPortalId
org ID
ID of the default org portal
providers
Array of String
(Optional) Org Portal providers
learnerTrackingMethod
string
(Optional) Valid values - per-course
or org-wide
; defaults to org-wide
defaultThemeId
theme ID
(Optional) Theme ID.
settings
object
Any valid JSON object.
Field
Type
Description
courseKey
course id
Course Key
newIndex
integer
1 based index - new position
Field
Type
Description
isSSOEnabled
boolean
Is SSO enabled for the organization?
ssoMethod
string
(Optional) SSO Method. Mandatory if isSSOEnabled
is set to true
ssoDetails
model
(Optional) SSO details. Mandatory if isSSOEnabled
is set to true
.
Configure SSO details.
SAML config
Field
Type
Description
samlIdpEntityId
string
Entity ID at the IDP for this SAML integration
samlIdpUrl
string
URL for the IDP
samlAssertionIsSigned
boolean
Does the IDP sign assertions?
samlRequestIsSigned
boolean
Does the IDP sign requests?
samlNameIDFormat
string
Format of the user ID we receive from the IDP. Acceptable values: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
, "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
samlJITProvisioningEnabled
boolean
If true
, when we receive a valid SSO request a user will be created automatically if one does not already exist. Mutually exclusive with samlScimEnabled
samlUserDataDictionary
Map(string , string )
Maps properties of our User model to properties received from the IDP. Valid keys: "GIVEN_NAME", "FAMILY_NAME", "FULL_NAME". Required if samlJITProvisioningEnabled
is true.
samlScimEnabled
boolean
If false
, SCIM endpoints will be unavailable for org. Defaults to false
. Mutually exclusive with samlJITProvisioningEnabled
Field
Type
Description
id
boolean
Certificate ID.
certificateType
string
Certificate Type. Only PEM for now.
expirationDate
model
Certificate expiration date.
Field
Type
Description
name
string
(Mandatory) name - maximum 80 characters.
description
Topic
(Optional) topic description.
settings
object
Any valid JSON object.
Field
Type
Description
id
org ID
ID of the org. Present in responses. Ignored in requests.
name
string
(Mandatory) Topic name - maximum 40 characters.
description
string
(Mandatory) Free description string.
coursesCount
integer
(Optional) number of courses associated with topic.
settings
object
Any valid JSON object.
Field
Type
Description
id
org ID
ID of the org. Present in responses. Ignored in requests.
name
string
(Mandatory) Topic name - maximum 40 characters.
description
string
(Mandatory) Free description string.
topics
List(topics)(#org-topic-tree)
The recursive list of subtopics.
Field
Type
Description
name
string
(Optional) Topic name - maximum 80 characters.
description
string
(Optional) Free description string.
settings
object
Any valid JSON object.
Field
Type
Description
orgId
org ID
ID of the org.
name
string
(Mandatory) Portal name - maximum 80 characters.
description
string
(Mandatory) Free description string.
isPublic
boolean
(Mandatory) Indicator whether portal is public.
selfProvisioningEnabled
boolean
(Mandatory) Indicator whether self provisioning is enabled for public portal.
anonymousAccessEnabled
boolean
(Mandatory) Indicator whether anonymous (i.e. unknown signed in user) can access.
allCoursesViewEnabled
boolean
(Mandatory) Indicator whether portal is turn on or off
enabled
boolean
(Mandatory)
brandImage
Asset
(Updated separately)
settings
object
Any valid JSON object.
Field
Type
Description
name
string
(Mandatory) name - maximum 80 characters.
description
string
(Optional) Free description string.
isPublic
boolean
(Mandatory) Indicator whether portal is public.
selfProvisioningEnabled
boolean
(Optional) Indicator whether self provisioning is enabled for public portal. Defaults to false.
anonymousAccessEnabled
boolean
(Mandatory) Indicator whether anonymous (i.e. unknown signed in user) can access.
allCoursesViewEnabled
boolean
(Optional) Indicator whether for enabling/disabling all topics page in portals UI. Defaults to false.
enabled
boolean
(Optional) Indicator whether portal is turn on or off. Defaults to true.
settings
object
Any valid JSON object.
Field
Type
Description
name
string
(Optional) Portal name - maximum 80 characters.
description
string
(Optional) Free description string.
isPublic
boolean
(Optional) Indicator whether portal is public (default is false
).
selfProvisioningEnabled
boolean
(Optional) Indicator whether self provisioning is enabled for public portal. Defaults to false.
anonymousAccessEnabled
boolean
(Mandatory) Indicator whether anonymous (i.e. unknown signed in user) can access.
allCoursesViewEnabled
boolean
(Optional) Indicator whether for enabling/disabling all topics page in portals UI. Defaults to false.
enabled
boolean
(Optional) Indicator whether portal is turn on or off. Defaults to true.
settings
object
Any valid JSON object.
Field
Type
Description
id
user ID
Unique API-generated identifier.
name
string
(Optional) user name.
email
string
(Optional) email address.
bio
string
(Optional) user bio.
image
assets
(Optional) user image.
Field
Type
Description
courseId
Course Key
Unique API-generated identifier.
authors
array of users
course authors
image
array of assets
(Optional)
title
string
course title
isAuthor
boolean
Has value true
if the requesting user is author of the course; false
otherwise.
updated
integer
last edit timestamp
created
integer
creation time timestamp
longDesc
string
(Optional) Course long description
shortDesc
string
(Optional) Course short description
tags
array of string
Course tags
isBookmarked
boolean
Has value true
if the requesting user bookmarked thiscourse; false
otherwise.
Response org extended with the following fields` |
Field
Type
Description
permissions
array of string
A non-empty array, currently supported VFO permissions include AdministerOrg
and TeachCourses
.
orgs
array of org tree
(Optional) The org's child orgs if they exist.
Field
Type
Description
userId
user ID
(Optional) The user for whom a session is requested.
email
email
The email address of the user for whom a session is requested.
expiresIn
number
(Optional) The initial duration of the session, in milliseconds. Must be a non-negative integer.
Field
Type
Description
sessionId
session ID
Unique, API-generated identifier.
userId
user ID
The user to whom the session belongs.
expiresIn
number
The initial duration of the session, in milliseconds.
Field
Type
Description
permissions
array of string
A non-empty array, currently supported VFO permissions include AdministerOrg
TeachCourses
, and LearnCourses
.
Response VFO user permissions
Field
Type
Description
id
user ID
Unique API-generated identifier.
username
slug
A unique, human-readable user identifier. It is used in the type strings of gadgets created by the user in place of their user ID, if defined.
email
email
Unique email address.
fullname
string
Alternate full name.
displayname
string
Formatted display name chosen from user's non-null name fields. Display name is chosen in the following order: fullName
, fn
, firstName + " " + lastName
, firstName
, lastName
, "Unknown"
Field
Type
Description
orgId
org ID
ID of the org.
permissions
array of string
A non-empty array, currently supported VFO permissions include AdministerOrg
and TeachCourses
.
Field
Type
Description
id
course ID
Course id for the course being moved.
Field
Type
Description
courses
array of VFO move course data
A possibly empty array of course data for courses that need to be moved.
VFO single sign-on (SSO) authorization request input model
Field
Type
Description
method
string
Single sign-on method. Accepted values: "SAML"
resource
string
URL for the protected page or resource the end user is trying to access
VFO single sign-on (SSO) authorization request response model
Field
Type
Description
SAMLRequest
string
Base64-encoded XML document
destination
string
URL for the Identity Provider's SSO request endpoint
VFO single sign-on (SSO) session request input model
method
| string | Single sign-on method. Accepted values: "SAML"
data
| object | Varies according to SSO method. Accepted shapes: {"SAMLResponse":string}
VFO single sign-on (SSO) session request response model
Field
Type
Description
resource
string
URL for the protected page or resource the end user is trying to access
session
VFO Session
The created VFO session
Field
Type
Description
name
string
User group name - maximum 40 characters.
Field
Type
Description
id
user group ID
Unique API-generated identifier.
name
string
User group name - maximum 40 characters.
Get Course Permissions Legacy View Model
Field
Type
description
permissions
array of string
The course permissions for specified session for the specified course
Get Course Permissions New View Model
Field
Type
description
coursePermissions
Map from string to Set of string
Map of course key to set of course permissions for specified session for that course
Get Org Permissions View Model
Field
Type
description
orgPermissions
Map from string to Set of string
Map of stringified org ids to set of VFO org permissions for specified session for that org
The body for the learners report generation request
Field
Type
description
courses
List(courses)(#course-key)
List of course keys containing one and only one course key
The body for the course completion report generation request
Field
Type
description
startDate
date
A start date for a report
endDate
date
An end date for a report
Learner class (also in course details response)
Field
Type
Description
courseId
course ID
Course ID
userId
user ID
User ID
linkMode
string
"course" OR "overview"
class
class
class properties
parent
parent
parent properties
provider
provider
provider properties
Field
Type
Description
id
string
class id
title
string
class title
description
string
class description
startDate
date-time
class start date
Field
Type
Description
url
string
parent url
`title'
string
parent title
Field
Type
Description
id
string
provider id
name
string
provider name
Field
Type
Description
type
string
Resource type. For now, only gadget
is acceptable.
subject
lock subject
Resource lock subject. For now, only gadgets can be locked.
Field
Type
Description
type
string
Resource type. For now, it's always gadget
.
subject
lock subject
Resource lock subject. For now, only gadgets can be locked.
ownerId
user ID
Lock owner. Only the owner can perform updates on the locked resource.
expiresIn
integer
Number of milliseconds after which the lock will be released.
Field
Type
Description
ownerType
string
Mandatory when creating new theme. Ignored when updating. Owner type. Currently only VFO_ORG
is supported.
ownerId
org_ID
Mandatory when creating new theme. Ignored when updating. Currently always the Org ID.
theme
theme object
Mandatory. Theme object.
An arbitrary JSON object that stores any theme attributes. There is no spec for this object.
Field
Type
Description
token
string
token value
expiryDate
date-time
token expiry date
SCIM get users response is defined by RFC-7644
and RFC-643
.
Field
Type
Description
schemas
string
["urn:ietf:params:scim:api:messages:2.0:ListResponse"]
totalResults
integer
startIndex
integer
The 1-based index of the first result in the current set of list results. REQUIRED when partial results are returned due to pagination.
itemsPerPage
integer
The number of resources returned in a list response page. REQUIRED when partial results are returned due to pagination.
Resources
Array of users
Create SCIM user response is defined by RFC-7644
and RFC-7643
.
Field
Type
Description
schemas
string
["urn:ietf:params:scim:schames:core:2.0:User"]
userName
email
user email
externalId
string
Optional user id from external system
name
SCIM user name
user name
Create SCIM user response
Create SCIM user response is defined by RFC-7644
and RFC-7643
.
The URI of the created user is included in the HTTP Location
header and in meta.location
field
Field
Type
Description
location
string
URL to the newly created user
Get SCIM user response is defined by RFC-7644
and RFC-7643
.
Replace SCIM user request
Replace SCIM user response is defined by RFC-7644
and RFC-7643
.
Field
Type
Description
schemas
string
["urn:ietf:params:scim:schames:core:2.0:User"]
userName
email
user email
name
SCIM user name
user name
Patch SCIM user response is defined by RFC-7644
.
Field
Type
Description
schemas
string
["urn:ietf:params:scim:schames:core:2.0:PatchOp"]
Operations
SCIM patch operation
Array of operations to be applied
Field
Type
Description
op
string
Type of operation. One of add
, remove
, replace
. Case insensitive.
path
string
Path to the value that is being changed. Currently supported: userName
, name.givenName
, name.familyName
, name.formatted
.
value
array
Array of single object with the single property value
inside.
Replace SCIM user response
Replace SCIM user response is defined by RFC-7644
and RFC-7643
.
The URI of the replaced user is included in the HTTP Location
header and in meta.location
field
Org portal search response
Field
Type
Description
orgId
org ID
ID of the org.
defaultOrgPortal
Org Portal
Object representing the default portal
Org portal domain name update
Field
Type
Description
subdomain
String
(Mandatory) New portal subdomain
Text representing valid JSON.
Field
Type
Description
overrides
string
Text representing valid JSON.