# catalog_suggestions_course_manage_retrieve 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 Endpoint: GET /api/catalog/suggestions/course/manage/ Version: 3.59.0-ai-plus Security: PlatformApiKeyAuthentication ## Query parameters: - `department_mode` (boolean) Filter suggestions by department admin access - `page` (integer) Page number for pagination - `page_size` (integer) Number of items per page - `platform_key` (string, required) The platform to retrieve suggestions for - `platform_org` (string) The organization identifier for the platform - `query` (string) Search term to filter suggestions - `sort` (string) Field to sort results by ## Response 200 fields (application/json): - `count` (integer, required) Total number of results - `next_page` (string,null, required) URL for next page of results - `previous_page` (string,null, required) URL for previous page of results - `results` (array, required) List of course suggestions - `results.id` (integer, required) The unique identifier for the suggestion - `results.user_id` (integer, required) The ID of the user receiving the suggestion - `results.username` (string, required) The username of the user receiving the suggestion - `results.name` (string, required) The full name of the user receiving the suggestion - `results.platform_key` (string, required) The platform key associated with the suggestion - `results.accepted` (boolean, required) Whether the suggestion has been accepted by the user - `results.visible` (boolean, required) Whether the suggestion is visible to the user - `results.created` (string, required) When the suggestion was created - `results.modified` (string, required) When the suggestion was last modified - `results.metadata` (object, required) Additional metadata for the suggestion - `results.course_id` (string, required) The course ID being suggested - `results.course_name` (string, required) The name of the course being suggested