SECTIONS

Groups

Create a group

POST /v1/groups

Request

Name Type Required Description
name String   Name of the group

Example

{
    "name": "Learners"
}

Response

Name Type Description
group Object The data object of the group
group.id Number Group ID
group.name String Name of the group
group.usersCount Number The number of users in the group
group.coursesCount Number The number of courses for which the assigned group
group.attributes Array Custom fields, an array of objects
group.attributes[name].Type String Type of the custom attribute
group.attributes[name].value String Value of the custom field as stored in database
group.attributes[name].text String Textual interpretation of the value

Example

{
    "group": {
        "id": 1,
        "name": "Learners",
        "usersCount": 4,
		"attributes": {
			"group-custom-field-name": {
				"type": "text",
				"value": "Textual information for the group custom field value",
				"text": "Textual information for the group custom field value"
			}
		},
        "coursesCount": 1
    }
}

Edit group information

PATCH /v1/groups/:groupId

 

Request

Name Type Required Description
:groupId Number   Group ID
name String   Name of the group
attributes Array   Custom fields, an array of objects
attributes[name].value String   Value of the custom field as stored in database

Example

{
	"name": "The Bears",
	"attributes":{
		"group-custom-field-name": "Little Brown Bear"
		}
}

 

Delete a group

DELETE /v1/groups/:groupId

Request

Name Type Required Description
:groupId Number Group ID    

Get a list of groups

GET /v1/groups?offset=:offset

Request

Name Type Required Description
:offset Number   to obtain the following list of courses

Response

Name Type Description
groups Array The list of assigned groups
groups[0].id Number Group ID
groups[0].name String Name of the group
groups[0].usersCount Number The number of users in the group
groups[0].coursesCount Number The number of courses for which the assigned group
groups[0].image Array The cover is of group different angles
groups[0].image.original String The cover of user size original
groups[0].image.xSmall String The cover of user size 36x36
groups[0].image.small String The cover of user size 250x100
groups[0].attributes Array Custom fields, an array of objects
groups[0].attributes[name].type String Type of the custom attribute
groups[0].attributes[name].value String Value of the custom field as stored in database
groups[0].attributes[name].text String Textual interpretation of the value
totalCount Number The total number of assignments
Example
{
  "groups": [
    {
      "id": 1,
      "name": "Learners",
      "usersCount": 4,
      "coursesCount": 1,
	  "attributes": {
		"group-custom-field-name": {
			"type": "text",
			"value": "Textual information for the group custom field value",
			"text": "Textual information for the group custom field value"
		}
	  },
      "image": {
        "original": "http://static.geen.io/o/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
        "xSmall": "http://static.geen.io/111/36x36/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
        "small": "http://static.geen.io/111/250x100/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg"
      }
    },
    ...
  ],
  "totalCount": 2
}

 

Get group information

GET /v1/groups/:groupId

Request

Name Type Required Description
:groupId Number   Group ID

Response

Name Type Description
group Object The data object of the group
group.id Number Group ID
group.name String Name of the group
group.usersCount Number The number of users in the group
group.coursesCount Number The number of courses for which the assigned group
group.image Array The cover is of group different angles
group.image.original String The cover of user size original
group.image.xSmall String The cover of user size 36x36
group.image.small String The cover of user size 250x100
group.attributes Array Custom fields, an array of objects
group.attributes[name].type String Type of the custom attribute
group.attributes[name].value String Value of the custom field as stored in database
group.attributes[name].text String Textual interpretation of the value

Example

 

{
  "group": {
    "id": 2,
    "name": "Managers",
    "usersCount": 1,
    "coursesCount": 4,
    "image": {
      "original": "http://static.geen.io/o/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
      "xSmall": "http://static.geen.io/111/36x36/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
      "small": "http://static.geen.io/111/250x100/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg"
    }
	"attributes": {
		"group-custom-field-name": {
			"type": "text",
			"value": "Textual information for the group custom field value",
			"text": "Textual information for the group custom field value"
		}
  }
}

Get a list of users in the group

GET /v1/groups/:groupId/users?offset=:offset

Request

Name Type Required Description
:groupId Number   Group ID
:offset Number   to obtain the following list of courses

Response

Name Type Description
users Array The list of users
users[0].id Number User ID
users[0].name String Name of the user
users[0].occupation String Occupation of the user
users[0].location String Location of the user
users[0].timezone String Timezone of the user
users[0].email String Email of the user
users[0].isBanned Boolean If the user is blocked
users[0].role Object The data object of the role
users[0].role.alias String Alias of the role
users[0].attributes Array Custom fields, an array of objects
users[0].attributes[name].type String Type of the custom attribute
users[0].attributes[name].value String Value of the custom field as stored in database
users[0].attributes[name].text String Textual interpretation of the value
users[0].image Array The cover is of user different angles
users[0].image.original String The cover of user size original
users[0].image.xSmall String The cover of user size 36x36
users[0].image.small String The cover of user size 58x58
users[0].image.medium String The cover of user size 128x128

Example

 

{
  "users": [
    {
      "id": 1,
      "name": "Learner",
      "occupation": "Firestarter",
      "location": "Moscow",
      "timezone": "Europe/Moscow",
      "email": "firestarter@example.com",
      "isBanned": true,
      "role": {
        "alias": "manager"
      },
	  "attributes": {
		"gender": {
			"type": "single_choice",
			"value": 1,
			"text": "Male"
		},
		"favorite-fruits": {
			"type": "multiple_choice",
			"value": [
				{
					"value": 6,
					"text": "Orange"
				},
			 	{
					"value": 5,
					"text": "Banana"
				}
			],
		},
		"street-address": {
			"type": "text",
			"value": "15 Dimitriou Karatasou Street, Anastasio Building, 6th Floor, Office 601",
			"text": "15 Dimitriou Karatasou Street, Anastasio Building, 6th Floor, Office 601"
		},
		"birth-date": {
			"type": "date",
			"value": "1988-05-04",
			"text": "1988-05-04"
		},
		"supervisor": {
			"type": "user_choice",
			"value": 1,
			"text": "Manager Name"
		},
		"subscriber": {
			"type": "yes_no",
			"value": true,
			"text": true
		},
		"facebook-link": {
			"type": "link",
			"value": "https://www.facebook.com/TheGeenio/",
			"text": "https://www.facebook.com/TheGeenio/"
		},
		"height": {
			"type": "number",
			"value": 174,
			"text": 174
		}
	  },
      "image": {
        "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
      }
    },
    ...
  ],
  "totalCount": 2
}

 

Add users to a group

 
POST /v1/groups/:groupId/users

Request

Name Type Required Description
:groupId Number   Group ID
users Number[]   Users ID's

Example

{
  "users": [
    1,
    2
  ]
}

Response

Name Type Description
users Array The list of users
users[0].id Number User ID
users[0].name String Name of the user
users[0].occupation String Occupation of the user
users[0].location String Location of the user
users[0].timezone String Timezone of the user
users[0].email String Email of the user
users[0].isBanned Boolean If the user is blocked
users[0].role Object The data object of the role
users[0].role.alias String Alias of the role
users[0].attributes Array Custom fields, an array of objects
users[0].attributes[name].type String Type of the custom attribute
users[0].attributes[name].value String Value of the custom field as stored in database
users[0].attributes[name].text String Textual interpretation of the value
users[0].image Array The cover is of user different angles
users[0].image.original String The cover of user size original
users[0].image.xSmall String The cover of user size 36x36
users[0].image.small String The cover of user size 58x58
users[0].image.medium String The cover of user size 128x128

Example

{
  "users": [
    {
      "id": 1,
      "name": "Learner",
      "occupation": "Firestarter",
      "location": "Moscow",
      "timezone": "Europe/Moscow",
      "email": "firestarter@example.com",
      "isBanned": true,
      "role": {
        "alias": "manager"
      },
      "image": {
        "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
      }
    },
    ...
  ]
}

 

Removing a user from a group

DELETE /v1/groups/:groupId/users/:userId

Request

Name Type Required Description
:groupId Number   Group ID is deleted from the user
:userId Number|String User ID deleted @param int $groupId    

Group Statistics

GET /v1/groups/:groupId/statistics

Request

Name Type Required Description
:groupId Number   Group ID

Response

Name Type Description
group Object The data object of the group
group.id Number Group ID
group.name String Name of the group
group.usersCount Number The number of users in the group
group.coursesCount Number The number of courses for which the assigned group
group.image Array The cover is of group different angles
group.image.original String The cover of user size original
group.image.xSmall String The cover of user size 36x36
group.image.small String The cover of user size 250x100
group.attributes Array Custom fields, an array of objects
group.attributes[name].type String Type of the custom attribute
group.attributes[name].value String Value of the custom field as stored in database
group.attributes[name].text String Textual interpretation of the value
usersWithoutActivity Array Students not showing activity
usersWithoutActivity[0].id Number User ID
usersWithoutActivity[0].name String Name of the user
usersWithoutActivity[0].occupation String Occupation of the user
usersWithoutActivity[0].location String Location of the user
usersWithoutActivity[0].timezone String Timezone of the user
usersWithoutActivity[0].email String Email of the user
usersWithoutActivity[0].isBanned Boolean If the user is blocked
usersWithoutActivity[0].role Object The data object of the role
usersWithoutActivity[0].role.alias String Alias of the role
usersWithoutActivity[0].image Array The cover is of user different angles
usersWithoutActivity[0].image.original String The cover of user size original
usersWithoutActivity[0].image.xSmall String The cover of user size 36x36
usersWithoutActivity[0].image.small String The cover of user size 58x58
usersWithoutActivity[0].image.medium String The cover of user size 128x128
usersWithoutResults Array The students started to pass their first course
usersWithoutResults[0].id Number User ID
usersWithoutResults[0].name String Name of the user
usersWithoutResults[0].occupation String Occupation of the user
usersWithoutResults[0].location String Location of the user
usersWithoutResults[0].timezone String Timezone of the user
usersWithoutResults[0].email String Email of the user
usersWithoutResults[0].isBanned Boolean If the user is blocked
usersWithoutResults[0].role Object The data object of the role
usersWithoutResults[0].role.alias String Alias of the role
usersWithoutResults[0].image Array The cover is of user different angles
usersWithoutResults[0].image.original String The cover of user size original
usersWithoutResults[0].image.xSmall String The cover of user size 36x36
usersWithoutResults[0].image.small String The cover of user size 58x58
usersWithoutResults[0].image.medium String The cover of user size 128x128
leaders Array Leaders instance
leaders[0].coursesCount Number The number of courses for which the assigned group
leaders[0].resultValue Number The best result
leaders[0].user Object The data object of the user
leaders[0].user.id Number User ID
leaders[0].user.name String Name of the user
leaders[0].user.occupation String Occupation of the user
leaders[0].user.location String Location of the user
leaders[0].user.timezone String Timezone of the user
leaders[0].user.email String Email of the user
leaders[0].user.isBanned Boolean If the user is blocked
leaders[0].user.role Object The data object of the role
leaders[0].user.role.alias String Alias of the role
leaders[0].user.image Array The cover is of user different angles
leaders[0].user.image.original String The cover of user size original
leaders[0].user.image.xSmall String The cover of user size 36x36
leaders[0].user.image.small String The cover of user size 58x58
leaders[0].user.image.medium String The cover of user size 128x128
 

 

{
  "group": {
    "id": 1,
    "name": "Learners",
    "usersCount": 4,
    "coursesCount": 1,
	"attributes": {
		"group-custom-field-name": {
			"type": "text",
			"value": "Textual information for the group custom field value",
			"text": "Textual information for the group custom field value"
		}
	},
    "image": {
      "original": "http://static.geen.io/o/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
      "xSmall": "http://static.geen.io/111/36x36/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
      "small": "http://static.geen.io/111/250x100/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg"
    }
  },
  "usersWithoutActivity": [
    {
      "id": 1,
      "name": "Learner",
      "occupation": "Firestarter",
      "location": "Moscow",
      "timezone": "Europe/Moscow",
      "email": "firestarter@example.com",
      "isBanned": true,
      "role": {
        "alias": "manager"
      },
      "image": {
        "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
      }
    },
    ...
  ],
  "usersWithoutResults": [
    {
      "id": 1,
      "name": "Learner",
      "occupation": "Firestarter",
      "location": "Moscow",
      "timezone": "Europe/Moscow",
      "email": "firestarter@example.com",
      "isBanned": true,
      "role": {
        "alias": "manager"
      },
      "image": {
        "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
      }
    },
    ...
  ],
  "leaders": [
    {
      "coursesCount": 1,
      "resultValue": 100,
      "user": {
        "id": 1,
        "name": "Learner",
        "occupation": "Firestarter",
        "location": "Moscow",
        "timezone": "Europe/Moscow",
        "email": "firestarter@example.com",
        "isBanned": true,
        "role": {
          "alias": "manager"
        },
        "image": {
          "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
        }
      }
    },
    ...
  ]
}

Courses

Get a list of courses

GET /v1/courses?offset=:offset

Request

Name Type Required Description
:offset Number   to obtain the following list of courses


Response

Name Type Description
courses Array The list of courses
courses[0].id Number Course ID
courses[0].name String Name of the course
courses[0].annotation String Annotation of the course
courses[0].isDraft Boolean Indicates whether the course is a draft
courses[0].createdAt Number Date of create course
courses[0].updatedAt Number Date of update course
courses[0].publishedAt Number Date of publication of course
courses[0].image Array The cover is of course different angles
courses[0].image.original String The cover of course size original
courses[0].image.xSmall String The cover of course size 36x36
courses[0].image.small String The cover of course size 250x140
totalCount Number The total number of courses

Example

 

{
  "courses": [
    {
      "id": 1,
      "name": "Managing the Learning Process",
      "annotation": "This course will help you to engage employees into the learning process both as students and as contributors to content authoring",
      "isDraft": false,
      "createdAt": 1442306932,
      "updatedAt": 1443188807,
      "publishedAt": 1443188807,
      "image": {
        "original": "http://example.com/o/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
        "xSmall": "http://example.com/112/36x36/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
        "small": "http://example.com/112/250x140/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg"
      }
    },
    ...
  ],
  "totalCount": 2
}


 

 

Get detailed information on the course

GET /v1/courses/:courseId

Request

Name Type Required Description
:courseId Number   Course ID

Response

Name Type Description
course Object The data object of the course
course.id Number Course ID
course.name String Name of the course
course.annotation String Annotation of the course
course.description String Description of the course
course.isDraft Boolean Indicates whether the course is a draft
course.createdAt Number Date of create course
course.updatedAt Number Date of update course
course.publishedAt Number Date of publication of course
course.attachedFiles Array The list of files attached to the course
course.attachedFiles[0].name String The name of the attached file
course.attachedFiles[0].size Number The size of the attached file in bytes
course.attachedFiles[0].downloadUrl String Download link of the attached file
course.attachedFiles[0].mime String The MIME type of the attachment
course.image Array The cover is of course different angles
course.image.original String The cover of course size original
course.image.xSmall String The cover of course size 36x36
course.image.small String The cover of course size 250x140

Example

{
  "course": {
    "id": 1,
    "name": "Managing the Learning Process",
    "annotation": "This course will help you to engage employees into the learning process both as students and as contributors to content authoring",
    "description": "This course will help you to manage learning process in your organization.",
    "isDraft": false,
    "createdAt": 1442924675,
    "updatedAt": 1442924957,
    "publishedAt": 1443188807,
    "attachedFiles": [
      {
        "name": "Introducing Geenio.mp4",
        "size": 16964835,
        "downloadUrl": "http://example.com/download/o/lb/wg/lbwgz8nlehxee4haez65npihhspb3f3e.mp4?name=SW50cm9kdWNpbmcgR2VlbmlvLm1wNA==",
        "mime": "video/mp4"
      }
    ],
    "image": {
      "original": "http://example.com/o/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
      "xSmall": "http://example.com/112/36x36/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
      "small": "http://example.com/112/250x140/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg"
    }
  }
}

 

Get course statistics

GET /v1/courses/:courseId/statistics

Request

Name Type Required Description
:courseId Number   Course ID

Response

Name Type Description
statistics Array General statistics on the course
statistics.sharedUsersCount Number The number of users shared to the courses
statistics.assignedUsersCount Number The number of users assigned to the course
statistics.startUsersCount Number Number of users who started course
statistics.finishedUsersCount Number Number of users completing course
statistics.averageResultValue Number Average rating users have a course of
tags Array The list of tags
tags[0].tagId Number Tag ID
tags[0].tag String The name of the tag
tags[0].resultValue Number The average result
tests Array The list of tests
tests[0].id Number Test ID
tests[0].name String Name of the test
tests[0].questionsCount Number The number of questions in the test
tests[0].usersCount Number The number of users started the test
tests[0].attemptsCount Number The number of attempts
tests[0].successUsersCount Number Number of users have successfully passed the test
tests[0].averageResultValue Number Average rating users have a course of
progress Array Summary statistics of the number of users on the progress. Contains periods
results Array Summary statistics of the number of users by result. Contains periods

Example

{
  "statistics": {
    "sharedUsersCount": 10,
    "assignedUsersCount": 4,
    "startUsersCount": 1,
    "finishedUsersCount": 0,
    "averageResultValue": 0
  },
  "tags": [
    {
      "tagId": 1,
      "tag": "yes",
      "resultValue": 67
    },
    {
      "tagId": 2,
      "tag": "no",
      "resultValue": 100
    }
  ],
  "tests": [
    {
      "id": 1,
      "name": "Managing Users and Groups: Assessment",
      "questionsCount": 2,
      "usersCount": 6,
      "attemptsCount": 19,
      "successUsersCount": 3,
      "averageResultValue": 83
    }
  ],
  "progress": {
    "0": 2,
    "100": 4,
    "1-10": 1,
    "11-20": 33,
    "21-30": 12,
    "31-40": 18,
    "41-50": 5,
    "51-60": 40,
    "61-70": 88,
    "71-80": 21,
    "81-90": 22,
    "91-99": 23
  },
  "results": {
    "0": 3,
    "100": 5,
    "1-10": 1,
    "11-20": 13,
    "21-30": 17,
    "31-40": 37,
    "41-50": 29,
    "51-60": 2,
    "61-70": 7,
    "71-80": 31,
    "81-90": 19,
    "91-99": 23
  }
}

 

Get the list of assigned users in a course

GET /v1/courses/:courseId/assignments/users

Request

Name Type Required Description
:courseId Number   Course ID

Response

Name Type Description
assignments Array The list of assigned users in a course
assignments[0].assignedAt Timestamp Date of appointment to the course
assignments[0].startedAt Timestamp Date of commencement of the course
assignments[0].deadlineAt Timestamp The end date of the course
assignments[0].finishedAt Timestamp Date of completion of the course
assignments[0].progressValue Number The progress in passing
assignments[0].resultValue Number The best result
assignments[0].isCourseStarted Boolean Started the course
assignments[0].isCourseFinished Boolean Completed the course
assignments[0].isExpired Boolean Overdue the course
assignments[0].user Object The data object of the user
assignments[0].user.id Number User ID
assignments[0].user.name String Name of the user
assignments[0].user.occupation String Occupation of the user
assignments[0].user.location String Location of the user
assignments[0].user.timezone String Timezone of the user
assignments[0].user.email String Email of the user
assignments[0].user.isBanned Boolean If the user is blocked
assignments[0].user.role Object The data object of the role
assignments[0].user.role.alias String Alias of the role
assignments[0].user.image Array The cover is of user different angles
assignments[0].user.image.original String The cover of user size original
assignments[0].user.image.xSmall String The cover of user size 36x36
assignments[0].user.image.small String The cover of user size 58x58
assignments[0].user.image.medium String The cover of user size 128x128
totalCount Number The total number of courses

Example

{
  "assignments": [
    {
      "assignedAt": 1443183322,
      "startedAt": 1443188932,
      "deadlineAt": 1444188932,
      "finishedAt": 1443188946,
      "progressValue": 100,
      "resultValue": 50,
      "isCourseStarted": false,
      "isCourseFinished": true,
      "isExpired": false,
      "user": {
        "id": 1,
        "name": "Learner",
        "occupation": "Firestarter",
        "location": "Moscow",
        "timezone": "Europe/Moscow",
        "email": "firestarter@example.com",
        "isBanned": true,
        "role": {
          "alias": "manager"
        },
        "image": {
          "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
        }
      }
    },
    ...
  ],
  "totalCount": 2
}

 

Get the list of assigned groups in a course

Sorted by date of appointment

GET /v1/courses/:courseId/assignments/groups

Request

Name Type Required Description
:courseId Number   Course ID

Response

Name Type Description
assignments Array The list of assigned groups in a course
assignments[0].createdAt Timestamp Date of appointment to the course
assignments[0].deadlineAt Timestamp The end date of the course
assignments[0].deadlinePeriod Number The number of seconds by which the course is assigned to a group
assignments[0].group Object The data object of the group
assignments[0].group.id Number Group ID
assignments[0].group.name String Name of the group
assignments[0].group.usersCount Number The number of users in the group
assignments[0].group.coursesCount Number The number of courses for which the assigned group
assignments[0].group.image Array The cover is of group different angles
assignments[0].group.image.original String The cover of user size original
assignments[0].group.image.xSmall String The cover of user size 36x36
assignments[0].group.image.small String The cover of user size 250x100
totalCount Number The total number of assignments

Example

{
  "assignments": [
    {
      "createdAt": 1446132343,
      "deadlineAt": 0,
      "deadlinePeriod": 0,
      "group": {
        "id": 1,
        "name": "Learners",
        "usersCount": 4,
        "coursesCount": 1,
        "image": {
          "original": "http://static.geen.io/o/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
          "xSmall": "http://static.geen.io/111/36x36/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
          "small": "http://static.geen.io/111/250x100/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg"
        }
      }
    },
    ...
  ],
  "totalCount": 2
}

 

Assign a course to a user

The request must specify at least one of the following: users or groups

POST /v1/courses/:courseId/assignments

Request

Name Type Required Description
:courseId Number   Course ID
users Array   Array users IDs
groups Array   Array groups IDs

Example

{
  "users": [
    1,
    2
  ],
  "groups": [
    1,
    2
  ]
}

Response

Name Type Description
assignments Array The list of assigned users in a course
assignments.users Array The list of assigned users
assignments.users[0].assignedAt Timestamp Date of appointment to the course
assignments.users[0].startedAt Timestamp Date of commencement of the course
assignments.users[0].deadlineAt Timestamp The end date of the course
assignments.users[0].finishedAt Timestamp Date of completion of the course
assignments.users[0].progressValue Number The progress in passing
assignments.users[0].resultValue Number The best result
assignments.users[0].isCourseStarted Boolean Started the course
assignments.users[0].isCourseFinished Boolean Completed the course
assignments.users[0].isExpired Boolean Overdue the course
assignments.users[0].user Object The data object of the user
assignments.users[0].user.id Number User ID
assignments.users[0].user.name String Name of the user
assignments.users[0].user.occupation String Occupation of the user
assignments.users[0].user.location String Location of the user
assignments.users[0].user.timezone String Timezone of the user
assignments.users[0].user.email String Email of the user
assignments.users[0].user.isBanned Boolean If the user is blocked
assignments.users[0].user.role Object The data object of the role
assignments.users[0].user.role.alias String Alias of the role
assignments.users[0].user.image Array The cover is of user different angles
assignments.users[0].user.image.original String The cover of user size original
assignments.users[0].user.image.xSmall String The cover of user size 36x36
assignments.users[0].user.image.small String The cover of user size 58x58
assignments.users[0].user.image.medium String The cover of user size 128x128
assignments.groups Array The list of assigned groups
assignments.groups[0].group.id Number Group ID
assignments.groups[0].group.name String Name of the group
assignments.groups[0].group.usersCount Number The number of users in the group
assignments.groups[0].group.coursesCount Number The number of courses for which the assigned group
assignments.groups[0].group.image Array The cover is of group different angles
assignments.groups[0].group.image.original String The cover of user size original
assignments.groups[0].group.image.xSmall String The cover of user size 36x36
assignments.groups[0].group.image.small String The cover of user size 250x100

Example

{
  "assignments": {
    "users": [
      {
        "assignedAt": 1443183322,
        "startedAt": 1443188932,
        "deadlineAt": 1444188932,
        "finishedAt": 1443188946,
        "progressValue": 100,
        "resultValue": 50,
        "isCourseStarted": false,
        "isCourseFinished": true,
        "isExpired": false,
        "user": {
          "id": 1,
          "name": "Learner",
          "occupation": "Firestarter",
          "location": "Moscow",
          "timezone": "Europe/Moscow",
          "email": "firestarter@example.com",
          "isBanned": true,
          "role": {
            "alias": "manager"
          },
          "image": {
            "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
            "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
            "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
            "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
          }
        }
      },
      ...
    ],
    "groups": [
      {
        "createdAt": 1446132343,
        "deadlineAt": 0,
        "deadlinePeriod": 0,
        "group": {
          "id": 1,
          "name": "Learners",
          "usersCount": 4,
          "coursesCount": 1,
          "image": {
            "original": "http://static.geen.io/o/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
            "xSmall": "http://static.geen.io/111/36x36/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
            "small": "http://static.geen.io/111/250x100/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg"
          }
        }
      },
      ...
    ]
  }
}

 

 

Remove course assignment from user

DELETE /v1/courses/:courseId/assignments/users/:userId

Request

Name Type Required Description
:courseId Number   Course ID
:userId Number|String User ID @param int $courseId    

Remove course assignment from group

DELETE /v1/courses/:courseId/assignments/groups/:groupId

Request

Name Type Required Description
:courseId Number   Course ID
:groupId Number Group ID @param int $courseId    

Statistics

Get overall site statistics

 
GET /v1/statistics

Response

Name Type Description
statistics Array General statistics on the instance
statistics.coursesCount Number The number of courses in the instance
statistics.assignedCoursesCount Number The number of assigned courses in the instance
statistics.groupsCount Number The number of groups in the instance
statistics.usersCount Number The number of users in the instance
usersWithoutActivity Array Students not showing activity
usersWithoutActivity[0].id Number User ID
usersWithoutActivity[0].name String Name of the user
usersWithoutActivity[0].occupation String Occupation of the user
usersWithoutActivity[0].location String Location of the user
usersWithoutActivity[0].timezone String Timezone of the user
usersWithoutActivity[0].email String Email of the user
usersWithoutActivity[0].isBanned Boolean If the user is blocked
usersWithoutActivity[0].role Object The data object of the role
usersWithoutActivity[0].role.alias String Alias of the role
usersWithoutActivity[0].image Array The cover is of user different angles
usersWithoutActivity[0].image.original String The cover of user size original
usersWithoutActivity[0].image.xSmall String The cover of user size 36x36
usersWithoutActivity[0].image.small String The cover of user size 58x58
usersWithoutActivity[0].image.medium String The cover of user size 128x128
usersWithoutResults Array The students started to pass their first course
usersWithoutResults[0].id Number User ID
usersWithoutResults[0].name String Name of the user
usersWithoutResults[0].occupation String Occupation of the user
usersWithoutResults[0].location String Location of the user
usersWithoutResults[0].timezone String Timezone of the user
usersWithoutResults[0].email String Email of the user
usersWithoutResults[0].isBanned Boolean If the user is blocked
usersWithoutResults[0].role Object The data object of the role
usersWithoutResults[0].role.alias String Alias of the role
usersWithoutResults[0].image Array The cover is of user different angles
usersWithoutResults[0].image.original String The cover of user size original
usersWithoutResults[0].image.xSmall String The cover of user size 36x36
usersWithoutResults[0].image.small String The cover of user size 58x58
usersWithoutResults[0].image.medium String The cover of user size 128x128
leaders Array Leaders instance
leaders[0].coursesCount Number The number of courses for which the assigned group
leaders[0].resultValue Number The best result
leaders[0].user Object The data object of the user
leaders[0].user.id Number User ID
leaders[0].user.name String Name of the user
leaders[0].user.occupation String Occupation of the user
leaders[0].user.location String Location of the user
leaders[0].user.timezone String Timezone of the user
leaders[0].user.email String Email of the user
leaders[0].user.isBanned Boolean If the user is blocked
leaders[0].user.role Object The data object of the role
leaders[0].user.role.alias String Alias of the role
leaders[0].user.image Array The cover is of user different angles
leaders[0].user.image.original String The cover of user size original
leaders[0].user.image.xSmall String The cover of user size 36x36
leaders[0].user.image.small String The cover of user size 58x58
leaders[0].user.image.medium String The cover of user size 128x128
unassignedCourses Array The list of unassigned courses
unassignedCourses[0].id Number Course ID
unassignedCourses[0].name String Name of the course
unassignedCourses[0].annotation String Annotation of the course
unassignedCourses[0].isDraft Boolean Indicates whether the course is a draft
unassignedCourses[0].createdAt Number Date of create course
unassignedCourses[0].updatedAt Number Date of update course
unassignedCourses[0].publishedAt Number Date of publication of course
unassignedCourses[0].image Array The cover is of course different angles
unassignedCourses[0].image.original String The cover of course size original
unassignedCourses[0].image.xSmall String The cover of course size 36x36
unassignedCourses[0].image.small String The cover of course size 250x140

Example

{
  "statistics": {
    "coursesCount": 5,
    "assignedCoursesCount": 3,
    "groupsCount": 3,
    "usersCount": 20
  },
  "usersWithoutActivity": [
    {
      "id": 1,
      "name": "Learner",
      "occupation": "Firestarter",
      "location": "Moscow",
      "timezone": "Europe/Moscow",
      "email": "firestarter@example.com",
      "isBanned": true,
      "role": {
        "alias": "manager"
      },
      "image": {
        "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
      }
    },
    ...
  ],
  "usersWithoutResults": [
    {
      "id": 1,
      "name": "Learner",
      "occupation": "Firestarter",
      "location": "Moscow",
      "timezone": "Europe/Moscow",
      "email": "firestarter@example.com",
      "isBanned": true,
      "role": {
        "alias": "manager"
      },
      "image": {
        "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
      }
    },
    ...
  ],
  "leaders": [
    {
      "coursesCount": 1,
      "resultValue": 100,
      "user": {
        "id": 1,
        "name": "Learner",
        "occupation": "Firestarter",
        "location": "Moscow",
        "timezone": "Europe/Moscow",
        "email": "firestarter@example.com",
        "isBanned": true,
        "role": {
          "alias": "manager"
        },
        "image": {
          "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
          "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
        }
      }
    },
    ...
  ],
  "unassignedCourses": [
    {
      "id": 1,
      "name": "Managing the Learning Process",
      "annotation": "This course will help you to engage employees into the learning process both as students and as contributors to content authoring",
      "isDraft": false,
      "createdAt": 1442306932,
      "updatedAt": 1443188807,
      "publishedAt": 1443188807,
      "image": {
        "original": "http://example.com/o/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
        "xSmall": "http://example.com/112/36x36/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
        "small": "http://example.com/112/250x140/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg"
      }
    },
    ...
  ]
}

 

 

Users

Create User

 

POST /v1/users

 

Request

Name Type Required Description
name String   Username
email String   User email
roleAlias String   User role
id String   The user ID must consist of any alphanumeric characters, hyphens and the underscore character.
password String   User password
location String   User location
occupation String   User occupation
courses Number[]   ID list of courses that have to assign to the user
groups Number[]   ID list of groups to which to add the user
timezone String   User timezone
deadlineAt Timestamp   Duration of the course

Example

{
  "id": "12345-6554-4321-0987",
  "name": "Learner",
  "email": "firestarter@example.com",
  "password": "123456",
  "location": "Palo Alto",
  "occupation": "Firestarter",
  "courses": [
    1,
    2,
    3,
    4,
    5
  ],
  "groups": [
    1,
    2
  ],
  "roleAlias": "learner",
  "timezone": "America/Phoenix",
  "deadlineAt": 1451595600
}

 

Response

Name Type Description
user Object The data object of the user
user.id Number User ID
user.name String Name of the user
user.occupation String Occupation of the user
user.location String Location of the user
user.timezone String Timezone of the user
user.email String Email of the user
user.isBanned Boolean If the user is blocked
user.role Object The data object of the role
user.role.alias String Alias of the role
user.attributes Array Custom fields, an array of objects
user.attributes[name].type String Type of the custom attribute
user.attributes[name].value String Value of the custom field as stored in database
user.attributes[name].text String Textual interpretation of the value

Example

{
  "user": {
    "id": "12345-6554-4321-0987",
    "name": "Learner",
    "occupation": "Firestarter",
    "location": "Paris",
    "timezone": "Europe/Paris",
    "email": "firestarter@example.com",
    "isBanned": false,
    "attributes": {
       "gender": {
          "type":"single_choice",
          "value": 1,
          "text: "male"
       }
    },
    "role": {
      "alias": "learner"
    }
  }
}

 

Edit personal information

PATCH /v1/users/:userId

Request

Name Type Required Description
:userId Number|String   User ID
name String   Username
email String   User email
password String   User password
location String   User location
occupation String   User occupation
roleAlias String   User role
timezone String   User timezone
attributes Array   Custom fields, an array of objects
attributes[name].value String   Value of the custom field as stored in database

Example

{
	"name": "test",
	"email": "test5@example.com",
	"password": "123456",
	"location": "Los Angeles, CA",
	"occupation": "programmer",
	"roleAlias": "learner",
	"timezone": "America/Los Angeles",
	"attributes": {
		"user_custom_field_name":"user_custom_field_value"
		}
}

 

 

Block user

PATCH /v1/users/blocked

Request

Name Type Required Description
userId Number|String   User ID

Example

{
  "userId": 1
}

Response

Name Type Description
user Object The data object of the user
user.id Number User ID
user.name String Name of the user
user.occupation String Occupation of the user
user.location String Location of the user
user.timezone String Timezone of the user
user.email String Email of the user
user.isBanned Boolean If the user is blocked
user.role Object The data object of the role
user.role.alias String Alias of the role
user.image Array The cover is of user different angles
user.image.original String The cover of user size original
user.image.xSmall String The cover of user size 36x36
user.image.small String The cover of user size 58x58
user.image.medium String The cover of user size 128x128
user.attributes Array Custom fields, an array of objects
user.attributes[name].type String Type of the custom attribute
user.attributes[name].value String Value of the custom field as stored in database
user.attributes[name].text String Textual interpretation of the value

Example

{
  "user": {
    "id": "12345-6554-4321-0987",
    "name": "Learner",
    "occupation": "Firestarter",
    "location": "Paris",
    "timezone": "Europe/Paris",
    "email": "firestarter@example.com",
    "isBanned": false,
    "attributes": {
       "gender": {
          "type":"single_choice",
          "value": 1,
          "text: "male"
       }
    },
    "role": {
      "alias": "learner"
    }
  }
}

Unblock user

DELETE /v1/users/blocked/:userId

Request

Name Type Required Description
:userId Number|String User ID    

Get a list of users

Sorted by name

 
GET /v1/users?offset=:offset

Request

Name Type Required Description
:offset Number   to obtain the following list of users

Response

Name Type Description
users Array The list of users
users[0].id Number User ID
users[0].name String Name of the user
users[0].occupation String Occupation of the user
users[0].location String Location of the user
users[0].timezone String Timezone of the user
users[0].email String Email of the user
users[0].isBanned Boolean If the user is blocked
users[0].role Object The data object of the role
users[0].role.alias String Alias of the role
users[0].image Array The cover is of user different angles
users[0].image.original String The cover of user size original
users[0].image.xSmall String The cover of user size 36x36
users[0].image.small String The cover of user size 58x58
users[0].image.medium String The cover of user size 128x128
users[0].attributes Array Custom fields, an array of objects
users[0].attributes[name].type String Type of the custom attribute
users[0].attributes[name].value String Value of the custom field as stored in database
users[0].attributes[name].text String Textual interpretation of the value

Example

{
  "users": [
    {
      "id": 1,
      "name": "Learner",
      "occupation": "Firestarter",
      "location": "Moscow",
      "timezone": "Europe/Moscow",
      "email": "firestarter@example.com",
      "isBanned": true,
      "role": {
        "alias": "manager"
      },
      "image": {
        "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
        "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
      }
    },
    ...
  ],
  "totalCount": 2
}

 

Get user information

GET /v1/users/:userId

Request

Name Type Required Description
:userId Number   User ID

Response

Name Type Description
user Object The data object of the user
user.id Number User ID
user.name String Name of the user
user.occupation String Occupation of the user
user.location String Location of the user
user.timezone String Timezone of the user
user.email String Email of the user
user.isBanned Boolean If the user is blocked
user.role Object The data object of the role
user.role.alias String Alias of the role
user.image Array The cover is of user different angles
user.image.original String The cover of user size original
user.image.xSmall String The cover of user size 36x36
user.image.small String The cover of user size 58x58
user.image.medium String The cover of user size 128x128
user.attributes Array Custom fields, an array of objects
user.attributes[name].type String Type of the custom attribute
user.attributes[name].value String Value of the custom field as stored in database
user.attributes[name].text String Textual interpretation of the value

Example

{
  "user": {
    "id": 1,
    "name": "Learner",
    "occupation": "Firestarter",
    "location": "London",
    "timezone": "Europe/London",
    "email": "firestarter@example.com",
    "isBanned": true,
    "role": {
      "alias": "manager"
    },
    "image": {
      "original": "http://example.com/o/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
      "xSmall": "http://example.com/36x36/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
      "small": "http://example.com/58x58/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg",
      "medium": "http://example.com/128x128/8n/hd/8nhd8e2j4mzkfhmaysvh1lo7vhb6p4zq.jpg"
    }
	"attributes": {
       "gender": {
          "type":"single_choice",
          "value": 1,
          "text: "male"
       }
	
  }
}

 

Get user statistics

GET /v1/users/:userId/statistics

Request

Name Type Required Description
:userId Number   User ID

Response

Name Type Description
courses Array User statistics courses
courses.createdCoursesCount Number The number of courses created by the user
courses.publishedCoursesCount Number Number of published courses
courses.sharedCoursesCount Number The number of shared courses
courses.assignedCoursesCount Number The number of assigned courses
courses.startedCoursesCount Number The number of started courses
courses.finishedCoursesCount Number The number of finished courses
courses.averageResultValue Number Average rating user have a course
virgin Array Courses assigned to the user except that he began to pass
virgin[0].course Object The data object of the course
virgin[0].course.id Number Course ID
virgin[0].course.name String Name of the course
virgin[0].course.annotation String Annotation of the course
virgin[0].course.isDraft Boolean Indicates whether the course is a draft
virgin[0].course.createdAt Number Date of create course
virgin[0].course.updatedAt Number Date of update course
virgin[0].course.publishedAt Number Date of publication of course
virgin[0].course.image Array The cover is of course different angles
virgin[0].course.image.original String The cover of course size original
virgin[0].course.image.xSmall String The cover of course size 36x36
virgin[0].course.image.small String The cover of course size 250x140
virgin[0].deadlineAt Timestamp The end date of the course
started Object Incomplete courses the user
started.statistics Array User statistics for the course
started.statistics[0].course Object The data object of the course
started.statistics[0].course.id Number Course ID
started.statistics[0].course.name String Name of the course
started.statistics[0].course.annotation String Annotation of the course
started.statistics[0].course.isDraft Boolean Indicates whether the course is a draft
started.statistics[0].course.createdAt Number Date of create course
started.statistics[0].course.updatedAt Number Date of update course
started.statistics[0].course.publishedAt Number Date of publication of course
started.statistics[0].course.image Array The cover is of course different angles
started.statistics[0].course.image.original String The cover of course size original
started.statistics[0].course.image.xSmall String The cover of course size 36x36
started.statistics[0].course.image.small String The cover of course size 250x140
started.statistics[0].progressValue Number The value of the progress
started.statistics[0].courseElement Object The data object of the course element. For example: page, test, question, lesson
started.statistics[0].courseElement.id Number Course element ID
started.statistics[0].courseElement.type String The type of the course element
started.statistics[0].courseElement.name String The name of the course item
started.statistics[0].updatedAt Timestamp The time of the last progress update
started.statistics[0].deadlineAt Timestamp The end date of the course
started.statistics[0].isCourseStarted Boolean Started the course
started.statistics[0].isCourseFinished Boolean Completed the course
started.totalCount Number The number of incomplete courses the user
results Array Summary statistics of student results completed courses
tags Object Summary statistics by tags
tags.statistics Array Summary statistics
tags.statistics[0].tagId Number Tag ID
tags.statistics[0].tag String The name of the tag
tags.statistics[0].resultValue Number The average result

Example

{
  "courses": {
    "createdCoursesCount": 1,
    "publishedCoursesCount": 0,
    "sharedCoursesCount": 6,
    "assignedCoursesCount": 3,
    "startedCoursesCount": 0,
    "finishedCoursesCount": 0,
    "averageResultValue": 0
  },
  "virgin": [
    {
      "course": {
        "id": 1,
        "name": "Managing the Learning Process",
        "annotation": "This course will help you to engage employees into the learning process both as students and as contributors to content authoring",
        "isDraft": false,
        "createdAt": 1442306932,
        "updatedAt": 1443188807,
        "publishedAt": 1443188807,
        "image": {
          "original": "http://example.com/o/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
          "xSmall": "http://example.com/112/36x36/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
          "small": "http://example.com/112/250x140/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg"
        }
      },
      "deadlineAt": 0
    }
  ],
  "started": {
    "statistics": [
      {
        "course": {
          "id": 2,
          "name": "DiscoverQuesty",
          "annotation": "This type of courses is helpful for explaining a certain subject that consists of many small topics that are not tied into a fixed sequence or logical chain. \n\nThis form of training helps learners to discover the useful information in their own natural way.",
          "isDraft": false,
          "createdAt": 1442306932,
          "updatedAt": 1443188807,
          "publishedAt": 1443188807,
          "image": {
            "original": "http://example.com/o/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
            "xSmall": "http://example.com/112/36x36/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
            "small": "http://example.com/112/250x140/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg"
          }
        },
        "progressValue": 100,
        "courseElement": {
          "id": 2,
          "type": "test",
          "name": "Test 1"
        },
        "updatedAt": 1443193193,
        "deadlineAt": 0,
        "isCourseStarted": true,
        "isCourseFinished": true
      }
    ],
    "totalCount": 1
  },
  "results": {
    "0": 0,
    "100": 0,
    "1-10": 0,
    "11-20": 0,
    "21-30": 0,
    "31-40": 0,
    "41-50": 0,
    "51-60": 0,
    "61-70": 0,
    "71-80": 0,
    "81-90": 0,
    "91-99": 0
  },
  "tags": {
    "statistics": [
      {
        "tagId": 1,
        "tag": "yes",
        "resultValue": 50
      }
    ]
  }
}

 

Get a list of groups the user belongs to

GET /v1/users/:userId/groups

Request

Name Type Required Description
:userId String   User ID

Response

Name Type Description
groups Array The list of assigned groups
groups[0].id Number Group ID
groups[0].name String Name of the group
groups[0].usersCount Number The number of users in the group
groups[0].coursesCount Number The number of courses for which the assigned group
groups[0].image Array The cover is of group different angles
groups[0].image.original String The cover of user size original
groups[0].image.xSmall String The cover of user size 36x36
groups[0].image.small String The cover of user size 250x100

Example

{
  "groups": [
    {
      "id": 1,
      "name": "Learners",
      "usersCount": 4,
      "coursesCount": 1,
      "image": {
        "original": "http://static.geen.io/o/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
        "xSmall": "http://static.geen.io/111/36x36/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg",
        "small": "http://static.geen.io/111/250x100/1r/ys/1rysnulvsenqtyjddjbxi0jxem3jnomi.jpg"
      }
    },
    ...
  ]
}

 

 

Courses assigned to the user

GET /v1/users/:userId/assignments

Request

Name Type Required Description
:userId Number   User ID

Response

Name Type Description
assignments Array The list of assigned courses on the user
assignments[0].assignedAt Timestamp Date of appointment to the course
assignments[0].startedAt Timestamp Date of commencement of the course
assignments[0].deadlineAt Timestamp The end date of the course
assignments[0].finishedAt Timestamp Date of completion of the course
assignments[0].progressValue Number The progress in passing
assignments[0].resultValue Number The best result
assignments[0].isCourseStarted Boolean Started the course
assignments[0].isCourseFinished Boolean Completed the course
assignments[0].isExpired Boolean Overdue the course
assignments[0].course Object The data object of the course
assignments[0].course.id Number Course ID
assignments[0].course.name String Name of the course
assignments[0].course.annotation String Annotation of the course
assignments[0].course.isDraft Boolean Indicates whether the course is a draft
assignments[0].course.createdAt Number Date of create course
assignments[0].course.updatedAt Number Date of update course
assignments[0].course.publishedAt Number Date of publication of course
assignments[0].course.image Array The cover is of course different angles
assignments[0].course.image.original String The cover of course size original
assignments[0].course.image.xSmall String The cover of course size 36x36
assignments[0].course.image.small String The cover of course size 250x140

Example

{
  "assignments": [
    {
      "assignedAt": 1443095413,
      "startedAt": 1443192271,
      "deadlineAt": 0,
      "finishedAt": 1443188882,
      "progressValue": 100,
      "resultValue": 50,
      "isCourseStarted": true,
      "isCourseFinished": false,
      "isExpired": false,
      "course": {
        "id": 1,
        "name": "Managing the Learning Process",
        "annotation": "This course will help you to engage employees into the learning process both as students and as contributors to content authoring",
        "isDraft": false,
        "createdAt": 1442306932,
        "updatedAt": 1443188807,
        "publishedAt": 1443188807,
        "image": {
          "original": "http://example.com/o/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
          "xSmall": "http://example.com/112/36x36/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg",
          "small": "http://example.com/112/250x140/wz/fw/rpetidhasdzn6wij0xx1uujfuur94nsf.jpg"
        }
      }
    }
  ]
}

Get SSO (Single Sign-On) URL

Links expire in 30 seconds

GET /v1/users/:userId/sso

Request

Name Type Required Description
:userId Number   User ID

Response

Name Type Description
url String Escaped value of single sign-on URL

Example

 

{
  "url": "http://example.com/api/sso?userId=1&time=1036132343&hash=db6c6d7b428f1f846e103fd2e7c374aba7bbaf4b"
}