# catalog ## catalog_access_requests_course_manage_retrieve - [GET /api/catalog/access_requests/course/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_access_requests_course_manage_retrieve.md): Retrieve a paginated list of access requests ## catalog_access_requests_course_manage_create - [POST /api/catalog/access_requests/course/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_access_requests_course_manage_create.md): Update an existing access request (approve/reject) ## catalog_access_requests_course_request_retrieve - [GET /api/catalog/access_requests/course/request/](https://docs.ibl.ai/apis/ibl/catalog/catalog_access_requests_course_request_retrieve.md): Check if the user has an active access request for a course ## catalog_access_requests_course_request_create - [POST /api/catalog/access_requests/course/request/](https://docs.ibl.ai/apis/ibl/catalog/catalog_access_requests_course_request_create.md): Create a new access request for a course ## catalog_conditionals_course_eligibility_retrieve - [GET /api/catalog/conditionals/course/eligibility/](https://docs.ibl.ai/apis/ibl/catalog/catalog_conditionals_course_eligibility_retrieve.md): GET Retrieve prerequisite eligibility info for user/course Params: user_id/username course_id ## catalog_conditionals_course_prerequisites_manage_retrieve - [GET /api/catalog/conditionals/course/prerequisites/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_conditionals_course_prerequisites_manage_retrieve.md): GET Retrieve prerequisite info for course Params: course_id key_only ## catalog_conditionals_course_prerequisites_manage_bulk_create - [POST /api/catalog/conditionals/course/prerequisites/manage/bulk/](https://docs.ibl.ai/apis/ibl/catalog/catalog_conditionals_course_prerequisites_manage_bulk_create.md): Prerequisite bulk management view Params: course_id rules key_only ## catalog_courses_list - [GET /api/catalog/courses/](https://docs.ibl.ai/apis/ibl/catalog/catalog_courses_list.md): Retrieve courses matching specified filters. ## catalog_courses_create - [POST /api/catalog/courses/](https://docs.ibl.ai/apis/ibl/catalog/catalog_courses_create.md): Add or update a course in the database. ## catalog_courses_destroy - [DELETE /api/catalog/courses/](https://docs.ibl.ai/apis/ibl/catalog/catalog_courses_destroy.md): Remove a course from the database. ## catalog_eligibility_courses_list - [GET /api/catalog/eligibility/courses/](https://docs.ibl.ai/apis/ibl/catalog/catalog_eligibility_courses_list.md): List courses that a user is eligible for. ## catalog_eligibility_courses_check_retrieve - [GET /api/catalog/eligibility/courses/check/](https://docs.ibl.ai/apis/ibl/catalog/catalog_eligibility_courses_check_retrieve.md): Check whether a user is eligible to enroll in a specific course. ## catalog_enrollment_courses_search_retrieve - [GET /api/catalog/enrollment/courses/search/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_courses_search_retrieve.md): API View for searching course enrollments. This endpoint allows searching for course enrollments based on various filters such as user ID, username, email, course ID, slug, organization, and platform key. Results are paginated and include detailed enrollment information. Query Parameters: user_id (str, optional): Filter enrollments by user ID username (str, optional): Filter enrollments by username email (str, optional): Filter enrollments by user email course_id (str, optional): Filter enrollments by course ID slug (str, optional): Filter enrollments by course slug org (str, optional): Filter enrollments by organization platform_key (str, optional): Filter enrollments by platform key course_name (str, optional): Filter enrollments by course name (partial match) include_default_platform (bool, optional): Include enrollments from default platform sort (str, optional): Field to sort results by (default: '-id') page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Search for course enrollments with filtering and pagination Returns: GET: A paginated JSON response containing course enrollments: { "count": 42, "next": "https://api.example.com/api/catalog/enrollment/courses/search/?page=2", "previous": null, "results": [ { "user_id": 123, "username": "student1", "email": "student1@example.com", "course_id": "course-v1:org+course+run", "active": true, "created": "2023-01-15T10:30:00Z", "started": "2023-01-15T10:30:00Z", "ended": null, "expired": null, "metadata": {}, "name": "John Doe", "course_name": "Introduction to Data Science" }, ... ] } Error Responses: 400 Bad Request: If required parameters are missing or if enrollment search fails 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsEdxUserReadOnly, or IsPlatformAdminOfUserReadOnly permission - Users can view their own enrollments - Platform admins can view enrollments for users in their platform - DM admins can view all enrollments ## catalog_enrollment_pathways_retrieve - [GET /api/catalog/enrollment/pathways/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_pathways_retrieve.md): Search pathway enrollments. Requires user_id or username and pathway_id or slug. ## catalog_enrollment_pathways_create - [POST /api/catalog/enrollment/pathways/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_pathways_create.md): Log user enrollment with a pathway. ## catalog_enrollment_pathways_destroy - [DELETE /api/catalog/enrollment/pathways/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_pathways_destroy.md): Unenroll from a pathway. Deactivates enrollment. ## catalog_enrollment_pathways_search_retrieve - [GET /api/catalog/enrollment/pathways/search/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_pathways_search_retrieve.md): Search pathway enrollments based on user or pathway identifiers. Returns paginated enrollment results. ## catalog_enrollment_pathways_self_create - [POST /api/catalog/enrollment/pathways/self/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_pathways_self_create.md): Log user enrollment with a pathway. ## catalog_enrollment_pathways_self_destroy - [DELETE /api/catalog/enrollment/pathways/self/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_pathways_self_destroy.md): Unenroll from a pathway. Deactivates enrollment. ## catalog_enrollment_programs_retrieve - [GET /api/catalog/enrollment/programs/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_programs_retrieve.md): Search program enrollments. Requires user_id or username and program_id or slug. ## catalog_enrollment_programs_create - [POST /api/catalog/enrollment/programs/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_programs_create.md): Log user enrollment with a program. ## catalog_enrollment_programs_destroy - [DELETE /api/catalog/enrollment/programs/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_programs_destroy.md): Unenroll from a program. Deactivates enrollment. ## catalog_enrollment_programs_search_retrieve - [GET /api/catalog/enrollment/programs/search/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_programs_search_retrieve.md): Search program enrollments based on user or program identifiers. Returns paginated enrollment results. ## catalog_enrollment_programs_self_create - [POST /api/catalog/enrollment/programs/self/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_programs_self_create.md): Log user enrollment with a program. ## catalog_enrollment_programs_self_destroy - [DELETE /api/catalog/enrollment/programs/self/](https://docs.ibl.ai/apis/ibl/catalog/catalog_enrollment_programs_self_destroy.md): Unenroll from a program. Deactivates enrollment. ## catalog_increment_retrieve - [GET /api/catalog/increment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_increment_retrieve.md): Retrieve auto increment information for a specific platform. ## catalog_increment_create - [POST /api/catalog/increment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_increment_create.md): Update auto increment information and retrieve a new ID for a specific platform. ## catalog_invitations_course_retrieve - [GET /api/catalog/invitations/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_course_retrieve.md): Retrieve a paginated list of course invitations ## catalog_invitations_course_create - [POST /api/catalog/invitations/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_course_create.md): Create a new course invitation ## catalog_invitations_course_destroy - [DELETE /api/catalog/invitations/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_course_destroy.md): Remove a course invitation: TBD ## catalog_invitations_course_blank_create - [POST /api/catalog/invitations/course/blank/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_course_blank_create.md): Create multiple blank course invitations ## catalog_invitations_course_bulk_create - [POST /api/catalog/invitations/course/bulk/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_course_bulk_create.md): Create multiple course invitations ## catalog_invitations_course_redeem_create - [POST /api/catalog/invitations/course/redeem/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_course_redeem_create.md): Redeem a blank course invitation ## catalog_invitations_platform_retrieve - [GET /api/catalog/invitations/platform/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_platform_retrieve.md): API View for managing platform invitations. This endpoint allows querying, creating, and deleting platform invitations for users. Query/Request Parameters: For GET: platform_key (str, optional): Filter by platform key org (str, optional): Filter by platform organization email (str, optional): Filter by user email source (str, optional): Filter by invitation source active (bool, optional): Filter by active status sort (str, optional): Field to sort results by (default: '-id') metadata fields: Any additional parameters will be treated as metadata filters For POST: platform_key (str, required): The platform to create an invitation for email (str, required): The email address to invite active (bool, optional): Whether the invitation is active metadata fields: Any additional parameters will be added as metadata For DELETE: id (int, required): The ID of the invitation to delete org (str, required): The platform organization for verification Methods: GET: Retrieve a paginated list of platform invitations POST: Create a new platform invitation DELETE: Remove a platform invitation Returns: GET: A paginated JSON response containing platform invitations: { "count": 10, "next": "https://example.com/api/catalog/invitations/platform/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "username", "email": "user@example.com", "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "source": "source", "redirect_to": "https://example.com", "expired": null, "active": true, "metadata": {}, "platform_key": "platform1" }, ... ] } POST: A JSON response containing the created invitation: { "id": 123, "user_id": 456, "username": "username", "email": "user@example.com", "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "source": "source", "redirect_to": "https://example.com", "expired": null, "active": true, "metadata": {}, "platform_key": "platform1" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 404 Not Found: If the platform or invitation doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin or IsPlatformAdmin permission - Available to platform administrators and DM admins ## catalog_invitations_platform_create - [POST /api/catalog/invitations/platform/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_platform_create.md): Create a new platform invitation ## catalog_invitations_platform_destroy - [DELETE /api/catalog/invitations/platform/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_platform_destroy.md): Remove a platform invitation: TBD ## catalog_invitations_platform_blank_create - [POST /api/catalog/invitations/platform/blank/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_platform_blank_create.md): Create multiple blank platform invitations ## catalog_invitations_platform_bulk_create - [POST /api/catalog/invitations/platform/bulk/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_platform_bulk_create.md): API View for bulk creating platform invitations. This endpoint allows creating multiple platform invitations in a single request. Request Parameters: invitation_data (list, required): List of invitation data objects, each containing: platform_key (str, required): The platform to create an invitation for email (str, required): The email address to invite active (bool, optional): Whether the invitation is active metadata fields: Any additional parameters will be added as metadata platform_key (str, required for platform admins): The platform key for permission validation Methods: POST: Create multiple platform invitations Returns: POST: A JSON response containing the creation results: { "successes": 5, "error_codes": [] } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 500 Internal Server Error: If an unexpected error occurs during creation Access Control: - Requires IsDMAdmin or IsPlatformAdmin permission - Available to platform administrators and DM admins ## catalog_invitations_platform_check_retrieve - [GET /api/catalog/invitations/platform/check/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_platform_check_retrieve.md): Check if a user has an active platform invitation ## catalog_invitations_platform_redeem_create - [POST /api/catalog/invitations/platform/redeem/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_platform_redeem_create.md): Redeem a blank platform invitation ## catalog_invitations_program_retrieve - [GET /api/catalog/invitations/program/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_program_retrieve.md): API View for managing program invitations. This endpoint allows querying, creating, and deleting program invitations for users. Query/Request Parameters: For GET: program_key (str, optional): Filter by program key org (str, optional): Filter by platform organization email (str, optional): Filter by user email source (str, optional): Filter by invitation source active (bool, optional): Filter by active status sort (str, optional): Field to sort results by (default: '-id') metadata fields: Any additional parameters will be treated as metadata filters For POST: program_key (str, required): The program to create an invitation for email (str, required): The email address to invite active (bool, optional): Whether the invitation is active metadata fields: Any additional parameters will be added as metadata For DELETE: id (int, required): The ID of the invitation to delete org (str, required): The platform organization for verification Methods: GET: Retrieve a paginated list of program invitations POST: Create a new program invitation DELETE: Remove a program invitation Returns: GET: A paginated JSON response containing program invitations: { "count": 10, "next": "https://example.com/api/catalog/invitations/program/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "username", "email": "user@example.com", "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "source": "source", "redirect_to": "https://example.com", "expired": null, "active": true, "metadata": {}, "program_key": "org+program1" }, ... ] } POST: A JSON response containing the created invitation: { "id": 123, "user_id": 456, "username": "username", "email": "user@example.com", "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "source": "source", "redirect_to": "https://example.com", "expired": null, "active": true, "metadata": {}, "program_key": "org+program1" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 404 Not Found: If the program or invitation doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdminReadOnly, or IsPlatformAdminForProgram permission - Read-only access for platform admins, full access for DM admins and program-specific admins ## catalog_invitations_program_create - [POST /api/catalog/invitations/program/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_program_create.md): API View for managing program invitations. This endpoint allows querying, creating, and deleting program invitations for users. Query/Request Parameters: For GET: program_key (str, optional): Filter by program key org (str, optional): Filter by platform organization email (str, optional): Filter by user email source (str, optional): Filter by invitation source active (bool, optional): Filter by active status sort (str, optional): Field to sort results by (default: '-id') metadata fields: Any additional parameters will be treated as metadata filters For POST: program_key (str, required): The program to create an invitation for email (str, required): The email address to invite active (bool, optional): Whether the invitation is active metadata fields: Any additional parameters will be added as metadata For DELETE: id (int, required): The ID of the invitation to delete org (str, required): The platform organization for verification Methods: GET: Retrieve a paginated list of program invitations POST: Create a new program invitation DELETE: Remove a program invitation Returns: GET: A paginated JSON response containing program invitations: { "count": 10, "next": "https://example.com/api/catalog/invitations/program/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "username", "email": "user@example.com", "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "source": "source", "redirect_to": "https://example.com", "expired": null, "active": true, "metadata": {}, "program_key": "org+program1" }, ... ] } POST: A JSON response containing the created invitation: { "id": 123, "user_id": 456, "username": "username", "email": "user@example.com", "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "source": "source", "redirect_to": "https://example.com", "expired": null, "active": true, "metadata": {}, "program_key": "org+program1" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 404 Not Found: If the program or invitation doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdminReadOnly, or IsPlatformAdminForProgram permission - Read-only access for platform admins, full access for DM admins and program-specific admins ## catalog_invitations_program_destroy - [DELETE /api/catalog/invitations/program/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_program_destroy.md): Remove a program invitation: TBD ## catalog_invitations_program_blank_create - [POST /api/catalog/invitations/program/blank/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_program_blank_create.md): API View for creating blank program invitations. This endpoint allows creating multiple blank program invitations (without user association) that can be redeemed later. Request Parameters: program_key (str, required): The program to create invitations for source (str, required): The source identifier for the invitations count (int, required): The number of blank invitations to create metadata fields: Any additional parameters will be added as metadata Methods: POST: Create multiple blank program invitations Returns: POST: A JSON response containing the creation results: { "successes": 10, "error_codes": [] } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 500 Internal Server Error: If an unexpected error occurs during creation Access Control: - Requires IsDMAdmin or IsPlatformAdminForProgram permission - Available to DM admins and platform admins for the specific program ## catalog_invitations_program_bulk_create - [POST /api/catalog/invitations/program/bulk/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_program_bulk_create.md): API View for bulk creation of program invitations. This endpoint allows creating multiple program invitations at once. Request Parameters: invitation_data (list, required): List of invitation data objects, each containing: program_key (str, required): The program to create an invitation for email (str, required): The email address to invite active (bool, optional): Whether the invitation is active metadata fields: Any additional parameters will be added as metadata platform_key (str, required for platform admins): The platform key for permission validation Methods: POST: Create multiple program invitations Returns: POST: A JSON response containing the creation results: { "successes": 5, "error_codes": [] } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 500 Internal Server Error: If an unexpected error occurs during creation Access Control: - Requires IsDMAdmin or IsPlatformAdmin permission - Available to platform administrators and DM admins ## catalog_invitations_program_redeem_create - [POST /api/catalog/invitations/program/redeem/](https://docs.ibl.ai/apis/ibl/catalog/catalog_invitations_program_redeem_create.md): API View for redeeming blank program invitations. This endpoint allows redeeming a blank program invitation by associating it with a user. Request Parameters: program_key (str, required): The program key for the invitation source (str, required): The source identifier for the invitation email (str, optional): The email to associate with the invitation username (str, optional): The username to associate with the invitation metadata fields: Any additional parameters will be added as metadata Methods: POST: Redeem a blank program invitation Returns: POST: A JSON response containing the redeemed invitation: { "id": 123, "user_id": 456, "username": "username", "email": "user@example.com", "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "source": "source", "redirect_to": "https://example.com", "expired": null, "active": true, "metadata": {}, "program_key": "org+program1" } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 404 Not Found: If no blank invitation is available 500 Internal Server Error: If an unexpected error occurs during redemption Access Control: - Requires IsDMAdmin or IsPlatformAdminForProgram permission - Available to DM admins and platform admins for the specific program ## catalog_licenses_course_retrieve - [GET /api/catalog/licenses/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_retrieve.md): Retrieve a paginated list of course licenses ## catalog_licenses_course_assignment_retrieve - [GET /api/catalog/licenses/course/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_assignment_retrieve.md): Retrieve a paginated list of course license assignments ## catalog_licenses_course_assignment_create - [POST /api/catalog/licenses/course/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_assignment_create.md): Create or update a course license assignment ## catalog_licenses_course_assignment_destroy - [DELETE /api/catalog/licenses/course/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_assignment_destroy.md): Remove a course license assignment ## catalog_licenses_course_assignment_group_retrieve - [GET /api/catalog/licenses/course/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_assignment_group_retrieve.md): Retrieve a paginated list of course license group assignments ## catalog_licenses_course_assignment_group_create - [POST /api/catalog/licenses/course/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_assignment_group_create.md): Create or update a course license group assignment ## catalog_licenses_course_assignment_group_destroy - [DELETE /api/catalog/licenses/course/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_assignment_group_destroy.md): Remove a course license group assignment ## catalog_licenses_course_create_create - [POST /api/catalog/licenses/course/create/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_create_create.md): Create a new course license ## catalog_licenses_course_update_create - [POST /api/catalog/licenses/course/update/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_course_update_create.md): Update an existing course license ## catalog_licenses_platform_retrieve - [GET /api/catalog/licenses/platform/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_platform_retrieve.md): Retrieve a paginated list of platform licenses ## catalog_licenses_platform_create_create - [POST /api/catalog/licenses/platform/create/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_platform_create_create.md): Create a new platform license ## catalog_licenses_platform_update_create - [POST /api/catalog/licenses/platform/update/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_platform_update_create.md): Update an existing platform license ## catalog_licenses_program_retrieve - [GET /api/catalog/licenses/program/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_retrieve.md): API View for managing program licenses. This endpoint allows retrieving program licenses with filtering and pagination support. Query Parameters: platform_key (str, optional): The unique identifier for the platform name (str, optional): Filter by license name (exact match) source (str, optional): Filter by license source active (bool, optional): Filter by active status program_id (str, optional): Filter by program ID query (str, optional): Search licenses by name (contains) page (int, optional): Page number for pagination page_size (int, optional): Number of items per page verbose (bool, optional): Include additional details in response sort (str, optional): Field to sort results by (default: '-id') Methods: GET: Retrieve a paginated list of program licenses Returns: GET: A paginated JSON response containing program licenses: { "count": 10, "next": "https://example.com/api/catalog/licenses/program/?page=2", "previous": null, "results": [ { "id": 123, "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "expired": null, "name": "Program License 2023", "count": 100, "active": true, "metadata": {}, "source": "source", "external_id": "ext-123", "platform_key": "platform1", "program_id": "program-v1:org+program+run", "assignments": { "total": 50, "active": 45, "pending": 5 } }, ... ] } Error Responses: 400 Bad Request: If query parameters are invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin or IsPlatformAdminReadOnly permission - Available to platform administrators (read-only) and DM admins ## catalog_licenses_program_assignment_retrieve - [GET /api/catalog/licenses/program/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_assignment_retrieve.md): Retrieve a paginated list of program license assignments ## catalog_licenses_program_assignment_create - [POST /api/catalog/licenses/program/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_assignment_create.md): Create or update a program license assignment ## catalog_licenses_program_assignment_destroy - [DELETE /api/catalog/licenses/program/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_assignment_destroy.md): Unassign single user from license ## catalog_licenses_program_assignment_group_retrieve - [GET /api/catalog/licenses/program/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_assignment_group_retrieve.md): Retrieve a paginated list of program license group assignments ## catalog_licenses_program_assignment_group_create - [POST /api/catalog/licenses/program/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_assignment_group_create.md): Create or update a program license group assignment ## catalog_licenses_program_assignment_group_destroy - [DELETE /api/catalog/licenses/program/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_assignment_group_destroy.md): Remove a program license group assignment ## catalog_licenses_program_create_create - [POST /api/catalog/licenses/program/create/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_create_create.md): API View for creating program licenses. This endpoint allows administrators to create new program licenses with various configurations. Methods: POST: Create a new program license Request Body: A JSON object containing: - platform_key (str, required): The platform to create a license for - program_id (str, required): The program ID to create a license for - name (str, optional): Display name for the license - count (int, optional): Number of seats purchased (default: 0) - started (datetime, optional): Date when license should begin - expired (datetime, optional): Date when license should expire - active (bool, optional): Whether the license is active (default: true) - metadata (dict, optional): Additional license metadata - enrollment_config (dict, optional): Additional enrollment configuration - source (str, optional): Source identifier - external_id (str, optional): External identifier (must be unique) Returns: POST: A JSON response containing the created license: { "id": 123, "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "expired": null, "name": "Program License 2023", "count": 100, "active": true, "metadata": {}, "source": "source", "external_id": "ext-123", "platform_key": "platform1", "program_id": "program-v1:org+program+run" } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to create licenses 500 Internal Server Error: If an unexpected error occurs during license creation Access Control: - Requires IsDMAdmin permission - Available only to DM administrators ## catalog_licenses_program_update_create - [POST /api/catalog/licenses/program/update/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_program_update_create.md): API View for updating existing program licenses. This endpoint allows administrators to update the properties of an existing program license. Methods: POST: Update an existing program license Request Body: A JSON object containing: - license_id (int, optional): The ID of the license to update (required if external_id not provided) - external_id (str, optional): External identifier of the license to update (required if license_id not provided) - name (str, optional): Updated display name for the license - count (int, optional): Updated number of seats purchased - started (datetime, optional): Updated date when license should begin - expired (datetime, optional): Updated date when license should expire - active (bool, optional): Updated active status - metadata (dict, optional): Updated additional license metadata - enrollment_config (dict, optional): Updated enrollment configuration - source (str, optional): Updated source identifier - change_type (str, optional): Type of change being made (default: "update") Returns: POST: A JSON response containing the updated license: { "id": 123, "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "expired": "2024-06-15T14:30:00Z", "name": "Updated Program License 2023", "count": 150, "active": true, "metadata": {"updated": true}, "source": "updated-source", "external_id": "ext-123", "platform_key": "platform1", "program_id": "program-v1:org+program+run" } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to update licenses 404 Not Found: If the specified license doesn't exist 500 Internal Server Error: If an unexpected error occurs during license update Access Control: - Requires IsDMAdmin permission - Available only to DM administrators Notes: - Cannot update the platform or program associated with a license - A license history record is automatically created for each update ## catalog_licenses_user_retrieve - [GET /api/catalog/licenses/user/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_retrieve.md): Retrieve a paginated list of user licenses ## catalog_licenses_user_assignment_retrieve - [GET /api/catalog/licenses/user/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_assignment_retrieve.md): Retrieve a paginated list of user license assignments ## catalog_licenses_user_assignment_create - [POST /api/catalog/licenses/user/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_assignment_create.md): Create or update a user license assignment ## catalog_licenses_user_assignment_destroy - [DELETE /api/catalog/licenses/user/assignment/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_assignment_destroy.md): Remove a user license assignment ## catalog_licenses_user_assignment_check_retrieve - [GET /api/catalog/licenses/user/assignment/check/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_assignment_check_retrieve.md): Check if a user has an active user license assignment ## catalog_licenses_user_assignment_group_retrieve - [GET /api/catalog/licenses/user/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_assignment_group_retrieve.md): Retrieve a paginated list of user license group assignments ## catalog_licenses_user_assignment_group_create - [POST /api/catalog/licenses/user/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_assignment_group_create.md): Create or update a user license group assignment ## catalog_licenses_user_assignment_group_destroy - [DELETE /api/catalog/licenses/user/assignment/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_assignment_group_destroy.md): Remove a user license group assignment ## catalog_licenses_user_create_create - [POST /api/catalog/licenses/user/create/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_create_create.md): Create a new user license ## catalog_licenses_user_update_create - [POST /api/catalog/licenses/user/update/](https://docs.ibl.ai/apis/ibl/catalog/catalog_licenses_user_update_create.md): API View for updating existing user licenses. This endpoint allows administrators to update the properties of an existing user license. Methods: POST: Update an existing user license Request Body: A JSON object containing: - license_id (int, optional): The ID of the license to update (required if external_id not provided) - external_id (str, optional): External identifier of the license to update (required if license_id not provided) - name (str, optional): Updated display name for the license - count (int, optional): Updated number of seats purchased - started (datetime, optional): Updated date when license should begin - expired (datetime, optional): Updated date when license should expire - active (bool, optional): Updated active status - metadata (dict, optional): Updated additional license metadata - enrollment_config (dict, optional): Updated enrollment configuration - source (str, optional): Updated source identifier - change_type (str, optional): Type of change being made (default: "update") Returns: POST: A JSON response containing the updated license: { "id": 123, "created": "2023-06-15T14:30:00Z", "started": "2023-06-15T14:30:00Z", "expired": "2024-06-15T14:30:00Z", "name": "Updated User License 2023", "count": 150, "active": true, "metadata": {"updated": true}, "source": "updated-source", "external_id": "ext-123", "platform_key": "platform1" } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to update licenses 404 Not Found: If the specified license doesn't exist 500 Internal Server Error: If an unexpected error occurs during license update Access Control: - Requires IsDMAdmin permission - Available only to DM administrators Notes: - Cannot update the platform associated with a license - A license history record is automatically created for each update ## catalog_metadata_choices_retrieve - [GET /api/catalog/metadata/choices/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_choices_retrieve.md): Query metadata choices based on field_key, scope, and org parameters. ## catalog_metadata_course_retrieve - [GET /api/catalog/metadata/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_course_retrieve.md): Retrieve metadata for a course. ## catalog_metadata_course_create - [POST /api/catalog/metadata/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_course_create.md): Update metadata for a course. ## catalog_metadata_course_public_retrieve - [GET /api/catalog/metadata/course-public/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_course_public_retrieve.md): Retrieve public metadata for a course. ## catalog_metadata_course_public_retrieve_2 - [GET /api/catalog/metadata/course-public/{field}/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_course_public_retrieve_2.md): Retrieve public metadata for a course. ## catalog_metadata_course_search_create - [POST /api/catalog/metadata/course-search/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_course_search_create.md): Search for courses matching specified metadata filters. ## catalog_metadata_course_retrieve_2 - [GET /api/catalog/metadata/course/{field}/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_course_retrieve_2.md): Retrieve metadata for a course. ## catalog_metadata_course_create_2 - [POST /api/catalog/metadata/course/{field}/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_course_create_2.md): Update metadata for a course. ## catalog_metadata_program_retrieve - [GET /api/catalog/metadata/program/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_program_retrieve.md): Retrieve metadata for a specified program ## catalog_metadata_program_create - [POST /api/catalog/metadata/program/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_program_create.md): Update metadata for a specified program ## catalog_metadata_program_public_retrieve - [GET /api/catalog/metadata/program-public/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_program_public_retrieve.md): Retrieve public metadata for a specified program ## catalog_metadata_program_public_retrieve_2 - [GET /api/catalog/metadata/program-public/{field}/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_program_public_retrieve_2.md): Retrieve public metadata for a specified program ## catalog_metadata_program_retrieve_2 - [GET /api/catalog/metadata/program/{field}/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_program_retrieve_2.md): Retrieve metadata for a specified program ## catalog_metadata_program_create_2 - [POST /api/catalog/metadata/program/{field}/](https://docs.ibl.ai/apis/ibl/catalog/catalog_metadata_program_create_2.md): Update metadata for a specified program ## catalog_milestones_completions_course_catalog_retrieve - [GET /api/catalog/milestones/completions/course/catalog/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_completions_course_catalog_retrieve.md): Retrieve catalog-compatible completion info for user ## catalog_milestones_completions_course_manage_retrieve - [GET /api/catalog/milestones/completions/course/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_completions_course_manage_retrieve.md): Retrieve completion information for a specific user and course ## catalog_milestones_completions_course_manage_create - [POST /api/catalog/milestones/completions/course/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_completions_course_manage_create.md): Create or update completion information for a specific user and course ## catalog_milestones_completions_pathway_query_retrieve - [GET /api/catalog/milestones/completions/pathway/query/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_completions_pathway_query_retrieve.md): Retrieve pathway completion information ## catalog_milestones_completions_program_query_retrieve - [GET /api/catalog/milestones/completions/program/query/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_completions_program_query_retrieve.md): Retrieve program completion information ## catalog_milestones_completions_resource_manage_retrieve - [GET /api/catalog/milestones/completions/resource/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_completions_resource_manage_retrieve.md): Retrieve completion info for resource/user ## catalog_milestones_completions_resource_manage_create - [POST /api/catalog/milestones/completions/resource/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_completions_resource_manage_create.md): Create or update completion information for a specific resource and user ## catalog_milestones_skill_points_block_retrieve - [GET /api/catalog/milestones/skill_points/block/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_block_retrieve.md): Retrieve skill point information for a specific block ## catalog_milestones_skill_points_block_create - [POST /api/catalog/milestones/skill_points/block/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_block_create.md): Update skill point information for a specific block ## catalog_milestones_skill_points_course_retrieve - [GET /api/catalog/milestones/skill_points/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_course_retrieve.md): Retrieve skill point information for a specific course ## catalog_milestones_skill_points_course_create - [POST /api/catalog/milestones/skill_points/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_course_create.md): Update skill point information for a specific course ## catalog_milestones_skill_points_platform_retrieve - [GET /api/catalog/milestones/skill_points/platform/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_platform_retrieve.md): Retrieve paginated list of platform skill points ## catalog_milestones_skill_points_platform_create - [POST /api/catalog/milestones/skill_points/platform/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_platform_create.md): Update platform skill points for a user ## catalog_milestones_skill_points_platform_destroy - [DELETE /api/catalog/milestones/skill_points/platform/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_platform_destroy.md): Delete a platform skill point entry ## catalog_milestones_skill_points_platform_bulk_create - [POST /api/catalog/milestones/skill_points/platform/bulk/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_platform_bulk_create.md): Bulk create/update platform skill points ## catalog_milestones_skill_points_platform_group_create - [POST /api/catalog/milestones/skill_points/platform/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_platform_group_create.md): Update skill points for all users in a group ## catalog_milestones_skill_points_user_retrieve - [GET /api/catalog/milestones/skill_points/user/](https://docs.ibl.ai/apis/ibl/catalog/catalog_milestones_skill_points_user_retrieve.md): Retrieve skill point information for a specific user ## catalog_pathways_list - [GET /api/catalog/pathways/](https://docs.ibl.ai/apis/ibl/catalog/catalog_pathways_list.md): Retrieve pathways matching query. Limited parameters. ## catalog_pathways_create - [POST /api/catalog/pathways/](https://docs.ibl.ai/apis/ibl/catalog/catalog_pathways_create.md): Add or update a pathway. ## catalog_pathways_destroy - [DELETE /api/catalog/pathways/](https://docs.ibl.ai/apis/ibl/catalog/catalog_pathways_destroy.md): Remove a pathway from the database. ## catalog_programs_list - [GET /api/catalog/programs/](https://docs.ibl.ai/apis/ibl/catalog/catalog_programs_list.md): Retrieve programs matching query parameters. Limited parameters include program_id, name, slug, enabled, and org. ## catalog_programs_create - [POST /api/catalog/programs/](https://docs.ibl.ai/apis/ibl/catalog/catalog_programs_create.md): Add or update a program. Accepts a list of courses and updates or creates a program. ## catalog_programs_destroy - [DELETE /api/catalog/programs/](https://docs.ibl.ai/apis/ibl/catalog/catalog_programs_destroy.md): Remove a program from the database. Requires program_id and org as parameters. ## catalog_recommendation_courses_retrieve - [GET /api/catalog/recommendation/courses/](https://docs.ibl.ai/apis/ibl/catalog/catalog_recommendation_courses_retrieve.md): GET Get a 'next' course This method retrieves the next recommended course for a user based on the provided parameters. It expects the following parameters in the request query: - user_id: The ID of the user for whom the next course is being recommended. - course_id: The ID of the current course. - org: The organization associated with the course. Returns: - A serialized representation of the next course if found, with a status code of 200. - A status code of 400 if the course_id is not provided. - A status code of 200 with a None response if no next course is found. Error Conditions: - Returns a 400 status code if the course_id is missing from the request parameters. Side Effects: - None ## catalog_resources_list - [GET /api/catalog/resources/](https://docs.ibl.ai/apis/ibl/catalog/catalog_resources_list.md): Retrieve resources matching query. Limited parameters. ## Create or update a resource with optional image upload - [POST /api/catalog/resources/](https://docs.ibl.ai/apis/ibl/catalog/catalog_resources_create.md): Create or update a resource. For updates, include the resource ID. ## catalog_resources_destroy - [DELETE /api/catalog/resources/](https://docs.ibl.ai/apis/ibl/catalog/catalog_resources_destroy.md): Remove a resource from the database. ## catalog_reviews_course_retrieve - [GET /api/catalog/reviews/course/](https://docs.ibl.ai/apis/ibl/catalog/catalog_reviews_course_retrieve.md): Retrieve a paginated list of course reviews with filtering options ## catalog_reviews_course_info_retrieve - [GET /api/catalog/reviews/course/info/](https://docs.ibl.ai/apis/ibl/catalog/catalog_reviews_course_info_retrieve.md): Retrieve aggregate review information for a course. ## catalog_reviews_course_update_create - [POST /api/catalog/reviews/course/update/](https://docs.ibl.ai/apis/ibl/catalog/catalog_reviews_course_update_create.md): Create or update a course review ## catalog_reviews_course_update_destroy - [DELETE /api/catalog/reviews/course/update/](https://docs.ibl.ai/apis/ibl/catalog/catalog_reviews_course_update_destroy.md): Delete a course review ## catalog_reviews_program_retrieve - [GET /api/catalog/reviews/program/](https://docs.ibl.ai/apis/ibl/catalog/catalog_reviews_program_retrieve.md): Retrieve a paginated list of program reviews with filtering options ## catalog_reviews_program_info_retrieve - [GET /api/catalog/reviews/program/info/](https://docs.ibl.ai/apis/ibl/catalog/catalog_reviews_program_info_retrieve.md): Retrieve aggregate review information for a program. ## catalog_reviews_program_update_create - [POST /api/catalog/reviews/program/update/](https://docs.ibl.ai/apis/ibl/catalog/catalog_reviews_program_update_create.md): Create or update a program review ## catalog_reviews_program_update_destroy - [DELETE /api/catalog/reviews/program/update/](https://docs.ibl.ai/apis/ibl/catalog/catalog_reviews_program_update_destroy.md): Delete a program review ## catalog_roles_retrieve - [GET /api/catalog/roles/](https://docs.ibl.ai/apis/ibl/catalog/catalog_roles_retrieve.md): Retrieve roles matching query parameters. Supports filtering by name, id, and slug. ## catalog_roles_create - [POST /api/catalog/roles/](https://docs.ibl.ai/apis/ibl/catalog/catalog_roles_create.md): Add a new role or update an existing role based on provided data. ## catalog_roles_desired_retrieve - [GET /api/catalog/roles/desired/](https://docs.ibl.ai/apis/ibl/catalog/catalog_roles_desired_retrieve.md): Retrieve desired roles for a user. ## catalog_roles_desired_create - [POST /api/catalog/roles/desired/](https://docs.ibl.ai/apis/ibl/catalog/catalog_roles_desired_create.md): Add or update desired roles for a user. ## catalog_roles_public_create - [POST /api/catalog/roles/public/](https://docs.ibl.ai/apis/ibl/catalog/catalog_roles_public_create.md): Add or update a role through the public API (when enabled). ## catalog_roles_reported_retrieve - [GET /api/catalog/roles/reported/](https://docs.ibl.ai/apis/ibl/catalog/catalog_roles_reported_retrieve.md): Retrieve reported roles for a user. ## catalog_roles_reported_create - [POST /api/catalog/roles/reported/](https://docs.ibl.ai/apis/ibl/catalog/catalog_roles_reported_create.md): Add or update reported roles for a user. ## catalog_search_programs_create - [POST /api/catalog/search/programs/](https://docs.ibl.ai/apis/ibl/catalog/catalog_search_programs_create.md): POST Retrieve programs matching query. Params: query: The search term used to filter programs. org: The organization to which the programs belong. Returns: A JSON response containing a list of programs that match the search criteria. Error Conditions: - If the request data is malformed or missing required fields, a 400 Bad Request may be returned. - If there is an issue with the database query, a 500 Internal Server Error may be returned. Side Effects: - None Special Return Codes: - A 200 status code indicates successful retrieval of programs matching the query. ## catalog_skills_retrieve - [GET /api/catalog/skills/](https://docs.ibl.ai/apis/ibl/catalog/catalog_skills_retrieve.md): Retrieve skills matching query. Limited parameters. ## catalog_skills_create - [POST /api/catalog/skills/](https://docs.ibl.ai/apis/ibl/catalog/catalog_skills_create.md): Add or update a skill. ## catalog_skills_desired_retrieve - [GET /api/catalog/skills/desired/](https://docs.ibl.ai/apis/ibl/catalog/catalog_skills_desired_retrieve.md): Retrieve desired skills for a user. ## catalog_skills_desired_create - [POST /api/catalog/skills/desired/](https://docs.ibl.ai/apis/ibl/catalog/catalog_skills_desired_create.md): Add or update desired skills for a user. ## catalog_skills_public_create - [POST /api/catalog/skills/public/](https://docs.ibl.ai/apis/ibl/catalog/catalog_skills_public_create.md): Add or update a skill. ## catalog_skills_reported_retrieve - [GET /api/catalog/skills/reported/](https://docs.ibl.ai/apis/ibl/catalog/catalog_skills_reported_retrieve.md): GET Retrieve desired skills for user Params: name id slug This method retrieves the skills reported by a user. It requires either a user_id or username to identify the user. If the user is found and has reported skills, the first reported skill is serialized and returned with a status code of 200. If no skills are found, a status code of 400 is returned. Error Conditions: - If the user cannot be identified, a 400 status code is returned. - If no reported skills exist for the user, a 400 status code is returned. ## catalog_skills_reported_create - [POST /api/catalog/skills/reported/](https://docs.ibl.ai/apis/ibl/catalog/catalog_skills_reported_create.md): POST Add or update a skill. Params: user_id/username skills data This method allows adding or updating a user's reported skills. It requires either a user_id or username to identify the user, along with a list of skills and additional data. If the user is identified and the skills are successfully saved, the serialized skill data is returned. A status code of 201 indicates that a new skill was created, while a status code of 200 indicates an update to an existing skill. Error Conditions: - If the user cannot be identified, a 400 status code is returned. - If the skills cannot be saved, a 400 status code is returned. Side Effects: - If a new skill is created, it will be persisted in the database. - If an existing skill is updated, the changes will be saved in the database. ## catalog_suggestions_course_manage_retrieve - [GET /api/catalog/suggestions/course/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_course_manage_retrieve.md): API View for managing course suggestions. This endpoint allows administrators to view, create, update, and delete course suggestions for users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter suggestions sort (str, optional): Field to sort results by (default: '-id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of course suggestions for a platform POST: Create or update a course suggestion DELETE: Remove a course suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the suggestion - course_id (str, required): The course ID to suggest - user_id (str/int, required): The user to suggest the course to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the suggestion to delete Returns: GET: A paginated JSON response containing course suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/course/manage/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming" }, ... ] } POST: A JSON response containing the created/updated suggestion: { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage suggestions for their platform - Department admins can manage suggestions for their departments - DM admins can manage all suggestions ## catalog_suggestions_course_manage_create - [POST /api/catalog/suggestions/course/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_course_manage_create.md): API View for managing course suggestions. This endpoint allows administrators to view, create, update, and delete course suggestions for users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter suggestions sort (str, optional): Field to sort results by (default: '-id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of course suggestions for a platform POST: Create or update a course suggestion DELETE: Remove a course suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the suggestion - course_id (str, required): The course ID to suggest - user_id (str/int, required): The user to suggest the course to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the suggestion to delete Returns: GET: A paginated JSON response containing course suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/course/manage/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming" }, ... ] } POST: A JSON response containing the created/updated suggestion: { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage suggestions for their platform - Department admins can manage suggestions for their departments - DM admins can manage all suggestions ## catalog_suggestions_course_manage_destroy - [DELETE /api/catalog/suggestions/course/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_course_manage_destroy.md): Delete single suggestion ## catalog_suggestions_course_manage_bulk_create - [POST /api/catalog/suggestions/course/manage/bulk/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_course_manage_bulk_create.md): API View for bulk management of course suggestions. This endpoint allows administrators to create multiple course suggestions at once. Methods: POST: Create multiple course suggestions in bulk Request Body: A JSON object containing: - platform_key (str, required): The platform for the suggestions - suggestion_data (list, required): List of suggestion objects, each containing: - course_id (str, required): The course ID to suggest - user_id (str/int, required): The user to suggest the course to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Returns: POST: A JSON response containing the operation results: { "successes": 15, "error_codes": [] } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs during bulk creation Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can create suggestions for their platform - Department admins can create suggestions for their departments - DM admins can create suggestions for any platform ## catalog_suggestions_course_manage_group_retrieve - [GET /api/catalog/suggestions/course/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_course_manage_group_retrieve.md): API View for managing course group suggestions. This endpoint allows administrators to view, create, and delete course suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of course group suggestions for a platform POST: Create or update a course group suggestion DELETE: Remove a course group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - course_id (str, required): The course ID to suggest - group_id (str/int, required): The group to suggest the course to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing course group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/course/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_course_manage_group_create - [POST /api/catalog/suggestions/course/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_course_manage_group_create.md): API View for managing course group suggestions. This endpoint allows administrators to view, create, and delete course suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of course group suggestions for a platform POST: Create or update a course group suggestion DELETE: Remove a course group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - course_id (str, required): The course ID to suggest - group_id (str/int, required): The group to suggest the course to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing course group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/course/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_course_manage_group_destroy - [DELETE /api/catalog/suggestions/course/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_course_manage_group_destroy.md): API View for managing course group suggestions. This endpoint allows administrators to view, create, and delete course suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of course group suggestions for a platform POST: Create or update a course group suggestion DELETE: Remove a course group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - course_id (str, required): The course ID to suggest - group_id (str/int, required): The group to suggest the course to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing course group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/course/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_course_user_retrieve - [GET /api/catalog/suggestions/course/user/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_course_user_retrieve.md): API View for retrieving course suggestions for a specific user. This endpoint allows users to view course suggestions that have been made for them, with support for filtering by platform and pagination. Query Parameters: user (str, required): Username or user ID to retrieve suggestions for platform_key (str, optional): Filter suggestions by platform key platform_org (str, optional): Filter suggestions by platform organization sort (str, optional): Field to sort results by (default: '-id') page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of course suggestions for a user Returns: GET: A paginated JSON response containing course suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/course/user/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "course_id": "course-v1:org+course+run", "course_name": "Introduction to Programming" }, ... ] } Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion retrieval fails 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdminReadOnly, or IsEdxUserReadOnly permission - Users can view their own suggestions - Platform admins can view suggestions for users in their platform (read-only) - DM admins can view all suggestions ## catalog_suggestions_pathway_manage_retrieve - [GET /api/catalog/suggestions/pathway/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_pathway_manage_retrieve.md): API View for managing pathway suggestions. This endpoint allows administrators to view, create, update, and delete pathway suggestions for users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter suggestions sort (str, optional): Field to sort results by (default: '-id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of pathway suggestions for a platform POST: Create or update a pathway suggestion DELETE: Remove a pathway suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the suggestion - pathway_id (str, required): The pathway ID to suggest - user_id (str/int, required): The user to suggest the pathway to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the suggestion to delete Returns: GET: A paginated JSON response containing pathway suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/pathway/manage/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1" }, ... ] } POST: A JSON response containing the created/updated suggestion: { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage suggestions for their platform - Department admins can manage suggestions for their departments - DM admins can manage all suggestions ## catalog_suggestions_pathway_manage_create - [POST /api/catalog/suggestions/pathway/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_pathway_manage_create.md): API View for managing pathway suggestions. This endpoint allows administrators to view, create, update, and delete pathway suggestions for users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter suggestions sort (str, optional): Field to sort results by (default: '-id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of pathway suggestions for a platform POST: Create or update a pathway suggestion DELETE: Remove a pathway suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the suggestion - pathway_id (str, required): The pathway ID to suggest - user_id (str/int, required): The user to suggest the pathway to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the suggestion to delete Returns: GET: A paginated JSON response containing pathway suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/pathway/manage/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1" }, ... ] } POST: A JSON response containing the created/updated suggestion: { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage suggestions for their platform - Department admins can manage suggestions for their departments - DM admins can manage all suggestions ## catalog_suggestions_pathway_manage_destroy - [DELETE /api/catalog/suggestions/pathway/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_pathway_manage_destroy.md): Delete single suggestion ## catalog_suggestions_pathway_manage_bulk_create - [POST /api/catalog/suggestions/pathway/manage/bulk/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_pathway_manage_bulk_create.md): API View for bulk creation of pathway suggestions. This endpoint allows administrators to create multiple pathway suggestions at once. Methods: POST: Create multiple pathway suggestions in a single request Request Body: A JSON object containing: - platform_key (str, required): The platform for the suggestions - suggestion_data (list, required): List of suggestion objects, each containing: - pathway_id (str, required): The pathway ID to suggest - user_id (str/int, required): The user to suggest the pathway to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Returns: POST: A JSON response containing the operation results: { "successes": 15, "error_codes": [] } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs during bulk creation Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can create suggestions for their platform - Department admins can create suggestions for their departments - DM admins can create suggestions for any platform ## catalog_suggestions_pathway_manage_group_retrieve - [GET /api/catalog/suggestions/pathway/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_pathway_manage_group_retrieve.md): API View for managing pathway group suggestions. This endpoint allows administrators to view, create, and delete pathway suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of pathway group suggestions for a platform POST: Create or update a pathway group suggestion DELETE: Remove a pathway group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - pathway_id (str, required): The pathway ID to suggest - group_id (str/int, required): The group to suggest the pathway to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing pathway group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/pathway/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_pathway_manage_group_create - [POST /api/catalog/suggestions/pathway/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_pathway_manage_group_create.md): API View for managing pathway group suggestions. This endpoint allows administrators to view, create, and delete pathway suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of pathway group suggestions for a platform POST: Create or update a pathway group suggestion DELETE: Remove a pathway group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - pathway_id (str, required): The pathway ID to suggest - group_id (str/int, required): The group to suggest the pathway to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing pathway group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/pathway/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_pathway_manage_group_destroy - [DELETE /api/catalog/suggestions/pathway/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_pathway_manage_group_destroy.md): API View for managing pathway group suggestions. This endpoint allows administrators to view, create, and delete pathway suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of pathway group suggestions for a platform POST: Create or update a pathway group suggestion DELETE: Remove a pathway group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - pathway_id (str, required): The pathway ID to suggest - group_id (str/int, required): The group to suggest the pathway to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing pathway group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/pathway/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_pathway_user_retrieve - [GET /api/catalog/suggestions/pathway/user/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_pathway_user_retrieve.md): API View for retrieving pathway suggestions for a specific user. This endpoint allows users to view pathway suggestions that have been made for them, with support for filtering by platform and pagination. Query Parameters: user (str, required): Username or user ID to retrieve suggestions for platform_key (str, optional): Filter suggestions by platform key platform_org (str, optional): Filter suggestions by platform organization sort (str, optional): Field to sort results by (default: '-id') page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of pathway suggestions for a user Returns: GET: A paginated JSON response containing pathway suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/pathway/user/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "pathway_id": "pathway-v1:org+pathway+run", "pathway_uuid": "12345678-1234-5678-1234-567812345678", "pathway_name": "Data Science Pathway", "pathway_platform_key": "platform1" }, ... ] } Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion retrieval fails 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdminReadOnly, or IsEdxUserReadOnly permission - Users can view their own suggestions - Platform admins can view suggestions for users in their platform (read-only) - DM admins can view all suggestions ## catalog_suggestions_program_manage_retrieve - [GET /api/catalog/suggestions/program/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_program_manage_retrieve.md): API View for managing program suggestions. This endpoint allows administrators to view, create, update, and delete program suggestions for users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter suggestions sort (str, optional): Field to sort results by (default: '-id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of program suggestions for a platform POST: Create or update a program suggestion DELETE: Remove a program suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the suggestion - program_key (str, required): The program key to suggest - user_id (str/int, required): The user to suggest the program to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the suggestion to delete Returns: GET: A paginated JSON response containing program suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/program/manage/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program" }, ... ] } POST: A JSON response containing the created/updated suggestion: { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage suggestions for their platform - Department admins can manage suggestions for their departments - DM admins can manage all suggestions ## catalog_suggestions_program_manage_create - [POST /api/catalog/suggestions/program/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_program_manage_create.md): API View for managing program suggestions. This endpoint allows administrators to view, create, update, and delete program suggestions for users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter suggestions sort (str, optional): Field to sort results by (default: '-id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of program suggestions for a platform POST: Create or update a program suggestion DELETE: Remove a program suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the suggestion - program_key (str, required): The program key to suggest - user_id (str/int, required): The user to suggest the program to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the suggestion to delete Returns: GET: A paginated JSON response containing program suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/program/manage/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program" }, ... ] } POST: A JSON response containing the created/updated suggestion: { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage suggestions for their platform - Department admins can manage suggestions for their departments - DM admins can manage all suggestions ## catalog_suggestions_program_manage_destroy - [DELETE /api/catalog/suggestions/program/manage/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_program_manage_destroy.md): API View for managing program suggestions. This endpoint allows administrators to view, create, update, and delete program suggestions for users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter suggestions sort (str, optional): Field to sort results by (default: '-id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of program suggestions for a platform POST: Create or update a program suggestion DELETE: Remove a program suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the suggestion - program_key (str, required): The program key to suggest - user_id (str/int, required): The user to suggest the program to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the suggestion to delete Returns: GET: A paginated JSON response containing program suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/program/manage/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program" }, ... ] } POST: A JSON response containing the created/updated suggestion: { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program" } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage suggestions for their platform - Department admins can manage suggestions for their departments - DM admins can manage all suggestions ## catalog_suggestions_program_manage_bulk_create - [POST /api/catalog/suggestions/program/manage/bulk/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_program_manage_bulk_create.md): API View for bulk creation of program suggestions. This endpoint allows administrators to create multiple program suggestions at once. Methods: POST: Create multiple program suggestions in bulk Request Body: A JSON object containing: - platform_key (str, required): The platform for the suggestions - suggestion_data (array, required): Array of suggestion objects with: - program_key (str, required): The program key to suggest - user_id (str/int, required): The user to suggest the program to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Returns: POST: A JSON response containing the results of the bulk operation: { "successes": 15, "error_codes": [] } Error Responses: 400 Bad Request: If required parameters are missing or invalid 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to create suggestions 500 Internal Server Error: If an unexpected error occurs during bulk creation Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can create suggestions for their platform - Department admins can create suggestions for their departments - DM admins can create suggestions for all platforms ## catalog_suggestions_program_manage_group_retrieve - [GET /api/catalog/suggestions/program/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_program_manage_group_retrieve.md): API View for managing program group suggestions. This endpoint allows administrators to view, create, and delete program suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of program group suggestions for a platform POST: Create or update a program group suggestion DELETE: Remove a program group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - program_key (str, required): The program key to suggest - group_id (str/int, required): The group to suggest the program to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing program group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/program/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_program_manage_group_create - [POST /api/catalog/suggestions/program/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_program_manage_group_create.md): API View for managing program group suggestions. This endpoint allows administrators to view, create, and delete program suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of program group suggestions for a platform POST: Create or update a program group suggestion DELETE: Remove a program group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - program_key (str, required): The program key to suggest - group_id (str/int, required): The group to suggest the program to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing program group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/program/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_program_manage_group_destroy - [DELETE /api/catalog/suggestions/program/manage/group/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_program_manage_group_destroy.md): API View for managing program group suggestions. This endpoint allows administrators to view, create, and delete program suggestions for groups of users within a platform. Query Parameters (GET): platform_key (str, required): The platform to retrieve group suggestions for platform_org (str, optional): The organization identifier for the platform query (str, optional): Search term to filter group suggestions sort (str, optional): Field to sort results by (default: 'id') department_mode (bool, optional): Filter suggestions by department admin access page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of program group suggestions for a platform POST: Create or update a program group suggestion DELETE: Remove a program group suggestion Request Body (POST): A JSON object containing: - platform_key (str, required): The platform for the group suggestion - program_key (str, required): The program key to suggest - group_id (str/int, required): The group to suggest the program to - accepted (bool, optional): Whether the suggestion is accepted - visible (bool, optional): Whether the suggestion is visible - metadata (dict, optional): Additional suggestion metadata Query Parameters (DELETE): suggestion_id (int, required): The ID of the group suggestion to delete Returns: GET: A paginated JSON response containing program group suggestions: { "count": 5, "next": "https://example.com/api/catalog/suggestions/program/group/?page=2", "previous": null, "results": [ { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program", "user_count": 25 }, ... ] } POST: A JSON response containing the created/updated group suggestion: { "id": 123, "group_id": 789, "group_name": "Engineering Team", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program", "user_count": 25 } DELETE: A success response with status 200 Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if group suggestion operations fail 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to manage group suggestions 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdmin, or IsDepartmentModeAdminInPlatform permission - Platform admins can manage group suggestions for their platform - Department admins can manage group suggestions for their departments - DM admins can manage all group suggestions ## catalog_suggestions_program_user_retrieve - [GET /api/catalog/suggestions/program/user/](https://docs.ibl.ai/apis/ibl/catalog/catalog_suggestions_program_user_retrieve.md): API View for retrieving program suggestions for a specific user. This endpoint allows users to view program suggestions that have been made for them, with support for filtering by platform and pagination. Query Parameters: user (str, required): Username or user ID to retrieve suggestions for platform_key (str, optional): Filter suggestions by platform key platform_org (str, optional): Filter suggestions by platform organization sort (str, optional): Field to sort results by (default: '-id') page (int, optional): Page number for pagination page_size (int, optional): Number of items per page Methods: GET: Retrieve a paginated list of program suggestions for a user Returns: GET: A paginated JSON response containing program suggestions: { "count": 10, "next": "https://example.com/api/catalog/suggestions/program/user/?page=2", "previous": null, "results": [ { "id": 123, "user_id": 456, "username": "student1", "name": "Student Name", "platform_key": "platform1", "accepted": false, "visible": true, "created": "2023-06-15T14:30:00Z", "modified": "2023-06-15T14:30:00Z", "metadata": {}, "program_key": "program-v1:org+program+run", "program_name": "Data Science Program" }, ... ] } Error Responses: 400 Bad Request: If required parameters are missing or invalid, or if suggestion retrieval fails 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this resource 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsDMAdmin, IsPlatformAdminReadOnly, or IsEdxUserReadOnly permission - Users can view their own suggestions - Platform admins can view suggestions for users in their platform (read-only) - DM admins can view all suggestions