NAV Navbar
shell

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 @user.json

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 Yes
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 deletes a user from the Degreed system. 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 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/foo

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

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.

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

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.

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.

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. 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. 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

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. 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. 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 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://localhost:44340/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://localhost:44340/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://localhost:44340/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 Video

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"
      },
      "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."
                }
              ]
            }
          ]
        }
      ],
      "created-at": "2018-04-19T00:33:59.8183009+02:00",
      "modified-at": "2018-09-11T05:33:47.6791062+02:00"
    },
    "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.

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.

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 bundles:

{
  "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.

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 is currently recording the events written below and will make them 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
statementId empty Get a specific statement No
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

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

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:

  1. 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.
  2. Copy, translate, modify, create derivative work of, sell, lease, lend, convey, distribute, publicly display, or sublicense to any third party;
  3. 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
  4. Interleave non reporting data with data from other systems in a manner that would cause the user to think the data was from Degreed.
  5. Load illegal, inappropriate, malicious, or harmful content, links or information to Degreed
  6. 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
  7. 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.

September 2020

August 2020

July 2020

June 2020

May 2020

April 2020

February 2020

January 2020

December 2019

October 2019

September 2019

August 2019

July 2019

April 2019

February 2019