Note: The following parameters are limited to 255 characters (or another limit if specified):

  • authority
  • full_name (200)
  • first_name (100)
  • last_name (100)
  • login (100)
  • email (100)
  • phone_work (20)
  • phone_mobile (20)
  • phone_fax (20)
  • phone_home (20)
  • address_one (100)
  • address_two (100)
  • city (50)
  • state (50)
  • zip (10)
  • updated_by
  • registration_id
  • country
  • locale
  • remember_me_token
  • facebook_id
  • provider
  • uid
  • external_avatar_url




LIST

Resource: /api/v2/users

HTTPS Request Method: GET

Description: The full list of Users associated with the account.

Required Parameters:

  • api_key

Optional Parameters:

  • * page - (integer): if this parameter is passed, the results will be paginated by 1,000, with this parameter indicating the page you want to see displayed. If the parameter is not present, page 1 is displayed.
  • fields (list of comma delimited attribute names--these attributes are the only ones that will be included in the response instead of having all the attributes returned. This can significantly speed up the API response time).
  • user[id] - (integer)
  • user[code] - (string)
  • user[position_id] - (integer)
  • user[is_active] - (boolean)
  • user[authority] - (string)
  • user[login] - (string)
  • user[tzid] - (string)
  • user[hired_on] - (date)
  • user[manager_id] - (integer)
  • user[custom_a] - (string) ...
  • user[custom_u] - (string)
  • user[email] - (string)
  • user[city] - (string)
  • user[state] - (string)
  • user[zip] - (string)
  • user[country] - (string)
  • user[integration_id] - (integer)
  • user[last_login_at] - (string)
  • user[locale] - (string)
  • user[created_on] - (datetime)
  • user[updated_on] - (datetime)
  • user [facebook_id] - (string)

Dates and datetimes should be in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format and can be given as ranges if separated by a comma.

Example Request:

curl -X GET -d '{"api_key": "123456", "fields":"id,first_name","user": {"created_on": "2010-01-01,2015-01-01"}}' -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/users

Example Response:

[
  {
    "first_name": "David",
    "id": 23
  },
  {
    "first_name": "Alice",
    "id": 100
  }
]




CREATE

Resource: /api/v2/users

HTTPS Request Method: POST

Description: This feature creates a User based on the associated params. If the User is unable to be created, an HTTP 422 Unprocessable Entity response is returned. The HTTP response body will contain a list of error reasons in JSON or XML format. For more information concerning types of values accepted, see https:///users/import.

Required Parameters:

  • user[first_name]
  • user[last_name]
  • user[login]
  • user[password]
  • api_key

Optional Parameters:

  • user[code]
  • user[email]
  • user[hired_on]
  • user[position_id]
  • user[position_name]
  • user[address_one]
  • user[address_two]
  • user[country]
  • user[city]
  • user[is_active]
  • user[is_pass_reset_required]
  • user[manager_id]
  • user[phone_fax]
  • user[phone_home]
  • user[phone_mobile]
  • user[phone_work]
  • user[state]
  • user[zip]
  • user[custom_a]
  • user[custom_b]
  • user[custom_c]
  • user[custom_d]
  • user[custom_e]
  • user[custom_f]
  • user[custom_g]
  • user[custom_h]
  • user[custom_i]
  • user[custom_j]
  • * ...
  • * user[custom_u]
  • user [facebook_id] - (string)

Example Parameters:

  • user[first_name]=tim
  • user[last_name]=tim
  • user[login]=tim
  • user[password]=tim
  • api_key=123456

Example Request:

curl -X POST -d '{"user": {"first_name": "tim", "last_name": "tim", "login": "tim", "password": "tim"}}' -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/users?api_key=123456

Example Response:

<?xml version="1.0" encoding="UTF-8"?>
<user>
 <account-id type="integer">2</account-id>
 <address-one nil="true"></address-one>
 <address-two nil="true"></address-two>
 <authority>student</authority>
 <city nil="true"></city>
 <code nil="true"></code>
 <country nil="true"></country>
 <custom-a nil="true"></custom-a>
 <custom-b nil="true"></custom-b>
 <custom-c nil="true"></custom-c>
 <custom-d nil="true"></custom-d>
 <custom-e nil="true"></custom-e>
 <custom-f nil="true"></custom-f>
 <custom-g nil="true"></custom-g>
 <custom-h nil="true"></custom-h>
 <custom-i nil="true"></custom-i>
 <custom-j nil="true"></custom-j>
 <email nil="true"></email>
 <first-name>tim</first-name>
 <full-name>tim tim</full-name>
 <hide-welcome-page type="boolean">false</hide-welcome-page>
 <hired-on type="date" nil="true"></hired-on>
 <id type="integer">5</id>
 <integration-id type="integer" nil="true"></integration-id>
 <is-account-owner type="boolean">false</is-account-owner>
 <is-active type="boolean">true</is-active>
 <is-instructor type="boolean">false</is-instructor>
 <is-pass-reset-required type="boolean">false</is-pass-reset-required>
 <last-name>tim</last-name>
 <login>tim</login>
 <manager-id type="integer" nil="true"></manager-id>
 <password>tim</password>
 <phone-fax nil="true"></phone-fax>
 <phone-home nil="true"></phone-home>
 <phone-mobile nil="true"></phone-mobile>
 <phone-work nil="true"></phone-work>
 <picture-id type="integer" nil='\"true\"'></picture-id>
 <position-id type="integer" nil='\"true\"'></position-id>
 <registration-id nil="true"></registration-id>
 <state nil="true"></state>
 <tzid nil="true"></tzid>
 <updated-by type="integer" nil="true"></updated-by>
 <updated-on type="datetime">2009-09-22T14:32:43Z</updated-on>
 <zip nil="true"></zip>
</user>




READ

Resource: /api/v2/users/{id}

HTTPS Request Method: GET

Description: Lookup a User based on the User id.

Required Parameters:

  • api_key

Optional Parameters:

  • user[code]: lookup the User using the code. When this param is used, the id parameter is ignored.

Example Request:

curl -X GET -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/users/322?api_key=123456

Example Response:

<?xml version="1.0" encoding="UTF-8"?>
<user>
 <account-id type="integer">2</account-id>
 <address-one></address-one>
 <address-two></address-two>
 <authority>superadmin</authority>
 <city></city>
 <code></code>
 <country nil="true"></country>
 <custom-a></custom-a>
 <custom-b></custom-b>
 <custom-c nil="true"></custom-c>
 <custom-d nil="true"></custom-d>
 <custom-e nil="true"></custom-e>
 <custom-f nil="true"></custom-f>
 <custom-g nil="true"></custom-g>
 <custom-h nil="true"></custom-h>
 <custom-i nil="true"></custom-i>
 <custom-j nil="true"></custom-j>
 <email>sample.user@example.com</email>
 <first-name>Sample</first-name>
 <full-name>sample user</full-name>
 <hide-welcome-page type="boolean" nil="true"></hide-welcome-page>
 <hired-on type="date" nil="true"></hired-on>
 <id type="integer">15834252</id>
 <integration-id type="integer" nil="true"></integration-id>
 <is-account-owner type="boolean">false</is-account-owner>
 <is-active type="boolean">false</is-active>
 <is-instructor type="boolean">false</is-instructor>
 <is-pass-reset-required type="boolean">false</is-pass-reset-required>
 <last-name>User</last-name>
 <login>suser</login>
 <manager-id type="integer" nil="true"></manager-id>
 <password>demo</password>
 <phone-fax></phone-fax>
 <phone-home></phone-home>
 <phone-mobile></phone-mobile>
 <phone-work></phone-work>
 <picture-id type="integer" nil="true"></picture-id>
 <position-id type="integer" nil="true"></position-id>
 <registration-id nil="true"></registration-id>
 <state></state>
 <tzid>Eastern Time (US &amp; Canada)</tzid>
 <updated-by type="integer" nil="true"></updated-by>
 <updated-on type="datetime">2009-02-16T20:40:06Z</updated-on>
 <zip></zip>
</user>




UPDATE

Resource: /api/v2/users/{id}

HTTPS Request Method: PUT

Description: Update a User based on the User id.

Required Parameters:

  • api_key

Optional Parameters:

  • user[code]: the User code cannot be updated. When this parameter is passed, the LMS looks up the User using the code and must not provide the id parameter.
  • user[first_name]
  • user[last_name]
  • user[login]
  • user[password]
  • user[email]
  • user[hired_on]
  • user[position_id]
  • user[address_one]
  • user[address_two]
  • user[country]
  • user[city]
  • user[is_active]
  • user[is_pass_reset_required]
  • user[manager_id]
  • user[phone_fax]
  • user[phone_home]
  • user[phone_mobile]
  • user[phone_work]
  • user[state]
  • user[zip]
  • user[custom_a]
  • user[custom_b]
  • user[custom_c]
  • user[custom_d]
  • user[custom_e]
  • user[custom_f]
  • user[custom_g]
  • user[custom_h]
  • user[custom_i]
  • user[custom_j]
  • user [facebook_id] - (string)

Example Request with id parameter:

curl -X PUT -d '{"user": {"first_name": "joe"}}' -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/users/2?api_key=123456

Example Request with code parameter:

curl -X PUT -d '{"user": {"code": "joe"}}' -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/users?api_key=123456

Response:

  • If an update is completed successfully, it returns a 200 HTTP response code with an empty body.




DELETE

Resource: /api/v2/users/{id}

HTTPS Request Method: DELETE

Description: Delete a user based on the user id.

Example Request: curl -i -X DELETE -H "Content-type: application/json" -H "Accept: application/json" https://demo.exceedlms.com/api/v2/users/5?api_key=123456

Required Parameters:
• api_key

Example Response:
• On successful deletion returns a 200 HTTP response code with an empty body


LIST DELETIONS

Resource: /api/v2/users/deletions

HTTP Request Method: GET

Description: List all of the deleted users

Required Parameters:

  • api_key

Optional Parameters:

  • page - (integer). The page number you want to request. Every page is 1,000 records long at most, and results are returned in id order. Page 1 is assumed if no page number is provided, but unpaginated requests are subject to API rate limitations.
  • deleted_at - (date) when this parameter is passed the LMS returns all deletions after the specified date.

Dates and datetimes should be in YYYY-MM-DD

Example Request

curl -i -X GET -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/users/deletions?api_key=123456

Example Response:

[
{
"id": 1000000001,
"account_id": 100001,
"code": 'john_joker',
"deleted_at": "2019-05-07T10:54:45.669-04:00"
},
{
"id": 2000000001,
"account_id":  100001,
"code": 'sally_says',
"deleted_at": "2019-05-07T11:10:04.111-04:00"
}
]