Degreed API
Welcome to the Degreed API! You can use our API to get access to the data contained within Degreed.
Authentication
Degreed uses the OAuth 2.0 protocol’s Client Credentials Flow for authentication and authorization. Clients can obtain OAuth 2.0 client credentials from their Degreed Technical Solutions Specialist.
With these credentials, the client requests a bearer access token. This token is retrieved by POST'ing the following form information:
Parameter | Description |
---|---|
grant_type | Should be client_credentials |
client_id | The ID of the client supplied by us |
client_secret | The secret of the client supplied by us |
scope | Comma delimited list of scopes |
The calling application extracts the access token from the response (see the example) and then sends the token using an HTTP authorization header with the value in the format Bearer <access token>
. Access tokens are valid only for the set of operations and resources described in the scope of the token request.
curl -X POST "https://degreed.com/oauth/token" \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials&client_id=<id>&client_secret=<secret>&scope=<scopes>'
This authentication request returns JSON structured like this:
{
"access_token": "<access_token>",
"token_type": "bearer",
"expires_in": 5183999,
"refresh_token": "<refresh_token>"
}
Rate Limiting
We currently limit the number of calls a single client can make to 70 requests per minute. If you exceed the limit, we return a 429 Too Many Requests
response. Every response from our API contains the following headers:
Header | Description |
---|---|
X-Rate-Limit-Limit | The rate limit period (eg. 1m, 12h, 1d) |
X-Rate-Limit-Remaining | The number of requests remaining |
X-Rate-Limit-Reset | UTC date time (ISO 8601) when the limits resets |
Users
Get All Users
curl "https://api.degreed.com/api/v2/users"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users",
"next": "https://api.degreed.com/api/v2/users?next=th6i3n"
},
"data": [
{
"type": "users",
"id": "qv173",
"attributes": {
"employee-id": "xea1g",
"first-name": "Albertha",
"last-name": "Schoen",
"full-name": "Sydnee Feest",
"organization-email": "Camren.Harris1@example.org",
"personal-email": "Kelley_Wuckert78@example.org",
"profile-visibility": "Organization",
"bio": "Sapiente aliquid consectetur numquam consectetur soluta qui voluptatem consequatur. Voluptas illum quo et eligendi magni sed eos. Quibusdam dolore quos. Fugit ea ullam dolor saepe modi qui nemo quis.",
"location": "South Arloland",
"profile-image-url": "https://example.org/image",
"login-disabled": false,
"restricted": false,
"permission-role": "Manager",
"real-time-email-notification": false,
"daily-digest-email": false,
"weekly-digest-email": false,
"created-at": "2018-08-25T05:41:36.3652198+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/users/qv173"
}
}
]
}
This endpoint retrieves all users for the current organization. The scope required is
users:read
or users:write
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included the endpoint will return users for the Tenant Organization related to the header value, as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/users
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
filter[start_date] | empty | Get users created from this date on. Format yyyy-MM-dd . |
No |
filter[end_date] | empty | Get users created until this date. Format yyyy-MM-dd . |
No |
next | empty | Supplied to retrieve the next batch of users. | False |
limit | 100 | The number of users per page. Maximum of 1000. | False |
Get a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"data": {
"type": "users",
"id": "1rpyz",
"attributes": {
"employee-id": "ek4l9",
"first-name": "Kayli",
"last-name": "Kihn",
"full-name": "Ayana Russel",
"organization-email": "user@example.org",
"personal-email": "user@example.org",
"profile-visibility": "Organization",
"bio": "Dolores eius quia officiis non recusandae odit ab. Eius a cum id qui enim. Est debitis facere accusamus sit non incidunt ullam. Vitae voluptatem sunt. Sunt quia commodi dolorem eveniet voluptatibus quis architecto soluta.",
"location": "Cruickshankfurt",
"profile-image-url": "https://example.org/image",
"login-disabled": true,
"restricted": false,
"permission-role": "Admin",
"real-time-email-notification": false,
"daily-digest-email": false,
"weekly-digest-email": false,
"created-at": "2019-02-18T18:02:00.1553504+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/users/1rpyz"
}
}
}
This endpoint retrieves a specific user. The scope required is users:read
or users:write
.
For Global Admin Tool Organizations, if the user belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Create a New User
curl "https://api.degreed.com/api/v2/users"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d `{ \
"data": { \
"type": "users", \
"attributes": { \
"employee-id": "fo12hb", \
"first-name": "Tom", \
"last-name": "Smith", \
"full-name": "Tom Smith", \
"organization-email": "ts@example.org", \
"profile-visibility": "Organization", \
"bio": "Example", \
"location": "Arizona", \
"profile-image-url": null, \
"login-disabled": false, \
"restricted": false, \
"permission-role": "Admin", \
"real-time-email-notification": true, \
"daily-digest-email": true, \
"weekly-digest-email": true
}
}
}`
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint creates a new user in the system. The scope required is users:write
.
For Global Admin Tool Organizations, if the user is to be created in a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
POST https://api.degreed.com/api/v2/users
This command returns a
201 Created
response with, as body, the new user containing the newly generated unique ID:
{
"data": {
"type": "users",
"id": "qlsjc",
"attributes": {
"employee-id": "fo12hb",
"first-name": "Tom",
"last-name": "Smith",
"full-name": "Tom Smith",
"organization-email": "ts@example.org",
"personal-email": null,
"profile-visibility": "Organization",
"bio": "Example",
"location": "Arizona",
"profile-image-url": null,
"login-disabled": false,
"restricted": false,
"permission-role": "Admin",
"real-time-email-notification": true,
"daily-digest-email": true,
"weekly-digest-email": true,
"created-at": "2018-07-12T20:13:43.2436577"
},
"links": {
"self": "/users/qlsjc"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
employee-id | The ID of the user to update | String | Yes |
first-name | The first name of the user | String | Yes |
last-name | The last name of the user | String | Yes |
full-name | The full name of the user | String | No |
organization-email | Email used within the organization | String | Yes |
password | Password used to login, minimum 8 characters | String | No |
profile-visibility | Visibility of the profile, can be UseOrganizationDefault , Everyone , Organization , or Private |
String | Yes |
bio | Short biography of the user, maximum length 2000 characters. | String | No |
login-disabled | Ability for the user to login | Boolean | No |
restricted | Restricts the user from changing certain fields in the user interface, which are primarily related to entering free-text, such as commenting. | Boolean | No |
permission-role | One of Admin , LearningProfessional , Manager , or Member |
String | Yes |
real-time-email-notification | Do they want to receive email notifications | Boolean | No |
daily-digest-email | Sign up for the daily digest email | Boolean | No |
weekly-email-digest | Sign up for the weekly digest email | Boolean | No |
Update a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{"data": {"type": "users", "id": <ID>, "attributes": {"first_name":"Bill"}}}'
This endpoint updates supplied fields for a specific user. The scope required is users:write
.
The PATCH
endpoint does not support the X-Degreed-Organization-Code
header.
HTTP Request
PATCH https://api.degreed.com/api/v2/users/<ID>
This command returns the full data on the updated user:
{
"data": {
"type": "users",
"id": "o7zdP",
"attributes": {
"employee-id": "pnxzv",
"first-name": "Bill",
"last-name": "Kihn",
"full-name": "Ottilie Lesch",
"organization-email": "mail@example.org",
"personal-email": "mail@example.org",
"profile-visibility": "Private",
"bio": "Facere laborum fugit sunt. Perspiciatis fugit in corrupti aliquam. Atque odit labore inventore eum velit ut. Vel magni sit dolore modi dolores. Optio velit ut omnis maxime temporibus nostrum sint et enim.",
"location": "Gutmannview",
"profile-image-url": "http://example.org/image",
"login-disabled": false,
"restricted": false,
"permission-role": "Admin",
"real-time-email-notification": false,
"daily-digest-email": true,
"weekly-digest-email": true,
"created-at": "2019-01-24T06:37:24.4726661+01:00"
},
"links": {
"self": "/users/o7zdP"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to update |
Body Parameters
Delete a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint removes a user from the organization. On a successful delete, it returns a 204 No Content
response. The scope required is users:write
.
For Global Admin Tool Organizations, if the user belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
DELETE https://api.degreed.com/api/v2/users/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to delete |
Get Accomplishments for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/accomplishments"
-H "Authorization: Bearer <access_token>"
The above command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/foo/accomplishments"
},
"data": [
{
"type": "accomplishments",
"id": "Xgee0",
"attributes": {
"title": "internet solution",
"started-at": "2019-12-06T09:51:01.902",
"completed-at": "2020-04-30T00:00:00",
"image-url": "https://picsum.photos/640/440",
"rating": 6
},
"links": {
"self": "https://api.degreed.com/api/v2/accomplishments/Xgee0"
},
"relationships": [
{
"user": {
"data": {
"id": "foo",
"type": "users"
}
}
}
]
},
{
"type": "accomplishments",
"id": "l4gg9",
"attributes": {
"title": "support",
"started-at": null,
"completed-at": "2020-04-26T00:00:00",
"image-url": null,
"rating": null
},
"links": {
"self": "https://api.degreed.com/api/v2/accomplishments/l4gg9"
},
"relationships": [
{
"user": {
"data": {
"id": "foo",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all accomplishments for a specific user. The scope required is either users:read
, users:write
, accomplishments:read
or accomplishments:write
.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/accomplishments
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Get Certificates for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/certificates"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/NX0Le/certificates",
"next": "https://api.degreed.com/api/v2/users/NX0Le/certificates?limit=1&next=ve6WAy"
},
"data": [
{
"type": "certificates",
"id": "aByx6",
"attributes": {
"title": "database",
"started-at": "2020-05-03T19:16:28.116",
"completed-at": "2020-07-19T00:00:00",
"url": null,
"issued-by": null,
"certificate-number": null
},
"links": {
"self": "https://api.degreed.com/api/v2/certificates/aByx6"
},
"relationships": [
{
"user": {
"data": {
"id": "NX0Le",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all certificates for a specific user. The scope required is either users:read
, users:write
, certificates:read
or certificates:write
.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/certificates
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Get Certifiable Skills for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/certifiable-skills"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/aV94b/certifiable-skills",
"next": "https://api.degreed.com/api/v2/users/aV94b/certifiable-skills?next=fqSGI4"
},
"data": [
{
"type": "user-certifiable-skills",
"id": "4fd8y",
"attributes": {
"name": "Example",
"skill-unique-identifier": "f5de0cd7-e9f8-4493-a763-9f91a53e1ca5",
"is-blocked": true,
"started-at": "2018-09-19T22:28:43.5386171+02:00",
"completed-at": "2018-11-14T19:41:34.4548908+01:00",
"visibility": "Private",
"credential-type": "SkillReview",
"level": 2
},
"links": {
"self": "https://api.degreed.com/api/v2/user-certifiable-skills/4fd8y"
}
}
]
}
This endpoint retrieves all certifiable skills for a specific user. The scope required is users:read
, users:write
or user_skills:read
.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/certifiable-skills
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Get Completions for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/completions"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/z5oo5/completions",
"next": "https://api.degreed.com/api/v2/users/z5oo5/completions?next=jMNjjX"
},
"data": [
{
"type": "completions",
"id": "3e43t",
"attributes": {
"employee-id": "8sujd",
"completed-at": "2019-02-08T23:16:52.0441351+01:00",
"added-at": "2018-05-21T21:07:28.6547685+02:00",
"points-earned": "0.4511845938168390",
"is-verified": true,
"rating": 1,
"access-method": "Android"
},
"links": {
"self": "https://api.degreed.com/api/v2/completions/3e43t"
},
"relationships": [
{
"content": {
"data": {
"id": "ydqpo",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "Bailey Group",
"type": "providers"
}
}
},
{
"user": {
"data": {
"id": "t5dfv",
"type": "users"
}
}
}
],
"included": [
{
"type": "content",
"id": "ydqpo",
"attributes": {
"content-type": "Course",
"url": "http://example.org",
"title": "Dolores neque harum.",
"provider": "Bailey Group"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/ydqpo"
}
}
]
}
]
}
This endpoint retrieves all completions for a specific user. The scope required is either users:read
, users:write
, completions:read
or completions:write
.
For Global Admin Tool Organizations, if the user belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/completions
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Get Groups for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/groups"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/V5m8w/groups"
},
"data": [
{
"type": "user-groups",
"id": "nkNOw",
"attributes": {
"employee-id": null,
"joined-at": "2020-01-24T20:48:21.5145606",
"group-role": "Member"
},
"relationships": [
{
"group": {
"data": {
"id": "wVpL",
"type": "groups"
}
}
},
{
"user": {
"data": {
"id": "V5m8w",
"type": "users"
}
}
}
]
},
{
"type": "user-groups",
"id": "lRlZx",
"attributes": {
"employee-id": null,
"joined-at": "2019-10-08T12:21:33.3331892",
"group-role": "Admin"
},
"relationships": [
{
"group": {
"data": {
"id": "EnV2",
"type": "groups"
}
}
},
{
"user": {
"data": {
"id": "V5m8w",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all groups for a specific user. The scope required is either users:read
, users:write
, groups:read
or groups:write
.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/groups
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Get Required Learning for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/required-learning"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/02Npj5/required-learning"
},
"data": [
{
"type": "required-learning",
"id": "amLOzz",
"attributes": {
"employee-id": "6237e4bf-cb61-4aef-b2ad-f04ed4da5f39",
"assignment-type": "Required",
"due-at": "2020-05-10T00:00:00",
"created-at": "2020-07-17T20:22:24.6129718",
"modified-at": "2020-07-17T20:22:24.6129718"
},
"links": {
"self": "https://api.degreed.com/api/v2/required-learning/amLOzz"
},
"relationships": [
{
"user": {
"data": {
"id": "02Npj5",
"type": "users"
}
}
},
{
"content": {
"data": {
"id": "n4PZ0rX",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "Internal",
"type": "providers"
}
}
}
],
"included": [
{
"type": "content",
"id": "n4PZ0rX",
"attributes": {
"content-type": "Video",
"url": null,
"title": "projection",
"provider": "Internal"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/n4PZ0rX"
}
}
]
}
]
}
This endpoint retrieves all required learning for a specific user. The scope required is users:read
, users:write
, required_learning:read
or required_learning:write
.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/required-learning
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Get Shared Items for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/shared-items"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/AadY2/recommendation",
"next": "https://api.degreed.com/api/v2/users/AadY2/recommendation?next=hb1qlS"
},
"data": [
{
"type": "shared-items",
"id": "y1oZx",
"attributes": {
"employee-id": null,
"recipient-employee-id": "devin@degreed.com",
"recommended-at": "2019-07-23T15:54:36.5848408",
"status": "Pending",
"assignment-type": "Recommendation",
"modified-at": null
},
"links": {
"self": "https://api.degreed.com/api/v2/shared-items/y1oZx"
},
"relationships": [
{
"user": {
"data": {
"id": "AadY2",
"type": "users"
}
}
},
{
"recipient": {
"data": {
"id": "xY7Kp",
"type": "users"
}
}
},
{
"content": {
"data": {
"id": "rrA2ELg",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": null,
"type": "providers"
}
}
},
{
"pathway": {
"data": {
"id": null,
"type": "pathways"
}
}
}
],
"included": [
{
"type": "content",
"id": "rrA2ELg",
"attributes": {
"content-type": "Course",
"url": null,
"title": "Requirements Elicitation for Business Analysts: Interviews",
"provider": null
},
"links": {
"self": "https://api.degreed.com/api/v2/content/rrA2ELg"
}
}
]
}
]
}
This endpoint retrieves all groups for a specific user. The scope required is either users:read
, users:write
or shared_itmes:read
.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/shared-items
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Get Skill Ratings for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/skill-ratings"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/foo/skill-ratings",
"next": "https://api.degreed.com/api/v2/users/foo/skill-ratings?next=OtzKDT"
},
"data": [
{
"type": "skill-ratings",
"id": "qnexf",
"attributes": {
"employee-id": "user@example.org",
"skill-name": "Synergize Viral Bandwidth",
"rating": 1,
"rating-type": "Manager",
"certifiable-skill-guid": "9547e2a8-2a04-402f-b026-3c173da39d5f",
"rated-at": "2019-01-27T18:32:13.7214638+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/skill-ratings/qnexf"
},
"relationships": [
{
"user": {
"data": {
"id": "or88n",
"type": "users"
}
}
},
{
"skill": {
"data": {
"id": "8iegs",
"type": "skills"
}
}
}
]
}
]
}
This endpoint retrieves all skill ratings for a specific user.
You can see when a specific skill has an option for certification when the certifiable-skill-guid
has a UUID value associated with it.
The scope required is users:read
, users:write
, skill_ratings:read
or skill_ratings:write
.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/skill-ratings
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Get Today's Learning for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/todays-learning"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/QpK17/todays-learning",
"next": "https://api.degreed.com/api/v2/users/QpK17/todays-learning?identifier=employee-id&limit=1&modelUserId=4&next=K4Eo4r"
},
"meta": {
"is-personalized": false
},
"data": [
{
"type": "todays-learning",
"id": "spc26",
"attributes": {
"employee-id": "user@example.org",
"content-type": null,
"title": "Unde Enim et aut Nam Consequuntur Rerum.",
"summary": "Consequatur corporis ipsam nam voluptatem. Inventore eius eos expedita voluptatem repellat facere ut. Incidunt rerum qui pariatur et eos voluptates. Pariatur ipsum sequi doloremque nesciunt velit. Illo ut voluptatem quia.",
"url": "http://example.org",
"image-url": "http://example.org/image",
"duration": 81,
"duration-type": "Hours",
"provider": "Parisian, Altenwerth and Muller",
"suggested-at": "2018-05-19T04:13:03.4438043+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/todays-learning/spc26"
},
"relationships": [
{
"user": {
"data": {
"id": "u67wf",
"type": "users"
}
}
},
{
"content": {
"data": {
"id": "vhjcb",
"type": "content"
}
}
}
]
}
]
}
This endpoint retrieves all today's learning for a specific user. The scope required is users:read
, users:write
or todays_learning:read
.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/todays-learning
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
modelUserId | If there is no personalized content, we copy the content from this user ID. |
Get User Skills for a Specific User
curl "https://api.degreed.com/api/v2/users/<ID>/user-skills"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/users/aV94b/user-skills",
"next": "https://api.degreed.com/api/v2/users/aV94b/user-skills?next=g4HWLo"
},
"data": [
{
"type": "user-skills",
"id": "iq80y",
"attributes": {
"employee-id": "user@example.org",
"skill-id": "sh5ex",
"skill-name": "streamline one-to-one deliverables",
"is-focus": false,
"followed-at": "2018-05-20T18:15:28.1149242+02:00",
"certifiable-skill-guid": "6c09091e-6b57-a749-24f8-bd8ba29ec535"
},
"links": {
"self": "https://api.degreed.com/api/v2/user-skills/iq80y"
},
"relationships": [
{
"user": {
"data": {
"id": "gt9a2",
"type": "users"
}
}
},
{
"certifiable-skill": {
"data": {
"id": "pgewr",
"type": "certifiable-skills"
}
}
}
]
}
]
}
This endpoint retrieves all user skills for a specific user. The scope required is users:read
, users:write
or user_skills:read
. The ID
can be any of the ID as shown in the API, employee ID, or email address. You can use the identifier
URL parameter to switch between types.
HTTP Request
GET https://api.degreed.com/api/v2/users/<ID>/user-skills
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve. |
identifier | How to identify the user, can be any of id (default), employee-id , or email . |
Completions
Get All Completions
curl "https://api.degreed.com/api/v2/completions"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/completions",
"next": "https://api.degreed.com/api/v2/completions?filter[start_date]=2018-08-01&filter[end_date]=2018-08-01&limit=1000&next=xeKYv0"
},
"data": [
{
"type": "completions",
"id": "0o23h",
"attributes": {
"employee-id": "vnrk8",
"completed-at": "2018-11-17T23:30:58.6412254+01:00",
"added-at": "2018-12-08T19:15:16.4966392+01:00",
"points-earned": "0.6681434012335460",
"is-verified": true,
"rating": 1,
"access-method": "Android"
},
"links": {
"self": "https://api.degreed.com/api/v2/completions/0o23h"
},
"relationships": [
{
"content": {
"data": {
"id": "9iusx",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "Kris - Yundt",
"type": "providers"
}
}
},
{
"user": {
"data": {
"id": "297qq",
"type": "users"
}
}
}
],
"included": [
{
"type": "content",
"id": "9iusx",
"attributes": {
"content-type": "Course",
"url": "http://example.org",
"title": "Natus Perferendis Nostrum Tempore",
"provider": "Kris - Yundt"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/9iusx"
}
}
]
}
]
}
The completions endpoint retrieves all completions for the organization. The scope required is completions:read
. Completions also require a start and end date, with a maximum range of 7 days.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included the endpoint will return completions for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/completions
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
filter[start_date] | empty | Get completions added from this date on. Format yyyy-MM-dd . |
Yes |
filter[end_date] | empty | Get completions added until this date. Format yyyy-MM-dd . |
Yes |
next | empty | Supplied to retrieve the next batch of content. | No |
limit | 100 | The number of completions per page. Maximum of 1000. | No |
Get a Specific Completion
curl "https://api.degreed.com/api/v2/completions/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
The above command returns JSON structured like this:
{
"data": {
"type": "completions",
"id": "z4LybBZ",
"attributes": {
"organization-id": null,
"provider-id": null,
"employee-id": "9c25862c-dca2-4586-9936-8af29c7f679e",
"completed-at": "2020-03-20T00:00:00",
"added-at": "2020-03-20T22:34:54.88",
"points-earned": "0.0900000",
"is-verified": true,
"rating": 0,
"access-method": null
},
"links": {
"self": "https://api.degreed.com/api/v2/completions/z4LybBZ"
},
"relationships": [
{
"content": {
"data": {
"id": "z4zVb6Y",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "Internal",
"type": "providers"
}
}
},
{
"user": {
"data": {
"id": "xX6j2",
"type": "users"
}
}
}
],
"included": [
{
"type": "content",
"id": "z4zVb6Y",
"attributes": {
"content-type": "Article",
"url": "http://zack.info",
"title": "matrix",
"provider": "Internal"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/z4zVb6Y"
}
}
]
}
}
This endpoint retrieves a specific completion. The scope required is completions:read
or completions:write
.
For Global Admin Tool Organizations, if the user of the completion belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/completions/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the completion to retrieve |
Create A New Completion
curl "https://api.degreed.com/api/v2/completions"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": { \
"attributes": { \
"user-id": "o7zdP", \
"user-identifier-type": "userid", \
"content-id": "00002420", \
"content-id-type": "externalId", \
"content-type": "course", \
"completed-at": "2018-08-01T00:00:00" \
} \
} \
} \'
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint creates a new completion in the system. The scope required is completions:write
.
For Global Admin Tool Organizations, if the user of the completion belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
POST https://api.degreed.com/api/v2/completions
This command returns a
201 Created
response with, as body, the newly created Completion containing the newly generated unique ID:
{
"data": {
"type": "completions",
"id": "foo",
"attributes": {
"user-id": "FB1222",
"user-identifier-type": "UserId",
"content-id": "foo:b:baz",
"content-id-type": "Id",
"content-type": "Video",
"completed-at": "2018-06-06T16:12:26.4728887+02:00",
"is-verified": true
},
"links": {
"self": "/completions/foo"
}
}
}
Body Parameters
Parameter | Default | Description | Type | Required |
---|---|---|---|---|
user-id | The unique ID of the user who completed it | String | Yes | |
user-identifier-type | Can be any of UserId , Email , EmployeeId , AliasUid , or AliasEmail |
String | Yes | |
content-id | Unique ID identifying the content | String | Yes | |
content-id-type | Can be any of ExternalId , Id , or ContentUrl |
String | Yes | |
content-type | Can be any of Article , Book , Course , Event , Video or Assessment |
String | Yes | |
completed-at | Date when the completion was created | String | Yes | |
is-verified | true | The completion is verified | Boolean | No |
questions-correct | 0 | Specific to Assessments , number of questions answered correctly |
Integer | No |
percentile | 0 | Specific to Assessments , the user's percentile |
Decimal | No |
Update a Specific Completion
curl "https://api.degreed.com/api/v2/completions/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{"data": {"type": "completions", "id": <ID>, "attributes": {"user-id":"foo"}}}'
This endpoint updates supplied fields for a specific completion. The scope required is completions:write
. The PATCH
endpoint does not support the X-Degreed-Organization-Code
header.
HTTP Request
PATCH https://api.degreed.com/api/v2/completions/<ID>
This command returns the full data on the updated completion:
{
"data": {
"type": "completions",
"id": "foo",
"attributes": {
"user-id": "FB1222",
"user-identifier-type": "UserId",
"content-id": "foo:b:baz",
"content-id-type": "Id",
"content-type": "Video",
"completed-at": "2018-06-06T16:12:26.4728887+02:00"
},
"links": {
"self": "/completions/foo"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the completion to update |
Body Parameters
Parameter | Description | Type |
---|---|---|
completed-at | Date when the completion was created | String |
is-verified | The completion is verified, default is 'true' | Boolean |
questions-correct | Specific to Assessments , number of questions answered correctly |
Integer |
percentile | Specific to Assessments , the user's percentile |
Decimal |
Delete a Specific Completion
curl "https://api.degreed.com/api/v2/completions/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint deletes a completion from the system. On a successful delete, it returns a 204 No Content
response. The scope required is completions:write
.
For Global Admin Tool Organizations, if the user of the completion belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
DELETE https://api.degreed.com/api/v2/completions/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the completion to delete |
Accomplishments
Get all Accomplishments
curl "https://api.degreed.com/api/v2/accomplishments"
-H "Authorization: Bearer <access_token>"
The above command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/accomplishments",
"next": "https://api.degreed.com/api/v2/accomplishments?filter[start_date]=2020-04-25&filter[end_date]=2020-05-02&limit=2&next=03gLos"
},
"data": [
{
"type": "accomplishments",
"id": "Wm2wk",
"attributes": {
"title": "Public Speaking",
"started-at": "2019-11-05T09:45:33.382",
"completed-at": "2020-04-27T00:00:00",
"image-url": null,
"rating": 1
},
"links": {
"self": "https://api.degreed.com/api/v2/accomplishments/Wm2wk"
},
"relationships": [
{
"user": {
"data": {
"id": "3xqQ5",
"type": "users"
}
}
}
]
},
{
"type": "accomplishments",
"id": "qRyr1",
"attributes": {
"title": "Leadership",
"started-at": "2019-11-07T16:12:45",
"completed-at": "2020-04-28T00:00:00",
"image-url": null,
"rating": 1
},
"links": {
"self": "https://api.degreed.com/api/v2/accomplishments/qRyr1"
},
"relationships": [
{
"user": {
"data": {
"id": "3xqQ5",
"type": "users"
}
}
}
]
}
]
}
The accomplishments endpoint retrieves all accomplishments for the organization. The scope required is accomplishments:read
.
HTTP Request
GET https://api.degreed.com/api/v2/accomplishments
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
filter[start_date] | empty | Get accomplishments added from this date on. Format yyyy-MM-dd . |
Yes |
filter[end_date] | empty | Get accomplishments added until this date. Format yyyy-MM-dd . |
Yes |
next | empty | Supplied to retrieve the next batch of Accomplishments. | No |
limit | 100 | The number of accomplishments per page. Maximum of 1000. | No |
Get a specific Accomplishment
curl "https://api.degreed.com/api/v2/accomplishments/<ID>"
-H "Authorization: Bearer <access_token>"
The above command returns JSON structured like this:
{
"data": {
"type": "accomplishments",
"id": "RO275",
"attributes": {
"title": "Teamwork",
"started-at": "2019-08-07T09:44:37.493",
"completed-at": "2020-04-24T00:00:00",
"image-url": "https://picsum.photos/640/440",
"rating": 5
},
"links": {
"self": "https://api.degreed.com/api/v2/accomplishments/RO275"
},
"relationships": [
{
"user": {
"data": {
"id": "27BQy",
"type": "users"
}
}
}
]
}
}
This endpoint retrieves a specific accomplishment. The scope required is accomplishments:read
or accomplishments:write
.
HTTP Request
GET https://api.degreed.com/api/v2/accomplishments/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the accomplishment to retrieve |
Create a new Accomplishment
curl "https://api.degreed.com/api/v2/accomplishments"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": { \
"attributes": { \
"user-id": "27BQy", \
"title": "Critical Thinking", \
"started-at": "2019-08-07T09:44:37.493", \
"completed-at": "2020-04-24", \
"image-url": "https://picsum.photos/640/440", \
"rating": 5 \
} \
} \
} \'
This endpoint creates a new accomplishment in the system. The scope required is accomplishments:write
.
HTTP Request
POST https://api.degreed.com/api/v2/accomplishments
The above command returns a
201 Created
response and the body contains the newly created accomplishment with a generated unique ID:
{
"data": {
"type": "accomplishments",
"id": "foo",
"attributes": {
"user-id": "27BQy",
"title": "Critical Thinking",
"started-at": "2019-08-07T09:44:37.493",
"completed-at": "2020-04-24T00:00:00",
"image-url": "https://picsum.photos/640/440",
"rating": 5
},
"links": {
"self": "/accomplishments/foo"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
user-id | The unique ID of the user who completed it | String | Yes |
user-identifier-type | Must be UserId |
String | Yes |
title | Text describing the accomplishment, max length 255 Characters | String | Yes |
image-url | Url of an image which will be shown on the content cards at Degreed | String | No |
started-at | Date when the accomplishment was started | String | No |
completed-at | Date when the accomplishment was completed | String | Yes |
rating | Rating of the accomplishment, an integer value from 1 up to and including 8 | Integer | No |
Update a specific Accomplishment
curl "https://api.degreed.com/api/v2/accomplishments/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
-d '{ \
"data": { \
"attributes": { \
"title": "Adaptability", \
} \
} \
} \'
This endpoint updates supplied fields for a specific accomplishment. The scope required is accomplishments:write
.
HTTP Request
PATCH https://api.degreed.com/api/v2/accomplishments/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the accomplishment to update |
Body Parameters
Parameter | Description | Type |
---|---|---|
title | Text describing the accomplishment, max length 255 Characters | String |
image-url | Url of an image which will be shown on the content cards at Degreed | String |
started-at | Date when the accomplishment was started | String |
completed-at | Date when the accomplishment was completed | String |
rating | Rating of the accomplishment, an integer value from 1 up to and including 8 | Integer |
The above command returns the full data on the updated accomplishment:
{
"data": {
"type": "accomplishments",
"id": "foo",
"attributes": {
"title": "Adaptability",
"started-at": "2020-02-12T01:08:23.887",
"completed-at": "2020-05-03T00:00:00",
"image-url": "https://picsum.photos/640/440",
"rating": 5
},
"links": {
"self": "/accomplishments/foo"
},
"relationships": [
{
"user": {
"data": {
"id": "YOjx3",
"type": "users"
}
}
}
]
}
}
Delete a specific Accomplishment
curl "https://api.degreed.com/api/v2/accomplishments/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
This endpoint deletes an accomplishment from the system. On a successful delete, it returns a 204 No Content
response. The scope required is accomplishments:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/accomplishments/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the accomplishment to delete |
Certificates
Get all Certificates
curl "https://api.degreed.com/api/v2/certificates"
-H "Authorization: Bearer <access_token>"
The above command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/certificates",
"next": "https://api.degreed.com/api/v2/certificates?limit=2&next=HJpIqJ"
},
"data": [
{
"type": "certificates",
"id": "z6",
"attributes": {
"title": "Project Managment",
"started-at": "2013-03-23T00:00:00",
"completed-at": "2014-03-23T00:00:00",
"url": null,
"issued-by": null,
"certificate-number": null
},
"links": {
"self": "https://api.degreed.com/api/v2/certificates/z6"
},
"relationships": [
{
"user": {
"data": {
"id": "qRgqm",
"type": "users"
}
}
}
]
},
{
"type": "certificates",
"id": "k8",
"attributes": {
"title": "TS: Windows Communication Foundation Development with Microsoft .NET Framework 4",
"started-at": "2011-06-28T00:00:00",
"completed-at": null,
"url": null,
"issued-by": null,
"certificate-number": null
},
"links": {
"self": "https://api.degreed.com/api/v2/certificates/k8"
},
"relationships": [
{
"user": {
"data": {
"id": "zAmYZ",
"type": "users"
}
}
}
]
}
]
}
The certificates endpoint retrieves all certificates for the organization. The scope required is certificates:read
.
HTTP Request
GET https://api.degreed.com/api/v2/certificates
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
filter[start_date] | empty | Get certificates added from this date on. Format yyyy-MM-dd |
Yes |
filter[end_date] | empty | Get certificates added until this date. Format yyyy-MM-dd |
Yes |
next | empty | Supplied to retrieve the next batch of certificates | No |
limit | 100 | The number of certificates per page. Maximum of 1000 | No |
Get a specific certificate
curl "https://api.degreed.com/api/v2/certificates/<ID>"
-H "Authorization: Bearer <access_token>"
The above command returns JSON structured like this:
{
"data": {
"type": "certificates",
"id": "POQjv",
"attributes": {
"title": "Project Managment",
"started-at": "2020-05-03T00:00:00",
"completed-at": null,
"url": null,
"issued-by": null,
"certificate-number": null
},
"links": {
"self": "https://api.degreed.com/api/v2/certificates/POQjv"
},
"relationships": [
{
"user": {
"data": {
"id": "NX0Le",
"type": "users"
}
}
}
]
}
}
This endpoint retrieves a specific certificate. The scope required is certificates:read
or certificates:write
.
HTTP Request
GET https://api.degreed.com/api/v2/certificates/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the certificate to retrieve |
Create a new certificate
curl "https://api.degreed.com/api/v2/certificates"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": { \
"attributes": { \
"user-id": "27BQy", \
"user-identifier-type": "UserId", \
"title": "Project Managment Certificate", \
"started-at": "2020-09-05", \
"issued-by": "Oregon State University" \
} \
} \
} \'
This endpoint creates a new certificate in the system. The scope required is certificates:write
.
HTTP Request
POST https://api.degreed.com/api/v2/certificates
The above command returns a
201 Created
response and the body contains the newly created certificate with a generated unique ID:
{
"data": {
"type": "certificates",
"id": "POQjv",
"attributes": {
"user-identifier-type": "UserId",
"user-id": "NX0Le",
"title": "Project Managment",
"started-at": "2020-05-03T00:00:00",
"completed-at": null,
"url": null,
"issued-by": "Oregon State University",
"certificate-number": null
},
"links": {
"self": "/certificates/POQjv"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
user-id | The unique ID of the user who completed it | String | Yes |
user-identifier-type | The type of 'user-id' supplied. Can be any of UserId , Email , EmployeeId , AliasUid , or AliasEmail |
String | Yes |
title | Text describing the certificate, max length 255 Characters | String | Yes |
url | Url of the certificate or issuer | String | No |
started-at | Date when the certificate was issued | String | Yes |
completed-at | Date when the certificate was expires | String | No |
issued-by | Institution that issued the certification | String | Yes |
certificate-number | Certification number from the certifying institution | String | No |
Update a specific certificate
curl "https://api.degreed.com/api/v2/certificates/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
-d '{ \
"data": { \
"attributes": { \
"completed-at": "2024-09-05", \
} \
} \
} \'
This endpoint updates supplied fields for a specific certificate. The scope required is certificates:write
.
HTTP Request
PATCH https://api.degreed.com/api/v2/certificates/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the certificate to update |
The above command returns the full data on the updated certificate:
{
"data": {
"type": "certificates",
"id": "22eL7",
"attributes": {
"title": "Project Managment Certificate",
"started-at": "2020-05-03T00:00:00",
"completed-at": "2024-09-05T00:00:00",
"url": null,
"issued-by": null,
"certificate-number": null
},
"links": {
"self": "/certificates/22eL7"
},
"relationships": [
{
"user": {
"data": {
"id": "NX0Le",
"type": "users"
}
}
}
]
}
}
Body Parameters
Parameter | Description | Type |
---|---|---|
title | Text describing the certificate, max length 255 Characters | String |
url | Url of the certificate or issuer | String |
started-at | Date when the certificate was issued | String |
completed-at | Date when the certificate was expires | String |
issued-by | Institution that issued the certification | String |
certificate-number | Certification number from the certifying institution | String |
Delete a specific certificate
curl "https://api.degreed.com/api/v2/certificates/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
This endpoint deletes an certificate from the system. On a successful delete, it returns a 204 No Content
response. The scope required is certificates:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/certificates/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the certificate to delete |
User Skills
User skills represent the relationship between a single user and a skill (one-to-many).
Get All User Skills
curl "https://api.degreed.com/api/v2/user-skills"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/user-skills",
"next": "https://api.degreed.com/api/v2/user-skills?next=WPfOKZ"
},
"data": [
{
"type": "user-skills",
"id": "1ng5n",
"attributes": {
"employee-id": "Percival_Ruecker70@example.org",
"skill-id": "s60zo",
"skill-name": "transition bricks-and-clicks vortals",
"is-focus": false,
"followed-at": "2019-02-26T19:39:46.2784252+01:00",
"certifiable-skill-guid": "cb709247-8511-356f-ee90-a053c4223429"
},
"links": {
"self": "https://api.degreed.com/api/v2/user-skills/1ng5n"
},
"relationships": [
{
"user": {
"data": {
"id": "idrgs",
"type": "users"
}
}
},
{
"certifiable-skill": {
"data": {
"id": "ppjfs",
"type": "certifiable-skills"
}
}
}
]
}
]
}
This endpoint retrieves all user skills for the current organization. The required scope is user_skills:read
.
HTTP Request
GET https://api.degreed.com/api/v2/user-skills
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of user skills. | No |
limit | 100 | Number of user skills per page. Maximum of 1000. | No |
filter[start_date] | empty | Get user skills followed from this date on. Format yyyy-MM-dd . |
No |
filter[end_date] | empty | Get user skills followed before this date. Format yyyy-MM-dd . |
No |
Get a Specific User Skill
curl "https://api.degreed.com/api/v2/user-skills/<ID>"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"data": {
"type": "user-skills",
"id": "wXdRY",
"attributes": {
"employee-id": "ek4l9",
"skill-id": "jbw5O",
"skill-name": "Public Speaking",
"is-focus": false,
"followed-at": "2019-11-05T21:26:07.5442419",
"certifiable-skill-guid": "55e8c8ea-2099-4f97-bf8b-532df816b079"
},
"links": {
"self": "https://api.degreed.com/api/v2/user-skills/wXdRY"
},
"relationships": [
{
"user": {
"data": {
"id": "XlB9B",
"type": "users"
}
}
},
{
"certifiable-skill": {
"data": {
"id": "qVEb",
"type": "certifiable-skills"
}
}
}
]
}
}
This endpoint retrieves a specific user skill. The scope required is user_skill:read
.
HTTP Request
GET https://api.degreed.com/api/v2/user-skills/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user skill to retrieve |
Create A New User Skill
curl "https://api.degreed.com/api/v2/user-skills"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": { \
"attributes": { \
"user-id": "o7zdP", \
"user-identifier-type": "UserId", \
"skill-name": "Painting" \
} \
} \
} \'
This creates a new relationship between a user and a skill. If the skill doesn't exist yet, we create it. To identify the user can either supply the user-id
or employee-id
. The required scope is user_skills:write
.
HTTP Request
POST https://api.degreed.com/api/v2/user-skills
This command returns a
201 Created
response with as body the newly created user skill containing the newly generated unique ID:
{
"data": {
"type": "user-skill",
"id": "foo",
"attributes": {
"employee-id": null,
"skill-id": "wV5RZ",
"skill-name": "Painting",
"followed-at": "2019-02-27T21:29:55.3942919",
"certifiable-skill-guid": null,
},
"links": {
"self": "/api/v2/user-skills/foo"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
user-id | The unique ID of the user. | String | Yes |
skill-name | The name of the skill to be assigned to the user. | String | Yes |
user-identifier-type | Can be any of UserId , Email , or EmployeeId . |
String | Yes |
Delete a Specific User Skill
curl "https://api.degreed.com/api/v2/user-skills/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
This endpoint deletes a user skill from Degreed. On a successful delete, it returns a 204 No Content
response. The scope required is user_skills:write
.
Skill Ratings
Get All Skill Ratings
curl "https://api.degreed.com/api/v2/skill-ratings"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/skill-ratings",
"next": "https://api.degreed.com/api/v2/skill-ratings?next=OtzKDT"
},
"data": [
{
"type": "skill-ratings",
"id": "qnexf",
"attributes": {
"employee-id": "Lois_Gusikowski@example.org",
"skill-name": "synergize viral bandwidth",
"rating": 1,
"rating-type": "Manager",
"certifiable-skill-guid": "9547e2a8-2a04-402f-b026-3c173da39d5f",
"rated-at": "2019-01-27T18:32:13.7214638+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/skill-ratings/qnexf"
},
"relationships": [
{
"user": {
"data": {
"id": "or88n",
"type": "users"
}
}
},
{
"skill": {
"data": {
"id": "8iegs",
"type": "skills"
}
}
}
]
}
]
}
This endpoint retrieves all skill ratings for the current organization.
You can see when a specific skill has an option for certification when the certifiable-skill-guid
has a UUID value associated with it.
The required scope is skill_ratings:read
.
HTTP Request
GET https://api.degreed.com/api/v2/skill-ratings
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of groups. | No |
limit | 100 | Number of skill ratings per page. Maximum of 1000. | No |
filter[start_date] | empty | Get skill ratings rated on or after this date. Format yyyy-MM-dd . |
No |
filter[end_date] | empty | Get skill ratings rated before this date. Format yyyy-MM-dd . |
No |
Get a Specific Skill Rating
curl "https://api.degreed.com/api/v2/skill-ratings/<ID>"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"data": {
"type": "skill-ratings",
"id": "lrjZ",
"attributes": {
"employee-id": "12304f08h0844f9",
"skill-name": "Digital Marketing",
"rating": 5,
"rating-type": "Manager",
"certifiable-skill-guid": "f1f15772-dbe2-4118-ad22-23549159d214",
"rated-at": "2019-09-06T08:02:22.9007582"
},
"links": {
"self": "https://api.degreed.com/api/v2/skill-ratings/lrjZ"
},
"relationships": [
{
"user": {
"data": {
"id": "o7zdP",
"type": "users"
}
}
},
{
"skill": {
"data": {
"id": "PkR8m",
"type": "skills"
}
}
},
{
"certifiable-skill": {
"data": {
"id": "BnP",
"type": "certifiable-skills"
}
}
}
]
}
}
This endpoint retrieves a specific skill rating for the current organization. The required scope is skill_ratings:read
.
HTTP Request
GET https://api.degreed.com/api/v2/skill-ratings/<ID>
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | The ID of the skill rating to retrieve | Yes |
Create a New Skill Rating
curl "https://api.degreed.com/api/v2/skill-ratings"
-H 'content-type: application/json'
-H 'authorization: Bearer <access_token>'
-X POST
-d '{ \
"data": { \
"type": "skill-ratings", \
"attributes": { \
"user-id": "o7zdP", \
"skill-name": "Digital Marketing", \
"rating": 5, \
"rating-type": "Manager", \
"manager-id": "04Bz3" \
} \
} \
}'
This endpoint creates a new skill rating for a user. The required scope is skill_ratings:write
.
HTTP Request
POST https://api.degreed.com/api/v2/skill-ratings
This command returns a
201 Created
response with as body the newly created skill rating containing the newly generated unique ID:
{
"data": {
"type": "skill-ratings",
"id": "lrjZ",
"attributes": {
"user-id": "o7zdP",
"manager-id": "04Bz3",
"skill-id": "PkR8m",
"skill-name": "Digital Marketing",
"comment": "",
"rating-type": "Manager",
"rating": 5,
"rated-at": "2019-09-06T08:02:22.9007582"
},
"links": {
"self": "/skill-ratings/lrjZ"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
skill-name | The name of the skill | String | Yes |
user-id | The ID of the user being rated | String | Yes |
rating | Rating of the skill, an integer value from 1 up to and including 8 | Integer | Yes |
manager-id | The ID of the manager who is providing a rating | String | Yes |
rating-type | Must be manager |
String | Yes |
Delete a Specific Skill Rating
curl "https://api.degreed.com/api/v2/skill-ratings/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
This endpoint deletes a skill rating from Degreed. On a successful delete, it returns a 204 No Content
response. The scope required is skill_ratings:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/skill-ratings/<ID>
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | The ID of the skill rating to delete | Yes |
Logins
Get All Logins
curl "https://api.degreed.com/api/v2/logins"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/logins",
"next": "https://api.degreed.com/api/v2/logins?filter[start_date]=2018-05-10&filter[end_date]=2018-05-16&next=OnzK7R"
},
"data": [
{
"type": "logins",
"id": "aw6op5",
"attributes": {
"employee-id": "ozlz45blfy",
"logged-in-at": "2019-01-28T22:58:10.7577168+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/logins/aw6op5"
},
"relationships": [
{
"user": {
"data": {
"id": "3xvdxq",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all logins for the current organization. The scope required is logins:read
. Logins also requires you to send a start_date
and end_date
, which are limited to a 7 day range.
HTTP Request
GET https://api.degreed.com/api/v2/logins
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of groups. | No |
limit | 100 | Number of logins to per page. Maximum of 1000. | No |
filter[start_date] | empty | Get logins from this date through filter[end_date] . Format yyyy-MM-dd . |
Yes |
filter[end_date] | empty | Get logins from filter[start_date] through this date. Format yyyy-MM-dd . |
Yes |
User Followers
Get All User Followers
curl "https://api.degreed.com/api/v2/user-followers"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/user-followers",
"next": "https://api.degreed.com/api/v2/user-followers?filter[start_date]=2017-05-10&filter[end_date]=2018-05-16&next=iEGZVK"
},
"data": [
{
"type": "user-followers",
"id": "9zftd",
"attributes": {
"follower-employee-id": "Norberto23@example.org",
"following-employee-id": "8a0ov",
"followed-at": "2018-12-14T12:29:56.6302862+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/user-followers/9zftd"
},
"relationships": [
{
"follower": {
"data": {
"id": "6xh6x",
"type": "users"
}
}
},
{
"following": {
"data": {
"id": "b9ggb",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all followers of a user for the current organization. The required scope is users:read
.
HTTP Request
GET https://api.degreed.com/api/v2/user-followers
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of user followers. | No |
limit | 100 | Number of followers per page. Maximum of 1000. | No |
filter[start_date] | empty | Get followers who started following from this date on. Format yyyy-MM-dd . |
No |
filter[end_date] | empty | Get followers who started following before this date. Format yyyy-MM-dd . |
No |
Shared Items
Get All Shared Items
curl "https://api.degreed.com/api/v2/shared-items"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/shared-items",
"next": "https://api.degreed.com/api/v2/shared-items?filter[start_date]=2018-05-10&filter[end_date]=2018-05-16&next=qTBXJs"
},
"data": [
{
"type": "shared-items",
"id": "4bflx3",
"attributes": {
"employee-id": "n6d15s",
"recipient-employee-id": "t3sf2s",
"degreed-url": "https://degreed.com/videos/?d=J8Z45OZLPX",
"recommended-at": "2018-08-02T15:10:51.8660984+02:00",
"status": "Completed",
"modified-at": "2018-06-05T10:43:01.52394+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/shared-items/4bflx3"
},
"relationships": [
{
"user": {
"data": {
"id": null,
"type": "users"
}
}
},
{
"recipient": {
"data": {
"id": null,
"type": "users"
}
}
},
{
"content": {
"data": {
"id": "pq4ck3",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "Kub - Upton",
"type": "providers"
}
}
},
{
"pathway": {
"data": {
"id": "oaz37c",
"type": "pathways"
}
}
}
],
"included": [
{
"type": "content",
"id": "pq4ck3",
"attributes": {
"content-type": "Video",
"url": "https://example.org",
"title": "Aut provident qui quas autem quia alias aliquid in.",
"provider": "Kub - Upton"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/pq4ck3"
}
}
]
}
]
}
This endpoint retrieves all shared items (previously known as "recommendations") for the current organization. The scope required is shared_items:read
.
Shared Items also require a start and end date, where the max range is 7 days. See URL Parameters.
HTTP Request
GET https://api.degreed.com/api/v2/shared-items
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of shared items. | No |
limit | 100 | Amount of shared items per page. Max of 2000. | No |
filter[start_date] | empty | Get items that were shared, or modified from this date on. Format yyyy-MM-dd . |
Yes |
filter[end_date] | empty | Get items that were shared, or modified before this date. Format yyyy-MM-dd . |
Yes |
Required Learning
Get All Required Learning Items
curl "https://api.degreed.com/api/v2/required-learning"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/required-learning",
"next": "https://api.degreed.com/api/v2/required-learning?filter[start_date]=2018-05-10&filter[end_date]=2018-05-16&next=GEfqSz"
},
"data": [
{
"type": "required-learning",
"id": "ka5tb",
"attributes": {
"employee-id": "gdmhr3htab",
"assignment-type": "Assigned",
"due-at": "2019-03-20T02:24:47.7644348+01:00",
"created-at": "2018-05-17T06:37:22.6969769+02:00",
"modified-at": "2018-05-18T02:30:52.7828999+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/required-learning/ka5tb"
},
"relationships": [
{
"user": {
"data": {
"id": "2lqr01",
"type": "users"
}
}
},
{
"content": {
"data": {
"id": "r2nmjc",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "Bode - Block",
"type": "providers"
}
}
}
],
"included": [
{
"type": "content",
"id": "r2nmjc",
"attributes": {
"content-type": "Article",
"url": "http://example.org/article",
"title": "Sint alias aliquid nihil est rem dicta.",
"provider": "Bode - Block"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/r2nmjc"
}
}
]
}
]
}
This endpoint retrieves all required learning items for the current organization. The scope required is required_learning:read
.
The required learning endpoint also requires a start and end date, with a maximum range of 7 days.
HTTP Request
GET https://api.degreed.com/api/v2/required-learning
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of required learning. | No |
limit | 100 | Number of required learning items per page. Maximum of 1000. | No |
filter[start_date] | empty | Get learning items that were created, or modified on this date or later. Format yyyy-MM-dd . |
Yes |
filter[end_date] | empty | Get learning items that were created, or modified before this date. Format yyyy-MM-dd . |
Yes |
Get a Specific Required Learning
curl "https://api.degreed.com/api/v2/required-learning/<ID>"
-H "Authorization: Bearer <access_token>"
The above command returns JSON structured like this:
{
"data": {
"type": "required-learning",
"id": "5o6wZ",
"attributes": {
"users": [
{
"user-id": "9lnyj",
"employee-id": null
}
],
"assignment-type": "Required",
"due-at": "2020-05-10T00:00:00",
"created-at": "2020-07-22T21:51:43.0654777",
"modified-at": "2020-07-22T21:51:43.0654777",
"comment": null
},
"links": {
"self": "https://api.degreed.com/api/v2/equired-learning/5o6wZ"
},
"relationships": [
{
"content": {
"data": {
"id": "z6v83Km",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "getAbstract",
"type": "providers"
}
}
}
],
"included": [
{
"type": "content",
"id": "z6v83Km",
"attributes": {
"content-type": "Article",
"url": "https://www.getabstract.com/ShowAbstract.do?dataId=27023&u=bac",
"title": "Karrieremanagement in wissensbasierten Unternehmen",
"provider": "getAbstract"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/z6v83Km"
}
}
]
}
}
This endpoint retrieves a specific completion. The scope required is required_learning:read
or required_learning:write
.
HTTP Request
GET https://api.degreed.com/api/v2/required-learning/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the required learning to retrieve |
Create a new Required Learning
curl https://api.degreed.com/api/v2/required-learning
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": \
{ \
"type": "required-learning", \
"attributes": { \
"user-id": "john@example.com", \
"user-identifier-type": "email", \
"content-id": "foo", \
"content-id-type": "id", \
"content-type": "Article", \
"assignment-type": "Required", \
"due-at": "2020-05-10T00:00:00" \
} \
} \
}'
This endpoint creates a new required learning item. The scope required is required_learning:write
.
HTTP Request
POST https://api.degreed.com/api/v2/required-learning
This command returns a
201 Created
response with, as body, the new required learning endpoint containing the newly generated ID:
{
"data": {
"type": "required-learning",
"id": "5Qqwq",
"attributes": {
"user-id": "john@example.com",
"user-identifier-type": "email",
"content-id": "foo",
"content-id-type": "id",
"content-type": "Article",
"assignment-type": "Required",
"due-at": "2020-05-10T00:00:00",
"created-at": "2020-01-10T18:47:42.19974",
"modified-at": null
},
"links": {
"self": "/required-learning/5Qqwq"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
user-id | The ID of the user to assign the content item to | String | Yes |
user-identifier-type | Can be any of UserId , Email , EmployeeId , AliasUid , or AliasEmail |
String | Yes |
content-id | The unique ID of the content | String | Yes |
content-id-type | Can be any of ExternalId , Id , or ContentUrl |
String | Yes |
content-type | Can be any of Article , Book , Course , Event , or Video |
String | Yes |
assignment-type | Can be any of Required or Assigned |
String | Yes |
due-at | Datetime for when the assignment is due | String | Yes |
Update a Specific Required Learning
curl "https://api.degreed.com/api/v2/required-learning/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{ \
"data": { \
"type": "required-learning", \
"id": <ID>, \
"attributes": { \
"user-id":"beth@example.com" \
} \
} \
}'
This endpoint updates supplied fields for a specific required learning. The scope required is required_learning:write
.
HTTP Request
PATCH https://api.degreed.com/api/v2/required-learning/<ID>
This command returns the full data on the updated required learning item:
"links": {
"self": "https://api.degreed.com/api/v2/required-learning",
"next": "https://api.degreed.com/api/v2/required-learning?filter[start_date]=2018-05-10&filter[end_date]=2018-05-16&next=GEfqSz"
},
"data": [
{
"type": "required-learning",
"id": "ka5tb",
"attributes": {
"employee-id": "gdmhr3htab",
"assignment-type": "Assigned",
"due-at": "2019-03-20T02:24:47.7644348+01:00",
"created-at": "2018-05-17T06:37:22.6969769+02:00",
"modified-at": "2018-05-18T02:30:52.7828999+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/required-learning/ka5tb"
},
"relationships": [
{
"user": {
"data": {
"id": "2lqr01",
"type": "users"
}
}
},
{
"content": {
"data": {
"id": "r2nmjc",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "Bode - Block",
"type": "providers"
}
}
}
],
"included": [
{
"type": "content",
"id": "r2nmjc",
"attributes": {
"content-type": "Article",
"url": "http://example.org/article",
"title": "Sint alias aliquid nihil est rem dicta.",
"provider": "Bode - Block"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/r2nmjc"
}
}
]
}
]
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the required learning item to update |
Body Parameters
Delete a Specific Required Learning
curl "https://api.degreed.com/api/v2/required-learning/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
This endpoint deletes a required learning item from Degreed. On a successful delete, it returns a 204 No Content
response. The scope required is required_learning:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/required-learning/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the required learning to delete |
Groups
Get All Groups
curl "https://api.degreed.com/api/v2/groups"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/groups",
"next": "https://api.degreed.com/api/v2/groups?next=F4fMLs"
},
"data": [
{
"type": "groups",
"id": "nry4e",
"attributes": {
"name": "Jewelery, Tools & Books",
"description": "Corporis aperiam ipsa sit iure qui id ipsam dolores. Totam aut quibusdam unde aliquid debitis vero nostrum et. Harum quia ex. Officiis et impedit et sunt rerum laudantium.",
"privacy": "Administrative",
"created-at": "2019-02-23T19:00:19.878834+01:00",
"modified-at": "2018-05-10T09:40:54.2041221+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/groups/nry4e"
},
"relationships": [
{
"created_by": {
"data": {
"id": "xyhi6f",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all groups for the current organization. The scope required is groups:read
.
HTTP Request
GET https://api.degreed.com/api/v2/groups
URL Parameters
Parameter | Default | Description |
---|---|---|
next | empty | Supplied to retrieve the next batch of groups. |
limit | 100 | Number of groups to display per page. Maximum of 1000. |
Get a Specific Group
curl "https://api.degreed.com/api/v2/groups/<ID>"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"data": {
"type": "groups",
"id": "wgodl",
"attributes": {
"name": "Kids, Books & Music",
"description": "Sit sunt quod molestiae assumenda voluptatem quia consequatur non consequatur. Et natus labore numquam voluptatem sed facilis architecto. Vero delectus perferendis aliquid. Autem ex quis mollitia natus nemo.",
"privacy": "Open",
"created-at": "2018-10-26T21:09:17.838819+02:00",
"modified-at": "2018-09-18T09:44:29.8106523+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/groups/wgodl"
},
"relationships": [
{
"created_by": {
"data": {
"id": "oaa05l",
"type": "users"
}
}
}
]
}
}
This endpoint retrieves a specific group for the current organization. The scope required is groups:read
.
HTTP Request
GET https://api.degreed.com/api/v2/groups/<ID>
URL Parameters
Parameter | Default | Description |
---|---|---|
ID | null | ID used to get a specific group |
Get a List of Users for a Specific Group
curl "https://api.degreed.com/api/v2/groups/<ID>/users"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/groups/rn9/users",
"next": "https://api.degreed.com/api/v2/groups/rn9/users?next=t847pc"
},
"data": [
{
"type": "users",
"id": "aahq6",
"attributes": {
"employee-id": "ed234",
"joined-at": "2018-10-22T17:42:42.3288968+02:00",
"group-role": "Member"
},
"links": {
"self": "https://api.degreed.com/api/v2/users/aahq6"
},
"relationships": [
{
"group": {
"data": {
"id": "rn9",
"type": "groups"
}
}
},
{
"user": {
"data": {
"id": "k45dj",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves a list of users who belong to this group. The scope required is users:read
.
HTTP Request
GET https://api.degreed.com/api/v2/groups/<ID>/users
URL Parameters
Parameter | Default | Description |
---|---|---|
ID | null | ID used to get a specific group |
Create a New Group
curl https://api.degreed.com/api/v2/groups
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": { \
"type": "groups", \
"attributes": { \
"name": "Kids, Books & Music", \
"description": "Sit sunt quod molestiae assumenda voluptatem quia consequatur non consequatur. Et natus labore numquam voluptatem sed facilis architecto. Vero delectus perferendis aliquid. Autem ex quis mollitia natus nemo.", \
"privacy": "Open" \
} \
} \
}'
This command returns JSON structured like this:
{
"data": {
"type": "groups",
"id": "rYj5",
"attributes": {
"name": "Kids, Books & Music",
"description": "Sit sunt quod molestiae assumenda voluptatem quia consequatur non consequatur. Et natus labore numquam voluptatem sed facilis architecto. Vero delectus perferendis aliquid. Autem ex quis mollitia natus nemo.",
"privacy": "Open",
"created-at": "2019-10-02T12:22:34.4280682",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/groups/rYj5"
},
"relationships": [
{
"created_by": {
"data": {
"id": null,
"type": "users"
}
}
}
]
}
}
This endpoint creates a new group in the system. The scope required is groups:write
.
HTTP Request
POST https://api.degreed.com/api/v2/groups
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
name | empty | The title of the group | yes |
description | empty | A description of the group | yes |
privacy | Open |
The privacy setting for this group. Can be any of: Open , Closed , Private and Administrative . Global Admin Tool Organizations privacy settings can be any of: Open and Private . |
no |
group-type | Group |
Specifies the type of Group. Can either be Group or ManagerGroup |
no |
Update a Specific Group
curl "https://api.degreed.com/api/v2/groups/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{ \
"data": { \
"type": "groups", \
"id": <ID>, \
"attributes": { \
"name":"Kids, Reading Books & Learning Music" \
} \
} \
}'
This endpoint updates supplied fields for a specific group. The scope required is groups:write
.
HTTP Request
PATCH https://api.degreed.com/api/v2/groups/<ID>
This command returns the full data on the updated group:
{
"data": {
"type": "groups",
"id": "rYj5",
"attributes": {
"name": "Kids, Reading Books & Learning Music",
"description": "Sit sunt quod molestiae assumenda voluptatem quia consequatur non consequatur. Et natus labore numquam voluptatem sed facilis architecto. Vero delectus perferendis aliquid. Autem ex quis mollitia natus nemo.",
"privacy": "Open",
"created-at": "2019-10-02T12:22:34.4280682",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/groups/rYj5"
},
"relationships": [
{
"created_by": {
"data": {
"id": "Ne",
"type": "users"
}
}
}
]
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the group to update |
Body Parameters
Delete a Specific Group
curl "https://api.degreed.com/api/v2/groups/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
This endpoint deletes a group from the Degreed system. On a successful delete, it returns a 204 No Content
response. The scope required is groups:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/groups/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the group to update |
Add Users to a Group
curl https://api.degreed.com/api/v2/groups/<ID>/relationships/<role>
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": [ \
{ \
"id": "o7zdP" \
"type": "users" \
}, \
{ \
"id": "ww48R" \
"type": "users" \
} \
] \
}'
This endpoint add users to an existing group. On a successful add, it returns a 201 Created
response with no body. The scope required is groups:write
.
HTTP Request
POST https://api.degreed.com/api/v2/groups/<ID>/relationships/<role>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the group to update |
role | The role that the supplied user(s) will have. Can be admins or members |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | ID of the user that will be added to the group | yes |
type | users |
Type of object that will be added as a relationship. Can only be users . |
no |
Replace Users in a Group
curl https://api.degreed.com/api/v2/groups/<ID>/relationships/<role>
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
-d '{ \
"data": [ \
{ \
"id": "64rrL" \
"type": "users" \
}, \
{ \
"id": "8oWW3" \
"type": "users" \
} \
] \
}'
This endpoint replaces all users in an existing group with the newly supplied users. On a successful add, it returns a 201 Created
response with no body. The scope required is groups:write
.
HTTP Request
PATCH https://api.degreed.com/api/v2/groups/<ID>/relationships/<role>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the group to update |
role | The role that the supplied user(s) will have. Can be admins or members |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | ID of the user that will be added to the group | yes |
type | users |
Type of object that will be added as a relationship. Can only be users . |
no |
Delete Users in a Group
curl https://api.degreed.com/api/v2/groups/<ID>/relationships/<role>
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X DELETE
-d '{ \
"data": [ \
{ \
"id": "64rrL" \
"type": "users" \
}, \
{ \
"id": "8oWW3" \
"type": "users" \
} \
] \
}'
This endpoint deletes the specified users in a role of an existing group. On a successful add, it returns a 204 No Content
response. The scope required is groups:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/groups/<ID>/relationships/<role>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the group to update |
role | The role that the supplied user(s) have. Can be admins or members |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | ID of the user that will be added to the group | yes |
type | users |
Type of object that will be added as a relationship. Can only be users . |
no |
Get Organizations for a Specific Group
curl "https://api.degreed.com/api/v2/groups/<ID>/relationships/organizations"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/groups/Z9wm/relationships/organizations",
"next": "https://api.degreed.com/api/v2/groups/Z9wm/relationships/organizations?limit=1&next=4lTSL3"
},
"data": [
{
"type": "organizations",
"id": "myrirstOrganizationcode"
}
]
}
This endpoint retrieves a list of organizations that belong to this group. The scope required is groups:read
. This endpoint is only accessible to Global Admin Tool Organizations.
HTTP Request
GET https://api.degreed.com/api/v2/groups/<ID>/relationships/organizations
URL Parameters
Parameter | Default | Description |
---|---|---|
ID | null | ID used to get a specific group |
Add Organizations to a Group
curl https://api.degreed.com/api/v2/groups/<ID>/relationships/organizations
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": [ \
{ \
"type": "organizations", \
"id": "MyFirstOrganizationCode" \
}, \
{ \
"type": "organizations", \
"id": "MySecondOrganizationcode" \
} \
] \
}'
This endpoint adds organizations to an existing group. On a successful add, it returns a 201 Created
response with no body. The scope required is groups:write
. This endpoint is only accessible to Global Admin Tool Organizations.
HTTP Request
POST https://api.degreed.com/api/v2/groups/<ID>/relationships/organizations
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the group to update |
Body Paremeters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | Organization Code of the organization that will be added to the group | yes |
type | organizations |
Type of object that will be added as a relationship. Can only be organizations . |
no |
Replace Organizations in a Group
https://api.degreed.com/api/v2/groups/<ID>/relationships/organizations
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
-d '{ \
"data": [ \
{ \
"id": "MyFirstOrganization" \
"type": "organizations" \
}, \
{ \
"id": "MySecondOrganization" \
"type": "organizations" \
}, \
{ \
"id": "MyThirdOrganization" \
"type": "organizations" \
} \
] \
}'
This endpoint replaces all organizations in an existing group with the newly supplied organizations. On a successful add, it returns a 201 Created
response with no body. The scope required is groups:write
. This endpoint is only accessible to Global Admin Tool Organizations.
HTTP Request
PATCH https://api.degreed.com/api/v2/groups/<ID>/relationships/organizations
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the group to update |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | Organization Code of the organization that will be added to the group | yes |
type | organizations |
Type of object that will be added as a relationship. Can only be organizations . |
no |
Delete Organizations in a group
https://api.degreed.com/api/v2/groups/<ID>/relationships/organizations
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X DELETE
-d '{ \
"data": [ \
{ \
"id": "MyFirstOrganization" \
"type": "organizations" \
}, \
{ \
"id": "MyThirdOrganization" \
"type": "organizations" \
} \
] \
}'
This endpoint deletes the specified organizations in a group. It returns a 204 No Content
response. The scope required is groups:write
. This endpoint is only accessible to Global Admin Tool Organizations.
HTTP Request
DELETE https://api.degreed.com/api/v2/groups/<ID>/relationships/organizations
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the group to update |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | Organization Code of the organization that will be deleted from the group | yes |
type | organizations |
Type of object that will be added as a relationship. Can only be organizations . |
no |
Search Terms
Get All Search Terms
curl "https://api.degreed.com/api/v2/search-terms"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/search-terms",
"next": "https://api.degreed.com/api/v2/search-terms?next=7zAdeJ"
},
"data": [
{
"type": "search-terms",
"id": "927wf",
"attributes": {
"search-term": "football",
"count": 321
},
"links": {
"self": null
},
}
]
}
This endpoint retrieves (up to) the top 100 search terms for the current organization. Please note, the total number of records returned may vary because some search terms have been searched the same quantity. The required scope is search_terms:read
.
HTTP Request
GET https://api.degreed.com/api/v2/search-terms
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of search terms. | No |
limit | 100 | Number of search terms per page. Maximum of 1000. | No |
filter[start_date] | empty | Get searches who were made from this date on. Format yyyy-MM-dd . |
No |
filter[end_date] | empty | Get searches who were made before this date. Format yyyy-MM-dd . |
No |
Views
Get All Views
curl "https://api.degreed.com/api/v2/views"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/views",
"next": "https://api.degreed.com/api/v2/views?filter[start_date]=2018-05-10&filter[end_date]=2018-05-17&next=hTjWD9"
},
"data": [
{
"type": "views",
"id": "lrbv8",
"attributes": {
"url": "http://example.org",
"content-type": "Article",
"content-title": "Et consequatur officia.",
"view-count": 51
},
"links": {
"self": "https://api.degreed.com/api/v2/views/lrbv8"
},
"relationships": [
{
"content": {
"data": {
"id": "gcnyg",
"type": "content"
}
}
},
{
"provider": {
"data": {
"id": "Hegmann - Abbott",
"type": "providers"
}
}
}
]
}
]
}
This endpoint retrieves all views within the current organization. The required scope is views:read
.
Views also requires you to send the start and end date for the views. See URL Parameters.
HTTP Request
GET https://api.degreed.com/api/v2/views
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of groups. | No |
filter[start_date] | empty | Get views from this date on. Format yyyy-MM-dd . |
Yes |
filter[end_date] | empty | Get views before this date. Format yyyy-MM-dd . |
Yes |
Content
Get All Content
curl "https://api.degreed.com/api/v2/content"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/content",
"next": "https://api.degreed.com/api/v2/content?next=attoeA"
},
"data": [
{
"type": "content",
"id": "levxy",
"attributes": {
"content-type": "Video",
"external-id": "qv4tvv",
"title": "Recusandae Dolorem Ullam",
"summary": "Ex autem magnam possimus impedit qui. Aut non qui voluptas. Mollitia vitae nulla laborum voluptatibus et ut consectetur dignissimos incidunt. Dolorem molestias molestiae mollitia ut et. Dolorem minima voluptates enim non ut iure.",
"url": "https://darian.biz/som/program/functionalities",
"format": "et",
"is-obsolete": true,
"image-url": "http://example.org/image",
"language": "EN",
"duration": 96,
"duration-type": "Minutes",
"provider": "Example Provider",
"is-internal": true,
"created-at": "2018-03-13T22:29:49.0114598+01:00",
"modified-at": "2018-09-29T11:02:34.0564198+02:00",
"degreed-url": "https://degreed.com/videos/?d=49EYVNN185"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/levxy"
}
}
]
}
This endpoint retrieves all content for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will return content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/content
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of content. | No |
limit | 100 | Number of content items to display per page. Maximum of 1000. | No |
filter[start_date] | empty | Content created from this date on. Format yyyy-MM-dd . |
No |
filter[end_date] | empty | Content created before this date. Format yyyy-MM-dd . |
No |
filter[url] | empty | Only show content with this URL. | No |
Get A Specific Content Item
curl "https://api.degreed.com/api/v2/content/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"data": {
"type": "content",
"id": "123foo",
"attributes": {
"content-type": "Article",
"external-id": "ioygnzd",
"title": "Intelligent Plastic Soap Trafficway Producer",
"summary": "Magnam perspiciatis expedita qui.\nItaque numquam qui ullam iste nisi.\nNihil et autem quas consequatur quia ipsam ullam consequatur.",
"url": "http://example.org",
"format": "9nhxm",
"obsolete": true,
"image-url": "https://example.org/image",
"language": "nl_BE",
"provider-code": "SkillSoft",
"publish-date": "2010-04-01T00:00:00",
"created-at": "2018-07-23T12:43:24.3897557+02:00",
"modified-at": "2018-06-18T02:26:46.4757556+02:00",
"degreed-url": "https://degreed.com/articles/?d=49EYVNN185"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/123foo"
}
}
}
This endpoint retrieves a specific content item for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/content/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the content to retrieve |
Assign Skills to Content
curl https://api.degreed.com/api/v2/content/<ID>/relationships/skills
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": [ \
{ \
"id": "fly-fishing", \
"type": "skills" \
}, \
{ \
"id": "c-sharp", \
"type": "skills" \
} \
] \
}'
This endpoint adds one or more skills to existing content. On a successful add, it returns a 201 Created
response. The scope required is content:write
.
HTTP Request
POST https://api.degreed.com/api/v2/content/<ID>/relationships/skills
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the content to add skills to |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | String containing the name of the skill. The name is also the unique identifier. | yes |
type | skills |
Type of object that will be added as a relationship. Can only be skills . |
no |
Replace Skills in Content
curl https://api.degreed.com/api/v2/content/<ID>/relationships/skills
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
-d '{ \
"data": [ \
{ \
"id": "engineering", \
"type": "skills" \
}, \
{ \
"id": "fishing", \
"type": "skills" \
} \
] \
}'
This endpoint replaces all skills in existing content with the newly supplied skills. On a successful add, it returns a 201 Created
response. The scope required is content:write
.
HTTP Request
PATCH https://api.degreed.com/api/v2/content/<ID>/relationships/skills
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the content to replace skills in |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | String containing the name of the skill. The name is also the unique identifier. | yes |
type | skills |
Type of object that will be added as a relationship. Can only be skills . |
no |
Delete Skills from Content
curl https://api.degreed.com/api/v2/content/<ID>/relationships/skills
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X DELETE
-d '{ \
"data": [ \
{ \
"id": "tennis", \
"type": "skills" \
}, \
{ \
"id": "engineering", \
"type": "skills" \
} \
] \
}'
This endpoint deletes the specified skills in content. On a successful add, it returns a 204 No Content
response. The scope required is content:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/content/<ID>/relationships/skills
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the content to delete skills from |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | String containing the name of the skill. The name is also the unique identifier. | yes |
type | skills |
Type of object that will be added as a relationship. Can only be skills . |
no |
Get Skills for a Specific Content Item
curl "https://api.degreed.com/api/v2/content/<ID>/skills"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/content/QpK17/skills"
},
"data": [
{
"type": "skill",
"id": "Hockey",
"attributes": { }
}
]
}
This endpoint retrieves all skills for a specific content item. The scope required is content:read
.
HTTP Request
GET https://api.degreed.com/api/v2/content/<ID>/skills
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of skills. | No |
limit | 100 | Number of skills per page. Maximum of 1000. | No |
Content: Articles
Get All Articles
curl "https://api.degreed.com/api/v2/content/articles"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/content/articles",
"next": "https://api.degreed.com/api/v2/content/articles?next=1PEJqM"
},
"data": [
{
"type": "content/articles",
"id": "abc123",
"attributes": {
"external-id": "hp9hpot",
"title": "Assurance Planner auxiliary Personal Loan Account Strategist",
"summary": "Quasi sunt reiciendis.\nSed earum omnis at officiis.\nFugit ut molestias sunt aut qui ut.",
"url": "https://hellen.biz",
"format": "gel81",
"obsolete": false,
"image-url": "https://example.org",
"language": "en_au_ocker",
"num-words": 395,
"provider-code": "SkillSoft",
"publish-date": "2010-04-01T00:00:00",
"created-at": "2018-05-10T10:50:22.7789678+02:00",
"modified-at": "2019-03-20T09:05:29.1132915+01:00",
"degreed-url": "https://degreed.com/articles/?d=49EYVNN185"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/articles/abc123"
}
}
]
}
This endpoint retrieves all articles for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will return content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/content/articles
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of articles. | No |
limit | 100 | Number of articles per page. Maximum of 1000. | No |
filter[external_id] | empty | Only show articles with this external ID. | No |
Get A Specific Article
curl "https://api.degreed.com/api/v2/content/articles/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"data": {
"type": "content/articles",
"id": "123foo",
"attributes": {
"external-id": "ioygnzd",
"title": "Intelligent Plastic Soap Trafficway Producer",
"summary": "Magnam perspiciatis expedita qui.\nItaque numquam qui ullam iste nisi.\nNihil et autem quas consequatur quia ipsam ullam consequatur.",
"url": "http://example.org",
"format": "9nhxm",
"obsolete": true,
"image-url": "https://example.org/image",
"language": "nl_BE",
"num-words": 249,
"provider-code": "SkillSoft",
"publish-date": "2010-04-01T00:00:00",
"created-at": "2018-07-23T12:43:24.3897557+02:00",
"modified-at": "2018-06-18T02:26:46.4757556+02:00",
"degreed-url": "https://degreed.com/articles/?d=49EYVNN185"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/articles/123foo"
}
}
}
This endpoint retrieves a specific article for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/content/articles/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the article to retrieve |
Create A New Article
curl "https://api.degreed.com/api/v2/content/articles"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": { \
"attributes": { \
"external-id": "abcfoo", \
"title": "A title", \
"summary": "description", \
"url": "https:/example.com", \
"image-url": "https://example.org/image", \
"num-words": 40 \
} \
} \
} \'
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint creates a new article in the system. The scope required is content:write
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will create content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
POST https://api.degreed.com/api/v2/content/articles
This command returns a
201 Created
response with as body the newly created article containing the newly generated unique ID:
{
"data": {
"type": "content/articles",
"id": "zBe1bj",
"attributes": {
"external-id": "asf8nf48nceo8-3",
"title": "Some title",
"summary": "some description",
"url": "https://www.testing.com/sdf98hf8h9f/3",
"format": "4bwp8",
"obsolete": false,
"image-url": "https://example.org/image",
"language": "pt_BR",
"num-words": 132,
"provider-code": null,
"publish-date": "2010-04-01T00:00:00",
"created-at": "2018-11-23T14:06:16.0175839+01:00",
"modified-at": "2018-11-03T14:26:19.5172042+01:00",
"degreed-url": "https://degreed.com/articles/?d=49EYVNN185"
},
"links": {
"self": "/content/articles/zBe1bj"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
external-id | The external ID where the article can be found at the provider. | String | Yes |
title | The title of the article. | String | Yes |
summary | Short summary of the article. | String | No |
url | The URL where the article can be found | String | Yes |
image-url | Image which will be shown on the content cards at Degreed | String | No |
num-words | The number of words in the article | Integer | Yes |
Update a Specific Article
curl "https://api.degreed.com/api/v2/content/articles/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{"data": {"type": "content/articles", "id": <ID>, "attributes": {"summary":"a new summary"}}}'
This endpoint updates supplied fields for a specific article. The scope required is content:write
.
The PATCH
request does not support the X-Degreed-Organization-Code
header.
HTTP Request
PATCH https://api.degreed.com/api/v2/content/articles/<ID>
This command returns the full data on the updated article:
{
"data": {
"type": "content/articles",
"id": "zBe1bj",
"attributes": {
"title": "Some title",
"summary": "some description",
"url": "https://www.testing.com/sdf98hf8h9f/3",
"format": "4bwp8",
"obsolete": false,
"image-url": "https://example.org/image",
"language": "pt_BR",
"num_words": 110,
"provider-code": null,
"publish-date": "2010-04-01T00:00:00",
"created-at": "2018-11-23T14:06:16.0175839+01:00",
"modified-at": "2018-11-03T14:26:19.5172042+01:00",
"degreed-url": "https://degreed.com/articles/?d=49EYVNN185"
},
"links": {
"self": "/content/articles/zBe1bj"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the article to update |
Body Parameters
Parameter | Description | Type |
---|---|---|
title | The title of the article | String |
summary | Short summary of the article | String |
url | The URL where the article can be found | String |
image-url | Image which will be shown on the content cards at Degreed | String |
num-words | The number of words in the article | Integer |
Delete a Specific Article
curl "https://api.degreed.com/api/v2/content/articles/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint marks an article as obsolete from the Degreed catalog. On a successful delete, it returns a 204 No Content
response. The scope required is content:write
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
DELETE https://api.degreed.com/api/v2/content/articles/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the article to delete |
Content: Books
Get All Books
curl "https://api.degreed.com/api/v2/content/books"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/content/books",
"next": "https://api.degreed.com/api/v2/content/books?next=Z2IkbQ"
},
"data": [
{
"type": "content/books",
"id": null,
"attributes": {
"title": "Function-Based Taste",
"subtitle": "Switchable Licensed Netherlands Antilles Gorgeous Frozen Salad",
"authors": "Frank de Groot",
"pages": 372,
"summary": "hngig",
"image-url": "https://example.org/image",
"obsolete": true,
"publish-date": "2010-04-01T00:00:00",
"language": "pt_BR",
"external-id": "92qmjl9",
"degreed-url": "https://degreed.com/books/?d=1PNM74QZ9N",
"i-s-b-n13": "System.Array+SZArrayEnumerator",
"created-at": "2018-12-06T01:08:47.6505211+01:00",
"modified-at": "2018-11-09T01:01:58.2113636+01:00",
"provider-code": null
},
"links": {
"self": "https://api.degreed.com/api/v2/content/books/"
}
}
]
}
This endpoint retrieves all books for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will return content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/content/books
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of books. | No |
limit | 100 | Number of books per page. Maximum of 1000. | No |
filter[external_id] | empty | Only show books with this external ID. | No |
Get A Specific Book
curl "https://api.degreed.com/api/v2/content/books/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"data": {
"type": "content/books",
"id": null,
"attributes": {
"title": "Executive Mission-Critical Interface Human Teal",
"subtitle": "Parse Florida Quantify Designer Calculate Licensed Background Investor",
"authors": "Frank de Groot",
"pages": 65,
"summary": "Example summary",
"image-url": "https://example.org/image",
"obsolete": false,
"publish-date": "2010-04-01T00:00:00",
"language": "it",
"external-id": "x6serhx",
"degreed-url": "https://degreed.com/books/?d=1PNM74QZ9N",
"i-s-b-n13": "System.Array+SZArrayEnumerator",
"created-at": "2018-09-08T05:52:04.9965292+02:00",
"modified-at": "2018-09-29T09:19:07.7248924+02:00",
"provider-code": null
},
"links": {
"self": "https://api.degreed.com/api/v2/content/books/"
}
}
}
This endpoint retrieves a specific book for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/content/books/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the book to retrieve |
Create A New Book
curl "https://api.degreed.com/api/v2/content/books"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": {
"type": "content/books", \
"attributes": { \
"title": "The Orange Vegetable", \
"subtitle": "All You Wanted to Know About Carrots", \
"authors": "Xan Noah Jr.", \
"pages": 304, \
"summary": "A great expose", \
"obsolete": true, \
"publish-date": "0001-01-01T00:00:00", \
"language": null, \
"external-id": "https://www.example.org/book", \
"i-s-b-n13": "228095de88181" \
"pages": 331 \
} \
} \
} \'
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint creates a new book in the system. The scope required is content:write
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will create content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
POST https://api.degreed.com/api/v2/content/books
This command returns a
201 Created
response with as body the newly created book containing the newly generated unique ID:
{
"data": {
"type": "content/books",
"id": null,
"attributes": {
"title": "The Orange Vegetable",
"subtitle": "All You Wanted to Know About Carrots",
"authors": "Xan Noah Jr.",
"pages": 304,
"summary": "A great expose",
"image-url": null,
"obsolete": true,
"publish-date": "0001-01-01T00:00:00",
"language": null,
"external-id": "https://www.example.org/book",
"degreed-url": "https://degreed.com/books/?d=1PNM74QZ9N",
"i-s-b-n13": "228095de88181",
"created-at": "0001-01-01T00:00:00",
"modified-at": "0001-01-01T00:00:00",
"provider-code": null
},
"links": {
"self": "/content/books/"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
title | The title of the book | String | Yes |
subtitle | The subtitle of the book | String | No |
authors | Comma delimited list of authors | String | No |
pages | Number of pages | Integer | No |
summary | Short summary of the book | String | No |
obsolete | If the book should be marked as obsolete | Boolean | No |
publish-date | Date that the book has been published | String | No |
language | Language of the book | String | No |
external-id | External ID of the book, usually a URL where you can find it | String | Yes |
i-s-b-n13 | ISBN13 number of the book | String | No |
Update a Specific Book
curl "https://api.degreed.com/api/v2/content/books/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{"data": {"type": "content/books", "id": "AEjrw", "attributes": {"summary":"a new summary"}}}'
This endpoint updates supplied fields for a specific book. The scope required is content:write
.
The PATCH
request does not support the X-Degreed-Organization-Code
header.
HTTP Request
PATCH https://api.degreed.com/api/v2/content/books/<ID>
This command returns the full data on the updated book:
{
"data": {
"type": "content/books",
"id": null,
"attributes": {
"title": "The Orange Vegetable",
"subtitle": "All You Wanted to Know about Carrots",
"authors": "Xan Noah Jr.",
"pages": 304,
"summary": "A great expose",
"image-url": null,
"obsolete": true,
"publish-date": "0001-01-01T00:00:00",
"language": null,
"i-s-b-n13": "228095de88181",
"created-at": "0001-01-01T00:00:00",
"modified-at": "0001-01-01T00:00:00",
"provider-code": null
},
"links": {
"self": "/content/books/"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the book to update |
Body Parameters
Parameter | Description | Type |
---|---|---|
title | The title of the book | String |
subtitle | The subtitle of the book | String |
authors | Comma delimited list of authors | String |
pages | Number of pages | Integer |
summary | Short summary of the book | String |
obsolete | If the book should be marked as obsolete | Boolean |
publish-date | Date that the book has been published | String |
language | Language of the book | String |
i-s-b-n13 | ISBN13 number of the book | String |
Delete a Specific Book
curl "https://api.degreed.com/api/v2/content/books/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint marks an book as obsolete from the Degreed catalog. On a successful delete, it returns a 204 No Content
response. The scope required is content:write
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
DELETE https://api.degreed.com/api/v2/content/books/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the book to delete |
Content: Videos
Get All Videos
curl "https://api.degreed.com/api/v2/content/videos"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/content/videos",
"next": "https://api.degreed.com/api/v2/content/videos?next=Wgo29B"
},
"data": [
{
"type": "content/videos",
"id": null,
"attributes": {
"provider-code": null,
"external-id": "rgitqqy",
"title": "Enhance Paradigms",
"summary": "Tempore expedita a quos.\nExpedita itaque dolores quia molestiae labore fugit beatae natus officia.\nDolorum rerum quas.",
"url": "https://example.org",
"degreed-url": "https://degreed.com/videos/?d=49EYVNN185",
"obsolete": true,
"image-url": "http://example.org/image",
"language": "pt_PT",
"duration": 44,
"duration-type": "Hours",
"publish-date": "2010-04-01T00:00:00",
"created-at": "2018-12-29T10:00:51.8637934+01:00",
"modified-at": "2019-01-07T14:50:27.6263447+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/videos/"
}
}
]
}
This endpoint retrieves all videos for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will return content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/content/videos
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of videos. | No |
limit | 100 | Number of videos to display per page. Maximum of 1000. | No |
filter[external_id] | empty | Only show videos with this external ID. | No |
Get A Specific Video
curl "https://api.degreed.com/api/v2/content/videos/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"data": {
"type": "content/videos",
"id": null,
"attributes": {
"provider-code": null,
"external-id": "anp679v",
"title": "Turn Key Transitional Neck Implement Common",
"summary": "Magni eligendi sapiente doloremque consectetur.\nQuae quam consequatur non magni ex.\nVoluptas commodi rerum natus.",
"url": "http://example.org",
"degreed-url": "https://degreed.com/videos/?d=49EYVNN185",
"obsolete": true,
"image-url": "http://example.org/image",
"language": "en_AU",
"duration": 85,
"duration-type": "Hours",
"publish-date": "2010-04-01T00:00:00",
"created-at": "2019-02-02T12:20:24.613028+01:00",
"modified-at": "2018-09-23T12:39:58.0260263+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/videos/"
}
}
}
This endpoint retrieves a specific video for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/content/videos/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the video to retrieve |
Create A New Video
curl "https://api.degreed.com/api/v2/content/videos"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data" : {
"type": "content/videos", \
"attributes": { \
"external-id": "12345046", \
"title": "Example Video", \
"summary": "Example Summary", \
"url": "https://example.com", \
"obsolete": false, \
"image-url": null, \
"language": "english", \
"duration": 0, \
"duration-type": "Seconds", \
"publish-date": "0001-01-01T00:00:00" \
} \
} \
}'
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint creates a new video in the system. The scope required is content:write
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will create content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
POST https://api.degreed.com/api/v2/content/videos
This command returns a
201 Created
response with as body the newly created video containing the newly generated unique ID:
{
"data": {
"type": "content/videos",
"id": "abc",
"attributes": {
"provider-code": null,
"external-id": "12345046",
"title": "Test Three",
"summary": "This is a test 3",
"url": "https://www.example.org",
"degreed-url": "https://degreed.com/videos/?d=49EYVNN185",
"obsolete": false,
"image-url": null,
"language": null,
"duration": 0,
"duration-type": "Seconds",
"publish-date": "0001-01-01T00:00:00",
"created-at": "0001-01-01T00:00:00",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/content/videos/abc"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
title | The title of the video | String | Yes |
external-id | External ID of the video | String | Yes |
summary | Summary of the video | String | No |
url | URL location where more information can be found | String | No |
obsolete | If the video should be marked as obsolete | Boolean | No |
image-url | Cover image of the video | String | No |
language | Spoken language of the video | String | No |
duration | Length of the video. Type is supplied with duration-type |
Integer | Yes |
duration-type | Seconds, Minutes, Hours, or Days | String | Yes |
publish-data | The date the video is published | String | No |
Update a Specific Video
curl "https://api.degreed.com/api/v2/content/videos/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{"data": {"type": "content/videos", "id": <ID>, "attributes": {"summary":"a new summary"}}}'
This endpoint updates supplied fields for a specific video. The scope required is content:write
.
The PATCH
request does not support the X-Degreed-Organization-Code
header.
HTTP Request
PATCH https://api.degreed.com/api/v2/content/videos/<ID>
This command returns the full data on the updated video:
{
"data": {
"type": "content/videos",
"id": "abc",
"attributes": {
"provider-code": null,
"title": "Test Three",
"summary": "This is a test 3",
"url": "https://www.example.org",
"degreed-url": "https://degreed.com/videos/?d=49EYVNN185",
"obsolete": false,
"image-url": null,
"language": null,
"duration": 0,
"duration-type": "Seconds",
"publish-date": "0001-01-01T00:00:00",
"created-at": "0001-01-01T00:00:00",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/content/videos/abc"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the video to update |
Body Parameters
Parameter | Description | Type |
---|---|---|
title | The title of the video | String |
summary | Summary of the video | String |
url | URL location where more information can be found | String |
obsolete | If the video should be marked as obsolete | Boolean |
image-url | Cover image of the video | String |
language | Spoken language of the video | String |
duration | Length of the video. Type is supplied with duration-type |
Integer |
duration-type | Seconds, Minutes, Hours, or Days | String |
publish-data | The date the video is published | String |
Delete a Specific Video
curl "https://api.degreed.com/api/v2/content/videos/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint marks an video as obsolete from the Degreed catalog. On a successful delete, it returns a 204 No Content
response. The scope required is content:write
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
DELETE https://api.degreed.com/api/v2/content/videos/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the video to delete |
Content: Courses
Get All Courses
curl "https://api.degreed.com/api/v2/content/courses"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/content/courses",
"next": "https://api.degreed.com/api/v2/content/courses?next=OomeEL"
},
"data": [
{
"type": "content/courses",
"id": "foo",
"attributes": {
"provider-code": null,
"external-id": "p2k3dpj",
"degreed-url": "https://degreed.com/courses/?d=V9RVZY40PJ",
"title": "Yellow Wooden Rupiah Systems Port",
"summary": "Enim sed corporis natus blanditiis amet.\nOdit id nesciunt et eius aut illo asperiores enim.\nUt non recusandae rerum qui blanditiis animi sit doloremque.",
"url": "https://clovis.com",
"obsolete": false,
"image-url": "https://example.org/image",
"language": "fr_CA",
"duration": 0,
"duration-type": null,
"cost-units": 0.3718958843368550,
"cost-unit-type": "USD",
"format": "2vqqt",
"difficulty": "64w52",
"video-url": "http://example.org/video",
"created-at": "2018-07-29T12:04:55.91699+02:00",
"modified-at": "2019-01-17T16:44:22.8781703+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/courses/foo"
}
}
]
}
This endpoint retrieves all courses for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will return content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/content/courses
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of courses. | No |
limit | 100 | Number of courses per page. Maximum of 1000. | No |
filter[external_id] | empty | Only show courses with this external ID. | No |
Get A Specific Course
curl "https://api.degreed.com/api/v2/content/courses/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"data": {
"type": "content/courses",
"id": "foo",
"attributes": {
"provider-code": null,
"external-id": "iukwsi1",
"degreed-url": "https://degreed.com/courses/?d=V9RVZY40PJ",
"title": "Denar Usability Handmade Delaware Connect",
"summary": "Quidem non odio eaque id similique voluptatem dolor.\nQuam autem est.\nItaque incidunt est aliquid quia cupiditate.",
"url": "http://example.org/course",
"obsolete": false,
"image-url": "http://example.org/image",
"language": "sv",
"duration": 0,
"duration-type": null,
"cost-units": 0.03979444598769510,
"cost-unit-type": "USD",
"format": "bif5k",
"difficulty": "2kpt0",
"video-url": "https://example.org/video",
"created-at": "2019-01-22T12:00:35.909528+01:00",
"modified-at": "2018-04-21T13:25:19.6269612+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/courses/foo"
}
}
}
This endpoint retrieves a specific course for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/content/courses/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the course to retrieve |
Create A New Course
curl "https://api.degreed.com/api/v2/content/courses"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{
"data": { \
"type": "content/courses", \
"attributes": { \
"provider-code": null, \
"external-id": "Coursera|Course~RZ1S0B0MEeacvQ6cODzg5Q-1", \
"title": "Introduction to Data Science in Python (Data Science)", \
"summary": "A Summary", \
"url": "https://www.example.org/course", \
"obsolete": false, \
"duration": 0, \
"duration-type": "Minutes \
} \
} \
}'
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint creates a new course in the system. The scope required is content:write
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will create content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
POST https://api.degreed.com/api/v2/content/courses
This command returns a
201 Created
response with as body the newly created course containing the newly generated unique ID:
{
"data": {
"type": "content/courses",
"id": "foo",
"attributes": {
"provider-code": null,
"external-id": "Coursera|Course~RZ1S0B0MEeacvQ6cODzg5Q-1",
"degreed-url": "https://degreed.com/courses/?d=V9RVZY40PJ",
"title": "Introduction to Data Science in Python (Data Science)",
"summary": "A Summary",
"url": "https://www.example.org/course",
"obsolete": false,
"image-url": null,
"language": null,
"duration": 0,
"duration-type": null,
"cost-units": 0.0,
"cost-unit-type": null,
"format": null,
"difficulty": null,
"video-url": null,
"created-at": "0001-01-01T00:00:00",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/content/courses/foo"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
title | The title of the course | String | Yes |
provider-code | Unique provider code | String | No |
external-id | External ID of the course | String | Yes |
summary | Summary of the course | String | No |
url | URL location where more information can be found. | String | Yes |
obsolete | If the course should be marked as obsolete | Boolean | No |
image-url | Cover image of the course | String | No |
language | Spoken language of the course | String | No |
duration | Length of the course. Type is supplied with duration-type |
Integer | Yes |
duration-type | Seconds, Minutes, Hours, or Days | String | Yes |
cost-units | Units for the cost | Integer | No |
cost-unit-type | The cost unit type, can be any currency | String | No |
format | Format of the course, like Classroom or Online |
String | No |
difficulty | Describing the difficulty of taking the course | String | No |
video-url | If the course has a video, supply it here | String | No |
Update a Specific Course
curl "https://api.degreed.com/api/v2/content/courses/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{"data": {"type": "content/courses", "id": <ID>, "attributes": {"summary":"a new summary"}}}'
This endpoint updates supplied fields for a specific course. The scope required is content:write
.
The PATCH
request does not support the X-Degreed-Organization-Code
header.
HTTP Request
PATCH https://api.degreed.com/api/v2/content/courses/<ID>
This command returns the full data on the updated course:
{
"data": {
"type": "content/courses",
"id": "foo",
"attributes": {
"provider-code": null,
"degreed-url": "https://degreed.com/courses/?d=V9RVZY40PJ",
"title": "Introduction to Data Science in Python (Data Science)",
"summary": "A Summary",
"url": "https://www.example.org/course",
"obsolete": false,
"image-url": null,
"language": null,
"duration": 0,
"duration-type": null,
"cost-units": 0.0,
"cost-unit-type": null,
"format": null,
"difficulty": null,
"video-url": null,
"created-at": "0001-01-01T00:00:00",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/content/courses/foo"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the course to update |
Body Parameters
Parameter | Description | Type |
---|---|---|
title | The title of the course | String |
provider-code | Unique provider code | String |
summary | Summary of the course | String |
url | URL location where more information can be found. | String |
obsolete | If the course should be marked as obsolete | Boolean |
image-url | Cover image of the course | String |
language | Spoken language of the course | String |
duration | Length of the course. Type is supplied with duration-type |
Integer |
duration-type | Seconds, Minutes, Hours, or Days | String |
cost-units | Units for the cost | Integer |
cost-unit-type | The cost unit type, can be any currency | String |
format | Format of the course, like Classroom or Online |
String |
difficulty | Describing the difficulty of taking the course | String |
video-url | If the course has a video, supply it here | String |
Delete a Specific Course
curl "https://api.degreed.com/api/v2/content/courses/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint marks a course as obsolete from the Degreed catalog. On a successful delete, it returns a 204 No Content
response. The scope required is content:write
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
DELETE https://api.degreed.com/api/v2/content/courses/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the course to delete |
Content: Assessments
Get All Assessments
curl "https://api.degreed.com/api/v2/content/assessments"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/content/assessments"
},
"data": [
{
"type": "content/assessments",
"id": "k6zKp",
"attributes": {
"external-id": "1",
"title": "An Assessment in English",
"summary": "This is an assessment in English. The participants will be answering questions in English and conversing with each other in English.",
"url": "https://www.degreed.com",
"degreed-url": "https://degreed.com/assessments/?d=OK9O1QK9XZ",
"obsolete": false,
"image-url": null,
"language": "af",
"num-questions": 25,
"provider-code": null,
"publish-date": "2019-02-01T05:00:00",
"created-at": "2018-11-29T17:10:55.7429072",
"modified-at": "2019-02-28T16:41:58.0805557"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/assessments/k6zKp"
}
}
]
}
This endpoint retrieves all assessments for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will return content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/content/assessments
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of assessments. | No |
limit | 100 | Number of assessments per page. Maximum of 1000. | No |
filter[external_id] | empty | Only show assessments with this external ID. | No |
Get A Specific Assessment
curl "https://api.degreed.com/api/v2/content/assessments/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"data": {
"type": "content/assessments",
"id": "k6d58",
"attributes": {
"external-id": "1",
"title": "An Assessment in English",
"summary": "This is an assessment in English. The participants will be answering questions in English and conversing with each other in English.",
"url": "https://www.degreed.com",
"degreed-url": "https://degreed.com/assessments/?d=OK9O1QK9XZ",
"obsolete": false,
"image-url": null,
"language": "af",
"num-questions": 25,
"provider-code": null,
"publish-date": "2019-02-01T05:00:00",
"created-at": "2018-11-29T17:10:55.7429072",
"modified-at": "2019-02-28T16:41:58.0805557"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/assessments/k6d58"
}
}
}
This endpoint retrieves a specific assessment for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/content/assessments/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the assessment to retrieve |
Create A New Assessment
curl "https://api.degreed.com/api/v2/content/assessments" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-X POST \
-d '{
"data":
{
"type": "content/assessments",
"attributes": {
"external-id": "DBADAE06",
"title": "An Assessment in English",
"summary": "This is an assessment in English. The participants will be answering questions in English and conversing with each other in English.",
"url": "https://www.degreed.com",
"image-url": "https://prod.degreedcdn.com/content/img/degreed-logo2x.png",
"language": "nl-BE",
"num-questions": 6,
"provider-code": "CornerstoneOnDemand",
"publish-date": "2019-01-23"
}
}
}'
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint creates a new assessment in the system. The scope required is content:write
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will create content for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
POST https://api.degreed.com/api/v2/content/assessments
This command returns a
201 Created
response with as body the newly created assessment containing the newly generated unique ID:
{
"data": {
"type": "content/assessments",
"id": "k64Zj",
"attributes": {
"external-id": "DBADAE06",
"title": "An Assessment in English",
"summary": "This is an assessment in English. The participants will be answering questions in English and conversing with each other in English.",
"url": "https://www.degreed.com",
"degreed-url": "https://degreed.com/assessments/?d=OK9O1QK9XZ",
"obsolete": false,
"image-url": "https://prod.degreedcdn.com/content/img/degreed-logo2x.png",
"language": "nl-BE",
"num-questions": 6,
"provider-code": "CornerstoneOnDemand",
"publish-date": "2019-01-23T00:00:00",
"created-at": "0001-01-01T00:00:00",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/content/assessments/k64Zj"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
external-id | External ID of the assessment, usually a URL where to find it | String | Yes |
title | The title of the assessment | String | Yes |
summary | Short summary of the article | String | No |
url | URL location where more information can be found | String | Yes |
image-url | Cover image of the assessment | String | No |
language | Language of the assessment | String | No |
num-questions | The number of words in the assessment | Integer | Yes |
provider-code | Unique provider code | String | No |
publish-date | Date that the assessment has been published | String | No |
Update a Specific Assessment
curl "https://api.degreed.com/api/v2/content/assessments/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
-d '{
"data": {
"type": "content/assessments",
"attributes": {
"external-id": "DBADAE06",
"title": "An Assessment in Spanish",
"summary": "This is an assessment in Spanish. The participants will be answering questions in Spanish and conversing with each other in Spanish.",
"url": "https://www.degreed.com",
"image-url": "https://prod.degreedcdn.com/content/img/degreed-logo2x.png",
"language": "nl-BE",
"num-questions": 7,
"provider-code": "CornerstoneOnDemand"
}
}
}'
This endpoint updates supplied fields for a specific assessment. The scope required is content:write
.
The PATCH
request does not support the X-Degreed-Organization-Code
header.
HTTP Request
PATCH https://api.degreed.com/api/v2/content/assessments/<ID>
This command returns the full data on the updated assessment:
{
"data": {
"type": "content/assessments",
"id": "k64W9",
"attributes": {
"title": "An Assessment in Spanish",
"summary": "This is an assessment in Spanish. The participants will be answering questions in Spanish and conversing with each other in Spanish.",
"url": "https://www.degreed.com",
"degreed-url": "https://degreed.com/assessments/?d=OK9O1QK9XZ",
"obsolete": false,
"image-url": "https://prod.degreedcdn.com/content/img/degreed-logo2x.png",
"language": "nl-BE",
"num-questions": 7,
"provider-code": "CornerstoneOnDemand",
"publish-date": "2019-01-01T00:00:00",
"created-at": "2019-08-28T12:19:47.3825307",
"modified-at": "2019-08-28T13:06:30.2640191"
},
"links": {
"self": "/content/assessments/k64W9"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the assessment to update |
Body Parameters
Parameter | Description | Type |
---|---|---|
title | The title of the assessment | String |
summary | Short summary of the article | String |
url | URL location where more information can be found | String |
image-url | Cover image of the assessment | String |
language | Language of the assessment | String |
num-questions | The number of words in the assessment | Integer |
provider-code | Unique provider code | String |
publish-date | Date that the assessment has been published | String |
Delete a Specific Assessment
curl "https://api.degreed.com/api/v2/content/assessments/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint marks an assessment as obsolete from the Degreed catalog. On a successful delete, it returns a 204 No Content
response. The scope required is content:write
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
DELETE https://api.degreed.com/api/v2/content/assessments/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the assessment to delete |
Content: Podcasts
Get All Podcasts
curl "https://api.degreed.com/api/v2/content/podcasts"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/content/podcasts",
"next": "https://api.degreed.com/api/v2/content/podcasts?next=aBc"
},
"data": [
{
"type": "content/podcasts",
"id": "aBc12",
"attributes": {
"name": null,
"title": "Sam Harris",
"summary": "Sam Harris on meditation",
"provider-code": null,
"external-id": null,
"obsolete": false,
"duration": 3060,
"duration-type": "Seconds",
"feed-url": null,
"image-url": "https://example.com/podcast.png",
"url": "",
"degreed-url": "https://degreed.com/episodes/?d=KJP13OK9VQ",
"author": null,
"language": "en",
"publish-date": null,
"created-at": "2020-04-29T14:03:13.2961303",
"modified-at": "2020-04-29T14:03:13.2961303"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/podcasts/moYZaZ"
}
}
]
}
This endpoint retrieves all podcasts for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will return podcasts for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
GET https://api.degreed.com/api/v2/content/podcasts
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of podcasts. | No |
limit | 100 | Number of podcasts to display per page. Maximum of 1000. | No |
filter[external_id] | empty | Only show podcasts with this external ID. | No |
Get A Specific Podcast
curl "https://api.degreed.com/api/v2/content/podcasts/<ID>"
-H "Authorization: Bearer <access_token>"
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This command returns JSON structured like this:
{
"data": {
"type": "content/podcasts",
"id": "aBc",
"attributes": {
"name": null,
"title": "Sam Harris",
"summary": "Meditation for a quiet mind.",
"provider-code": null,
"external-id": "56456",
"obsolete": true,
"duration": 5.0000,
"duration-type": "Seconds",
"feed-url": null,
"image-url": null,
"url": "https://www.youtube.com/watch?v=aBc",
"degreed-url": "https://degreed.com/episodes/?d=KJP13OK9VQ",
"author": "Brent Ozar",
"language": null,
"publish-date": "0001-01-01T00:00:00",
"created-at": "2019-11-21T20:31:58.8109413",
"modified-at": "2019-11-21T20:33:36.0619787"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/podcasts/aBc"
}
}
}
This endpoint retrieves a specific podcast for the current organization. The scope required is content:read
.
For Global Admin Tool Organizations, if the podcast belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
GET https://api.degreed.com/api/v2/content/podcasts/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the podcast to retrieve |
Create A New Podcast
curl "https://api.degreed.com/api/v2/content/podcasts"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data" : { \
"attributes": { \
"external-id": "56", \
"title": "Blocking Databases", \
"summary": "Speaker and teacher on database schemas", \
"url": "https://example.com/podcasts?d=12", \
"obsolete": false, \
"image-url": null, \
"language": null, \
"duration": 5, \
"duration-type": null, \
"author": "Mister Clown", \
"feed-url": null \
} \
} \
}'
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint creates a new podcast in the system. The scope required is content:write
.
For Global Admin Tool Organizations, if the X-Degreed-Organization-Code
header is included, then the endpoint will create a podcast for the Tenant Organization related to the header value as long as the organization is a member of the Global Admin Tool Organization.
HTTP Request
POST https://api.degreed.com/api/v2/content/podcasts
This command returns a
201 Created
response with as body the newly created podcast containing the newly generated unique ID:
{
"data": {
"type": "content/podcasts",
"id": "aBc",
"attributes": {
"name": null,
"title": "Sam Harris",
"summary": "Meditation for a quiet mind.",
"provider-code": null,
"external-id": "56456",
"obsolete": true,
"duration": 5.0000,
"duration-type": "Seconds",
"feed-url": null,
"image-url": null,
"url": "https://www.youtube.com/watch?v=aBc",
"degreed-url": "https://degreed.com/episodes/?d=KJP13OK9VQ",
"author": "Brent Ozar",
"language": null,
"publish-date": "0001-01-01T00:00:00",
"created-at": "2019-11-21T20:31:58.8109413",
"modified-at": "2019-11-21T20:33:36.0619787"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/podcasts/aBc"
}
}
}
Body Parameters
Parameter | Description | Type | Required |
---|---|---|---|
title | The title of the podcast | String | Yes |
external-id | External ID of the podcast | String | Yes |
summary | Summary of the podcast | String | No |
url | URL location where more information can be found | String | No |
obsolete | If the podcast should be marked as obsolete | Boolean | No |
image-url | Cover image of the podcast | String | No |
language | Spoken language of the podcast | String | No |
duration | Length of the podcast. Type is supplied with duration-type |
Integer | Yes |
duration-type | Seconds, Minutes, Hours, or Days | String | Yes |
author | The creator of the podcast | String | No |
feed-url | The URL of the podcast feed | String | No |
Update a Specific Podcast
curl "https://api.degreed.com/api/v2/content/podcasts/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{"data": {"type": "content/podcasts", "id": <ID>, "attributes": {"summary":"a new summary"}}}'
This endpoint updates supplied fields for a specific podcast. The scope required is content:write
.
The PATCH
request does not support the X-Degreed-Organization-Code
header.
HTTP Request
PATCH https://api.degreed.com/api/v2/content/podcasts/<ID>
This command returns the full data on the updated podcast:
{
"data": {
"type": "content/podcasts",
"id": "aBc",
"attributes": {
"name": null,
"title": "Sam Harris",
"summary": "Meditation for a quiet mind.",
"provider-code": null,
"obsolete": true,
"duration": 5.0000,
"duration-type": "Seconds",
"feed-url": null,
"image-url": null,
"url": "https://www.youtube.com/watch?v=aBc",
"degreed-url": "https://degreed.com/episodes/?d=KJP13OK9VQ",
"author": "Brent Ozar",
"language": null,
"publish-date": "0001-01-01T00:00:00",
"created-at": "2019-11-21T20:31:58.8109413",
"modified-at": "2019-11-21T20:33:36.0619787"
},
"links": {
"self": "https://api.degreed.com/api/v2/content/podcasts/aBc"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the podcast to update |
Body Parameters
Parameter | Description | Type |
---|---|---|
title | The title of the podcast | String |
summary | Summary of the podcast | String |
url | URL location where more information can be found | String |
obsolete | If the podcast should be marked as obsolete | Boolean |
image-url | Cover image of the podcast | String |
language | Spoken language of the podcast | String |
duration | Length of the podcast. Type is supplied with duration-type |
Integer |
duration-type | Seconds, Minutes, Hours, or Days | String |
author | The creator of the podcast | String |
feed-url | The URL of the podcast feed | String |
Delete a Specific Podcast
curl "https://api.degreed.com/api/v2/content/podcasts/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
Global Admin Tool clients may provide an additional header
-H "X-Degreed-Organization-Code: <tenant_organization_code>"
This endpoint marks an podcast as obsolete from the Degreed catalog. On a successful delete, it returns a 204 No Content
response. The scope required is content:write
.
For Global Admin Tool Organizations, if the content belongs to a Tenant Organization, then the X-Degreed-Organization-Code
header must be provided.
HTTP Request
DELETE https://api.degreed.com/api/v2/content/podcasts/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the podcast to delete |
Certifiable Skills
Get All Certifiable Skills
curl "https://api.degreed.com/api/v2/certifiable-skills"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/certifiable-skills",
"next": "https://api.degreed.com/api/v2/certifiable-skills?next=e7hQRo"
},
"data": [
{
"type": "certifiable-skills",
"id": "l8k87",
"attributes": {
"name": "15y0dmwk8i",
"description": "abewqkxxx3",
"skill-unique-identifier": "71cffe8e-90ae-4b5a-8588-f9d82f8a8848",
"is-featured": false,
"created-at": "2018-07-25T04:12:41.7135406+02:00",
"modified-at": "2018-05-23T11:23:09.7547108+02:00",
"visibility": "Private",
"cost": 31
},
"links": {
"self": "https://api.degreed.com/api/v2/certifiable-skills/l8k87"
}
}
]
}
This endpoint retrieves all certifiable skills for the current organization. The scope required can be any of user_skills:read
, skill_plans:read
, or skill_ratings:read
.
HTTP Request
GET https://api.degreed.com/api/v2/certifiable-skills
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of user skills. | No |
limit | 100 | Number of certifiable skills per page. Maximum of 1000 | No |
Get a Specific Certifiable Skill
curl "https://api.degreed.com/api/v2/certifiable-skills/<ID>"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"data": {
"type": "certifiable-skills",
"id": "w4je2",
"attributes": {
"name": "cjo31shtaz",
"description": "j0zyy6sstm",
"skill-unique-identifier": "bb2d1e21-b443-4c0f-bc0e-602d6b73a1f3",
"is-featured": false,
"created-at": "2018-03-28T02:26:03.3315789+02:00",
"modified-at": "2019-02-19T02:41:09.8589143+01:00",
"visibility": "Private",
"cost": 44
},
"links": {
"self": "https://api.degreed.com/api/v2/certifiable-skills/w4je2"
}
}
}
This endpoint retrieves a specific certifiable skill for the current organization. The scope required can be any of user_skills:read
, skill_plans:read
, or skill_ratings:read
.
HTTP Request
GET https://api.degreed.com/api/v2/certifiable-skills/<ID>
URL Parameters
Parameter | Default | Description |
---|---|---|
ID | null | ID used to get a specific certifiable skill |
Pathways
Get All Pathways
curl "https://api.degreed.com/api/v2/pathways"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/pathways",
"next": "https://api.degreed.com/api/v2/pathways?next=cwyX71"
},
"data": [
{
"type": "pathways",
"id": "m0dyw",
"attributes": {
"title": "Provident ullam est qui illo sint sit repellendus.",
"summary": "Aliquid non temporibus quo distinctio molestiae et amet. Omnis rerum dolorem. Ea harum et. Porro laudantium consequatur perspiciatis commodi dolor consequatur expedita.",
"visibility": "Public",
"degreed-url": "https://degreed.com/pathway/Z9498N0P2X",
"created-at": "2019-02-16T00:10:59.5921821+01:00",
"modified-at": "2019-02-20T11:56:33.0721266+01:00",
"is-endorsed": false
},
"links": {
"self": "https://api.degreed.com/api/v2/pathways/m0dyw"
},
"relationships": [
{
"created_by": {
"data": {
"id": "oe3i86",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all pathways for the current organization. The scope required is pathways:read
.
HTTP Request
GET https://api.degreed.com/api/v2/pathways
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of pathways. | No |
limit | 100 | Number of pathways per page. Maximum of 1000. | No |
filter[start_date] | empty | Get pathways created, or modified from this date on. Format yyyy-MM-dd . |
No |
filter[end_date] | empty | Get pathways created, or modified before this date. Format yyyy-MM-dd . |
No |
Get A Specific Pathway
curl "https://api.degreed.com/api/v2/pathways/<ID>"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"data": {
"type": "pathway",
"id": "beob9",
"attributes": {
"title": "In dolores distinctio.",
"summary": "Voluptatem dolores labore eius assumenda iusto molestiae. Sed in enim optio a eaque. Nemo cupiditate sit qui quo optio. Totam ut facere exercitationem sed itaque officiis culpa earum ipsam. Quia aut voluptas ex ad id repellat. Error nulla vero.",
"visibility": "Author",
"degreed-url": "https://degreed.com/pathway/Z559P1232X",
"sections": [
{
"sequence": 7,
"title": "Vel quia nam enim.",
"description": "Voluptatum eveniet corrupti natus fuga blanditiis.",
"lessons": [
{
"sequence": 96,
"title": "Quo molestiae minus hic.",
"description": "Velit officia est magni.",
"resources": [
{
"id": "5mx1k",
"sequence": 26,
"type": "Book",
"title": "Nihil laudantium et.",
"description": "Temporibus aut dicta consequatur magni. In alias modi. Beatae in aut ut ipsa et. Et corrupti molestias soluta quia illo suscipit molestiae."
},
{
"id": "wmbfx",
"sequence": 100,
"type": "Article",
"title": "Non eos harum et odio minima corrupti quasi.",
"description": "Non vero praesentium eligendi sint consequuntur voluptatem architecto qui facere. Et laborum quae placeat vel incidunt laudantium aliquam error ullam. Commodi nulla ex quia voluptate itaque."
},
{
"id": "6s0fj",
"sequence": 24,
"type": "Article",
"title": "Ut quia porro velit sed nulla.",
"description": "Fugiat eveniet cupiditate qui fugit inventore ab accusantium vel error. Et dolores laborum laboriosam impedit porro eum necessitatibus. Facere laudantium beatae commodi sed enim velit. Maxime inventore ducimus. Consequatur in perferendis blanditiis soluta dolorem."
}
]
}
]
}
],
"collaborators": [
{
"modified-at": "2018-09-11T18:26:00.7893972",
"type": "users",
"user-id": "PyoZv",
"employee-id": "xea1g",
"id": "o01z2"
}
],
"created-at": "2018-04-19T00:33:59.8183009+02:00",
"modified-at": "2018-09-11T05:33:47.6791062+02:00",
"is-endorsed": false
},
"links": {
"self": "https://api.degreed.com/api/v2/pathway/beob9"
},
"relationships": [
{
"created": {
"data": {
"id": "pp9rr",
"type": "users"
}
}
}
]
}
}
This endpoint retrieves all data on a specific pathway. The scope required is pathways:read
.
HTTP Request
GET https://api.degreed.com/api/v2/pathways/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the pathway to retrieve |
Get All Tags for a Pathway
curl "https://api.degreed.com/api/v2/pathways/<ID>/tags"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/pathways/RYEX/tags",
"next": "https://api.degreed.com/api/v2/pathways/RYEX/tags?next=iY6TIW"
},
"data": [
{
"type": "tags",
"id": "0x0i6",
"attributes": {
"tag": "ed5om2",
"created-at": "2018-08-01T23:13:41.4406356+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/tags/0x0i6"
}
}
]
}
This endpoint retrieves all tags for the selected pathway. The scope required is pathways:read
.
HTTP Request
GET https://api.degreed.com/api/v2/pathways/<ID>/tags
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the pathway to retrieve tags for |
Get All Collaborators for a Pathway
curl "https://api.degreed.com/api/v2/pathways/<ID>/collaborators"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/pathways/RYEX/collaborators",
"next": "https://api.degreed.com/api/v2/pathways/RYEX/collaborators?next=eoKEh1"
},
"data": [
{
"type": "users",
"id": "9p0zi",
"attributes": {
"employee-id": "lleoiizles",
"created-at": "2018-11-09T12:59:18.8148754+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/users/9p0zi"
},
"relationships": [
{
"user": {
"data": {
"id": "3tdcwo",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all collaborators for the selected pathway. The scope required is pathways:read
.
HTTP Request
GET https://api.degreed.com/api/v2/pathways/<ID>/collaborators
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the pathway to retrieve collaborators for |
Get All Groups for a Pathway
curl "https://api.degreed.com/api/v2/pathways/<ID>/groups"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/pathways/RYEX/groups",
"next": "https://api.degreed.com/api/v2/pathways/RYEX/groups?next=XLVqeN"
},
"data": [
{
"type": "groups",
"id": "o01z2",
"attributes": {
"created-at": "2018-12-28T19:40:03.6235611+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/groups/o01z2"
},
"relationships": [
{
"group": {
"data": {
"id": "hyibfs",
"type": "groups"
}
}
}
]
}
]
}
This endpoint retrieves all groups for the selected pathway. The scope required is pathways:read
.
HTTP Request
GET https://api.degreed.com/api/v2/pathways/<ID>/groups
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the pathway to retrieve groups for |
Get All Followers for a Pathway
curl "https://api.degreed.com/api/v2/pathways/<ID>/followers"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/pathways/RYEX/followers",
"next": "https://api.degreed.com/api/v2/pathways/RYEX/followers?next=M0borw"
},
"data": [
{
"type": "users",
"id": "ha859",
"attributes": {
"employee-id": "ihpglrt23i",
"created-at": "2018-03-16T11:30:53.6926335+01:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/users/ha859"
},
"relationships": [
{
"user": {
"data": {
"id": "9nrol9",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all followers for the selected pathway. The scope required is pathways:read
.
HTTP Request
GET https://api.degreed.com/api/v2/pathways/<ID>/followers
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the pathway to retrieve followers for |
Skill Plans
Get All Skill Plans
curl "https://api.degreed.com/api/v2/skill-plans"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/skill-plans",
"next": "https://api.degreed.com/api/v2/skill-plans?next=7QFRs0"
},
"data": [
{
"type": "skill-plans",
"id": "b6t6w",
"attributes": {
"name": "Beatae in Modi Nostrum.",
"description": "Sit consequatur qui ut ab architecto ex. Reiciendis labore impedit error. Ab et consequatur nobis.",
"visibility": "Group",
"degreed-url": "https://degreed.com/plan/Z576PN276X",
"created-at": "2018-06-26T12:44:50.2606379+02:00",
"modified-at": "2018-08-21T10:23:20.1102436+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/skill-plans/b6t6w"
}
}
]
}
This endpoint retrieves all skill plans for the current organization. The required scope is skill_plans:read
.
HTTP Request
GET https://api.degreed.com/api/v2/skill-plans
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of skill plans. | No |
limit | 100 | Number of providers per page. Maximum of 1000. | No |
Get a Specific Skill Plan
curl "https://api.degreed.com/api/v2/skill-plans/<ID>"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"data": {
"type": "skill-plan",
"id": "1ixuq",
"attributes": {
"name": "Qui doloribus eum numquam est.",
"description": "Sint iste omnis officiis maiores sunt et. Ut autem recusandae hic porro facere vel sint. Non aut ut voluptatem. Tempora impedit ipsum molestiae. Cum iste asperiores sunt ipsum quos in natus molestias. Iusto blanditiis aliquam in fugiat.",
"sections": [
{
"sequence": 1,
"title": "Pathway",
"target-rating": 0,
"resources": [
{
"id": "Y5B",
"sequence": 1,
"type": "Pathway",
"title": "Recusandae Porro",
"description": "Doonais omnis officiis maiores sunt et. Ut autem recusandae hic porro facere vel sint. Non aut ut voluptatem."
}
]
},
{
"sequence": 2,
"title": "Group",
"target-rating": 0,
"resources": []
},
{
"sequence": 3,
"title": "User",
"target-rating": 0,
"resources": []
},
{
"sequence": 4,
"title": "Input",
"target-rating": 0,
"resources": [
{
"id": "rr469",
"sequence": 1,
"type": "Course",
"title": "Porro Autem",
"description": "Supa vusa escalata omnis officiis maiores sunt et. Ut autem recusandae hic porro facere vel sint. Non aut ut voluptatem."
}
]
},
{
"sequence": 5,
"title": "Tag",
"target-rating": 0,
"resources": [
{
"id": "2E0R",
"sequence": 1,
"type": "Skill",
"title": "Leadership",
"description": null
},
{
"id": "Yz4A",
"sequence": 2,
"type": "Skill",
"title": "Development",
"description": null
}
]
}
],
"visibility": "Group",
"can-collaborate": false,
"degreed-url": "https://degreed.com/plan/Z576PN276X",
"created-at": "2019-01-16T00:52:16.0103691+01:00",
"modified-at": "2020-08-28T08:50:15.816038",
"collaborators": [
{
"type": "users",
"user-id": "vpqr",
"employee-id": "architecto@nullaamet.com",
"id": null
}
]
},
"links": {
"self": "https://api.degreed.com/api/v2/skill-plan/1ixuq"
}
}
}
This endpoint retrieves all information on a specific skill plan. The required scope is skill_plans:read
.
HTTP Request
GET https://api.degreed.com/api/v2/skill-plans/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the skill plan to retrieve |
Get All Followers of a Skill Plan
curl "https://api.degreed.com/api/v2/skill-plans/<ID>/followers"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/skill-plans/32ZE/followers",
"next": "https://api.degreed.com/api/v2/skill-plans/32ZE/followers?next=dssfkL"
},
"data": [
{
"type": "users",
"id": "wrric",
"attributes": {
"employee-id": "Conrad.Frami52@example.org",
"enrolled-at": "2018-04-14T01:04:39.9997421+02:00",
"is-primary-plan": false
},
"links": {
"self": "https://api.degreed.com/api/v2/users/wrric"
},
"relationships": [
{
"user": {
"data": {
"id": "da2wpe",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all followers for a specific skill plan. The required scope is skill_plans:read
.
HTTP Request
GET https://api.degreed.com/api/v2/skill-plans/<ID>/followers
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | The unique ID of the skill plan. | Yes |
filter[start_date] | empty | Get followers who enrolled from this date on. Format yyyy-MM-dd . |
No |
filter[end_date] | empty | Get followers who enrolled before this date. Format yyyy-MM-dd . |
No |
Providers
Get All Providers
curl "https://api.degreed.com/api/v2/providers"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/providers"
},
"data": [
{
"type": "providers",
"id": "Rk",
"attributes": {
"name": "Codecademy",
"url": "https://www.codecademy.com/"
},
"links": {
"self": "https://api.degreed.com/api/v2/providers/Rk"
}
}
]
}
This endpoint retrieves all providers for the current organization. The scope required is providers:read
.
HTTP Request
GET https://api.degreed.com/api/v2/providers
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
next | empty | Supplied to retrieve the next batch of providers. | No |
limit | 100 | Number of providers per page. Maximum of 1000. | No |
Get a Specific Provider
curl "https://api.degreed.com/api/v2/providers/<ID>"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"data": {
"type": "providers",
"id": "u7flv",
"attributes": {
"name": "Jerde - Hoppe",
"url": "https://example.org"
},
"links": {
"self": "https://api.degreed.com/api/v2/providers/u7flv"
}
}
}
This endpoint retrieves a specific provider. The scope required is providers:read
.
HTTP Request
GET https://api.degreed.com/api/v2/providers/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the provider to retrieve |
Get All Provider Licenses
curl "https://api.degreed.com/api/v2/providers/<ID>/licenses"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/providers/kqb8/licenses",
"next": "https://api.degreed.com/api/v2/providers/kqb8/licenses?next=7zAdeJ"
},
"data": [
{
"type": "licenses",
"id": "927wf",
"attributes": {
"employee-id": "rkik3",
"is-enabled": true,
"created-at": "2018-08-10T11:15:38.6255702+02:00"
},
"links": {
"self": null
},
"relationships": [
{
"user": {
"data": {
"id": "ehgo5",
"type": "users"
}
}
}
]
}
]
}
This endpoint retrieves all provider licenses for a specific provider. The scope required is providers:read
.
HTTP Request
GET https://api.degreed.com/api/v2/providers/<ID>/licenses
URL Parameters
Parameter | Default | Description |
---|---|---|
ID | empty | The unique ID of the provider. |
Bundles
Content bundles allows Extended Enterprise clients to share content across organizations.
Get All bundles
curl "https://api.degreed.com/api/v2/bundles"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/bundles"
},
"data": [
{
"type": "bundles",
"id": "nry4e",
"attributes": {
"title": "Kids, Reading Books & Learning Music",
"description": "Corporis aperiam ipsa sit iure qui id ipsam dolores. Totam aut quibusdam unde aliquid debitis vero nostrum et. Harum quia ex. Officiis et impedit et sunt rerum laudantium.",
"created-at": "2019-02-23T19:00:19.878834+01:00",
"modified-at": "2018-05-10T09:40:54.2041221+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/bundles/nry4e"
}
}
]
}
This endpoint retrieves all bundles for the current organization. The scope required is bundles:read
or bundles:write
.
HTTP Request
GET https://api.degreed.com/api/v2/bundles
URL Parameters
Parameter | Default | Description |
---|---|---|
next | empty | Supplied to retrieve the next batch of bundles. |
limit | 100 | Number of bundles to display per page. Maximum of 1000. |
Get a Specific Bundle
curl "https://api.degreed.com/api/v2/bundles/<ID>"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"data": {
"type": "bundles",
"id": "wgodl",
"attributes": {
"title": "Kids, Reading Books & Learning Music",
"description": "Corporis aperiam ipsa sit iure qui id ipsam dolores. Totam aut quibusdam unde aliquid debitis vero nostrum et. Harum quia ex. Officiis et impedit et sunt rerum laudantium.",
"created-at": "2019-02-23T19:00:19.878834+01:00",
"modified-at": "2018-05-10T09:40:54.2041221+02:00"
},
"links": {
"self": "https://api.degreed.com/api/v2/bundles/wgodl"
}
}
}
This endpoint retrieves a specific bundle for the current organization. The scope required is bundles:read
or bundles:write
.
HTTP Request
GET https://api.degreed.com/api/v2/bundles/<ID>
URL Parameters
Parameter | Default | Description |
---|---|---|
ID | null | ID used to get a specific bundle |
Get a List of Resources for a Specific Bundle
curl "https://api.degreed.com/api/v2/bundles/<ID>/relationships/resources"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"links": {
"self": "https://api.degreed.com/api/v2/bundles/d1E20/relationships/resources"
},
"data": [
{
"type": "pathways",
"id": "bota32"
},
{
"type": "groups",
"id": "anv4l"
},
{
"type": "content/videos",
"id": "gr3at"
}
]
}
This endpoint retrieves a list of resources who belong to this bundle. The scope required is bundles:read
.
HTTP Request
GET https://api.degreed.com/api/v2/bundles/<ID>/relationships/resources
URL Parameters
Parameter | Default | Description |
---|---|---|
ID | null | ID used to get a specific bundle |
Create a New Bundle
curl https://api.degreed.com/api/v2/bundles
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": { \
"type": "bundles", \
"attributes": { \
"title": "Kids, Books & Music", \
"description": "Sit sunt quod molestiae assumenda voluptatem quia consequatur non consequatur. Et natus labore numquam voluptatem sed facilis architecto. Vero delectus perferendis aliquid. Autem ex quis mollitia natus nemo." \
} \
} \
}'
This command returns JSON structured like this:
{
"data": {
"type": "bundles",
"id": "rYj5",
"attributes": {
"title": "Kids, Books & Music",
"description": "Sit sunt quod molestiae assumenda voluptatem quia consequatur non consequatur. Et natus labore numquam voluptatem sed facilis architecto. Vero delectus perferendis aliquid. Autem ex quis mollitia natus nemo.",
"created-at": "2019-10-02T12:22:34.4280682",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/bundles/rYj5"
}
}
}
This endpoint creates a new bundle in the system. The scope required is bundles:write
.
HTTP Request
POST https://api.degreed.com/api/v2/bundles
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
title | empty | The title of the bundle | yes |
description | empty | A description of the bundle | yes |
Update a Specific Bundle
curl "https://api.degreed.com/api/v2/bundles/<ID>"
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
--data '{ \
"data": { \
"type": "bundles", \
"id": <ID>, \
"attributes": { \
"title":"Kids, Reading Books & Learning Music" \
} \
} \
}'
This endpoint updates supplied fields for a specific bundle. The scope required is bundles:write
.
HTTP Request
PATCH https://api.degreed.com/api/v2/bundles/<ID>
This command returns the full data on the updated bundle:
{
"data": {
"type": "bundles",
"id": "rYj5",
"attributes": {
"title": "Kids, Reading Books & Learning Music",
"description": "Sit sunt quod molestiae assumenda voluptatem quia consequatur non consequatur. Et natus labore numquam voluptatem sed facilis architecto. Vero delectus perferendis aliquid. Autem ex quis mollitia natus nemo.",
"created-at": "2019-10-02T12:22:34.4280682",
"modified-at": "0001-01-01T00:00:00"
},
"links": {
"self": "/bundles/rYj5"
}
}
}
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the bundle to update |
Body Parameters
Delete a Specific Bundle
curl "https://api.degreed.com/api/v2/bundles/<ID>"
-H "Authorization: Bearer <access_token>"
-X DELETE
This endpoint deletes a bundle from the Degreed system. On a successful delete, it returns a 204 No Content
response. The scope required is bundles:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/bundles/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the bundle to update |
Add Resources to a Bundle
curl https://api.degreed.com/api/v2/bundles/<ID>/relationships/resources
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X POST
-d '{ \
"data": [ \
{ \
"id": "o7zdP" \
"type": "content/videos" \
}, \
{ \
"id": "ww48R" \
"type": "groups" \
} \
] \
}'
This endpoint add users to an existing bundle. On a successful add, it returns a 201 Created
response. The scope required is bundles:write
.
HTTP Request
POST https://api.degreed.com/api/v2/bundles/<ID>/relationships/resources
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the bundle to update |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | ID of the resource that will be added to the bundle | yes |
type | empty | Type of object that will be added as a relationship. Can be pathways , groups , content/videos , content/articles , content/books , content/courses , content/assessments . |
no |
Replace Resources in a Bundle
curl https://api.degreed.com/api/v2/bundles/<ID>/relationships/<role>
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X PATCH
-d '{ \
"data": [ \
{ \
"id": "64rrL" \
"type": "content/videos" \
}, \
{ \
"id": "8oWW3" \
"type": "groups" \
} \
] \
}'
This endpoint replaces all resources in an existing bundle with the newly supplied resources. On a successful add, it returns a 201 Created
response. The scope required is bundles:write
.
HTTP Request
POST https://api.degreed.com/api/v2/bundles/<ID>/relationships/resources
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the bundle to update |
Body Parameters
Parameter | Default | Description | Required |
---|---|---|---|
ID | empty | ID of the resource that will be added to the bundle | yes |
type | empty | Type of object that will be added as a relationship. Can be pathways , groups , content/videos , content/articles , content/books , content/courses , content/assessments . |
no |
Delete Resources in a Bundle
curl https://api.degreed.com/api/v2/bundles/<ID>/relationships/resources
-H "Content-Type: application/json"
-H "Authorization: Bearer <access_token>"
-X DELETE
-d '{ \
"data": [ \
{ \
"id": "64rrL" \
"type": "content/videos" \
}, \
{ \
"id": "8oWW3" \
"type": "groups" \
} \
] \
}'
This endpoint deletes the specified resources in a role of an existing bundle. On a successful delete it returns a 204 No Content
response. The scope required is bundles:write
.
HTTP Request
DELETE https://api.degreed.com/api/v2/bundles/<ID>/relationships/resources
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the bundle to delete |
Webhooks
Webhooks enable third-party clients to push course updates and completions into Degreed as soon as they are available. Currently, we only support LearnUpon course updates and completions and Saba completions.
LearnUpon
To enable the LearnUpon webhook you must first contact your Degreed Technical Support Specialist who can provide you with a secret key and organization code.
Once you receive the key from Degreed, go to Portal Settings, Integrations, and Webhooks. Enable the button for "Enable Webhooks for your portal actions?" and supply the following values:
Name | Value |
---|---|
Endpoint URL | https://api.degreed.com/api/v2/webhooks/learnUpon/<orgcode> |
Secret Key | Secret Key supplied by Degreed. |
Saba
To enable the Saba webhook you must first contact your Degreed Technical Support Specialist who can provide you with an organization code.
Once you receive the code from Degreed, configure the Degreed webhook URL to be:
Name | Value |
---|---|
Endpoint URL | https://api.degreed.com/api/v2/webhooks/saba/<orgcode> |
You will also need to provide your Degreed Technical Support Specialist with your Saba API URL (e.g. "https://contoso.sabacloud.com/v1/") as well as client information to use when calling the Saba API. If you have an existing integration with Degreed, your Technical Support Specialist may already have this information.
xAPI
Degreed is supporting the Experience API (xAPI) as stated in the xAPI specification.
The xAPI is a technical specification that aims to facilitate the documentation and communication of learning experiences. It specifies a structure to describe learning experiences and defines how these descriptions can be exchanged electronically.
xAPI produces statements from events happening on Degreed. Each statement contains at least three pieces of data, an actor, verb and and object. The actor is identifying the person making the action, the verb is the activity being done and the object identifies the object upon which the activity is being done.
Degreed records the events listed below. These events are available for 6 months from their occurrence date. The availability of event data can be deferred; therefore, it is a best practice to request data using the until
or since
filters to retrieve the statements based on the timestamp
attribute. The data is available through the Degreed REST API.
Available Statements
Statement | Description |
---|---|
Added User Skill | The user added a new user skill. |
Removed User Skill | The user removed user skill. |
Completed Content | The user completed content on Degreed or any third-party. |
Completed Pathway | The user completed a Pathway. |
Created Group | The user created a new group. |
Deleted Group | The user deleted a group. |
Followed Pathway | The user followed a Pathway. |
Followed User | The user followed another user on Degreed. |
Joined Group | The user joined a group on Degreed. |
Liked Content | The User liked content on Degreed. |
Logged in | The user logged into Degreed. |
Saved Content | The user saved content on Degreed. |
Unsaved Content | The user removed saved content on Degreed |
Viewed Content | The user viewed content on Degreed, mind, only viewed, not completed. |
Was invited to Group | The user was invited to a group. |
Was Shared Content | The user retrieved content being shared by another user. |
Deleted Comment | The user deleted a comment. |
Marked Incomplete | The user marked a previously-completed resource as not completed. |
Unenrolled Pathway | The user un-enrolled from a pathway. |
Completed Recommendation | The user completed a recommendation. |
Completed Queued Items | The user completed a queued item. |
Un-followed User | The user un-followed another user on Degreed. |
Left Group | The user left a group. |
Created Pathway | The user created a new pathway. |
Created Plan | The user created a new plan. |
Deleted Plan | The user deleted a plan. |
Followed Plan | The user followed a plan. |
Un-followed Plan | The user un-followed a plan. |
Get All Statements
curl "https://api.degreed.com/xAPI/statements"
-H "Authorization: Bearer <access_token>"
This command returns JSON structured like this:
{
"statements": [
{
"id": "0df69611-30b5-0e12-4932-b72ee1100694",
"actor": {
"objectType": "Agent",
"mbox": "mailto:john@example.com",
"name": "John Do"
},
"verb": {
"id": "https://api.degreed.com/xAPI/verbs/loggedin",
"display": {
"en-US": "loggedin"
}
},
"object": {
"objectType": "Activity",
"id": "https://api.degreed.com/xAPI/activities/logged_in_degreed",
"definition": {
"name": {
"en-US": "Logged in at Degreed"
},
"description": {
"en-US": "John Do logged in Degreed"
}
}
},
"context": {
"contextActivities": {
"category": [
{
"objectType": "Activity",
"id": "https://api.degreed.com",
"definition": {
"name": {
"en-US": "Degreed"
},
"type": "https://api.degreed.com/xAPI/activities/source"
}
}
]
}
},
"timestamp": "2020-02-12T21:05:55.8954545"
}
],
"more": "https://api.degreed.com/xAPI/statements?next=FMP8kI"
}
This endpoint retrieves all xAPI statements for the current organization. The scope required is xapi:read
.
HTTP Request
GET https://api.degreed.com/xAPI/statements
URL Parameters
Parameter | Default | Description | Required |
---|---|---|---|
limit | 100 | Number of statements per page | No |
since | empty | Get all statements since this date | No |
until | empty | Get all statements until this date | No |
ascending | false | Get all statements in ascending order, ordered by creation data | No |
verb | empty | Get all statements with this verb | No |
Sending Statements
Degreed supports incoming xAPI statements from any provider available on Degreed, and stores them as completions.
Requirements
- Enabled the provider catalog integration for the provider sending the xAPI statements.
- OAuth client with a
xapi:read
,xapi:write
orxapi:all
scope from a Technical Support Specialist, refer to the Authentication documentation on to obtain a token.
Refer to the next section for details on how to send xAPI statements from LinkedIn Learning.
LinkedIn Learning
Degreed currently supports incoming xAPI statements from LinkedIn Learning, and stores them as completions.
Requirements
- Enabled LinkedIn Learning catalog integration on Degreed.
- oAuth client with
xapi:write
scope.
To enable the xAPI integration you need to get an oAuth client from Degreed which has the xapi:write
scope enabled on it. With that client you can go to the administration settings on LinkedIn Learning.
In LinkedIn Learning's Settings, select Integrations, then Reporting APIs. Add a new Reporting API integration with the following values:
Name | Value |
---|---|
Integration Name | Descriptive name of the integration, could be "Degreed". |
User Type | Default of Email . If SSO is set up on LinkedIn and Degreed, you can use ID . |
OAuth Server URL | https://degreed.com/oauth/token |
Tenant Server URL | https://api.degreed.com/xAPI/statements |
Client ID | The supplied client ID value from Degreed's oAuth token. |
Client Secret | The supplied secret value from Degreed's oAuth token. |
xAPI Rate Limiting
Degreed enforces rate limiting on the xAPI endpoints.
Errors
The Degreed API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request. Your request is invalid. |
401 | Unauthorized. Your API key is invalid. |
403 | Forbidden. You don't have the rights to visit this resource. |
404 | Not Found. The resource could not be found. |
405 | Method Not Allowed. You tried to access a resource with an invalid method. |
406 | Not Acceptable. The format you send us is not valid. We only accept JSON. |
410 | Gone. The resource requested has been removed from our servers. |
429 | Too Many Requests. You have submitted too many requests. |
500 | Internal Server Error. We had a problem with our server. Try again later. |
503 | Service Unavailable. We're temporarily offline for maintenance. Please try again later. |
Terms of Service
Overview
The Degreed Application Programming Interface (API) facilitates the management of the Degreed platform and provides enterprise clients access to platform features and activity data. By accessing or using the Degreed APIs on behalf of an enterprise client, you represent and warrant that you have authority to bind that entity to the Terms and by accepting the Terms, you are doing so on behalf of that entity.
Compliance
You will comply with all applicable laws and regulations and you will not use the APIs to encourage or promote illegal activity.
API Limitations
Degreed sets and enforces limits on your use of the APIs (e.g. limiting the number of API requests you may make). You agree to, and will not attempt to circumvent, such limitations documented with each API. If you would like to use any API beyond these limits you must obtain Degreed’s express consent. To seek such approval contact your Degreed client representative.
Monitoring
You agree Degreed may monitor use of the APIs to ensure quality, improve Degreed products and services, triage issues, and verify your compliance with these terms.
User Privacy
You will comply with all applicable privacy laws and regulations including those applying to Personally Identifiable Information (PII). You will comply with the security and privacy policies as set forth by your organization and adhere to all relevant privacy policies and regulations controlling the use of PII data.
Compliance
Unless expressly permitted by Degreed, you WILL NOT, and WILL NOT PERMIT others acting on your behalf, to do the following with the APIs or data returned from the APIs:
- Scrape, build databases or applications, or otherwise create permanent copies of such data for the purpose of cloning the application in a manner which circumvents the need for users to access Degreed.
- Copy, translate, modify, create derivative work of, sell, lease, lend, convey, distribute, publicly display, or sublicense to any third party;
- Reproduce and populate core Degreed functionality including, but not limited to pathways, plans, pages, skill ratings, manager ratings, skill review, skill certification, recommendations, groups, followers, and shared and saved items
- Interleave non reporting data with data from other systems in a manner that would cause the user to think the data was from Degreed.
- Load illegal, inappropriate, malicious, or harmful content, links or information to Degreed
- Load copyrighted or protected content, links, or information to Degreed without explicit permission from the copyright or license holder for use by the intended audiences or purposes
- Direct users to source content URLs which would allow users to bypass Degreed content item pages
Changelog
The following changes to the API are categorized by release. These changes are also reflected in the documentation.
January 2021
- Fix Creating new content now enforces the external-id requirement for all content.
November 2020
- New Get a Specific Pathway now includes collaborators.
- New Get a Specific Pathway and Get All Pathways now includes the attribute
is-endorsed
.
October 2020
- New Create, Updated, Read and Delete for Certificates.
- New Get Certificates for a Specific User including filtering for employee id an email.
- Docs Updates on the xApi storage timeframe and retreival best practice.
September 2020
- Docs Add documentation to communicate existing Content PATCH and external-id behavior.
August 2020
- New Added scopes for consistency to Users endpoints for retrieving additional user data.
- Docs Added documentation for Get Groups for a Specific User.
- Docs Added documentation for Get Shared Items for a Specific User.
- Docs Added documentation for Get Required Learning for a Specific User.
- Docs Added documentation for Get a Specific Required Learning.
- Docs Document date format applicable to start date and end date filters.
July 2020
- New Get a Specific Accomplishment filtering by employee id and email.
- New Obfuscated degreed-url for content.
- New Implemented xApi rate limiting.
June 2020
- New Create, Update, Read and
Delete Global group organization relationships.
- New Adding
Un-followed User
,Created Pathway
,Created Plan
,Deleted Plan
,Followed Plan
andUn-followed Plan
to xApi Available Statements. - New: Added the
degreed-url
attribute to assessments, articles, courses, podcasts, videos. - New: Ability to create, update and delete Podcasts items.
May 2020
- New Create, Updated, Read and Delete for Accomplishments. Get Accomplishments for a Specific User is also implemented.
- New Adding
Deleted Group
,Removed User Skill
andUnsaved Content
to xApi Available Statements - New Added the ability to get
is-focus
attribute from the user-skills resource.
April 2020
- New: Global Admin Tool Organizations can use
X-Degreed-Organization-Code
header to created, read and delete Completions, Content and Users.
February 2020
- New: Ability to filter users on creation date.
- New: New statements for the xAPI.
- New: Added the
degreed-url
attribute to the books resource. This URL points to the book on Degreed.
January 2020
- New: Ability to create, update and delete Required Learning items.
- New: For our Extended Enterprise clients we now support bundles. See Bundles
- New: Degreed xAPI, get the latest learning activities on the Degreed platform.
- Docs: Added Terms of Service.
December 2019
- Fix: Improve performance for required learning and recommendations endpoint.
- Docs: Document date ranges on endpoints which support it and what they apply to.
October 2019
- New: Added the ability to use the default profile visibility when creating a new user. Set
profile-visibility
toUseOrganizationDefault
. - New: Ability to adjust rate limits per oAuth client.
- New: Fetch skills related to specific content. See Get skills for a specific content item
September 2019
- New: Added the ability to manage the members of a group. See Add users to a group.
- New: Added the ability to create, update and delete groups. See Create a new group.
- New: Added the ability to attach skills to content. See Assign skills to content.
- New: Renamed recommendations to shared to be consistent with the site.
/recommendations
URL is still available for backwards compatibility. - Fix: Automatically set the full name once first and last name are supplied.
- Fix: Return public content on
/content/:id
endpoint. - Docs: Improved documentation and re-ordered menu for more clarity.
August 2019
- New: List, create, and delete skill ratings. See Skill ratings documentation.
- New: List, create, update, and delete assessments. See Content: assessments documentation.
- New: Get a specific content item by ID. See Get a specific content item documentation.
- Update: Added
modified-at
field to skill plans endpoint. - Fix: Display all section descriptions of Pathways.
July 2019
- New: List user skills per specific user under the
/users/<id>/user-skills
endpoint. The user can be selected by user ID, employee ID, or email. - New: Create and delete user skills under the
/user-skills
endpoint. - New: LearnUpon webhook for pushing completions to Degreed.
- Docs: Improved documentation on all endpoints.
- New: Added the ability to query content by unique content ID, found under the
/content/<id>
endpoint. - New: Added the ability to filter content by URL by using the
?filter[url]
parameter on/content
. - New: Added the ability to filter specific content by external ID by using the
?filter[external_id]
parameter on/content/<type>
.
April 2019
- New: List, create, edit, and delete articles, books, courses, and videos under the
/content/<type>
endpoints. - New: Create completions in Degreed by posting them to the
/completions
endpoint. Current supported types are articles, books, courses, events, or videos. - New: Connect the LinkedIn Learning API to our new
/xapi
endpoint. For instructions, see the xAPI section of the documentation. - New: Added the ability to create oAuth clients specific to a provider. Providers can only see their own data under the
/completions
and/content/
endpoints. - Update: Changed scopes to use a colon (:) to delimit the type of operation. You can also still use an underscore (
_
). For example,groups_write
can now begroups:write
.
February 2019
- New: Added POST, PATCH and DELETE operations against the
/users
endpoint.