# 360Learning Documentation > Documentation for 360Learning ## Guides: Documentation - [360Learning API v2](https://360learning.readme.io/docs/introduction.md): Overview of the API v2 and its capabilities. - [Getting started with the API v2](https://360learning.readme.io/docs/get-started.md): Step-by-step guide to setting up and using the API. - [Step 1: Obtain API v2 credentials](https://360learning.readme.io/docs/step-1-get-your-api-credentials.md) - [Step 2: Get an access token](https://360learning.readme.io/docs/step-2-create-an-access-token.md) - [Step 3: Make your first API call using the access token](https://360learning.readme.io/docs/step-3.md) - [Next steps](https://360learning.readme.io/docs/whats-next.md) - [Authentication](https://360learning.readme.io/docs/authentication.md): Learn how to securely access the API. - [Manage API credentials](https://360learning.readme.io/docs/manage-api-keys.md) - [Authentication best practices](https://360learning.readme.io/docs/authentication-best-practices.md) - [Scopes and permissions](https://360learning.readme.io/docs/oauth-scopes.md): Understand the permissions required for various API actions. - [Scopes best practices](https://360learning.readme.io/docs/scopes-best-practices.md) - [Pagination](https://360learning.readme.io/docs/pagination.md): Learn how to navigate through paginated responses. - [Filtering](https://360learning.readme.io/docs/filtering.md): Discover how to refine API responses with specific criteria. - [Bulk operations](https://360learning.readme.io/docs/bulk-operations-1.md): Perform large-scale operations on data and objects through the API, with features designed to automate, simplify, and track data processes. - [Error handling](https://360learning.readme.io/docs/errors.md): Learn how to interpret and manage errors returned by the API. - [Authentication errors](https://360learning.readme.io/docs/authentication-errors.md) - [Scope errors](https://360learning.readme.io/docs/scopes-errors.md) - [Rate limiting errors](https://360learning.readme.io/docs/copy-of-rate-limiting-errors.md) - [Webhooks](https://360learning.readme.io/docs/webhooks.md) - [Subscriptions](https://360learning.readme.io/docs/subscriptions.md) - [Event payload and headers](https://360learning.readme.io/docs/event-payload-and-headers.md) - [Webhooks security and signature verification](https://360learning.readme.io/docs/security-and-signature-verification.md) - [Retry logic](https://360learning.readme.io/docs/retry-logic.md) - [Testing webhooks](https://360learning.readme.io/docs/testing-webhooks.md) - [Webhooks processing best practices](https://360learning.readme.io/docs/webhooks-processing-best-practices.md) ## Guides: Migration guides - [Why migrate from API v1 to API v2?](https://360learning.readme.io/docs/api-v1-to-v2-migration-1.md) - [Endpoint mapping](https://360learning.readme.io/docs/endpoint-mapping-1.md) - [Migrate updateClassroomSlotAttendance](https://360learning.readme.io/docs/replace-an-attendance-sheet.md) - [Migrate getCourse](https://360learning.readme.io/docs/retrieve-a-course-migration-guide.md) - [Migrate getCourses](https://360learning.readme.io/docs/list-all-courses-migration-guide.md) - [Migrate getExternalCourse (using external ID)](https://360learning.readme.io/docs/retrieve-an-external-course-migration-guide-1.md) - [Migrate getCoursesStats](https://360learning.readme.io/docs/migrate-getcoursesstats.md) - [Migrate getUserCourseStats](https://360learning.readme.io/docs/migrate-getusercoursestats.md) - [Migrate getUserCourses](https://360learning.readme.io/docs/migrate-getusercourses.md) - [Migrate getCourseStats](https://360learning.readme.io/docs/migrate-getcoursestats.md) - [Migrate createCustomField](https://360learning.readme.io/docs/create-a-custom-field-migration-guide.md) - [Migrate deleteCustomField](https://360learning.readme.io/docs/delete-a-custom-field-migration-guide.md) - [Migrate listCustomFields](https://360learning.readme.io/docs/list-all-custom-fields-migration-guide.md) - [Replace a user custom fields values: Migration guide](https://360learning.readme.io/docs/replace-a-user-custom-fields-values-migration-guide.md) - [Migrate addExternalIdToUser](https://360learning.readme.io/docs/create-an-id-mapping-migration-guide.md) - [Migrate getUserByExternalId](https://360learning.readme.io/docs/list-all-id-mappings-migration-guide.md) - [Retrieve a group: Migration guide](https://360learning.readme.io/docs/retrieve-a-group-migration-guide.md) - [List all memberships in a group: Migration guide](https://360learning.readme.io/docs/list-all-memberships-in-a-group-migration-guide.md) - [Migrate getGroups](https://360learning.readme.io/docs/list-all-groups-migration-guide.md) - [Migrate createGroup](https://360learning.readme.io/docs/create-a-group-migration-guide.md) - [Migrate updateGroup](https://360learning.readme.io/docs/edit-a-group-migration-guide.md) - [Migrate deleteGroup](https://360learning.readme.io/docs/delete-a-group-migration-guide.md) - [Migrate addUserToGroup](https://360learning.readme.io/docs/add-a-user-role-migration-guide.md) - [Migrate deleteUserFromGroup](https://360learning.readme.io/docs/remove-a-user-role-migration-guide.md) - [Migrate getGroupCatalog](https://360learning.readme.io/docs/list-all-content-ids-in-a-group-catalog-migration-guide.md) - [Migrate createPath](https://360learning.readme.io/docs/create-a-path-migration-guide.md) - [Migrate updatePath](https://360learning.readme.io/docs/edit-a-path-migration-guide.md) - [Retrieve metrics for a path session: Migration guide](https://360learning.readme.io/docs/retrieve-metrics-for-a-path-session-migration-guide.md) - [List all enrollments: Migration guide](https://360learning.readme.io/docs/list-all-enrollments-migration-guide.md) - [Replace a path session audience: Migration guide](https://360learning.readme.io/docs/replace-a-path-session-audience-migration-guide.md) - [List all user (path session) statistics: Migration guide](https://360learning.readme.io/docs/list-all-user-path-session-statistics-migration-guide.md) - [List all sessions in a path: Migration guide](https://360learning.readme.io/docs/list-all-sessions-in-a-path-migration-guide.md) - [Migrate createPathSession](https://360learning.readme.io/docs/create-a-path-session-migration-guide.md) - [Retrieve a path session: Migration guide](https://360learning.readme.io/docs/retrieve-a-path-session-migration-guide.md) - [Migrate updatePathSession](https://360learning.readme.io/docs/edit-a-path-session-migration-guide.md) - [Migrate deletePathSession](https://360learning.readme.io/docs/delete-a-path-session-migration-guide.md) - [Migrate getPaths](https://360learning.readme.io/docs/list-all-paths-migration-guide.md) - [Migrate getPath](https://360learning.readme.io/docs/retrieve-a-path-migration-guide.md) - [Migrate postSkills](https://360learning.readme.io/docs/create-a-tag-migration-guide.md) - [Migrate updateSkill](https://360learning.readme.io/docs/replace-a-tag-migration-guide.md) - [Migrate getSkills](https://360learning.readme.io/docs/list-all-tags.md) - [Migrate createOrInviteUser](https://360learning.readme.io/docs/create-a-user-20-migration-guide.md) - [Migrate updateUser](https://360learning.readme.io/docs/edit-a-user-migration-guide.md) - [Migrate getUser](https://360learning.readme.io/docs/retrieve-a-user-migration-guide.md) - [Migrate deleteUser](https://360learning.readme.io/docs/delete-a-user-migration-guide.md) - [Migrate getUsers](https://360learning.readme.io/docs/list-all-users-migration-guide.md) - [Migrate addManagerToUser](https://360learning.readme.io/docs/add-a-manager-to-a-user-migration-guide.md) - [Migrate deleteManagerFromUser](https://360learning.readme.io/docs/remove-a-manager-from-a-user-migration-guide.md) - [Migrate getUserRoles](https://360learning.readme.io/docs/list-all-memberships-of-a-user-migration-guide.md) - [Migrate pseudonymizeUser](https://360learning.readme.io/docs/pseudonymize-user-migration-guide.md) - [Migrate getAllCustomUserLinks](https://360learning.readme.io/docs/list-all-custom-user-links-for-a-user-migration-guide.md) - [Migrate createCustomUserLink](https://360learning.readme.io/docs/create-a-custom-user-link-migration-guide.md) - [Migrate updateCustomUserLink](https://360learning.readme.io/docs/replace-custom-user-links-migration-guide.md) - [Migrate deleteCustomUserLink](https://360learning.readme.io/docs/delete-a-custom-user-link-migration-guide.md) - [Migrate listLearningNeeds](https://360learning.readme.io/docs/list-all-learning-needs-migration-guide-1.md) - [Migrate getCustomLinks](https://360learning.readme.io/docs/list-custom-links-migration-guide.md) - [Migrate deleteCustomLink](https://360learning.readme.io/docs/delete-a-custom-link-migration-guide.md) - [Migrate listProjects](https://360learning.readme.io/docs/migrate-listprojects.md) - [Migrate addToGroupCatalog](https://360learning.readme.io/docs/add-content-to-group-catalog-migration-guide.md) - [Migrate deleteFromGroupCatalog](https://360learning.readme.io/docs/remove-content-from-catalogs.md) - [Migrate addToGroupLibrary](https://360learning.readme.io/docs/add-content-to-libraries-migration-guide.md) - [Migrate deleteFromGroupLibrary](https://360learning.readme.io/docs/remove-content-from-libraries-migration-guide.md) - [Create subscription events: Migration guide](https://360learning.readme.io/docs/template-v2-endpoint-name-migration-guide-copy.md) - [Migrate deleteExternalCourses](https://360learning.readme.io/docs/archive-external-courses-migration-guide.md) - [Migrate importExternalCourses](https://360learning.readme.io/docs/migrate-importexternalcourses.md) - [Migrate importExternalCoursesStats](https://360learning.readme.io/docs/migrate-importexternalcoursesstats.md) ## Guides: MCP Server - [About the 360Learning MCP server](https://360learning.readme.io/docs/mcp.md) - [Getting started with MCP](https://360learning.readme.io/docs/getting-started-with-mcp.md) - [Tools reference](https://360learning.readme.io/docs/tools-reference.md) ## Guides: Integrators Hub - [Create an API-based integration](https://360learning.readme.io/docs/create-an-api-based-integration.md): Learn how to create API-based integrations to synchronize courses and learning statistics into 360Learning customer platforms using the Integrations scope. - [ Step 1: Authenticate](https://360learning.readme.io/docs/step-1-authenticate.md) - [Step 2: Configure the integration](https://360learning.readme.io/docs/step-2.md) - [Step 3: Synchronize content](https://360learning.readme.io/docs/step-3-synchronize-content.md) - [Step 4: Synchronize statistics](https://360learning.readme.io/docs/step-4-synchronize-statistics.md) - [Next steps](https://360learning.readme.io/docs/next-steps.md) ## API Reference: Core API - [List all certificate outlines](https://360learning.readme.io/reference/v2certificateoutlinesgetcertificateoutlinescontroller_getcertificateoutlines.md): > πŸ”‘ > > Required OAuth scope: `certificateOutlines:read`. Lists all certificate outlines in your platform. - [Create certificate outline](https://360learning.readme.io/reference/v2certificateoutlinescreatecertificateoutlinecontroller_createcertificateoutline.md): > πŸ”‘ > > Required OAuth scope: `certificateOutlines:write`. Creates a new certificate outline in your platform. - [Delete a certificate outline](https://360learning.readme.io/reference/v2certificateoutlinesdeletecertificateoutlinecontroller_deletecertificateoutline.md): > πŸ”‘ > > Required OAuth scope: `certificateOutlines:write`. Deletes a specific certificate outline given its unique ID. - [Edit a certificate outline](https://360learning.readme.io/reference/v2certificateoutlinesupdatecertificateoutlinecontroller_updatecertificateoutline.md): > πŸ”‘ > > Required OAuth scope: `certificateOutlines:write`. Edits specific fields of an existing certificate outline. Fields not included in the request payload remain unchanged. - [Create a classroom](https://360learning.readme.io/reference/v2classroomscreateclassroomcontroller_createclassroom.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Creates a classroom. - [List all classrooms](https://360learning.readme.io/reference/v2classroomsgetclassroomscontroller_getclassrooms.md): > πŸ”‘ > > Required OAuth scope: `classrooms:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 classrooms. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Retrieve a classroom](https://360learning.readme.io/reference/v2classroomsgetclassroomcontroller_getclassroom.md): > πŸ”‘ > > Required OAuth scope: `classrooms:read`. Retrieves information about a classroom given its ID. - [Edit a classroom](https://360learning.readme.io/reference/v2classroomsupdateclassroomcontroller_updateclassroom.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Edits specific fields of an existing classroom. Fields not included in the request payload remain unchanged. - [Add a slot to a classroom](https://360learning.readme.io/reference/v2classroomscreateclassroomslotcontroller_createclassroomslot.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Adds a slot to a given classroom. - [List all slots in a classroom](https://360learning.readme.io/reference/v2classroomsgetclassroomslotscontroller_getclassroomslots.md): > πŸ”‘ > > Required OAuth scope: `classrooms:read`. > πŸ“– > > This endpoint is paginated with a page size of 100 classroom slots. For more information, see the [Pagination guide](doc:pagination). Lists… - [Remove a slot from a classroom](https://360learning.readme.io/reference/v2classroomsdeleteclassroomslotcontroller_deleteclassroomslot.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Removes a slot from a classroom based on the provided slot ID. - [Create an attendance sheet](https://360learning.readme.io/reference/v2classroomscreateattendancesheetcontroller_createattendancesheet.md): > πŸ”‘ > > Required OAuth scope: `attendanceSheets:write`. Creates an attendance sheet for the given classroom slot. - [Edit a classroom slot](https://360learning.readme.io/reference/v2classroomsupdateclassroomslotcontroller_updateclassroomslot.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Edits specific fields of an existing classroom slot. Fields not included in the request payload remain unchanged. - [List all attendance sheets](https://360learning.readme.io/reference/v2classroomsgetattendancesheetscontroller_getattendancesheets.md): > πŸ”‘ > > Required OAuth scope: `attendanceSheets:read`. > πŸ“– > > This endpoint is paginated with a page size of 3,000 attendance sheets. For more information, see the [Pagination… - [Delete an attendance sheet](https://360learning.readme.io/reference/v2classroomsdeleteattendancesheetcontroller_deleteattendancesheet.md): > πŸ”‘ > > Required OAuth scope: `attendanceSheets:write`. Deletes a specific attendance sheet given its unique ID. - [Replace an attendance sheet](https://360learning.readme.io/reference/v2classroomsupdateattendancesheetcontroller_updateattendancesheet.md): > πŸ”‘ > > Required OAuth scope: `attendanceSheets:write`. Replaces the attendance sheet in the given classroom slot. - [List all attendances](https://360learning.readme.io/reference/v2classroomsgetattendancescontroller_getattendances.md): > πŸ”‘ > > Required OAuth scope: `attendanceSheets:read`. > πŸ“– > > This endpoint is paginated with a page size of 3,000 attendances. For more information, see the [Pagination guide](doc:pagination).… - [Register a user to a classroom slot](https://360learning.readme.io/reference/v2classroomsaddslotregistrationcontroller_addslotregistration.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Registers a user to a classroom slot based on the provided classroom slot ID and user ID. - [List all registrations in a classroom slot](https://360learning.readme.io/reference/v2classroomsgetslotregistrationscontroller_getslotregistrations.md): > πŸ”‘ > > Required OAuth scope: `classrooms:read`. > πŸ“– > > This endpoint is paginated with a page size of 7,000 slot registrations. For more information, see the [Pagination guide](doc:pagination).… - [Edit a classroom slot registration](https://360learning.readme.io/reference/v2classroomsupdateslotregistrationcontroller_updateslotregistration.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Edits specific fields of an existing classroom slot registration. Fields not included in the request payload remain unchanged. - [List all registrations in a classroom](https://360learning.readme.io/reference/v2classroomsgetclassroomregistrationscontroller_getclassroomregistrations.md): > πŸ”‘ > > Required OAuth scope: `classrooms:read`. > πŸ“– > > This endpoint is paginated with a page size of 7,000 slot registrations. For more information, see the [Pagination guide](doc:pagination).… - [List all waitlist requests in a classroom slot](https://360learning.readme.io/reference/v2classroomsgetclassroomslotwaitlistcontroller_getclassroomslotwaitlist.md): > πŸ”‘ > > Required OAuth scope: `classrooms:read`. Lists all waitlist requests in a given classroom slot. - [Add a user to a classroom slot waitlist](https://360learning.readme.io/reference/v2classroomsjoinclassroomslotwaitlistcontroller_joinclassroomslotwaitlist.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Adds a user to the waitlist of a given classroom slot. - [Remove a user from a classroom slot waitlist](https://360learning.readme.io/reference/v2classroomsleaveclassroomslotwaitlistcontroller_leaveclassroomslotwaitlist.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Removes a user from the waitlist of a given classroom slot. - [List all registrations](https://360learning.readme.io/reference/v2classroomsgetregistrationscontroller_getregistrations.md): > πŸ”‘ > > Required OAuth scope: `classrooms:read`. > πŸ“– > > This endpoint is paginated with a page size of 7,000 slot registrations. For more information, see the [Pagination guide](doc:pagination).… - [Unregister a user from a classroom slot](https://360learning.readme.io/reference/v2classroomsdeleteslotregistrationcontroller_deleteslotregistration.md): > πŸ”‘ > > Required OAuth scope: `classrooms:write`. Unregisters a user from a classroom slot based on the provided classroom slot ID and slot registration ID. - [List all courses statistics](https://360learning.readme.io/reference/v2coursesgetallcoursestatscontroller_getallcoursestats.md): > πŸ”‘ > > Required OAuth scope: `courseStats:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 courses attempts statistics. For more information, see the [Pagination… - [Archive or restore a course](https://360learning.readme.io/reference/v2coursesarchiveorunarchivecoursecontroller_archiveorunarchivecourse.md): > πŸ”‘ > > Required OAuth scope: `courses:write`. Archives or restores a course. Archiving a course doesn't remove it from paths where it is included. It simply prevents the course from being added to… - [Retrieve a course](https://360learning.readme.io/reference/v2coursesgetcoursecontroller_getcourse.md): > πŸ”‘ > > Required OAuth scope: `courses:read`. Retrieves the details of a specific course with the provided course ID. - [List all courses](https://360learning.readme.io/reference/v2coursesgetcoursescontroller_getcourses.md): > πŸ”‘ > > Required OAuth scope: `courses:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 courses. For more information, see the [Pagination guide](doc:pagination). Lists all courses… - [List all tags in a course](https://360learning.readme.io/reference/v2coursesgetcoursetagscontroller_gettags.md): > πŸ”‘ > > Required OAuth scope: `tags:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 tags. For more information, see the [Pagination guide](doc:pagination). Lists all unique tags… - [Replace all tags in a course](https://360learning.readme.io/reference/v2coursesupdatetagscontroller_updatetags.md): > πŸ”‘ > > Required OAuth scope: `courses:write`. Replaces all tags in the given course with the provided ones. Tags not included are removed. - [Create an eLearning standard course](https://360learning.readme.io/reference/v2coursescreateelearningstandardcoursecontroller_createelearningstandardcourse.md): > πŸ”‘ > > Required OAuth scope: `courses:write`. Creates a new eLearning standard (SCORM, AICC, xAPI, ...) course with the provided eLearning standard file. This endpoint should not be used to create… - [Edit an eLearning standard course](https://360learning.readme.io/reference/v2coursesupdateelearningstandardcoursecontroller_updateelearningstandardcourse.md): > πŸ”‘ > > Required OAuth scope: `courses:write`. Edits specific fields of an existing eLearning standard (SCORM, AICC, xAPI, ...) course. Fields not included in the request payload remain unchanged.… - [List all custom field values for a course](https://360learning.readme.io/reference/v2coursesgetcoursecustomfieldvaluescontroller_getcoursecustomfieldvalues.md): > πŸ”‘ > > Required OAuth scope: `courses:read`. Lists all custom field values in a given course. - [Replace all custom field values for a course](https://360learning.readme.io/reference/v2coursesupdatecoursecustomfieldvaluescontroller_updatecoursecustomfieldvalues.md): > πŸ”‘ > > Required OAuth scope: `courses:write`. Replaces all custom field values in the given course with the provided ones. Values not included are removed. - [Generate a course from a prompt (internal only)](https://360learning.readme.io/reference/v2coursesgeneratefrompromptcontroller_generatefromprompt.md): > πŸ”‘ > > Required OAuth scope: `courses:internal`. Triggers the generation of a course from a text prompt. This is an internal-only endpoint restricted to demo platforms. The course generation… - [Create a custom field](https://360learning.readme.io/reference/v2customfieldscreatecustomfieldcontroller_createcustomfield.md): > πŸ”‘ > > Required OAuth scope: `customFields:write`. Creates a custom field. - [List all custom fields](https://360learning.readme.io/reference/v2customfieldsgetcustomfieldscontroller_getcustomfields.md): > πŸ”‘ > > Required OAuth scope: `customFields:read`. > πŸ“– > > This endpoint is paginated with a page size of 1,000 custom fields. For more information, see the [Pagination guide](doc:pagination).… - [Delete a custom field](https://360learning.readme.io/reference/v2customfieldsdeletecustomfieldcontroller_deletecustomfield.md): > πŸ”‘ > > Required OAuth scope: `customFields:write`. Deletes a specific custom field given its unique ID. - [Edit a custom field](https://360learning.readme.io/reference/v2customfieldsupdatecustomfieldcontroller_updatecustomfield.md): > πŸ”‘ > > Required OAuth scope: `customFields:write`. Edits specific fields of an existing custom field. Fields not included in the request payload remain unchanged. - [List all authorized values](https://360learning.readme.io/reference/v2customfieldsgetauthorizedvaluescontroller_getauthorizedvalues.md): > πŸ”‘ > > Required OAuth scope: `customFields:read`. Lists all authorized values for the given custom field. - [Replace all authorized values](https://360learning.readme.io/reference/v2customfieldsreplaceauthorizedvaluescontroller_replaceauthorizedvalues.md): > πŸ”‘ > > Required OAuth scope: `customFields:write`. Replaces all authorized values in the given custom field with the provided ones. Values not included are removed. - [List custom links](https://360learning.readme.io/reference/v2customlinksgetcustomlinksbycompanycontroller_getcustomlinksbycompany.md): > πŸ”‘ > > Required OAuth scope: `customLinks:read`. > πŸ“– > > This endpoint is paginated with a page size of 1,000 custom links. For more information, see the [Pagination guide](doc:pagination). Lists… - [Create a custom link](https://360learning.readme.io/reference/v2customlinkscreatecustomlinkcontroller_createcustomlink.md): > πŸ”‘ > > Required OAuth scope: `customLinks:write`. Creates a custom link. - [Delete a custom link](https://360learning.readme.io/reference/v2customlinksdeletecustomlinkcontroller_deletecustomlink.md): > πŸ”‘ > > Required OAuth scope: `customLinks:write`. Deletes the custom link. - [Replace a custom link](https://360learning.readme.io/reference/v2customlinksreplacecustomlinkcontroller_replacecustomlink.md): > πŸ”‘ > > Required OAuth scope: `customLinks:write`. Replaces the custom link with the provided data. Fields not included in the payload are removed. - [Create an ID mapping](https://360learning.readme.io/reference/v2externalidscreateexternalidcontroller_createexternalid.md): > πŸ”‘ > > Required OAuth scope: `externalIds:write`. Creates an external ID mapping. - [List all ID mappings](https://360learning.readme.io/reference/v2externalidsgetexternalidscontroller_getexternalids.md): > πŸ”‘ > > Required OAuth scope: `externalIds:read`. > πŸ“– > > This endpoint is paginated with a page size of 5,000 external IDs. For more information, see the [Pagination guide](doc:pagination). Lists… - [Delete an ID mapping](https://360learning.readme.io/reference/v2externalidsdeleteexternalidcontroller_deleteexternalid.md): > πŸ”‘ > > Required OAuth scope: `externalIds:write`. Deletes a specific external ID mapping given its unique ID. - [Replace an ID mapping](https://360learning.readme.io/reference/v2externalidsupdateexternalidcontroller_updateexternalid.md): > πŸ”‘ > > Required OAuth scope: `externalIds:write`. Replaces an existing external ID mapping with the provided data. - [Add a user's role](https://360learning.readme.io/reference/v2groupsadduserroletogroupcontroller_adduserroletogroup.md): > πŸ”‘ > > Required OAuth scope: `groups:write`. Adds the given role to the given user in the given group. - [Remove a user's role](https://360learning.readme.io/reference/v2groupsremoveuserrolefromgroupcontroller_removeuserrolefromgroup.md): > πŸ”‘ > > Required OAuth scope: `groups:write`. Removes the given role from the given user in the given group. The `learner` role is also removed from all public subgroups down to first private… - [Create a group](https://360learning.readme.io/reference/v2groupscreategroupcontroller_creategroup.md): > πŸ”‘ > > Required OAuth scope: `groups:write`. Creates a new group. - [List all groups](https://360learning.readme.io/reference/v2groupsgetgroupscontroller_getgroups.md): > πŸ”‘ > > Required OAuth scope: `groups:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 groups. For more information, see the [Pagination guide](doc:pagination). Lists all groups in… - [Retrieve a group](https://360learning.readme.io/reference/v2groupsgetgroupcontroller_getgroup.md): > πŸ”‘ > > Required OAuth scope: `groups:read`. Retrieves information about a group given its ID. - [Delete a group](https://360learning.readme.io/reference/v2groupsdeletegroupcontroller_deletegroup.md): > πŸ”‘ > > Required OAuth scope: `groups:write`. Deletes a group given its unique ID. - [List all memberships in a group](https://360learning.readme.io/reference/v2groupsgetgroupmemberscontroller_getgroupmembers.md): > πŸ”‘ > > Required OAuth scope: `groups:read`. > πŸ“– > > This endpoint is paginated with a page size of 1,000 memberships. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Edit a group](https://360learning.readme.io/reference/v2groupsupdategroupcontroller_updategroup.md): > πŸ”‘ > > Required OAuth scope: `groups:write`. Edits specific fields of an existing group. Fields not included in the request payload remain unchanged. - [List all content IDs in a group catalog](https://360learning.readme.io/reference/v2groupsgetcatalogcontentidscontroller_getcatalogcontentids.md): > πŸ”‘ > > Required OAuth scope: `groups:read`. > πŸ“– > > This endpoint is paginated with a page size of 10,000 unique content IDs. For more information, see the [Pagination guide](doc:pagination).… - [List all content IDs in a group library](https://360learning.readme.io/reference/v2groupsgetlibrarycontentidscontroller_getlibrarycontentids.md): > πŸ”‘ > > Required OAuth scope: `groups:read`. > πŸ“– > > This endpoint is paginated with a page size of 10,000 unique content IDs. For more information, see the [Pagination guide](doc:pagination).… - [Set group branding](https://360learning.readme.io/reference/v2groupsupsertgroupcustomizationcolorscontroller_upsertgroupcustomizationcolors.md): > πŸ”‘ > > Required OAuth scope: `groups:write`. Sets the branding for a group. Branding is automatically inherited by all subgroups unless a subgroup defines its own branding. If the Extended Training… - [Upload group media](https://360learning.readme.io/reference/v2groupsuploadgroupmediacontroller_uploadgroupmedia.md): > πŸ”‘ > > Required OAuth scope: `groups:write`. Uploads media files (banner, background, favicon, logo) to a group. At least one file must be provided. - [Create an integration configuration](https://360learning.readme.io/reference/v2integrationscreateintegrationcontroller_createintegration.md): > πŸ”‘ > > Required OAuth scope: `integrations:write`. Creates a new integration configuration, or reactivates an existing inactive one. - [List integration configurations](https://360learning.readme.io/reference/v2integrationsgetintegrationscontroller_getintegrations.md): > πŸ”‘ > > Required OAuth scope: `integrations:read`. > πŸ“– > > This endpoint is paginated with a page size of 100 integration configurations. For more information, see the [Pagination… - [Delete an integration configuration](https://360learning.readme.io/reference/v2integrationsdeleteintegrationcontroller_deleteintegration.md): > πŸ”‘ > > Required OAuth scope: `integrations:write`. Deletes a specific configuration given its unique ID and archives all its related content. - [Edit an integration configuration](https://360learning.readme.io/reference/v2integrationseditintegrationcontroller_editintegration.md): > πŸ”‘ > > Required OAuth scope: `integrations:write`. Edits specific fields of an existing integration configuration. Fields not included in the request payload remain unchanged. - [Retrieve an external course](https://360learning.readme.io/reference/v2integrationsgetexternalcoursecontroller_getexternalcourse.md): > πŸ”‘ > > Required OAuth scope: `integrations:read`. Retrieves the details of a specific course with the provided external platform course ID. - [List all learning needs](https://360learning.readme.io/reference/v2learningneedsgetlearningneedscontroller_getlearningneeds.md): > πŸ”‘ > > Required OAuth scope: `learningNeeds:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 learning needs. For more information, see the [Pagination guide](doc:pagination).… - [Create an access token](https://360learning.readme.io/reference/v2authenticationgeneratetokencontroller_generatetoken.md): Creates an OAuth access token using the `client_id` and `client_secret` credentials. Once generated, the token authorizes access to the 360Learning API v2 resources for 1 hour. It must be included in… - [Add tokens](https://360learning.readme.io/reference/v2pathsaddtokenscontroller_addtokens.md): > πŸ”‘ > > Required OAuth scope: `tokens:write`. Add tokens to a specific group for a given path. - [Archive or restore a path](https://360learning.readme.io/reference/v2pathsarchiveorunarchivepathcontroller_archiveorunarchivepath.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Archives or restores a path. - [Create a path session](https://360learning.readme.io/reference/v2pathscreatepathsessioncontroller_createpathsession.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Creates a path session for the given path. - [Create a path](https://360learning.readme.io/reference/v2pathscreatepathcontroller_createpath.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Creates a new path in the platform. - [List all sessions in a path](https://360learning.readme.io/reference/v2pathsgetpathsessionscontroller_getpathsessions.md): > πŸ”‘ > > Required OAuth scope: `paths:read`. > πŸ“– > > This endpoint is paginated with a page size of 100 path sessions. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Delete a path session](https://360learning.readme.io/reference/v2pathsdeletepathsessioncontroller_deletepathsession.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Deletes a path session given the path ID and session ID. - [Retrieve a path session](https://360learning.readme.io/reference/v2pathsgetpathsessioncontroller_getpathsession.md): > πŸ”‘ > > Required OAuth scope: `paths:read`. Retrieves information about the path session given the path ID and session ID. - [Edit a path session](https://360learning.readme.io/reference/v2pathsmodifypathsessioncontroller_modifypathsession.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Edits specific fields of an existing path session. Fields not included in the request payload remain unchanged. - [Delete a path](https://360learning.readme.io/reference/v2pathsdeletepathcontroller_deletepath.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Deletes a path given the path ID. - [List all enrollments](https://360learning.readme.io/reference/v2pathsgetenrollmentscontroller_getenrollments.md): > πŸ”‘ > > Required OAuth scope: `paths:read`. > πŸ“– > > This endpoint is paginated with a page size of 5,000 enrollments. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Retrieve a path](https://360learning.readme.io/reference/v2pathsgetpathcontroller_getpath.md): > πŸ”‘ > > Required OAuth scope: `paths:read`. Retrieves information about a path given its ID. - [List all paths](https://360learning.readme.io/reference/v2pathsgetpathscontroller_getpaths.md): > πŸ”‘ > > Required OAuth scope: `paths:read`. > πŸ“– > > This endpoint is paginated with a page size of 200 paths. For more information, see the [Pagination guide](doc:pagination). Lists all paths in… - [Retrieve a path session audience](https://360learning.readme.io/reference/v2pathsgetsessionaudiencecontroller_getsessionaudience.md): > πŸ”‘ > > Required OAuth scope: `paths:read`. Retrieves information about the path session audience given the path ID and session ID. - [Replace an audience for a path session](https://360learning.readme.io/reference/v2pathsupdatesessionaudiencecontroller_updatesessionaudience.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Replaces the audience in the given path and session with the provided one. Audience not included is removed. - [Retrieve metrics for a path session](https://360learning.readme.io/reference/v2pathsv2pathsgetsessionstatscontroller_getsessionstats.md): > πŸ”‘ > > Required OAuth scope: `pathStats:read`. Retrieves aggregated metrics for a given path session, including counts of users by session status and total certificates issued. - [List all custom field values for a session](https://360learning.readme.io/reference/v2pathsgetpathsessioncustomfieldvaluescontroller_getpathsessioncustomfieldvalues.md): > πŸ”‘ > > Required OAuth scope: `paths:read`. Lists all custom field values in a given session. - [Replace all custom fields values for a path session](https://360learning.readme.io/reference/v2pathsv2pathsupdatepathsessioncustomfieldvaluescontroller_updatepathsessioncustomfieldvalues.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Replaces all custom field values in the given path session with the provided ones. Values not included are removed. - [List all tags in a path](https://360learning.readme.io/reference/v2pathsgetpathtagscontroller_gettags.md): > πŸ”‘ > > Required OAuth scope: `tags:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 tags. For more information, see the [Pagination guide](doc:pagination). Lists all unique tag… - [List all user statistics for a path session](https://360learning.readme.io/reference/v2pathsgetuserstatscontroller_getuserstats.md): > πŸ”‘ > > Required OAuth scope: `pathStats:read`. > πŸ“– > > This endpoint is paginated with a page size of 2,000 user statistics. For more information, see the [Pagination guide](doc:pagination). Lists… - [Edit a child path session](https://360learning.readme.io/reference/v2pathsmodifychildpathsessioncontroller_modifychildpathsession.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Edits a child path session given its unique ID and path. - [Replace all steps](https://360learning.readme.io/reference/v2pathsupdatestepscontroller_updatesteps.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Replaces all steps in the given path with the provided ones. Steps not included are removed. - [Replace all tags in a path](https://360learning.readme.io/reference/v2pathsupdatetagscontroller_updatetags.md): > πŸ”‘ > > Required OAuth scope: `tags:write`. Replaces all tags in the given path with the provided onces. Tags not included are removed. - [Replace all translations for a path](https://360learning.readme.io/reference/v2pathsreplacepathtranslationscontroller_replacepathtranslations.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Replaces all translations in the given path with the provided ones. Translations not included are removed. - [Edit a path](https://360learning.readme.io/reference/v2pathsupdatepathcontroller_updatepath.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Edits specific fields of an existing path. Fields not included in the request payload remain unchanged. - [List all user statistics for all paths](https://360learning.readme.io/reference/v2pathsgetpathstatscontroller_getpathstats.md): > πŸ”‘ > > Required OAuth scope: `pathStats:read`. > πŸ“– > > This endpoint is paginated with a page size of 2,000 path user statistics. For more information, see the [Pagination guide](doc:pagination).… - [List all sessions](https://360learning.readme.io/reference/v2pathsgetallpathsessionscontroller_getallpathsessions.md): > πŸ”‘ > > Required OAuth scope: `paths:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 path sessions. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Archive a self-enrolled learner from a path session](https://360learning.readme.io/reference/v2pathsarchiveselfenrollmentcontroller_archiveselfenrollment.md): > πŸ”‘ > > Required OAuth scope: `paths:write`. Archives the self-enrollment of a learner in a path session. Learners enrolled through the Audience Builder are rejected β€” unassign those by updating the… - [List all projects](https://360learning.readme.io/reference/v2projectsgetprojectscontroller_getprojects.md): > πŸ”‘ > > Required OAuth scope: `projects:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 projects. For more information, see the [Pagination guide](doc:pagination). Lists all live… - [List all the powers](https://360learning.readme.io/reference/v2skillsgetpowerscontroller_getpowers.md): > πŸ”‘ > > Required OAuth scope: `skillsPowers:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 powers. For more information, see the [Pagination guide](doc:pagination). Lists all the… - [List all skills](https://360learning.readme.io/reference/v2skillsgetskillscontroller_getskills.md): > πŸ”‘ > > Required OAuth scope: `skills:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 skills. For more information, see the [Pagination guide](doc:pagination). Lists all skills in… - [Replace all jobs for a user](https://360learning.readme.io/reference/v2skillsreplaceuserjobscontroller_replaceuserjobs.md): > πŸ”‘ > > Required OAuth scope: `skillsJobs:write`. Replaces all jobs for the given user with the provided ones. Jobs not included are removed. - [Create a tag](https://360learning.readme.io/reference/v2tagscreatetagcontroller_createtag.md): > πŸ”‘ > > Required OAuth scope: `tags:write`. Creates a tag with the given properties. - [List all tags](https://360learning.readme.io/reference/v2tagsgettagscontroller_gettags.md): > πŸ”‘ > > Required OAuth scope: `tags:read`. > πŸ“– > > This endpoint is paginated with a page size of 5,000 tags. For more information, see the [Pagination guide](doc:pagination). Lists all tags in… - [Delete a tag](https://360learning.readme.io/reference/v2tagsdeletetagcontroller_deletetag.md): > πŸ”‘ > > Required OAuth scope: `tags:write`. Deletes a specific tag given its unique ID. - [Retrieve a tag](https://360learning.readme.io/reference/v2tagsgettagcontroller_gettag.md): > πŸ”‘ > > Required OAuth scope: `tags:read`. Retrieves a tag given its ID. - [Replace a tag](https://360learning.readme.io/reference/v2tagsupdatetagcontroller_updatetag.md): > πŸ”‘ > > Required OAuth scope: `tags:write`. Replaces an existing tag with the provided data. Fields not included in the payload remain unchanged. - [Activate a user](https://360learning.readme.io/reference/v2usersactivateusercontroller_activateuser.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Activates a specific user given its unique ID. - [Add a manager to a user](https://360learning.readme.io/reference/v2usersaddmanagercontroller_addmanager.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Adds a manager to a user. - [Remove a manager from a user](https://360learning.readme.io/reference/v2usersdeletemanagercontroller_deletemanager.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Removes a manager from a user. - [Create an invited user](https://360learning.readme.io/reference/v2userscreateusercontroller_createuser.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Creates a new user account with the invited status. If a user with the same 'mail' or 'username' was previously deleted, this operation will restore… - [Create a custom user link](https://360learning.readme.io/reference/v2userscreatecustomuserlinkcontroller_createcustomuserlink.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Creates a custom user link for the given user. - [List all users](https://360learning.readme.io/reference/v2usersgetuserscontroller_getusers.md): > πŸ”‘ > > Required OAuth scope: `users:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 users. For more information, see the [Pagination guide](doc:pagination). Lists all users in… - [Delete a user](https://360learning.readme.io/reference/v2usersdeleteusercontroller_deleteuser.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Deletes a specific user given its unique ID. - [Retrieve a user](https://360learning.readme.io/reference/v2usersgetusercontroller_getuser.md): > πŸ”‘ > > Required OAuth scope: `users:read`. Retrieves the profile details of a specific user with their given ID. - [Edit a user](https://360learning.readme.io/reference/v2usersupdateusercontroller_updateuser.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Edits specific fields of an existing user. Fields not included in the request payload remain unchanged. - [Delete a custom user link](https://360learning.readme.io/reference/v2usersdeletecustomuserlinkcontroller_deletecustomuserlink.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Deletes a specific custom user link given its unique ID. - [Import a certificate](https://360learning.readme.io/reference/v2userscreateusercertificatecontroller_createusercertificate.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Imports a certificate for a specific user given its unique ID. - [List all custom user links for a user](https://360learning.readme.io/reference/v2usersgetcustomuserlinkscontroller_getcustomuserlinks.md): > πŸ”‘ > > Required OAuth scope: `users:read`. > πŸ“– > > This endpoint is paginated with a page size of 1,000 custom links. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Replace custom user links](https://360learning.readme.io/reference/v2usersupdatecustomuserlinkcontroller_updatecustomuserlink.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Replaces the custom user link with the provided data. - [List all manager IDs for a user](https://360learning.readme.io/reference/v2usersgetmanagerscontroller_getmanagers.md): > πŸ”‘ > > Required OAuth scope: `users:read`. > πŸ“– > > This endpoint is paginated with a page size of 1,000 manager IDs. For more information, see the [Pagination guide](doc:pagination). Lists all the… - [List all subordinate IDs for a user](https://360learning.readme.io/reference/v2usersgetsubordinatescontroller_getsubordinates.md): > πŸ”‘ > > Required OAuth scope: `users:read`. > πŸ“– > > This endpoint is paginated with a page size of 1,000 subordinate IDs. For more information, see the [Pagination guide](doc:pagination). Lists all… - [List all custom field values for a user](https://360learning.readme.io/reference/v2usersgetusercustomfieldvaluescontroller_getusercustomfieldvalues.md): > πŸ”‘ > > Required OAuth scope: `users:read`. Lists all custom field values for a given user. - [Replace a user custom fields values](https://360learning.readme.io/reference/v2usersupdateusercustomfieldvaluescontroller_updateusercustomfieldvalues.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Replaces a user custom fields values given its unique ID. - [List all memberships of a user](https://360learning.readme.io/reference/v2usersgetuserrolesingroupscontroller_getuserrolesingroups.md): > πŸ”‘ > > Required OAuth scope: `users:read`. > πŸ“– > > This endpoint is paginated with a page size of 1,000 user membership. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Replace the password of a user](https://360learning.readme.io/reference/v2usersreplacepasswordcontroller_replacepassword.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Replaces the password of a user with the provided data. If 'passwordMustBeChanged' is set to true, the user will be forced to change their password on… - [Retrieve a certificate PDF file](https://360learning.readme.io/reference/v2usersgetusercertificateaspdfcontroller_getusercertificateaspdf.md): > πŸ”‘ > > Required OAuth scope: `users:read`. Retrieves a certificate PDF file given the user ID and certificate ID. - [List all certificates for a user](https://360learning.readme.io/reference/v2usersgetusercertificatescontroller_getusercertificates.md): > πŸ”‘ > > Required OAuth scope: `users:read`. > πŸ“– > > This endpoint is paginated with a page size of 1,000 certificates. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Pseudonymize user](https://360learning.readme.io/reference/v2userspseudonymizeusercontroller_pseudonymizeuser.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Removes all personal information from a previously deleted user. The first name, last name, email, and username are replaced with random, irreversible… - [Upload user media](https://360learning.readme.io/reference/v2usersuploadusermediacontroller_uploadusermedia.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Uploads a profile image to a user. - [Update certificates privacy level](https://360learning.readme.io/reference/v2usersupdateusercertificatesprivacylevelcontroller_updateusercertificatesprivacylevel.md): > πŸ”‘ > > Required OAuth scope: `users:write`. Updates the privacy level of the specified certificates belonging to the given user. ## API Reference: Bulk API - [Delete groups](https://360learning.readme.io/reference/v2bulkgroupsdeletegroupscontroller_deletegroups.md): > πŸ”‘ > > Required OAuth scope: `groups:bulk`. > 🚜 > > This endpoint processes up to 2,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Add users to groups](https://360learning.readme.io/reference/v2bulkgroupsadduserstogroupscontroller_adduserstogroups.md): > πŸ”‘ > > Required OAuth scope: `groups:bulk`. > 🚜 > > This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1). Adds… - [Add content to catalogs](https://360learning.readme.io/reference/v2bulkgroupsaddcontentstogroupscatalogcontroller_addcontentstogroupscatalog.md): > πŸ”‘ > > Required OAuth scope: `groups:bulk`. > 🚜 > > This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1). Adds… - [Remove users from groups](https://360learning.readme.io/reference/v2bulkgroupsremoveusersfromgroupscontroller_removeusersfromgroups.md): > πŸ”‘ > > Required OAuth scope: `groups:bulk`. > 🚜 > > This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Remove content from catalogs](https://360learning.readme.io/reference/v2bulkgroupsremovecontentsfromgroupscatalogcontroller_removecontentsfromgroupscatalog.md): > πŸ”‘ > > Required OAuth scope: `groups:bulk`. > 🚜 > > This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Add content to libraries](https://360learning.readme.io/reference/v2bulkgroupsaddcontentstogroupslibrarycontroller_addcontentstogroupslibrary.md): > πŸ”‘ > > Required OAuth scope: `groups:bulk`. > 🚜 > > This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1). Adds… - [Remove content from libraries](https://360learning.readme.io/reference/v2bulkgroupsremovecontentsfromgroupslibrarycontroller_removecontentsfromgroupslibrary.md): > πŸ”‘ > > Required OAuth scope: `groups:bulk`. > 🚜 > > This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Import integration statistics](https://360learning.readme.io/reference/v2bulkintegrationsimportexternalstatisticscontroller_importexternalstatistics.md): > πŸ”‘ > > Required OAuth scope: `integrations:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Archive external courses](https://360learning.readme.io/reference/v2bulkintegrationsarchiveexternalcoursescontroller_archiveexternalcourses.md): > πŸ”‘ > > Required OAuth scope: `integrations:bulk`. > 🚜 > > This endpoint processes up to 1,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Upsert external courses](https://360learning.readme.io/reference/v2bulkintegrationsimportexternalcoursescontroller_importexternalcourses.md): > πŸ”‘ > > Required OAuth scope: `integrations:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Retrieve a bulk operation](https://360learning.readme.io/reference/v2bulkoperationsgetbulkoperationcontroller_getbulkoperation.md): > πŸ”‘ > > Required OAuth scope: `bulkOperations:read`. Retrieves a bulk operation with its given ID. - [Retrieve a bulk operation result](https://360learning.readme.io/reference/v2bulkoperationsgetbulkoperationresultscontroller_getbulkoperationresults.md): > πŸ”‘ > > Required OAuth scope: `bulkOperations:read`. Retrieves a completed or erroneous bulk operation result given its unique ID. - [List all bulk operations](https://360learning.readme.io/reference/v2bulkoperationsgetbulkoperationscontroller_getbulkoperations.md): > πŸ”‘ > > Required OAuth scope: `bulkOperations:read`. > πŸ“– > > This endpoint is paginated with a page size of 20 bulk operations. For more information, see the [Pagination guide](doc:pagination).… - [Delete libraries](https://360learning.readme.io/reference/v2bulkskillsdeletelibrariescontroller_deletelibraries.md): > πŸ”‘ > > Required OAuth scope: `skillsLibraries:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations… - [Add skill reviews](https://360learning.readme.io/reference/v2bulkskillsaddskillreviewscontroller_addskillreviews.md): > πŸ”‘ > > Required OAuth scope: `skillsPowers:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Replace jobs skills](https://360learning.readme.io/reference/v2bulkskillsreplacejobsskillscontroller_replacejobsskills.md): > πŸ”‘ > > Required OAuth scope: `skillsJobSkills:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations… - [Delete jobs](https://360learning.readme.io/reference/v2bulkskillsdeletejobscontroller_deletejobs.md): > πŸ”‘ > > Required OAuth scope: `skillsJobs:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Replace users jobs](https://360learning.readme.io/reference/v2bulkskillsreplaceusersjobscontroller_replaceusersjobs.md): > πŸ”‘ > > Required OAuth scope: `skillsJobs:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Upsert jobs](https://360learning.readme.io/reference/v2bulkskillsupsertjobscontroller_upsertjobs.md): > πŸ”‘ > > Required OAuth scope: `skillsJobs:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Delete skills](https://360learning.readme.io/reference/v2bulkskillsdeleteskillscontroller_deleteskills.md): > πŸ”‘ > > Required OAuth scope: `skills:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… - [Upsert libraries](https://360learning.readme.io/reference/v2bulkskillsupsertlibrariescontroller_upsertlibraries.md): > πŸ”‘ > > Required OAuth scope: `skillsLibraries:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations… - [Upsert skills](https://360learning.readme.io/reference/v2bulkskillsupsertskillscontroller_upsertskills.md): > πŸ”‘ > > Required OAuth scope: `skills:bulk`. > 🚜 > > This endpoint processes up to 10,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1). Adds… - [Create email subscription events](https://360learning.readme.io/reference/v2bulksubscriptionscreatesubscriptioneventscontroller_createsubscriptionevents.md): > πŸ”‘ > > Required OAuth scope: `subscriptions:bulk`. > 🚜 > > This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).… ## API Reference: Webhook API - [List all events for a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionsgeteventscontroller_getevents.md): > πŸ”‘ > > Required OAuth scope: `webhooks:read`. > πŸ“– > > This endpoint is paginated with a page size of 250 webhook events. For more information, see the [Pagination guide](doc:pagination). Lists all… - [Create a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionscreatesubscriptioncontroller_createsubscription.md): > πŸ”‘ > > Required OAuth scope: `webhooks:write`. Creates a webhook subscription. - [List all webhook subscriptions](https://360learning.readme.io/reference/v2webhooksubscriptionsgetsubscriptionscontroller_getsubscriptions.md): > πŸ”‘ > > Required OAuth scope: `webhooks:read`. > πŸ“– > > This endpoint is paginated with a page size of 2,000 webhook subscriptions. For more information, see the [Pagination guide](doc:pagination).… - [Delete a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionsdeletesubscriptioncontroller_deletesubscription.md): > πŸ”‘ > > Required OAuth scope: `webhooks:write`. Deletes a specific webhook subscription given its unique ID. - [Retrieve a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionsgetsubscriptioncontroller_getsubscription.md): > πŸ”‘ > > Required OAuth scope: `webhooks:read`. Retrieves the details of a specific webhook subscription with the provided subscription ID. - [Edit a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionsupdatesubscriptioncontroller_updatesubscription.md): > πŸ”‘ > > Required OAuth scope: `webhooks:write`. Edits specific fields of an existing webhook subscription. Fields not included in the request payload remain unchanged. - [Retrieve the signing secret of a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionsgetsigningsecretcontroller_getsigningsecret.md): > πŸ”‘ > > Required OAuth scope: `webhookSecrets:read`. Retrieves the details of the signing secret associated with the provided webhook subscription ID. - [Rotate the signing secret of a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionsrotatesigningsecretcontroller_rotatesigningsecret.md): > πŸ”‘ > > Required OAuth scope: `webhookSecrets:write`. Rotates the signing secret for the given webhook subscription. In addition to the new signature, the events will also be signed with the legacy… - [Retry the failed webhook events of a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionsretryeventfailurescontroller_retryeventfailures.md): > πŸ”‘ > > Required OAuth scope: `webhooks:write`. Retries all failed webhook events for a subscription within the specified timeframe (maximum 3 days per request). Events are retained for 90 days and… - [Retry the successful webhook events of a webhook subscription](https://360learning.readme.io/reference/v2webhooksubscriptionsretryeventsuccessescontroller_retryeventsuccesses.md): > πŸ”‘ > > Required OAuth scope: `webhooks:write`. Retries all successful webhook events for a subscription within the specified timeframe (maximum 3 days per request). Events are retained for 90 days… - [xAPI Course Started](https://360learning.readme.io/reference/webhookxapistarted.md): Sent to your endpoint when a learner starts a course on the platform. This event is a statement following the xAPI specification. - [xAPI](https://360learning.readme.io/reference/webhookxapi.md): Sent to your endpoint when any xAPI event occurs. This event is a statement following the xAPI specification. - [User updated](https://360learning.readme.io/reference/webhookuserupdated.md): Sent to your endpoint when one or more of the following user properties are updated: mail, username, firstName, lastName, lang, custom, job, organization, phone, toBeDeactivatedAt, primaryGroupId. - [User activated](https://360learning.readme.io/reference/webhookuseractivated.md): Sent to your endpoint when a user is activated for the first time in your platform. - [User deleted](https://360learning.readme.io/reference/webhookuserdeleted.md): Sent to your endpoint when a user is soft deleted from your platform. - [User invited](https://360learning.readme.io/reference/webhookuserinvited.md): Sent to your endpoint when a user is invited to your platform. - [User reactivated](https://360learning.readme.io/reference/webhookuserreactivated.md): Sent to your endpoint when a user is reactivated in your platform. - [User created](https://360learning.readme.io/reference/webhookusercreated.md): Sent to your endpoint when a user is created as active in your platform. - [User assessment corrected](https://360learning.readme.io/reference/webhookuserassessmentcorrected.md): Sent to your endpoint when a user assessment in a path is corrected on your platform. The payload's success field indicates whether the user passed or failed. - [User certificate awarded](https://360learning.readme.io/reference/webhookusercertificateawarded.md): Sent to your endpoint when a user certificate is awarded in your platform. - [User custom field created](https://360learning.readme.io/reference/webhookusercustomfieldcreated.md): Sent to your endpoint when a user custom field is created in your platform. - [User custom field values updated](https://360learning.readme.io/reference/webhookusercustomfieldvaluesupdated.md): Sent to your endpoint when the custom field values of one or several users change in your platform. The users are sent by batch, so a single change can reach your endpoint as several events. Deleting… - [User custom field updated](https://360learning.readme.io/reference/webhookusercustomfieldupdated.md): Sent to your endpoint when a user custom field is renamed in your platform. Changing only the case or the spaces in a name does not trigger this event. - [User custom field deleted](https://360learning.readme.io/reference/webhookusercustomfielddeleted.md): Sent to your endpoint when a user custom field is deleted in your platform. Deleting a custom field also removes all its values from users; no separate value-update events are sent for this cascade. - [User unregistered from a classroom slot](https://360learning.readme.io/reference/webhookuserclassroomslotunregistered.md): Sent to your endpoint when a user unregisters or is unenrolled from a classroom slot. - [User answered no to classroom slot RSVP](https://360learning.readme.io/reference/webhookuserclassroomslotrsvpgoingno.md): Sent to your endpoint when a 'no' RSVP response is submitted for a learner in a classroom slot that they are registered to. - [User answered yes to classroom slot RSVP](https://360learning.readme.io/reference/webhookuserclassroomslotrsvpgoingyes.md): Sent to your endpoint when a 'yes' RSVP response is submitted for a learner in a classroom slot that they are registered to. - [User registered to a classroom slot](https://360learning.readme.io/reference/webhookuserclassroomslotregistered.md): Sent to your endpoint when a user registers or is registered to a classroom slot. - [Path session users enrolled](https://360learning.readme.io/reference/webhookpathsessionusersenrolled.md): Sent to your endpoint when users are enrolled in a path session on your platform. Call the `List all enrollments` endpoint to get the updated list of enrolled users. - [Learner joined classroom slot waitlist](https://360learning.readme.io/reference/webhookpathsessionclassroomslotwaitlistuserjoined.md): Sent to your endpoint when a learner joins a classroom slot waitlist within a path session. - [Classroom slot waitlist closed](https://360learning.readme.io/reference/webhookpathsessionclassroomslotwaitlistclosed.md): Sent to your endpoint when a classroom slot's waitlist is closed. - [Path session user status updated](https://360learning.readme.io/reference/webhookpathsessionuserstatusupdated.md): Sent to your endpoint when a learner's status in a path session changes. This event is emitted once per status transition (e.g. onTime β†’ late, onTime β†’ successful). It is also emitted the first time… - [Path session users unenrolled](https://360learning.readme.io/reference/webhookpathsessionusersunenrolled.md): Sent to your endpoint when users are unenrolled from a path session on your platform. - [Path created](https://360learning.readme.io/reference/webhookpathcreated.md): Sent to your endpoint when a path is created in your platform. - [Path archived](https://360learning.readme.io/reference/webhookpatharchived.md): Sent to your endpoint when a path is archived in your platform. - [Learners unregistered full classroom slot](https://360learning.readme.io/reference/webhookpathsessionclassroomslotusersunregisteredfull.md): Sent to your endpoint when a full classroom slot is left by learners. - [Classroom slot waitlist opened](https://360learning.readme.io/reference/webhookpathsessionclassroomslotwaitlistopened.md): Sent to your endpoint when a waitlist is added to a classroom slot. - [Path session removed](https://360learning.readme.io/reference/webhookpathsessionremoved.md): Sent to your endpoint when a session is removed from a path. For paths with path steps, this event only fires for the top-level session, not for sessions removed within each path step. This event is… - [Path session added](https://360learning.readme.io/reference/webhookpathsessionadded.md): Sent to your endpoint when a session is added to a path. For paths with path steps, this event only fires for the top-level session, not for sessions created within each path step. - [Path deleted](https://360learning.readme.io/reference/webhookpathdeleted.md): Sent to your endpoint when a path is deleted in your platform. - [Path updated](https://360learning.readme.io/reference/webhookpathupdated.md): Sent to your endpoint when a path is updated on your platform. The payload's changeType field identifies the type of change (one of: settings, authors, group, duration, certificate, requirements, or… - [Paths added to groups library](https://360learning.readme.io/reference/webhookgroupslibrarypathsadded.md): Sent to your endpoint when learning paths are added to one or more groups' library in your platform. If the action triggering this event impacts a lot of groups and paths, you can receive the… - [Courses added to groups library](https://360learning.readme.io/reference/webhookgroupslibrarycoursesadded.md): Sent to your endpoint when courses are added to one or more groups' library in your platform. If the action triggering this event impacts a lot of groups and courses, you can receive the impacted… - [Group created](https://360learning.readme.io/reference/webhookgroupcreated.md): Sent to your endpoint when a group is created in your platform. - [Group deleted](https://360learning.readme.io/reference/webhookgroupdeleted.md): Sent to your endpoint when a group is deleted in your platform. - [Group updated](https://360learning.readme.io/reference/webhookgroupupdated.md): Sent to your endpoint when any of the following group fields are updated in your platform: public, parentId, name, custom, bannerImageId, backgroundImageId, faviconImageId, logoImageId, subdomain,… - [Bulk operation created](https://360learning.readme.io/reference/webhookbulkoperationcreated.md): Sent to your endpoint when a bulk operation is created through API on your platform. - [Bulk operation ended](https://360learning.readme.io/reference/webhookbulkoperationended.md): Sent to your endpoint when a bulk operation has ended on your platform. - [Course attempt closed](https://360learning.readme.io/reference/webhookcourseattemptclosed.md): Sent to your endpoint when an attempt is closed. This event is currently triggered only when learners finish an attempt, materialized through the reason attribute. The reason attribute potential… ## API Reference: User Authorized API - [Retrieve my profile](https://360learning.readme.io/reference/v2usersgetprofilecontroller_getprofile.md): > πŸ”‘ > > Required OAuth scope: `users:read`. Retrieves the profile details of the authenticated user. This user-authorized endpoint can only be used with a token issued for a specific user. Refer to… ## API Reference: Plugin API - [Create an access token for plugin (backend)](https://360learning.readme.io/reference/v2authenticationgeneratepluginbackendtokencontroller_generatepluginbackendtoken.md): Creates an OAuth access token using the `client_id` and `client_secret` credentials. Once generated, the token authorizes access to the 360Learning API v2 resources for 1 hour. It must be included in… - [Create an access token for plugin (client)](https://360learning.readme.io/reference/v2authenticationgeneratepluginclienttokencontroller_generatepluginclienttoken.md): Creates an OAuth access token. Once generated, the token authorizes access to the 360Learning API v2 resources for 1 hour. It must be included in the `Authorization` header of each request as… ## Recipes - [Create an access token](https://360learning.readme.io/recipes/create-an-access-token.md) ## Changelog - [2026-08-05](https://360learning.readme.io/changelog/2026-08-05.md) - [2026-07-15](https://360learning.readme.io/changelog/2026-07-15.md) - [2026-06-24](https://360learning.readme.io/changelog/2026-06-24.md) - [2026-06-03](https://360learning.readme.io/changelog/2026-6-3.md) - [2026-05-13](https://360learning.readme.io/changelog/2026-05-13.md) - [2026-04-22](https://360learning.readme.io/changelog/2026-04-22.md) - [2026-04-01](https://360learning.readme.io/changelog/2026-04-01.md) - [2026-03-11](https://360learning.readme.io/changelog/2026-03-11.md) - [2026-02-18](https://360learning.readme.io/changelog/2026-02-18.md) - [2026-01-28](https://360learning.readme.io/changelog/2026-01-28.md)