# ibl-data-manager API for iblai Version: 3.59.0-ai-plus ## Servers ``` https://base.manager.iblai.app ``` ## Security ### PlatformApiKeyAuthentication Example: Api-Key Type: apiKey In: header Name: Authorization ## Download OpenAPI description [ibl-data-manager](https://docs.ibl.ai/_spec/apis/ibl.yaml) ## ai-account ### ai_account_orgs_credential_retrieve - [GET /api/ai-account/orgs/{org}/credential/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_credential_retrieve.md): Retrieve LLM credentials for an organization. Query Parameters: name (optional): Filter results by LLM provider name Args: request: The HTTP request org: Organization key identifier Returns: Response: List of LLM credentials for the organization Raises: NotFound: When organization is not found or when no credentials match the filters ValidationError: When query parameters are invalid ### ai_account_orgs_credential_create - [POST /api/ai-account/orgs/{org}/credential/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_credential_create.md): Create a new LLM credential for an organization. Args: request: The HTTP request containing credential information org: Organization key identifier Returns: Response: Created LLM credential Raises: NotFound: When organization is not found ValidationError: When request data is invalid ### ai_account_orgs_credential_partial_update - [PATCH /api/ai-account/orgs/{org}/credential/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_credential_partial_update.md): Update an existing LLM credential for an organization. Args: request: The HTTP request containing updated credential information org: Organization key identifier Returns: Response: Updated LLM credential Raises: NotFound: When organization or credential is not found ValidationError: When request data is invalid ### ai_account_orgs_integration_credential_retrieve - [GET /api/ai-account/orgs/{org}/integration-credential/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_integration_credential_retrieve.md): Retrieve integration credentials for an organization. Query Parameters: name (optional): Filter results by integration service name Args: request: The HTTP request org: Organization key identifier Returns: Response: List of integration credentials for the organization Raises: NotFound: When organization is not found or when no credentials match the filters ValidationError: When query parameters are invalid ### ai_account_orgs_integration_credential_create - [POST /api/ai-account/orgs/{org}/integration-credential/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_integration_credential_create.md): Create a new integration credential for an organization. Args: request: The HTTP request containing credential information org: Organization key identifier Returns: Response: Created integration credential Raises: NotFound: When organization is not found ValidationError: When request data is invalid ### ai_account_orgs_integration_credential_partial_update - [PATCH /api/ai-account/orgs/{org}/integration-credential/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_integration_credential_partial_update.md): Update an existing integration credential for an organization. Args: request: The HTTP request containing updated credential information org: Organization key identifier Returns: Response: Updated integration credential Raises: NotFound: When organization or credential is not found ValidationError: When request data is invalid ### ai_account_orgs_platform_metadata_list - [GET /api/ai-account/orgs/{org}/platform-metadata/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_platform_metadata_list.md): Retrieve platform metadata for a specific organization. Args: request: The HTTP request org: Organization key identifier Returns: Response: Platform metadata including service configurations and active services Raises: NotFound: When platform metadata is not found ### ai_account_orgs_platform_metadata_create - [POST /api/ai-account/orgs/{org}/platform-metadata/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_platform_metadata_create.md): Create or update platform metadata for a specific organization. Args: request: The HTTP request containing metadata information org: Organization key identifier Returns: Response: Created/updated platform metadata Raises: NotFound: When platform is not found ValidationError: When request data is invalid ### ai_account_orgs_platform_metadata_update - [PUT /api/ai-account/orgs/{org}/platform-metadata/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_platform_metadata_update.md): Update specific fields of platform metadata for an organization. This endpoint allows updating the active LLM provider and available LLMs. Args: request: The HTTP request containing update information org: Organization key identifier Returns: Response: Updated platform metadata Raises: NotFound: When platform metadata is not found ValidationError: When request data is invalid ### ai_account_orgs_tokens_list - [GET /api/ai-account/orgs/{org}/tokens/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_tokens_list.md): Retrieve weekly token usage statistics for an organization. Query Parameters: username (optional): Filter results by specific username session_id (optional): Filter results by specific session ID Args: request: The HTTP request org: Organization key identifier Returns: Response: List of weekly token usage records with prompt and completion tokens Raises: NotFound: When organization is not found or when no sessions match the filters ValidationError: When query parameters are invalid ### ai_account_orgs_use_default_llm_key_create - [POST /api/ai-account/orgs/{org}/use-default-llm-key/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_use_default_llm_key_create.md): Enable or disable the use of main LLM credentials for an organization. Request Body: enable (boolean): Set to true to enable main credentials disable (boolean): Set to true to disable main credentials Args: request: The HTTP request org: Organization key identifier Returns: Response: Confirmation message Raises: ValidationError: When neither enable nor disable is specified ### ai_account_orgs_use_free_trial_create - [POST /api/ai-account/orgs/{org}/use-free-trial/](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_use_free_trial_create.md): Enable, disable, or update free trial settings for an organization. Request Body: enable (boolean): Set to true to enable free trial disable (boolean): Set to true to disable free trial metadata (object, optional): Additional metadata for the free trial Args: request: The HTTP request org: Organization key identifier Returns: Response: Confirmation message ### ai_account_orgs_users_default_llm_key_usage_retrieve - [GET /api/ai-account/orgs/{org}/users/{user_id}/default-llm-key-usage](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_users_default_llm_key_usage_retrieve.md): Retrieve the status of main LLM credential usage for an organization. Args: request: The HTTP request org: Organization key identifier user_id: User identifier Returns: Response: Status of main LLM credential usage ### ai_account_orgs_users_free_trial_retrieve - [GET /api/ai-account/orgs/{org}/users/{user_id}/free-trial](https://docs.ibl.ai/apis/ibl/ai-account/ai_account_orgs_users_free_trial_retrieve.md): Retrieve the free trial status for an organization. Args: request: The HTTP request org: Organization key identifier Returns: Response: Free trial status (boolean) Raises: NotFound: When organization is not found ## ai-analytics ### ai_analytics_audience_orgs_active_users_over_time_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/active-users/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_active_users_over_time_retrieve.md): Get active user counts over time. This endpoint provides daily counts of active users (users with known activity) over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily active user counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. An active user is defined as a user with any activity within the past 30 days. ### ai_analytics_audience_orgs_active_users_per_course_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/active-users/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_active_users_per_course_retrieve.md): Get active user counts on a per-course basis. This endpoint provides counts of active users for each course within the specified date range. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) Returns: A list of courses with their active user counts. Default time range is the last 7 days if no dates are specified. ### ai_analytics_audience_orgs_active_users_users_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/active-users/users](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_active_users_users_retrieve.md): Get a list of active users with activity metrics. This endpoint provides a paginated list of users who have had activity within the specified date range. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) course_id (str, optional): Filter by course ID page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of active users with their activity metrics. Default time range is the last 7 days if no dates are specified. ### ai_analytics_audience_orgs_enrollments_courses_over_time_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/enrollments/courses/{course_id}/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_enrollments_courses_over_time_retrieve.md): Get enrollment or unenrollment counts over time. This endpoint provides daily counts of new enrollments or unenrollments over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID active (bool): Get enrollments when true, unenrollments when false Returns: Daily counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### ai_analytics_audience_orgs_enrollments_courses_users_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/enrollments/courses/{course_id}/users](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_enrollments_courses_users_retrieve.md): List users enrolled in a specific course. This endpoint provides a list of users who are enrolled or unenrolled in a specified course. Query Parameters: course_id (str): The course ID to get enrollments for active (bool): Filter for active enrollments when true, inactive when false page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of users with: - Username - Full name - Email - Enrollment timestamp ### ai_analytics_audience_orgs_enrollments_over_time_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/enrollments/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_enrollments_over_time_retrieve.md): Get enrollment or unenrollment counts over time. This endpoint provides daily counts of new enrollments or unenrollments over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID active (bool): Get enrollments when true, unenrollments when false Returns: Daily counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### ai_analytics_audience_orgs_enrollments_per_course_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/enrollments/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_enrollments_per_course_retrieve.md): List enrollment statistics on a per-course basis. This endpoint provides enrollment counts for all courses, with options to filter for active or inactive enrollments and to include time-based data. Query Parameters: active (bool): Filter for active enrollments when true, inactive when false start_date (str, optional): Start date for time-based filtering (ISO format) end_date (str, optional): End date for time-based filtering (ISO format) page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with their enrollment counts and percentages. ### ai_analytics_audience_orgs_registered_users_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/registered-users/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_registered_users_retrieve.md): List all learners on the platform with aggregated metrics. This endpoint returns a paginated list of all learners with key metrics including: - Enrollment counts - Completion counts - Time spent on platform Query Parameters: page (int): Page number for pagination length (int): Number of items per page search (str): Filter learners by username, email, or name Returns: A paginated list of learners with their associated metrics. ### ai_analytics_audience_orgs_registered_users_over_time_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/registered-users/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_registered_users_over_time_retrieve.md): Get registered user counts over time. This endpoint provides daily counts of new user registrations over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily registration counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### ai_analytics_audience_orgs_registered_users_per_course_retrieve - [GET /api/ai-analytics/audience/orgs/{org}/registered-users/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_audience_orgs_registered_users_per_course_retrieve.md): List enrollment statistics on a per-course basis. This endpoint provides enrollment counts for all courses, with options to filter for active or inactive enrollments and to include time-based data. Query Parameters: active (bool): Filter for active enrollments when true, inactive when false start_date (str, optional): Start date for time-based filtering (ISO format) end_date (str, optional): End date for time-based filtering (ISO format) page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with their enrollment counts and percentages. ### ai_analytics_costs_pertenant_list - [GET /api/ai-analytics/costs/pertenant/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_costs_pertenant_list.md): Retrieve paginated LLM usage costs aggregated by tenant. ### ai_analytics_departments_orgs_retrieve - [GET /api/ai-analytics/departments/orgs/{org}/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_departments_orgs_retrieve.md): Get a list of departments with metrics and filtering options. This endpoint provides a paginated list of departments with aggregated metrics about learner performance, course completions, and skill acquisition. Query Parameters: page (int, optional): Page number for pagination length (int, optional): Number of items per page program (str, optional): Filter by program pathway (str, optional): Filter by pathway departments (list, optional): Filter by department ids department_id (str, optional): Filter by department id location (str, optional): Filter by location is_enrolled (bool, optional): Filter for departments with enrolled users start_date (date, optional): Filter by learner join date (start range) end_date (date, optional): Filter by learner join date (end range) Returns: A paginated list of departments with comprehensive metrics. ### ai_analytics_engagement_orgs_activity_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/activity](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_activity_retrieve.md): Get engagement metrics on a per-course basis. This endpoint provides a paginated list of courses with engagement metrics including activity counts, time spent, and interaction data. Query Parameters: page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with their engagement metrics. ### ai_analytics_engagement_orgs_course_completion_over_time_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/course_completion/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_course_completion_over_time_retrieve.md): Completion count per user per course across the platform Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 Default result when no query param is added is last_7_days (today inclusive) ### ai_analytics_engagement_orgs_course_completion_per_course_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/course_completion/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_course_completion_per_course_retrieve.md): List course completion metrics on a per-course basis. This endpoint provides a paginated table of courses with enrollment and completion statistics for each course. Returns: A paginated list of courses with: - Course identification (ID and name) - Enrollment count - Completion count - Average completion rate ### ai_analytics_engagement_orgs_courses_time_average_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/time/average](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_time_average_retrieve.md): Average time spent in secs on a per-day basis Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 3. course_id Default result when no query param is added is last_7_days (today inclusive) ### ai_analytics_engagement_orgs_courses_time_detail_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/time/detail](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_time_detail_retrieve.md): Time spent per course in secs in a tree like form Kwargs course_id e.g course-v1:Org+Course4+Run Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 ### ai_analytics_engagement_orgs_courses_time_over_time_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/time/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_time_over_time_retrieve.md): Time spent per course in secs on a per-day basis Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 Kwargs 3. course_id Default result when no query param is added is last_7_days (today inclusive) ### ai_analytics_engagement_orgs_courses_time_users_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/time/users](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_time_users_retrieve.md): Time spent by users in a course Query Params course_id e.g course-v1:Org+Course4+Run ### ai_analytics_engagement_orgs_courses_time_users_detail_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/time/users/{user_id}/detail](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_time_users_detail_retrieve.md): Time spent within a course in ordered hierarchical format Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) Query Params 3. start_date e.g 2020-10-01 4. end_date e.g 2020-10-10 ### ai_analytics_engagement_orgs_courses_time_users_over_time_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/time/users/{user_id}/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_time_users_over_time_retrieve.md): Time spent in secs on a per-day basis Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) 3. start_date e.g 2020-10-01 4. end_date e.g 2020-10-10 Default result when no query param is added is last_7_days (today inclusive) ### ai_analytics_engagement_orgs_courses_videos_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/videos/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_videos_retrieve.md): Get video engagement metrics for a specific course. This endpoint provides detailed video engagement statistics for a single course, including view counts, completion rates, and time spent on videos. Query Parameters: course_id (str): The course ID to get video engagement data for Returns: Detailed video engagement metrics for the specified course. ### ai_analytics_engagement_orgs_courses_videos_over_time_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/videos/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_videos_over_time_retrieve.md): Get video watch counts over time. This endpoint provides daily counts of videos watched over a specified time period, with options to filter by course or user. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: Daily video watch counts over the specified time period. Default time range is the last 7 days if no dates are specified. Access Control: - Platform admins can access any video watch data - Learners can access their own video watch data ### ai_analytics_engagement_orgs_courses_videos_summary_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/videos/summary](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_videos_summary_retrieve.md): Get a summary of video watch statistics for a specific course. This endpoint provides a structured summary of video watch data for a course, organized in a tree-like format by course sections and subsections. Query Parameters: course_id (str): The course ID to get video summary for Returns: A hierarchical structure of video watch data for the course, including: - Section and subsection organization - Video identification and metadata - Watch counts and completion rates ### ai_analytics_engagement_orgs_courses_videos_users_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/courses/{course_id}/videos/users](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_courses_videos_users_retrieve.md): List of users' videos completed records for a specific course Kwargs course_id e.g course-v1:Org+Course4+Run ### ai_analytics_engagement_orgs_time_average_perlearner_percourse_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/time/average-perlearner-percourse](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_time_average_perlearner_percourse_retrieve.md): Average time spent by a learner in enrolled courses. Gives a rough estimate of whats the average time that would be spent by a learner in a course Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 ### ai_analytics_engagement_orgs_time_average_with_over_time_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/time/average-with-over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_time_average_with_over_time_retrieve.md): Average time spent in secs on a per-day basis Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 3. course_id Default result when no query param is added is last_7_days (today inclusive) ### ai_analytics_engagement_orgs_time_over_time_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/time/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_time_over_time_retrieve.md): Get time spent on the platform over time. This endpoint provides daily time spent values (in seconds) across the platform over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily time spent values over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### ai_analytics_engagement_orgs_time_per_course_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/time/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_time_per_course_retrieve.md): Get time spent statistics on a per-course basis. This endpoint provides a paginated list of courses with the total time spent by users in each course. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with: - Course identification (ID and name) - Total time spent (in seconds) - Formatted time spent (human-readable) - Percentage of total platform time ### ai_analytics_engagement_orgs_videos_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/videos/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_videos_retrieve.md): Get video engagement metrics on a per-course basis. This endpoint provides a paginated list of courses with video engagement metrics including view counts, completion rates, and time spent on videos. Query Parameters: page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with their video engagement metrics. ### ai_analytics_engagement_orgs_videos_over_time_retrieve - [GET /api/ai-analytics/engagement/orgs/{org}/videos/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_engagement_orgs_videos_over_time_retrieve.md): Get video watch counts over time. This endpoint provides daily counts of videos watched over a specified time period, with options to filter by course or user. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: Daily video watch counts over the specified time period. Default time range is the last 7 days if no dates are specified. Access Control: - Platform admins can access any video watch data - Learners can access their own video watch data ### ai_analytics_orgs_users_average_messages_per_session_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/average-messages-per-session/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_average_messages_per_session_list.md): Retrieve average message counts per session over time. This endpoint returns data on the average number of messages exchanged in each conversation session within a specified date range, with options for filtering by mentor and aggregating by different time periods (hourly, daily, weekly). Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Time series of average message counts and session totals. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. mentor_id (str): Filter by mentor unique ID. aggregation (str): Time aggregation level (hourly, daily, weekly) - default: daily. ### ai_analytics_orgs_users_chat_history_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/chat-history/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_chat_history_list.md): API viewset for retrieving and filtering chat message history. This viewset provides endpoints for retrieving chat message history within an organization, with extensive filtering options by date range, user, topic, mentor, and sentiment. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_chat_history_create - [POST /api/ai-analytics/orgs/{org}/users/{user_id}/chat-history/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_chat_history_create.md): API viewset for retrieving and filtering chat message history. This viewset provides endpoints for retrieving chat message history within an organization, with extensive filtering options by date range, user, topic, mentor, and sentiment. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_chat_history_filter_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/chat-history-filter/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_chat_history_filter_retrieve.md): Retrieve filter options for chat message history. This endpoint returns data on available filter options for the chat message history endpoint, including topics, date ranges (weekly or monthly), sentiments, and users who have chat history. Args: request: The HTTP request containing query parameters. org: Organization key identifier. Returns: Response: Available filter options for chat message history. Raises: NotFound: If the specified organization does not exist. Query Parameters: monthly_range (bool): Whether to return monthly or weekly date ranges. mentor_id (str): Filter users by those who have chatted with a specific mentor. ### ai_analytics_orgs_users_chat_history_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/chat-history/{id}/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_chat_history_retrieve.md): API viewset for retrieving and filtering chat message history. This viewset provides endpoints for retrieving chat message history within an organization, with extensive filtering options by date range, user, topic, mentor, and sentiment. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_chat_history_update - [PUT /api/ai-analytics/orgs/{org}/users/{user_id}/chat-history/{id}/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_chat_history_update.md): API viewset for retrieving and filtering chat message history. This viewset provides endpoints for retrieving chat message history within an organization, with extensive filtering options by date range, user, topic, mentor, and sentiment. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_chat_history_partial_update - [PATCH /api/ai-analytics/orgs/{org}/users/{user_id}/chat-history/{id}/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_chat_history_partial_update.md): API viewset for retrieving and filtering chat message history. This viewset provides endpoints for retrieving chat message history within an organization, with extensive filtering options by date range, user, topic, mentor, and sentiment. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_chat_history_destroy - [DELETE /api/ai-analytics/orgs/{org}/users/{user_id}/chat-history/{id}/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_chat_history_destroy.md): API viewset for retrieving and filtering chat message history. This viewset provides endpoints for retrieving chat message history within an organization, with extensive filtering options by date range, user, topic, mentor, and sentiment. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_conversation_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/conversation/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_conversation_list.md): Retrieve conversation volume data over time. This endpoint returns data on the number of conversations that occurred within a specified date range, with options for different time aggregations (hourly, daily, weekly). Results can be filtered by mentor. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. user_id: User identifier (not used in the implementation). Returns: Response: Time series data of conversation counts. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. mentor_id (str): Filter by mentor unique ID. aggregation (str): Time aggregation level (hourly, daily, weekly) - default: daily. ### ai_analytics_orgs_users_conversation_summary_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/conversation-summary/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_conversation_summary_retrieve.md): Retrieve a summary of conversation metrics. This endpoint returns aggregated metrics about conversations within an organization, including: - Total number of conversations - Total number of human messages - Total number of AI messages Results can be filtered by mentor. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Summary of conversation metrics. Raises: NotFound: If the specified organization does not exist. Query Parameters: mentor_id (str): Filter by mentor unique ID. ### ai_analytics_orgs_users_costs_model_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/costs/model/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_costs_model_retrieve.md): Retrieve the model costs for a tenant Filter parameters for period are start_date and enddate Accessible to tenant Admins only. ### ai_analytics_orgs_users_costs_permentor_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/costs/permentor/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_costs_permentor_retrieve.md): Retrieve LLM usage costs aggregated by mentor. This endpoint returns data on the total cost of LLM usage for each mentor within a specified date range, with pagination support. The costs are calculated by summing the costs of all observations associated with traces from the mentor's sessions. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Paginated list of mentors with their total LLM usage costs. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. limit (int): Number of results per page - default: 5. offset (int): Offset for pagination - default: 0. ### ai_analytics_orgs_users_costs_peruser_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/costs/peruser/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_costs_peruser_retrieve.md): Retrieve LLM usage costs aggregated by user. This endpoint returns data on the total cost of LLM usage for each user within a specified date range, with pagination support. The costs are calculated by summing the costs of all observations associated with traces from the user's sessions. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Paginated list of users with their total LLM usage costs. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. limit (int): Number of results per page - default: 10. offset (int): Offset for pagination - default: 0. ### ai_analytics_orgs_users_mentor_detail_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/mentor-detail/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_mentor_detail_retrieve.md): Retrieve summary statistics about mentors. This endpoint returns aggregated statistics about mentors within an organization, including total mentors, active mentors (mentors with at least one session), questions answered, and ratings. Args: request: The HTTP request. org: Organization key identifier. Returns: Response: Summary statistics about mentors. Raises: NotFound: If the specified organization does not exist. ### ai_analytics_orgs_users_mentor_summary_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/mentor-summary/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_mentor_summary_retrieve.md): Retrieve summary statistics about mentors. This endpoint returns aggregated statistics about mentors within an organization, including total mentors, active mentors (mentors with at least one session), questions answered, and ratings. Args: request: The HTTP request. org: Organization key identifier. Returns: Response: Summary statistics about mentors. Raises: NotFound: If the specified organization does not exist. ### ai_analytics_orgs_users_mentors_cost_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/mentors/{mentor_unique_id}/cost/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_mentors_cost_retrieve.md): Retrieve LLM usage costs for a specific mentor. This endpoint returns data on the total cost of LLM usage for a specific mentor within a specified date range. The cost is calculated by summing the costs of all observations associated with traces from the tenant's sessions. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. mentor_unique_id: User key identifier. Returns: Response: Total LLM usage cost for the specified tenant. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. ### ai_analytics_orgs_users_most_discussed_topics_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/most-discussed-topics/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_most_discussed_topics_list.md): Retrieve the most discussed topics over time. This endpoint returns data on the frequency of topics discussed in conversations within a specified date range, with options for filtering by mentor and aggregating by different time periods (hourly, daily, weekly). Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: List of topics with their conversation counts, ordered by frequency. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. mentor_id (str): Filter by mentor unique ID. aggregation (str): Time aggregation level (hourly, daily, weekly) - default: daily. ### ai_analytics_orgs_users_observations_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/observations/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_observations_list.md): Viewset for retrieving and listing Langfuse observations. This viewset provides read-only access to Langfuse observations data for platform admins. Observations represent detailed tracking of AI model interactions and responses. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_observations_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/observations/{id}/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_observations_retrieve.md): Viewset for retrieving and listing Langfuse observations. This viewset provides read-only access to Langfuse observations data for platform admins. Observations represent detailed tracking of AI model interactions and responses. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_overview_summary_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/overview-summary/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_overview_summary_retrieve.md): Retrieve an overview of key analytics metrics. This endpoint returns a comprehensive overview of key analytics metrics for an organization, including: - Conversation volume: Total sessions and month-over-month change - Users: Total unique users and month-over-month change - Topics: Total unique topics and month-over-month change - User ratings: Total ratings and month-over-month change Results can be filtered by mentor. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. user_id: User identifier (not used in the implementation). Returns: Response: Overview of key analytics metrics with month-over-month changes. Raises: NotFound: If the specified organization does not exist. Query Parameters: mentor_id (str): Filter analytics by mentor unique ID. ### ai_analytics_orgs_users_rating_summary_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/rating-summary/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_rating_summary_list.md): Retrieve user rating metrics over time. This endpoint returns data on the number of user ratings submitted within a specified date range, aggregated by day or hour. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Time series of rating counts aggregated by day or hour. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. group_by (str): Aggregation level (day or hour) - default: day. ### ai_analytics_orgs_users_registered_users_trend_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/registered-users-trend/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_registered_users_trend_list.md): Retrieve trends of registered users over time. This endpoint returns data on the number of new user registrations within a specified date range, with options for different time aggregations (hourly, daily, weekly, monthly). The data is backfilled to ensure continuous time series even for periods with zero registrations. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Time series of user registration counts. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. aggregation (str): Time aggregation level (hourly, daily, weekly, monthly) - default: daily. ### ai_analytics_orgs_users_sentiment_count_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/sentiment-count/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_sentiment_count_list.md): Retrieve user sentiment counts over time. This endpoint returns data on the number of user sentiment entries within a specified time period, aggregated by date. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. user_id: User identifier. Returns: Response: Time series data of sentiment counts. Raises: NotFound: If the specified organization does not exist. ValidationError: If the provided query parameters are invalid. Query Parameters: period (str): Time period filter (today, yesterday, 7d, 30d, 90d) - default: 7d. ### ai_analytics_orgs_users_tenant_cost_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/tenant-cost/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_tenant_cost_retrieve.md): Retrieve LLM usage costs for a specific tenant. This endpoint returns data on the total cost of LLM usage for a specific tenant within a specified date range. The cost is calculated by summing the costs of all observations associated with traces from the tenant's sessions. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Total LLM usage cost for the specified tenant. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. ### ai_analytics_orgs_users_top_students_by_chat_messages_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/top-students-by-chat-messages/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_top_students_by_chat_messages_list.md): Retrieve the most engaged students based on chat message count. This endpoint returns data on the top 20 students with the highest number of chat messages, with optional filtering by mentor and date range. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. user_id: User identifier (not used in the implementation). Returns: Response: List of top students with their chat message counts. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: mentor_id (str): Filter by mentor unique ID. start_date (str): Start date for filtering (YYYY-MM-DD). end_date (str): End date for filtering (YYYY-MM-DD). ### ai_analytics_orgs_users_topic_overview_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/topic-overview/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_topic_overview_retrieve.md): Retrieve aggregated topic statistics. This endpoint returns statistical information about topics within an organization, including total topics, new topics, and percentage changes compared to the previous month. Results can be filtered by mentor. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Statistical information about topics. Raises: NotFound: If the specified organization or mentor does not exist. Query Parameters: mentor_id (str): Filter statistics by mentor unique ID. ### ai_analytics_orgs_users_topic_statistics_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/topic-statistics/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_topic_statistics_retrieve.md): Retrieve paginated statistics about topics. This endpoint returns detailed statistics about topics, including: - Number of conversations related to each topic - Total message count for each topic - Average sentiment of conversations about each topic - Average user rating for conversations about each topic Results can be filtered by mentor and date range, and are paginated. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Paginated list of topic statistics. Raises: NotFound: If the specified organization or mentor does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD). end_date (str): End date for filtering (YYYY-MM-DD). mentor_id (str): Filter by mentor unique ID. page (int): Page number for pagination - default: 1. page_size (int): Number of results per page - default: 20. ### ai_analytics_orgs_users_topics_summary_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/topics/summary/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_topics_summary_list.md): Retrieve a summary of the most frequent topics. This endpoint returns a summary of the top 10 topics discussed in chat sessions, ordered by conversation count. Results can be filtered by mentor and date range. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: A list of the top 10 topics with their conversation counts. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided date format is invalid. Query Parameters: mentor_id (str): Filter by mentor unique ID. start_date (str): Start date for filtering (YYYY-MM-DD). end_date (str): End date for filtering (YYYY-MM-DD). ### ai_analytics_orgs_users_total_users_by_mentor_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/total-users-by-mentor/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_total_users_by_mentor_list.md): Retrieve the total number of users interacting with mentors over time. This endpoint returns data on the number of unique users who interacted with mentors each day or hour within a specified date range, with optional filtering by specific mentor. If no date range is provided, the last 30 days are used by default. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Time series of unique user counts. Raises: NotFound: If the specified organization or mentor does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - defaults to 30 days ago. end_date (str): End date for filtering (YYYY-MM-DD) - defaults to today. aggregation (str): Time aggregation level (hourly, daily) - default: daily. mentor_id (str): Filter by mentor unique ID. ### ai_analytics_orgs_users_traces_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/traces/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_traces_list.md): Viewset for retrieving and listing Langfuse traces. This viewset provides read-only access to Langfuse traces data for platform admins. Traces represent high-level tracking of user interactions and AI responses. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_traces_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/traces/{id}/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_traces_retrieve.md): Viewset for retrieving and listing Langfuse traces. This viewset provides read-only access to Langfuse traces data for platform admins. Traces represent high-level tracking of user interactions and AI responses. Permissions: - Restricted to platform administrators only ### ai_analytics_orgs_users_transcripts_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/transcripts/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_transcripts_list.md): Retrieve message data from conversations. This endpoint returns data on messages within conversations, with options for filtering by date range, topics, and mentor. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. user_id: User identifier (not used in the implementation). Returns: Response: A list of conversation message data. Raises: NotFound: If the specified organization does not exist. ValidationError: If the provided query parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD). end_date (str): End date for filtering (YYYY-MM-DD). topics (str): Comma-separated list of topics to filter by. mentor (str): Filter by mentor unique ID. ### ai_analytics_orgs_users_usage_summary_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/usage-summary/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_usage_summary_list.md): Retrieve daily user engagement metrics with mentors. This endpoint returns data on the number of unique users who interact with mentors each day within a specified date range. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Daily time series of unique user counts. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. ### ai_analytics_orgs_users_user_cohorts_over_time_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/user-cohorts-over-time/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_user_cohorts_over_time_retrieve.md): Retrieve user cohort trends over time. This endpoint returns data on the distribution of new versus veteran users over time, with options for different time aggregations and filtering by mentor. New users are those who registered within the specified date range, while veteran users are those who registered before the date range but were active during it. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Time series of new and veteran user counts. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. aggregation (str): Time aggregation level (hourly, daily, weekly) - default: daily. mentor_id (str): Filter by mentor unique ID. ### ai_analytics_orgs_users_user_cost_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/user-cost/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_user_cost_retrieve.md): Retrieve LLM usage costs for a specific user. This endpoint returns data on the total cost of LLM usage for a specific user within a specified date range. The cost is calculated by summing the costs of all observations associated with traces from the tenant's sessions. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. user_id: User key identifier. Returns: Response: Total LLM usage cost for the specified tenant. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. ### ai_analytics_orgs_users_user_feedback_list - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/user-feedback/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_user_feedback_list.md): Retrieve aggregated user chat feedback counts. This endpoint returns data on the number of user chat feedback entries within a specified date range, with options for different time aggregations (hourly, daily, weekly). Results can be filtered by mentor. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Time series data of feedback counts. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. mentor_id (str): Filter by mentor unique ID. aggregation (str): Time aggregation level (hourly, daily, weekly) - default: daily. ### ai_analytics_orgs_users_user_metrics_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/user-metrics/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_user_metrics_retrieve.md): Retrieve comprehensive user metrics. This endpoint returns data on various user metrics with month-over-month change calculations: - Registered users: Total users registered on the platform - New users: Users who joined in the current month - Unique users: Distinct users who have had sessions - Veteran users: Users who have been active for at least 6 months Results can be filtered by mentor. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Comprehensive user metrics with month-over-month changes. Raises: NotFound: If the specified organization does not exist. Query Parameters: mentor_id (str): Filter metrics by mentor unique ID. ### ai_analytics_orgs_users_user_metrics_pie_chart_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/user-metrics-pie-chart/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_user_metrics_pie_chart_retrieve.md): Retrieve user distribution data for pie charts. This endpoint returns data on the distribution of new versus returning users within a specified date range, including both counts and percentages, suitable for pie chart visualization. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Distribution of new versus returning users with counts and percentages. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. mentor_id (str): Filter by mentor unique ID. ### ai_analytics_orgs_users_user_sentiment_retrieve - [GET /api/ai-analytics/orgs/{org}/users/{user_id}/user-sentiment/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_orgs_users_user_sentiment_retrieve.md): Retrieve user sentiment distribution. This endpoint returns data on the distribution of user sentiments (positive, negative, neutral) within a specified date range, expressed as percentages. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. Returns: Response: Sentiment distribution percentages and total sentiment count. Raises: NotFound: If the specified organization does not exist. BadRequest: If the provided parameters are invalid. Query Parameters: start_date (str): Start date for filtering (YYYY-MM-DD) - required. end_date (str): End date for filtering (YYYY-MM-DD) - required. ### ai_analytics_overview_orgs_active_users_retrieve - [GET /api/ai-analytics/overview/orgs/{org}/active-users](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_overview_orgs_active_users_retrieve.md): Get active user counts over time. This endpoint provides daily counts of active users (users with known activity) over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily active user counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. An active user is defined as a user with any activity within the past 30 days. ### ai_analytics_overview_orgs_average_grade_retrieve - [GET /api/ai-analytics/overview/orgs/{org}/average-grade](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_overview_orgs_average_grade_retrieve.md): Get average grade value for platform, course, or user. This endpoint returns the average grade at different levels: - Platform level: Average grade across all courses - Course level: Average grade for a specific course - Learner level: Average grade for a specific learner - Course-learner level: Grade for a specific learner in a specific course Query Parameters: course_id (str, optional): Filter by course ID learner_id (str, optional): Filter by username or email Returns: The average grade value based on the specified filters. Access Control: - Platform admins can access any grade data - Learners can access their own grade data ### ai_analytics_overview_orgs_courses_completions_retrieve - [GET /api/ai-analytics/overview/orgs/{org}/courses/completions](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_overview_orgs_courses_completions_retrieve.md): Get course completion summary metrics over time. This endpoint provides completion statistics across the platform over a specified time period, including daily completion counts and overall metrics. Query Parameters: start_date (str): Start date for the time range (ISO format) end_date (str): End date for the time range (ISO format) Returns: Completion data including: - Daily completion counts over time - Total unique user count - Total completion count - Completion percentage - Change metrics compared to previous periods Default time range is the last 7 days if no dates are specified. ### ai_analytics_overview_orgs_learners_retrieve - [GET /api/ai-analytics/overview/orgs/{org}/learners](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_overview_orgs_learners_retrieve.md): List all learners on the platform with aggregated metrics. This endpoint returns a paginated list of all learners with key metrics including: - Enrollment counts - Completion counts - Time spent on platform Query Parameters: page (int): Page number for pagination length (int): Number of items per page search (str): Filter learners by username, email, or name Returns: A paginated list of learners with their associated metrics. ### ai_analytics_overview_orgs_most_active_courses_retrieve - [GET /api/ai-analytics/overview/orgs/{org}/most-active-courses](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_overview_orgs_most_active_courses_retrieve.md): Get time spent statistics on a per-course basis. This endpoint provides a paginated list of courses with the total time spent by users in each course. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with: - Course identification (ID and name) - Total time spent (in seconds) - Formatted time spent (human-readable) - Percentage of total platform time ### ai_analytics_overview_orgs_registered_users_retrieve - [GET /api/ai-analytics/overview/orgs/{org}/registered-users](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_overview_orgs_registered_users_retrieve.md): Get registered user counts over time. This endpoint provides daily counts of new user registrations over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily registration counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### ai_analytics_performance_orgs_courses_grading_average_retrieve - [GET /api/ai-analytics/performance/orgs/{org}/courses/{course_id}/grading/average](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_performance_orgs_courses_grading_average_retrieve.md): Get average grade value for platform, course, or user. This endpoint returns the average grade at different levels: - Platform level: Average grade across all courses - Course level: Average grade for a specific course - Learner level: Average grade for a specific learner - Course-learner level: Grade for a specific learner in a specific course Query Parameters: course_id (str, optional): Filter by course ID learner_id (str, optional): Filter by username or email Returns: The average grade value based on the specified filters. Access Control: - Platform admins can access any grade data - Learners can access their own grade data ### ai_analytics_performance_orgs_courses_grading_average_with_cutoff_retrieve - [GET /api/ai-analytics/performance/orgs/{org}/courses/{course_id}/grading/average-with-cutoff](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_performance_orgs_courses_grading_average_with_cutoff_retrieve.md): Returns average course grade and grade cuttoff e.g Kwargs course_id ### ai_analytics_performance_orgs_courses_grading_detail_retrieve - [GET /api/ai-analytics/performance/orgs/{org}/courses/{course_id}/grading/detail](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_performance_orgs_courses_grading_detail_retrieve.md): Grading summary for the entire course overview in a tree-like format Kwargs course_id ### ai_analytics_performance_orgs_courses_grading_per_learner_retrieve - [GET /api/ai-analytics/performance/orgs/{org}/courses/{course_id}/grading/per-learner](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_performance_orgs_courses_grading_per_learner_retrieve.md): Grading information per enrolled user in a course Kwargs course_id ### ai_analytics_performance_orgs_courses_grading_summary_retrieve - [GET /api/ai-analytics/performance/orgs/{org}/courses/{course_id}/grading/summary](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_performance_orgs_courses_grading_summary_retrieve.md): Returns average grades across various assignment types in a course Query Params course_id Returns: dict { "data": [ { "assignment_type': , "weight": , "average_weighted_grade": , "average_section_grade": }, ... ] } ### ai_analytics_performance_orgs_grading_average_retrieve - [GET /api/ai-analytics/performance/orgs/{org}/grading/average](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_performance_orgs_grading_average_retrieve.md): Get average grade value for platform, course, or user. This endpoint returns the average grade at different levels: - Platform level: Average grade across all courses - Course level: Average grade for a specific course - Learner level: Average grade for a specific learner - Course-learner level: Grade for a specific learner in a specific course Query Parameters: course_id (str, optional): Filter by course ID learner_id (str, optional): Filter by username or email Returns: The average grade value based on the specified filters. Access Control: - Platform admins can access any grade data - Learners can access their own grade data ### ai_analytics_performance_orgs_grading_per_course_retrieve - [GET /api/ai-analytics/performance/orgs/{org}/grading/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_performance_orgs_grading_per_course_retrieve.md): List grade-related performance data for all courses. This endpoint provides a comprehensive view of grade performance across courses, including enrollment counts, pass rates, and average grades. Returns: A paginated list of courses with: - Course identification (ID and name) - Enrollment count - Number of students who passed - Average grade ### ai_analytics_perlearner_orgs_learners_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/learners](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_learners_retrieve.md): Enhanced API endpoint for listing learners with comprehensive filtering. This endpoint provides a paginated list of learners with detailed metrics and supports advanced filtering options. It uses DM token authentication and respects department-based access controls. Query Parameters: page (int): Page number for pagination length (int): Number of items per page search (str): Filter by username, email, or full name program (str): Filter by program location (str): Filter by location is_enrolled (bool): Filter for users with enrollments platform (str): Filter by platform start_date (date): Filter by join date (start range) end_date (date): Filter by join date (end range) Returns: A paginated list of learners with comprehensive metrics including: - Course enrollments and completions - Time spent on platform - Pathway progress - Certificate and skill information - Location data Access Control: - Platform admins can see all learners - Department admins can only see learners in their departments ### ai_analytics_perlearner_orgs_users_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_retrieve.md): List all learners on the platform with aggregated metrics. This endpoint returns a paginated list of all learners with key metrics including: - Enrollment counts - Completion counts - Time spent on platform Query Parameters: page (int): Page number for pagination length (int): Number of items per page search (str): Filter learners by username, email, or name Returns: A paginated list of learners with their associated metrics. ### ai_analytics_perlearner_orgs_users_activity_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/activity/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_activity_retrieve.md): Provides information on user enrollments Params user_id e.g developer@ibleducation.com| developer ### ai_analytics_perlearner_orgs_users_courses_grading_cutoffs_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/grading/cutoffs](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_grading_cutoffs_retrieve.md): Provides about a learner current grade in a course with the course cut Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### ai_analytics_perlearner_orgs_users_courses_grading_detail_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/grading/detail](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_grading_detail_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### ai_analytics_perlearner_orgs_users_courses_grading_summary_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/grading/summary](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_grading_summary_retrieve.md): Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### ai_analytics_perlearner_orgs_users_courses_overview_engagement_index_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/overview/engagement-index](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_overview_engagement_index_retrieve.md): Average of days with atleast an activity within ENGAGEMENT_INDEX_PERIOD consecutive days for a learner in a course ### ai_analytics_perlearner_orgs_users_courses_overview_grade_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/overview/grade](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_overview_grade_retrieve.md): Provides about a learner current grade in a course with the course cut Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### ai_analytics_perlearner_orgs_users_courses_overview_performance_index_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/overview/performance-index](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_overview_performance_index_retrieve.md): Evaluates performance index for platform, per course, per user and per user-per course Query Params course_id learner_id ### ai_analytics_perlearner_orgs_users_courses_overview_time_over_time_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/overview/time/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_overview_time_over_time_retrieve.md): Time spent within a course in secs on a per-day basis Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) Query Params 3. start_date e.g 2020-10-01 4. end_date e.g 2020-10-10 Default result when no query param is added is last_7_days (today inclusive) ### ai_analytics_perlearner_orgs_users_courses_videos_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/videos](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_videos_retrieve.md): List of videos within a course a learner has watched Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) Default result when no query param is added is [], 0 ### ai_analytics_perlearner_orgs_users_courses_videos_over_time_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/videos/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_courses_videos_over_time_retrieve.md): Get video watch counts over time. This endpoint provides daily counts of videos watched over a specified time period, with options to filter by course or user. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: Daily video watch counts over the specified time period. Default time range is the last 7 days if no dates are specified. Access Control: - Platform admins can access any video watch data - Learners can access their own video watch data ### ai_analytics_perlearner_orgs_users_grades_per_course_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/grades/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_grades_per_course_retrieve.md): Summary Grading Information for a learner on a per-enrollment basis Query Params 1. user_id e.g developer@ibleducation.com or dev123 (username|email) ### ai_analytics_perlearner_orgs_users_info_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/info](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_info_retrieve.md): Retrieve detailed information about a specific learner. This endpoint returns personal and activity information about a learner, including profile data, activity metrics, and location information. Path Parameters: user_id (str): The username or email of the learner Query Parameters: meta (bool): Include additional analytics information when true Returns: Detailed learner information including: - Profile data (username, name, email) - Registration and activity dates - Activity metrics (assessments, time spent, videos watched) - Location and browser information (when available) Access Control: - Platform admins can access any learner - Learners can access their own information - Department admins can access learners in their departments ### ai_analytics_perlearner_orgs_users_last_access_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/last-access](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_last_access_retrieve.md): Last course accessed by a learner, includes upto unit information as well ### ai_analytics_perlearner_orgs_users_overview_engagement_index_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/overview/engagement-index](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_overview_engagement_index_retrieve.md): Average of days with atleast an activity within ENGAGEMENT_INDEX_PERIOD consecutive days ### ai_analytics_perlearner_orgs_users_overview_grades_average_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/overview/grades/average](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_overview_grades_average_retrieve.md): Get average grade value for platform, course, or user. This endpoint returns the average grade at different levels: - Platform level: Average grade across all courses - Course level: Average grade for a specific course - Learner level: Average grade for a specific learner - Course-learner level: Grade for a specific learner in a specific course Query Parameters: course_id (str, optional): Filter by course ID learner_id (str, optional): Filter by username or email Returns: The average grade value based on the specified filters. Access Control: - Platform admins can access any grade data - Learners can access their own grade data ### ai_analytics_perlearner_orgs_users_overview_performance_index_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/overview/performance-index](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_overview_performance_index_retrieve.md): Evaluates performance index for platform, per course, per user and per user-per course Query Params course_id learner_id ### ai_analytics_perlearner_orgs_users_overview_time_over_time_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/overview/time/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_overview_time_over_time_retrieve.md): Time spent in secs on a per-day basis Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) 3. start_date e.g 2020-10-01 4. end_date e.g 2020-10-10 Default result when no query param is added is last_7_days (today inclusive) ### ai_analytics_perlearner_orgs_users_videos_over_time_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/videos/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_videos_over_time_retrieve.md): Get video watch counts over time. This endpoint provides daily counts of videos watched over a specified time period, with options to filter by course or user. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: Daily video watch counts over the specified time period. Default time range is the last 7 days if no dates are specified. Access Control: - Platform admins can access any video watch data - Learners can access their own video watch data ### ai_analytics_perlearner_orgs_users_videos_per_course_retrieve - [GET /api/ai-analytics/perlearner/orgs/{org}/users/{user_id}/videos/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_perlearner_orgs_users_videos_per_course_retrieve.md): Summary Videos watched data for a learner per enrollment Query Params 1. user_id e.g developer@ibleducation.com or dev123 (username|email) ### ai_analytics_user_groups_orgs_retrieve - [GET /api/ai-analytics/user-groups/orgs/{org}/](https://docs.ibl.ai/apis/ibl/ai-analytics/ai_analytics_user_groups_orgs_retrieve.md): Get a list of user groups with metrics and filtering options. This endpoint provides a paginated list of user groups with aggregated metrics about learner performance, course completions, and skill acquisition. This endpoint uses DM token authentication and respects department-based access controls. Query Parameters: page (int, optional): Page number for pagination length (int, optional): Number of items per page program (str, optional): Filter by program pathway (str, optional): Filter by pathway groups (list, optional): Filter by group names location (str, optional): Filter by location is_enrolled (bool, optional): Filter for groups with enrolled users start_date (date, optional): Filter by learner join date (start range) end_date (date, optional): Filter by learner join date (end range) Returns: A paginated list of user groups with comprehensive metrics. Access Control: - Platform admins can see all groups - Department admins can only see groups in their departments ### analytics_orgs_time_update_create - [POST /api/analytics/orgs/{org}/time/update/](https://docs.ibl.ai/apis/ibl/ai-analytics/analytics_orgs_time_update_create.md): Update time spent tracking data from client-side events. This endpoint receives time spent data collected on the client side and stores it in the analytics database. It requires a valid authentication token. Methods: POST: Submit time spent tracking data Returns: A response indicating success or failure: { "success": true|false, "message": "Error message if failed" (optional) } Error Responses: 400 Bad Request: If the request data is invalid or the API is disabled Notes: This API must be enabled via the ENABLE_TIME_SPENT_UPDATE_API setting. ### Get total time spent for current user - [GET /api/analytics/time-spent/user/](https://docs.ibl.ai/apis/ibl/ai-analytics/analytics_time_spent_user_retrieve.md): Returns the total time spent (in seconds) for the current authenticated user. Can be filtered by platform, date range, course ID, URL, mentor UUID, and session UUID. ### audience_orgs_active_users_over_time_retrieve - [GET /api/audience/orgs/{org}/active-users/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_active_users_over_time_retrieve.md): Get active user counts over time. This endpoint provides daily counts of active users (users with known activity) over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily active user counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. An active user is defined as a user with any activity within the past 30 days. ### audience_orgs_active_users_per_course_retrieve - [GET /api/audience/orgs/{org}/active-users/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_active_users_per_course_retrieve.md): Get active user counts on a per-course basis. This endpoint provides counts of active users for each course within the specified date range. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) Returns: A list of courses with their active user counts. Default time range is the last 7 days if no dates are specified. ### audience_orgs_active_users_users_retrieve - [GET /api/audience/orgs/{org}/active-users/users](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_active_users_users_retrieve.md): Get a list of active users with activity metrics. This endpoint provides a paginated list of users who have had activity within the specified date range. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) course_id (str, optional): Filter by course ID page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of active users with their activity metrics. Default time range is the last 7 days if no dates are specified. ### audience_orgs_enrollments_courses_over_time_retrieve - [GET /api/audience/orgs/{org}/enrollments/courses/{course_id}/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_enrollments_courses_over_time_retrieve.md): Get enrollment or unenrollment counts over time. This endpoint provides daily counts of new enrollments or unenrollments over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID active (bool): Get enrollments when true, unenrollments when false Returns: Daily counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### audience_orgs_enrollments_courses_users_retrieve - [GET /api/audience/orgs/{org}/enrollments/courses/{course_id}/users](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_enrollments_courses_users_retrieve.md): List users enrolled in a specific course. This endpoint provides a list of users who are enrolled or unenrolled in a specified course. Query Parameters: course_id (str): The course ID to get enrollments for active (bool): Filter for active enrollments when true, inactive when false page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of users with: - Username - Full name - Email - Enrollment timestamp ### audience_orgs_enrollments_over_time_retrieve - [GET /api/audience/orgs/{org}/enrollments/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_enrollments_over_time_retrieve.md): Get enrollment or unenrollment counts over time. This endpoint provides daily counts of new enrollments or unenrollments over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID active (bool): Get enrollments when true, unenrollments when false Returns: Daily counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### audience_orgs_enrollments_per_course_retrieve - [GET /api/audience/orgs/{org}/enrollments/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_enrollments_per_course_retrieve.md): List enrollment statistics on a per-course basis. This endpoint provides enrollment counts for all courses, with options to filter for active or inactive enrollments and to include time-based data. Query Parameters: active (bool): Filter for active enrollments when true, inactive when false start_date (str, optional): Start date for time-based filtering (ISO format) end_date (str, optional): End date for time-based filtering (ISO format) page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with their enrollment counts and percentages. ### audience_orgs_registered_users_retrieve - [GET /api/audience/orgs/{org}/registered-users/](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_registered_users_retrieve.md): List all learners on the platform with aggregated metrics. This endpoint returns a paginated list of all learners with key metrics including: - Enrollment counts - Completion counts - Time spent on platform Query Parameters: page (int): Page number for pagination length (int): Number of items per page search (str): Filter learners by username, email, or name Returns: A paginated list of learners with their associated metrics. ### audience_orgs_registered_users_over_time_retrieve - [GET /api/audience/orgs/{org}/registered-users/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_registered_users_over_time_retrieve.md): Get registered user counts over time. This endpoint provides daily counts of new user registrations over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily registration counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### audience_orgs_registered_users_per_course_retrieve - [GET /api/audience/orgs/{org}/registered-users/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/audience_orgs_registered_users_per_course_retrieve.md): List enrollment statistics on a per-course basis. This endpoint provides enrollment counts for all courses, with options to filter for active or inactive enrollments and to include time-based data. Query Parameters: active (bool): Filter for active enrollments when true, inactive when false start_date (str, optional): Start date for time-based filtering (ISO format) end_date (str, optional): End date for time-based filtering (ISO format) page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with their enrollment counts and percentages. ### engagement_orgs_activity_retrieve - [GET /api/engagement/orgs/{org}/activity](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_activity_retrieve.md): Get engagement metrics on a per-course basis. This endpoint provides a paginated list of courses with engagement metrics including activity counts, time spent, and interaction data. Query Parameters: page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with their engagement metrics. ### engagement_orgs_course_completion_over_time_retrieve - [GET /api/engagement/orgs/{org}/course_completion/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_course_completion_over_time_retrieve.md): Completion count per user per course across the platform Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 Default result when no query param is added is last_7_days (today inclusive) ### engagement_orgs_course_completion_per_course_retrieve - [GET /api/engagement/orgs/{org}/course_completion/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_course_completion_per_course_retrieve.md): List course completion metrics on a per-course basis. This endpoint provides a paginated table of courses with enrollment and completion statistics for each course. Returns: A paginated list of courses with: - Course identification (ID and name) - Enrollment count - Completion count - Average completion rate ### engagement_orgs_courses_time_average_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/time/average](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_time_average_retrieve.md): Average time spent in secs on a per-day basis Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 3. course_id Default result when no query param is added is last_7_days (today inclusive) ### engagement_orgs_courses_time_detail_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/time/detail](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_time_detail_retrieve.md): Time spent per course in secs in a tree like form Kwargs course_id e.g course-v1:Org+Course4+Run Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 ### engagement_orgs_courses_time_over_time_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/time/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_time_over_time_retrieve.md): Time spent per course in secs on a per-day basis Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 Kwargs 3. course_id Default result when no query param is added is last_7_days (today inclusive) ### engagement_orgs_courses_time_users_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/time/users](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_time_users_retrieve.md): Time spent by users in a course Query Params course_id e.g course-v1:Org+Course4+Run ### engagement_orgs_courses_time_users_detail_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/time/users/{user_id}/detail](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_time_users_detail_retrieve.md): Time spent within a course in ordered hierarchical format Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) Query Params 3. start_date e.g 2020-10-01 4. end_date e.g 2020-10-10 ### engagement_orgs_courses_time_users_over_time_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/time/users/{user_id}/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_time_users_over_time_retrieve.md): Time spent in secs on a per-day basis Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) 3. start_date e.g 2020-10-01 4. end_date e.g 2020-10-10 Default result when no query param is added is last_7_days (today inclusive) ### engagement_orgs_courses_videos_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/videos/](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_videos_retrieve.md): Get video engagement metrics for a specific course. This endpoint provides detailed video engagement statistics for a single course, including view counts, completion rates, and time spent on videos. Query Parameters: course_id (str): The course ID to get video engagement data for Returns: Detailed video engagement metrics for the specified course. ### engagement_orgs_courses_videos_over_time_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/videos/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_videos_over_time_retrieve.md): Get video watch counts over time. This endpoint provides daily counts of videos watched over a specified time period, with options to filter by course or user. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: Daily video watch counts over the specified time period. Default time range is the last 7 days if no dates are specified. Access Control: - Platform admins can access any video watch data - Learners can access their own video watch data ### engagement_orgs_courses_videos_summary_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/videos/summary](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_videos_summary_retrieve.md): Get a summary of video watch statistics for a specific course. This endpoint provides a structured summary of video watch data for a course, organized in a tree-like format by course sections and subsections. Query Parameters: course_id (str): The course ID to get video summary for Returns: A hierarchical structure of video watch data for the course, including: - Section and subsection organization - Video identification and metadata - Watch counts and completion rates ### engagement_orgs_courses_videos_users_retrieve - [GET /api/engagement/orgs/{org}/courses/{course_id}/videos/users](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_courses_videos_users_retrieve.md): List of users' videos completed records for a specific course Kwargs course_id e.g course-v1:Org+Course4+Run ### engagement_orgs_time_average_perlearner_percourse_retrieve - [GET /api/engagement/orgs/{org}/time/average-perlearner-percourse](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_time_average_perlearner_percourse_retrieve.md): Average time spent by a learner in enrolled courses. Gives a rough estimate of whats the average time that would be spent by a learner in a course Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 ### engagement_orgs_time_average_with_over_time_retrieve - [GET /api/engagement/orgs/{org}/time/average-with-over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_time_average_with_over_time_retrieve.md): Average time spent in secs on a per-day basis Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 3. course_id Default result when no query param is added is last_7_days (today inclusive) ### engagement_orgs_time_over_time_retrieve - [GET /api/engagement/orgs/{org}/time/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_time_over_time_retrieve.md): Get time spent on the platform over time. This endpoint provides daily time spent values (in seconds) across the platform over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily time spent values over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### engagement_orgs_time_per_course_retrieve - [GET /api/engagement/orgs/{org}/time/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_time_per_course_retrieve.md): Get time spent statistics on a per-course basis. This endpoint provides a paginated list of courses with the total time spent by users in each course. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with: - Course identification (ID and name) - Total time spent (in seconds) - Formatted time spent (human-readable) - Percentage of total platform time ### engagement_orgs_videos_retrieve - [GET /api/engagement/orgs/{org}/videos/](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_videos_retrieve.md): Get video engagement metrics on a per-course basis. This endpoint provides a paginated list of courses with video engagement metrics including view counts, completion rates, and time spent on videos. Query Parameters: page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with their video engagement metrics. ### engagement_orgs_videos_over_time_retrieve - [GET /api/engagement/orgs/{org}/videos/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/engagement_orgs_videos_over_time_retrieve.md): Get video watch counts over time. This endpoint provides daily counts of videos watched over a specified time period, with options to filter by course or user. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: Daily video watch counts over the specified time period. Default time range is the last 7 days if no dates are specified. Access Control: - Platform admins can access any video watch data - Learners can access their own video watch data ### overview_orgs_active_users_retrieve - [GET /api/overview/orgs/{org}/active-users](https://docs.ibl.ai/apis/ibl/ai-analytics/overview_orgs_active_users_retrieve.md): Get active user counts over time. This endpoint provides daily counts of active users (users with known activity) over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily active user counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. An active user is defined as a user with any activity within the past 30 days. ### overview_orgs_average_grade_retrieve - [GET /api/overview/orgs/{org}/average-grade](https://docs.ibl.ai/apis/ibl/ai-analytics/overview_orgs_average_grade_retrieve.md): Get average grade value for platform, course, or user. This endpoint returns the average grade at different levels: - Platform level: Average grade across all courses - Course level: Average grade for a specific course - Learner level: Average grade for a specific learner - Course-learner level: Grade for a specific learner in a specific course Query Parameters: course_id (str, optional): Filter by course ID learner_id (str, optional): Filter by username or email Returns: The average grade value based on the specified filters. Access Control: - Platform admins can access any grade data - Learners can access their own grade data ### overview_orgs_courses_completions_retrieve - [GET /api/overview/orgs/{org}/courses/completions](https://docs.ibl.ai/apis/ibl/ai-analytics/overview_orgs_courses_completions_retrieve.md): Get course completion summary metrics over time. This endpoint provides completion statistics across the platform over a specified time period, including daily completion counts and overall metrics. Query Parameters: start_date (str): Start date for the time range (ISO format) end_date (str): End date for the time range (ISO format) Returns: Completion data including: - Daily completion counts over time - Total unique user count - Total completion count - Completion percentage - Change metrics compared to previous periods Default time range is the last 7 days if no dates are specified. ### overview_orgs_learners_retrieve - [GET /api/overview/orgs/{org}/learners](https://docs.ibl.ai/apis/ibl/ai-analytics/overview_orgs_learners_retrieve.md): List all learners on the platform with aggregated metrics. This endpoint returns a paginated list of all learners with key metrics including: - Enrollment counts - Completion counts - Time spent on platform Query Parameters: page (int): Page number for pagination length (int): Number of items per page search (str): Filter learners by username, email, or name Returns: A paginated list of learners with their associated metrics. ### overview_orgs_most_active_courses_retrieve - [GET /api/overview/orgs/{org}/most-active-courses](https://docs.ibl.ai/apis/ibl/ai-analytics/overview_orgs_most_active_courses_retrieve.md): Get time spent statistics on a per-course basis. This endpoint provides a paginated list of courses with the total time spent by users in each course. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) page (int, optional): Page number for pagination length (int, optional): Number of items per page Returns: A paginated list of courses with: - Course identification (ID and name) - Total time spent (in seconds) - Formatted time spent (human-readable) - Percentage of total platform time ### overview_orgs_registered_users_retrieve - [GET /api/overview/orgs/{org}/registered-users](https://docs.ibl.ai/apis/ibl/ai-analytics/overview_orgs_registered_users_retrieve.md): Get registered user counts over time. This endpoint provides daily counts of new user registrations over a specified time period. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) Returns: Daily registration counts over the specified time period, with change metrics compared to previous periods. Default time range is the last 7 days if no dates are specified. ### performance_orgs_courses_grading_average_retrieve - [GET /api/performance/orgs/{org}/courses/{course_id}/grading/average](https://docs.ibl.ai/apis/ibl/ai-analytics/performance_orgs_courses_grading_average_retrieve.md): Get average grade value for platform, course, or user. This endpoint returns the average grade at different levels: - Platform level: Average grade across all courses - Course level: Average grade for a specific course - Learner level: Average grade for a specific learner - Course-learner level: Grade for a specific learner in a specific course Query Parameters: course_id (str, optional): Filter by course ID learner_id (str, optional): Filter by username or email Returns: The average grade value based on the specified filters. Access Control: - Platform admins can access any grade data - Learners can access their own grade data ### performance_orgs_courses_grading_average_with_cutoff_retrieve - [GET /api/performance/orgs/{org}/courses/{course_id}/grading/average-with-cutoff](https://docs.ibl.ai/apis/ibl/ai-analytics/performance_orgs_courses_grading_average_with_cutoff_retrieve.md): Returns average course grade and grade cuttoff e.g Kwargs course_id ### performance_orgs_courses_grading_detail_retrieve - [GET /api/performance/orgs/{org}/courses/{course_id}/grading/detail](https://docs.ibl.ai/apis/ibl/ai-analytics/performance_orgs_courses_grading_detail_retrieve.md): Grading summary for the entire course overview in a tree-like format Kwargs course_id ### performance_orgs_courses_grading_per_learner_retrieve - [GET /api/performance/orgs/{org}/courses/{course_id}/grading/per-learner](https://docs.ibl.ai/apis/ibl/ai-analytics/performance_orgs_courses_grading_per_learner_retrieve.md): Grading information per enrolled user in a course Kwargs course_id ### performance_orgs_courses_grading_summary_retrieve - [GET /api/performance/orgs/{org}/courses/{course_id}/grading/summary](https://docs.ibl.ai/apis/ibl/ai-analytics/performance_orgs_courses_grading_summary_retrieve.md): Returns average grades across various assignment types in a course Query Params course_id Returns: dict { "data": [ { "assignment_type': , "weight": , "average_weighted_grade": , "average_section_grade": }, ... ] } ### performance_orgs_grading_average_retrieve - [GET /api/performance/orgs/{org}/grading/average](https://docs.ibl.ai/apis/ibl/ai-analytics/performance_orgs_grading_average_retrieve.md): Get average grade value for platform, course, or user. This endpoint returns the average grade at different levels: - Platform level: Average grade across all courses - Course level: Average grade for a specific course - Learner level: Average grade for a specific learner - Course-learner level: Grade for a specific learner in a specific course Query Parameters: course_id (str, optional): Filter by course ID learner_id (str, optional): Filter by username or email Returns: The average grade value based on the specified filters. Access Control: - Platform admins can access any grade data - Learners can access their own grade data ### performance_orgs_grading_per_course_retrieve - [GET /api/performance/orgs/{org}/grading/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/performance_orgs_grading_per_course_retrieve.md): List grade-related performance data for all courses. This endpoint provides a comprehensive view of grade performance across courses, including enrollment counts, pass rates, and average grades. Returns: A paginated list of courses with: - Course identification (ID and name) - Enrollment count - Number of students who passed - Average grade ### perlearner_orgs_learners_retrieve - [GET /api/perlearner/orgs/{org}/learners](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_learners_retrieve.md): Enhanced API endpoint for listing learners with comprehensive filtering. This endpoint provides a paginated list of learners with detailed metrics and supports advanced filtering options. It uses DM token authentication and respects department-based access controls. Query Parameters: page (int): Page number for pagination length (int): Number of items per page search (str): Filter by username, email, or full name program (str): Filter by program location (str): Filter by location is_enrolled (bool): Filter for users with enrollments platform (str): Filter by platform start_date (date): Filter by join date (start range) end_date (date): Filter by join date (end range) Returns: A paginated list of learners with comprehensive metrics including: - Course enrollments and completions - Time spent on platform - Pathway progress - Certificate and skill information - Location data Access Control: - Platform admins can see all learners - Department admins can only see learners in their departments ### perlearner_orgs_users_retrieve - [GET /api/perlearner/orgs/{org}/users](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_retrieve.md): List all learners on the platform with aggregated metrics. This endpoint returns a paginated list of all learners with key metrics including: - Enrollment counts - Completion counts - Time spent on platform Query Parameters: page (int): Page number for pagination length (int): Number of items per page search (str): Filter learners by username, email, or name Returns: A paginated list of learners with their associated metrics. ### perlearner_orgs_users_activity_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/activity/](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_activity_retrieve.md): Provides information on user enrollments Params user_id e.g developer@ibleducation.com| developer ### perlearner_orgs_users_courses_grading_cutoffs_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/grading/cutoffs](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_grading_cutoffs_retrieve.md): Provides about a learner current grade in a course with the course cut Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### perlearner_orgs_users_courses_grading_detail_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/grading/detail](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_grading_detail_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### perlearner_orgs_users_courses_grading_summary_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/grading/summary](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_grading_summary_retrieve.md): Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### perlearner_orgs_users_courses_overview_engagement_index_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/overview/engagement-index](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_overview_engagement_index_retrieve.md): Average of days with atleast an activity within ENGAGEMENT_INDEX_PERIOD consecutive days for a learner in a course ### perlearner_orgs_users_courses_overview_grade_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/overview/grade](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_overview_grade_retrieve.md): Provides about a learner current grade in a course with the course cut Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### perlearner_orgs_users_courses_overview_performance_index_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/overview/performance-index](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_overview_performance_index_retrieve.md): Evaluates performance index for platform, per course, per user and per user-per course Query Params course_id learner_id ### perlearner_orgs_users_courses_overview_time_over_time_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/overview/time/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_overview_time_over_time_retrieve.md): Time spent within a course in secs on a per-day basis Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) Query Params 3. start_date e.g 2020-10-01 4. end_date e.g 2020-10-10 Default result when no query param is added is last_7_days (today inclusive) ### perlearner_orgs_users_courses_videos_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/videos](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_videos_retrieve.md): List of videos within a course a learner has watched Kwargs 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) Default result when no query param is added is [], 0 ### perlearner_orgs_users_courses_videos_over_time_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/courses/{course_id}/videos/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_courses_videos_over_time_retrieve.md): Get video watch counts over time. This endpoint provides daily counts of videos watched over a specified time period, with options to filter by course or user. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: Daily video watch counts over the specified time period. Default time range is the last 7 days if no dates are specified. Access Control: - Platform admins can access any video watch data - Learners can access their own video watch data ### perlearner_orgs_users_grades_per_course_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/grades/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_grades_per_course_retrieve.md): Summary Grading Information for a learner on a per-enrollment basis Query Params 1. user_id e.g developer@ibleducation.com or dev123 (username|email) ### perlearner_orgs_users_info_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/info](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_info_retrieve.md): Retrieve detailed information about a specific learner. This endpoint returns personal and activity information about a learner, including profile data, activity metrics, and location information. Path Parameters: user_id (str): The username or email of the learner Query Parameters: meta (bool): Include additional analytics information when true Returns: Detailed learner information including: - Profile data (username, name, email) - Registration and activity dates - Activity metrics (assessments, time spent, videos watched) - Location and browser information (when available) Access Control: - Platform admins can access any learner - Learners can access their own information - Department admins can access learners in their departments ### perlearner_orgs_users_last_access_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/last-access](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_last_access_retrieve.md): Last course accessed by a learner, includes upto unit information as well ### perlearner_orgs_users_overview_engagement_index_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/overview/engagement-index](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_overview_engagement_index_retrieve.md): Average of days with atleast an activity within ENGAGEMENT_INDEX_PERIOD consecutive days ### perlearner_orgs_users_overview_grades_average_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/overview/grades/average](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_overview_grades_average_retrieve.md): Get average grade value for platform, course, or user. This endpoint returns the average grade at different levels: - Platform level: Average grade across all courses - Course level: Average grade for a specific course - Learner level: Average grade for a specific learner - Course-learner level: Grade for a specific learner in a specific course Query Parameters: course_id (str, optional): Filter by course ID learner_id (str, optional): Filter by username or email Returns: The average grade value based on the specified filters. Access Control: - Platform admins can access any grade data - Learners can access their own grade data ### perlearner_orgs_users_overview_performance_index_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/overview/performance-index](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_overview_performance_index_retrieve.md): Evaluates performance index for platform, per course, per user and per user-per course Query Params course_id learner_id ### perlearner_orgs_users_overview_time_over_time_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/overview/time/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_overview_time_over_time_retrieve.md): Time spent in secs on a per-day basis Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) 3. start_date e.g 2020-10-01 4. end_date e.g 2020-10-10 Default result when no query param is added is last_7_days (today inclusive) ### perlearner_orgs_users_videos_over_time_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/videos/over-time](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_videos_over_time_retrieve.md): Get video watch counts over time. This endpoint provides daily counts of videos watched over a specified time period, with options to filter by course or user. Query Parameters: start_date (str, optional): Start date for the time range (ISO format) end_date (str, optional): End date for the time range (ISO format) course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: Daily video watch counts over the specified time period. Default time range is the last 7 days if no dates are specified. Access Control: - Platform admins can access any video watch data - Learners can access their own video watch data ### perlearner_orgs_users_videos_per_course_retrieve - [GET /api/perlearner/orgs/{org}/users/{user_id}/videos/per-course](https://docs.ibl.ai/apis/ibl/ai-analytics/perlearner_orgs_users_videos_per_course_retrieve.md): Summary Videos watched data for a learner per enrollment Query Params 1. user_id e.g developer@ibleducation.com or dev123 (username|email) ### platform_orgs_retrieve - [GET /api/platform/orgs/{org}/](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_retrieve.md): Get a list of registered users on the platform. This endpoint provides a list of all registered users with basic profile information including username, name, email, and registration date. Returns: A list of registered users with their profile information. ### platform_orgs_courses_progress_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/progress/](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_progress_retrieve.md): Completion information per enrolled user Gives Percentage of units completed in course Query Params course_id user_id ### platform_orgs_courses_progress_average_days_to_complete_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/progress/average-days-to-complete](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_progress_average_days_to_complete_retrieve.md): Average days used to complete a course Query Params 1. course_id e.g course-v1:Org+Course4+Run ### platform_orgs_courses_progress_average_time_to_complete_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/progress/average-time-to-complete](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_progress_average_time_to_complete_retrieve.md): Average time used to complete a course in secs Query Params 1. course_id e.g course-v1:Org+Course4+Run ### platform_orgs_courses_progress_completed_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/progress/completed](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_progress_completed_retrieve.md): Get completion count statistics. This endpoint returns completion counts at different levels: - Platform level: Total users who have completed at least one course - Course level: Total completions for a specific course - Learner level: Total courses completed by a specific learner Query Parameters: course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: A count of completions based on the specified filters. ### platform_orgs_courses_progress_completion_rate_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/progress/completion-rate](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_progress_completion_rate_retrieve.md): Average of total completed units ### platform_orgs_courses_progress_in_progress_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/progress/in-progress](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_progress_in_progress_retrieve.md): In Progress means any unit completion in the past 30 days For platform : Total users who have atleast a course in_progress on the platform For course : Total users For learner : Total courses in progress Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### platform_orgs_courses_progress_started_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/progress/started](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_progress_started_retrieve.md): Started means an enrollment For platform : Total users who have atleast an enrollment For course : Total users enrolled For learner : Total courses in progress Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### platform_orgs_courses_users_grades_passed_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/users/{user_id}/grades/passed](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_users_grades_passed_retrieve.md): Base class for API views that return a single count value. This class formats the response as {"data": {value_key: count}} where value_key is configurable (defaults to "count"). Attributes: value_key: The key used in the response for the count value ### platform_orgs_courses_users_progress_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/users/{user_id}/progress](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_users_progress_retrieve.md): Gives Percentage of units completed in course for a specific learner ### platform_orgs_courses_users_progress_days_to_complete_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/users/{user_id}/progress/days-to-complete](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_users_progress_days_to_complete_retrieve.md): Average days used to complete a course Query Params 1. course_id e.g course-v1:Org+Course4+Run ### platform_orgs_courses_users_time_count_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/users/{user_id}/time/count](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_users_time_count_retrieve.md): Time spent count in seconds within a course by a learner ### platform_orgs_courses_users_videos_count_retrieve - [GET /api/platform/orgs/{org}/courses/{course_id}/users/{user_id}/videos/count](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_users_videos_count_retrieve.md): (Total videos watched / Total Course Videos) or Total Videos watched in a course by a learner ### platform_orgs_courses_videos_retrieve_2 - [GET /api/platform/orgs/{org}/courses/{course_id}/videos/](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_videos_retrieve_2.md): Count of total videos in a course Query Params course_id e.g course-v1:Org+Course4+Run ### platform_orgs_courses_count_retrieve - [GET /api/platform/orgs/{org}/courses/count](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_count_retrieve.md): Get total count of courses on the platform. This endpoint returns the total number of courses available on the platform. Returns: The total count of courses on the platform. ### platform_orgs_courses_grades_retrieve - [GET /api/platform/orgs/{org}/courses/grades](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_grades_retrieve.md): List grading information on a per-course basis. This endpoint provides grading statistics for all courses, including average grades and completion rates. Returns: A list of courses with their associated grading metrics. ### platform_orgs_courses_videos_retrieve - [GET /api/platform/orgs/{org}/courses/videos](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_courses_videos_retrieve.md): Get video watch statistics on a per-course basis. This endpoint provides a list of courses with aggregated video watch metrics, including total views and completion percentages. Returns: A list of courses with: - Course identification (ID and name) - Video watch count - Percentage of total videos watched ### platform_orgs_progress_completed_retrieve - [GET /api/platform/orgs/{org}/progress/completed](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_progress_completed_retrieve.md): Get completion count statistics. This endpoint returns completion counts at different levels: - Platform level: Total users who have completed at least one course - Course level: Total completions for a specific course - Learner level: Total courses completed by a specific learner Query Parameters: course_id (str, optional): Filter by course ID user_id (str, optional): Filter by username or email Returns: A count of completions based on the specified filters. ### platform_orgs_progress_completion_rate_retrieve - [GET /api/platform/orgs/{org}/progress/completion-rate](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_progress_completion_rate_retrieve.md): Average of total completed units ### platform_orgs_progress_in_progress_retrieve - [GET /api/platform/orgs/{org}/progress/in-progress](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_progress_in_progress_retrieve.md): In Progress means any unit completion in the past 30 days For platform : Total users who have atleast a course in_progress on the platform For course : Total users For learner : Total courses in progress Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### platform_orgs_progress_started_retrieve - [GET /api/platform/orgs/{org}/progress/started](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_progress_started_retrieve.md): Started means an enrollment For platform : Total users who have atleast an enrollment For course : Total users enrolled For learner : Total courses in progress Query Params 1. course_id e.g course-v1:Org+Course4+Run 2. user_id e.g developer@ibleducation.com or dev123 (username|email) ### platform_orgs_time_count_retrieve - [GET /api/platform/orgs/{org}/time/count](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_time_count_retrieve.md): Total time spent count on the platform within specified range or all time Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 Default result is all time ### platform_orgs_users_active_count_retrieve - [GET /api/platform/orgs/{org}/users/active/count](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_users_active_count_retrieve.md): Get count of active users on the platform. This endpoint returns the number of users who have had activity on the platform, either for all time or within a specified date range. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) Returns: The count of active users and change metrics compared to previous periods. Default behavior returns the count for all time if no date range is specified. ### platform_orgs_users_count_retrieve - [GET /api/platform/orgs/{org}/users/count](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_users_count_retrieve.md): Get count of registered users on the platform. This endpoint returns the number of users registered on the platform, either for all time or within a specified date range. Query Parameters: start_date (str, optional): Start date for filtering (ISO format) end_date (str, optional): End date for filtering (ISO format) Returns: The count of registered users and change metrics compared to previous periods. Default behavior returns the count for all time if no date range is specified. ### platform_orgs_users_courses_completed_count_retrieve - [GET /api/platform/orgs/{org}/users/courses-completed/count](https://docs.ibl.ai/apis/ibl/ai-analytics/platform_orgs_users_courses_completed_count_retrieve.md): Count of users who have completed a course on the platform within specified range or all time Query Params 1. start_date e.g 2020-10-01 2. end_date e.g 2020-10-10 Default is all time ## ai-bot ### ai_bot_v1_bots_bot_list - [GET /api/ai-bot/v1/bots/{org}/bot/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_list.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_create - [POST /api/ai-bot/v1/bots/{org}/bot/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_create.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_commands_list - [GET /api/ai-bot/v1/bots/{org}/bot-commands/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_commands_list.md): Create slash commands for a specific bot eg. /iblai-baseline ### ai_bot_v1_bots_bot_commands_create - [POST /api/ai-bot/v1/bots/{org}/bot-commands/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_commands_create.md): Create slash commands for a specific bot eg. /iblai-baseline ### ai_bot_v1_bots_bot_commands_retrieve - [GET /api/ai-bot/v1/bots/{org}/bot-commands/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_commands_retrieve.md): Create slash commands for a specific bot eg. /iblai-baseline ### ai_bot_v1_bots_bot_commands_update - [PUT /api/ai-bot/v1/bots/{org}/bot-commands/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_commands_update.md): Create slash commands for a specific bot eg. /iblai-baseline ### ai_bot_v1_bots_bot_commands_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/bot-commands/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_commands_partial_update.md): Create slash commands for a specific bot eg. /iblai-baseline ### ai_bot_v1_bots_bot_commands_destroy - [DELETE /api/ai-bot/v1/bots/{org}/bot-commands/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_commands_destroy.md): Create slash commands for a specific bot eg. /iblai-baseline ### ai_bot_v1_bots_bot_retrieve - [GET /api/ai-bot/v1/bots/{org}/bot/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_retrieve.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_update - [PUT /api/ai-bot/v1/bots/{org}/bot/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/bot/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_partial_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_destroy - [DELETE /api/ai-bot/v1/bots/{org}/bot/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_destroy.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_discord_retrieve - [GET /api/ai-bot/v1/bots/{org}/bot/{id}/config/discord/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_discord_retrieve.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_discord_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/bot/{id}/config/discord/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_discord_partial_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_slack_retrieve - [GET /api/ai-bot/v1/bots/{org}/bot/{id}/config/slack/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_slack_retrieve.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_slack_update_create - [POST /api/ai-bot/v1/bots/{org}/bot/{id}/config/slack/update/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_slack_update_create.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_slack_update_update - [PUT /api/ai-bot/v1/bots/{org}/bot/{id}/config/slack/update/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_slack_update_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_slack_update_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/bot/{id}/config/slack/update/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_slack_update_partial_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_teams_retrieve - [GET /api/ai-bot/v1/bots/{org}/bot/{id}/config/teams/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_teams_retrieve.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_teams_update_create - [POST /api/ai-bot/v1/bots/{org}/bot/{id}/config/teams/update/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_teams_update_create.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_teams_update_update - [PUT /api/ai-bot/v1/bots/{org}/bot/{id}/config/teams/update/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_teams_update_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_teams_update_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/bot/{id}/config/teams/update/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_teams_update_partial_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_webex_retrieve - [GET /api/ai-bot/v1/bots/{org}/bot/{id}/config/webex/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_webex_retrieve.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_webex_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/bot/{id}/config/webex/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_webex_partial_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_config_whatsapp_retrieve - [GET /api/ai-bot/v1/bots/{org}/bot/{id}/config/whatsapp/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_config_whatsapp_retrieve.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_whatsapp_config_update - [PUT /api/ai-bot/v1/bots/{org}/bot/{id}/whatsapp-config/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_whatsapp_config_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_bot_whatsapp_config_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/bot/{id}/whatsapp-config/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_bot_whatsapp_config_partial_update.md): Create modify and update bot information for a specific tenant. ### ai_bot_v1_bots_discord_user_config_list - [GET /api/ai-bot/v1/bots/{org}/discord-user-config/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_discord_user_config_list.md): Setup discord user id linkage with discord bots this will be used to authenticate the user when interracting with discord bots. the user id can be copied from the discord app after tapping on the user profile. ### ai_bot_v1_bots_discord_user_config_create - [POST /api/ai-bot/v1/bots/{org}/discord-user-config/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_discord_user_config_create.md): Setup discord user id linkage with discord bots this will be used to authenticate the user when interracting with discord bots. the user id can be copied from the discord app after tapping on the user profile. ### ai_bot_v1_bots_discord_user_config_retrieve - [GET /api/ai-bot/v1/bots/{org}/discord-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_discord_user_config_retrieve.md): Setup discord user id linkage with discord bots this will be used to authenticate the user when interracting with discord bots. the user id can be copied from the discord app after tapping on the user profile. ### ai_bot_v1_bots_discord_user_config_update - [PUT /api/ai-bot/v1/bots/{org}/discord-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_discord_user_config_update.md): Setup discord user id linkage with discord bots this will be used to authenticate the user when interracting with discord bots. the user id can be copied from the discord app after tapping on the user profile. ### ai_bot_v1_bots_discord_user_config_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/discord-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_discord_user_config_partial_update.md): Setup discord user id linkage with discord bots this will be used to authenticate the user when interracting with discord bots. the user id can be copied from the discord app after tapping on the user profile. ### ai_bot_v1_bots_discord_user_config_destroy - [DELETE /api/ai-bot/v1/bots/{org}/discord-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_discord_user_config_destroy.md): Setup discord user id linkage with discord bots this will be used to authenticate the user when interracting with discord bots. the user id can be copied from the discord app after tapping on the user profile. ### ai_bot_v1_bots_slack_user_config_list - [GET /api/ai-bot/v1/bots/{org}/slack-user-config/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_slack_user_config_list.md): Setup slack username and domain linkage with slack bots this will be used to authenticate the user when interracting with slack bots. ### ai_bot_v1_bots_slack_user_config_create - [POST /api/ai-bot/v1/bots/{org}/slack-user-config/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_slack_user_config_create.md): Setup slack username and domain linkage with slack bots this will be used to authenticate the user when interracting with slack bots. ### ai_bot_v1_bots_slack_user_config_retrieve - [GET /api/ai-bot/v1/bots/{org}/slack-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_slack_user_config_retrieve.md): Setup slack username and domain linkage with slack bots this will be used to authenticate the user when interracting with slack bots. ### ai_bot_v1_bots_slack_user_config_update - [PUT /api/ai-bot/v1/bots/{org}/slack-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_slack_user_config_update.md): Setup slack username and domain linkage with slack bots this will be used to authenticate the user when interracting with slack bots. ### ai_bot_v1_bots_slack_user_config_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/slack-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_slack_user_config_partial_update.md): Setup slack username and domain linkage with slack bots this will be used to authenticate the user when interracting with slack bots. ### ai_bot_v1_bots_slack_user_config_destroy - [DELETE /api/ai-bot/v1/bots/{org}/slack-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_slack_user_config_destroy.md): Setup slack username and domain linkage with slack bots this will be used to authenticate the user when interracting with slack bots. ### ai_bot_v1_bots_whatsapp_user_config_list - [GET /api/ai-bot/v1/bots/{org}/whatsapp-user-config/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_whatsapp_user_config_list.md): Setup phone number linkage with whatsapp bots This phone number will be used to authenticate and allow access to whatsapp bots. ### ai_bot_v1_bots_whatsapp_user_config_create - [POST /api/ai-bot/v1/bots/{org}/whatsapp-user-config/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_whatsapp_user_config_create.md): Setup phone number linkage with whatsapp bots This phone number will be used to authenticate and allow access to whatsapp bots. ### ai_bot_v1_bots_whatsapp_user_config_retrieve - [GET /api/ai-bot/v1/bots/{org}/whatsapp-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_whatsapp_user_config_retrieve.md): Setup phone number linkage with whatsapp bots This phone number will be used to authenticate and allow access to whatsapp bots. ### ai_bot_v1_bots_whatsapp_user_config_update - [PUT /api/ai-bot/v1/bots/{org}/whatsapp-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_whatsapp_user_config_update.md): Setup phone number linkage with whatsapp bots This phone number will be used to authenticate and allow access to whatsapp bots. ### ai_bot_v1_bots_whatsapp_user_config_partial_update - [PATCH /api/ai-bot/v1/bots/{org}/whatsapp-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_whatsapp_user_config_partial_update.md): Setup phone number linkage with whatsapp bots This phone number will be used to authenticate and allow access to whatsapp bots. ### ai_bot_v1_bots_whatsapp_user_config_destroy - [DELETE /api/ai-bot/v1/bots/{org}/whatsapp-user-config/{id}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_whatsapp_user_config_destroy.md): Setup phone number linkage with whatsapp bots This phone number will be used to authenticate and allow access to whatsapp bots. ### ai_bot_v1_bots_webhooks_discord_create - [POST /api/ai-bot/v1/bots/webhooks/{org}/discord/{name}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_webhooks_discord_create.md): Webhook endpoint to receive and process discord messages. ### ai_bot_v1_bots_webhooks_slack_create - [POST /api/ai-bot/v1/bots/webhooks/{org}/slack/{name}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_webhooks_slack_create.md) ### ai_bot_v1_bots_webhooks_teams_create - [POST /api/ai-bot/v1/bots/webhooks/{org}/teams/{name}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_webhooks_teams_create.md) ### ai_bot_v1_bots_webhooks_webex_create - [POST /api/ai-bot/v1/bots/webhooks/{org}/webex/{name}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_webhooks_webex_create.md): Webhook endpoint to receive and process discord messages. ### ai_bot_v1_bots_webhooks_whatsapp_retrieve - [GET /api/ai-bot/v1/bots/webhooks/{org}/whatsapp/{name}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_webhooks_whatsapp_retrieve.md): Respond to whatsapp's webhook challenge. Parameters Required include the tenant key (org) and the name of the bot: (name) ### ai_bot_v1_bots_webhooks_whatsapp_create - [POST /api/ai-bot/v1/bots/webhooks/{org}/whatsapp/{name}/](https://docs.ibl.ai/apis/ibl/ai-bot/ai_bot_v1_bots_webhooks_whatsapp_create.md): Accept and process webhook events from whatsapp. ## ai-finetuning ### ai_finetuning_v1_org_user_datasets_list - [GET /api/ai-finetuning/v1/org/{org}/user/{username}/datasets/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_datasets_list.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_datasets_create - [POST /api/ai-finetuning/v1/org/{org}/user/{username}/datasets/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_datasets_create.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_datasets_retrieve - [GET /api/ai-finetuning/v1/org/{org}/user/{username}/datasets/{id}/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_datasets_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_datasets_update - [PUT /api/ai-finetuning/v1/org/{org}/user/{username}/datasets/{id}/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_datasets_update.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_datasets_partial_update - [PATCH /api/ai-finetuning/v1/org/{org}/user/{username}/datasets/{id}/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_datasets_partial_update.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_datasets_destroy - [DELETE /api/ai-finetuning/v1/org/{org}/user/{username}/datasets/{id}/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_datasets_destroy.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_trainings_list - [GET /api/ai-finetuning/v1/org/{org}/user/{username}/trainings/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_trainings_list.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_trainings_create - [POST /api/ai-finetuning/v1/org/{org}/user/{username}/trainings/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_trainings_create.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_trainings_retrieve - [GET /api/ai-finetuning/v1/org/{org}/user/{username}/trainings/{id}/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_trainings_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_trainings_update - [PUT /api/ai-finetuning/v1/org/{org}/user/{username}/trainings/{id}/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_trainings_update.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_trainings_partial_update - [PATCH /api/ai-finetuning/v1/org/{org}/user/{username}/trainings/{id}/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_trainings_partial_update.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_trainings_destroy - [DELETE /api/ai-finetuning/v1/org/{org}/user/{username}/trainings/{id}/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_trainings_destroy.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_finetuning_v1_org_user_trainings_finetuned_models_retrieve - [GET /api/ai-finetuning/v1/org/{org}/user/{username}/trainings/finetuned-models/](https://docs.ibl.ai/apis/ibl/ai-finetuning/ai_finetuning_v1_org_user_trainings_finetuned_models_retrieve.md): Retrieves a paginated list of completed fine-tuned models, excluding those without a fine-tuned model. Filtering and pagination is allowed. NB: This is only a helper endpoint. The same functionality can be achieved with the appropriate filters using the training list endpoint. Returns: Response: A paginated response containing the serialized fine-tuned models. ## ai-index ### ai_index_orgs_users_documents_retrieve - [GET /api/ai-index/orgs/{org}/users/{user_id}/documents/{document_id}/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_retrieve.md): Retrieve details of a specific document embedding. This endpoint returns detailed information about a specific document embedding identified by its ID. Args: request: The HTTP request. org: Organization key identifier. document_id: The ID of the document embedding to retrieve. Returns: Response: Detailed information about the document embedding. Raises: NotFound: If the specified document embedding does not exist. ### ai_index_orgs_users_documents_update - [PUT /api/ai-index/orgs/{org}/users/{user_id}/documents/{document_id}/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_update.md): Update a specific document embedding. This endpoint allows updating various properties of a document embedding, including its name, type, pathway, and training status. Args: request: The HTTP request containing the updated document data. org: Organization key identifier. document_id: The ID of the document embedding to update. Returns: Response: The updated document embedding information. Raises: BadRequest: If the provided data is invalid. NotFound: If the specified document embedding does not exist. ### ai_index_orgs_users_documents_destroy - [DELETE /api/ai-index/orgs/{org}/users/{user_id}/documents/{document_id}/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_destroy.md): Delete a specific document embedding. This endpoint removes a document embedding from the system, including untraining it from any associated pathways. Args: request: The HTTP request. org: Organization key identifier. document_id: The ID of the document embedding to delete. Returns: Response: An empty response with a 204 status code if successful. Raises: NotFound: If the specified document embedding does not exist. ### ai_index_orgs_users_documents_settings_retrieve - [GET /api/ai-index/orgs/{org}/users/{user_id}/documents/{document_id}/settings/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_settings_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_index_orgs_users_documents_settings_create - [POST /api/ai-index/orgs/{org}/users/{user_id}/documents/{document_id}/settings/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_settings_create.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_index_orgs_users_documents_graph_train_create - [POST /api/ai-index/orgs/{org}/users/{user_id}/documents/graph-train/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_graph_train_create.md): Train a graph-based document through a worker process. This endpoint queues graph-based documents for training through a specialized worker process that handles knowledge graph processing. Args: request: The HTTP request containing the document information. org: Organization key identifier. Returns: Response: A confirmation that the document was queued for training, including a task ID for tracking the progress. Raises: ValidationError: If the request data is invalid. BadRequest: If there was an error processing the document. ### ai_index_orgs_users_documents_pathways_list - [GET /api/ai-index/orgs/{org}/users/{user_id}/documents/pathways/{pathway}/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_pathways_list.md): Description: Retrieves a list of document embeddings for a specific pathway with optional search and pagination. Methods: - GET: Retrieves document embeddings that match the specified search criteria and are paginated according to offset and limit. Parameters: - search (str): Search query to filter document names or URLs. - offset (int): Offset number for pagination. - limit (int): Limit number for pagination. Returns: - GET: A paginated list of document embeddings with their details. { "count": 10, "next": "http://api.example.com/retriever_documents/?offset=10&limit=2", "previous": "http://api.example.com/retriever_documents/?offset=0&limit=2", "results": [ { "document_name": "Document2", "platform_key": "example_platform", "pathway": "example_pathway" } ] } Error Responses: - 400 Bad Request: Invalid query parameters. - 404 Not Found: No document embeddings found for the specified criteria. ### ai_index_orgs_users_documents_search_create - [POST /api/ai-index/orgs/{org}/users/{user_id}/documents/search/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_search_create.md): Retrieve resource documents similar to the given query. This endpoint performs a semantic search to find documents that are relevant to the provided query within the specified pathway. Args: request: The HTTP request containing the search query. org: Organization key identifier. Returns: Response: A list of documents relevant to the search query. Raises: ValidationError: If the request data is invalid. ### ai_index_orgs_users_documents_sources_create - [POST /api/ai-index/orgs/{org}/users/{user_id}/documents/sources/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_sources_create.md): Retrieve document sources related to a given query. This endpoint performs a semantic search to find document sources that are relevant to the provided query within the specified pathway, and returns them along with confidence levels. Args: request: The HTTP request containing the search query. org: Organization key identifier. Returns: Response: A list of document sources with confidence levels. Raises: ValidationError: If the request data is invalid. ### ai_index_orgs_users_documents_tasks_retrieve - [GET /api/ai-index/orgs/{org}/users/{user_id}/documents/tasks/{task_id}/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_tasks_retrieve.md): Check the status of a document training task. This endpoint retrieves the current status of an asynchronous document training task that was previously initiated. Args: request: The HTTP request. org: Organization key identifier. task_id: The ID of the training task to check. Returns: Response: The current status of the document training task, which can be "pending", "completed", or "failed". ### ai_index_orgs_users_documents_train_create - [POST /api/ai-index/orgs/{org}/users/{user_id}/documents/train/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_train_create.md): Train a document through a worker process. This endpoint queues larger documents for training through a worker process, which is more suitable for handling documents that would take too long to process directly. Args: request: The HTTP request containing the document information. org: Organization key identifier. Returns: Response: A confirmation that the document was queued for training, including a task ID for tracking the progress. Raises: ValidationError: If the request data is invalid. BadRequest: If there was an error processing the document. ### ai_index_orgs_users_documents_train_retriever_create - [POST /api/ai-index/orgs/{org}/users/{user_id}/documents/train/retriever/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_train_retriever_create.md): Train a document directly without using a worker. This endpoint is designed for training smaller documents directly without queuing them through a worker process. For larger documents, use the TrainDocumentView endpoint instead. Args: request: The HTTP request containing the document information. org: Organization key identifier. Returns: Response: A confirmation that the document was trained successfully. Raises: ValidationError: If the request data is invalid. BadRequest: If the document training failed. ### ai_index_orgs_users_documents_train_sessions_create - [POST /api/ai-index/orgs/{org}/users/{user_id}/documents/train/sessions/{session_id}/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_documents_train_sessions_create.md): Description: Submit a document file in a chat session. Checks file type, size, and ensures the session exists, then processes the file. Process document for use in a specific chat session. which will be processed and made available for the AI to reference when responding to queries in that session. Methods: - POST: Submits a document or media file for training within a specified chat session. Parameters: - org (str): - session_id (str): UUID of the chat session for which the document is being submitted. - *kwargs: Additional arguments. - file (file): Multipart file input. Returns: - POST: Returns a JSON message with the result of the upload process. Response code 200 on success. { "message": "File processed." } Error Responses: - 400 Bad Request: - "File field is required" if the 'file' parameter is missing. - "invalid file object" if the file object is not valid. - Specific error message if an exception occurs while saving to Redis. - 404 Not Found: - "Session not found" if the provided session_id does not match any existing session. - 413 Request Entity Too Large: - "file is too large" including specific limits for document and media files if the file exceeds size limits. Access Control: Requires authentication with a Bearer token in the Authorization header. The user associated with the session must exist and be authorized for the request. ### ai_index_orgs_users_resource_data_scrapped_retrieve - [GET /api/ai-index/orgs/{org}/users/{user_id}/resource/{resource_id}/data/scrapped/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_resource_data_scrapped_retrieve.md): Retrieve detailed information about a specific scraped resource. This endpoint returns the complete scraped data for a specific resource identified by its ID. Args: request: The HTTP request. org: Organization key identifier. user_id: The username of the user associated with the resource. resource_id: The ID of the resource to retrieve. Returns: Response: The complete scraped data for the specified resource. Raises: NotFound: If the specified resource data does not exist. ### ai_index_orgs_users_resource_data_scrapped_list - [GET /api/ai-index/orgs/{org}/users/{user_id}/resource/data/scrapped/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_orgs_users_resource_data_scrapped_list.md): Retrieve and filter scraped data from resources. This endpoint returns a list of scraped data from resources associated with the specified user, with optional filtering based on query parameters. Args: request: The HTTP request containing filter query parameters. org: Organization key identifier. user_id: The username of the user whose resources to retrieve. Returns: Response: A list of scraped resource data matching the filter criteria. Raises: BadRequest: If the username is invalid or query parameters are incorrect. ### ai_index_webhook_scan_create - [POST /api/ai-index/webhook/scan/](https://docs.ibl.ai/apis/ibl/ai-index/ai_index_webhook_scan_create.md): Receive and process file scan status from external security scanning services. This webhook endpoint receives scan results for files that have been submitted for security scanning. It processes the results asynchronously and determines if the files are safe for further processing. Args: request: The HTTP request containing scan result data. Returns: Response: A confirmation that the scan result was received and is being processed. Raises: BadRequest: If the provided scan result data is invalid. ## ai-marketing ### ai_marketing_orgs_users_heygen_videos_list - [GET /api/ai-marketing/orgs/{org}/users/{user_id}/heygen-videos/](https://docs.ibl.ai/apis/ibl/ai-marketing/ai_marketing_orgs_users_heygen_videos_list.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_marketing_orgs_users_heygen_videos_create - [POST /api/ai-marketing/orgs/{org}/users/{user_id}/heygen-videos/](https://docs.ibl.ai/apis/ibl/ai-marketing/ai_marketing_orgs_users_heygen_videos_create.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_marketing_orgs_users_heygen_videos_retrieve - [GET /api/ai-marketing/orgs/{org}/users/{user_id}/heygen-videos/{name}/](https://docs.ibl.ai/apis/ibl/ai-marketing/ai_marketing_orgs_users_heygen_videos_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ## ai-media ### ai_media_orgs_users_heygen_templates_list - [GET /api/ai-media/orgs/{org}/users/{user_id}/heygen/templates/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_templates_list.md): API view to list or append Heygen template ids for a tenant. ### ai_media_orgs_users_heygen_templates_create - [POST /api/ai-media/orgs/{org}/users/{user_id}/heygen/templates/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_templates_create.md): Endpoint to add a Heygen template id to an org. Only platform admins have access to this endpoint. ### ai_media_orgs_users_heygen_templates_destroy - [DELETE /api/ai-media/orgs/{org}/users/{user_id}/heygen/templates/{template_name}/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_templates_destroy.md): Endpoint to delete a Heygen template id for an org. The reponse status code is always 204 when no error. Only platform admins have access to this endpoint. ### ai_media_orgs_users_heygen_video_captions_retrieve - [GET /api/ai-media/orgs/{org}/users/{user_id}/heygen/video-captions/{heygen_marketing_video_id}/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_video_captions_retrieve.md): Endpoint to download caption for a video. ### ai_media_orgs_users_heygen_video_captions_create - [POST /api/ai-media/orgs/{org}/users/{user_id}/heygen/video-captions/{heygen_marketing_video_id}/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_video_captions_create.md): Endpoint to upload a new caption for a generated video. Only platform admins have access to this endpoint. ### ai_media_orgs_users_heygen_video_download_retrieve - [GET /api/ai-media/orgs/{org}/users/{user_id}/heygen/video-download/{heygen_marketing_video_id}/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_video_download_retrieve.md): Endpoint used to download a heygen video. Only platform admins have access to this endpoint. ### ai_media_orgs_users_heygen_videos_list - [GET /api/ai-media/orgs/{org}/users/{user_id}/heygen/videos/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_videos_list.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_media_orgs_users_heygen_videos_create - [POST /api/ai-media/orgs/{org}/users/{user_id}/heygen/videos/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_videos_create.md): Endpoint to create a Heygen video Only platform admins have access to this endpoint. ### ai_media_orgs_users_heygen_videos_retrieve - [GET /api/ai-media/orgs/{org}/users/{user_id}/heygen/videos/{heygen_marketing_video_id}/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_videos_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### ai_media_orgs_users_heygen_videos_destroy - [DELETE /api/ai-media/orgs/{org}/users/{user_id}/heygen/videos/{heygen_marketing_video_id}/](https://docs.ibl.ai/apis/ibl/ai-media/ai_media_orgs_users_heygen_videos_destroy.md): Endpoint used to delete a heygen video. Only platform admins have access to this endpoint. ## ai-mentor ### ai_mentor_orgs_all_triggers_retrieve - [GET /api/ai-mentor/orgs/{org}/all-triggers/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_all_triggers_retrieve.md): List all triggers for an organization. Args: request: The HTTP request. org: The organization/tenant identifier. Returns: Response: A list of trigger slugs for the organization. Raises: BadRequest: If the request is invalid. ### ai_mentor_orgs_mentors_email_inbox_list - [GET /api/ai-mentor/orgs/{org}/mentors/{mentor}/email-inbox/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_mentors_email_inbox_list.md): Retrieve a list of emails in a mentor's inbox. The list can be filtered using the 'search' query parameter to search for specific terms in the email content or subject. Args: mentor: The unique identifier of the mentor. Returns: Response: A paginated list of emails in the mentor's inbox. Raises: NotFound: If the specified mentor does not exist. ### ai_mentor_orgs_mentors_email_inbox_summary_retrieve - [GET /api/ai-mentor/orgs/{org}/mentors/{mentor}/email-inbox-summary/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_mentors_email_inbox_summary_retrieve.md): Retrieve a summary of a mentor's email inbox. Args: request: The HTTP request. mentor: The unique identifier of the mentor. Returns: Response: A summary of the mentor's email inbox statistics. Raises: NotFound: If the specified mentor does not exist. ### ai_mentor_orgs_mentors_email_inbox_retrieve - [GET /api/ai-mentor/orgs/{org}/mentors/{mentor}/email-inbox/{email_prompt_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_mentors_email_inbox_retrieve.md): Retrieve details of a specific email in a mentor's inbox. Args: request: The HTTP request. email_prompt_id: The ID of the email to retrieve. Returns: Response: The detailed information about the email. Raises: NotFound: If the specified email does not exist. ### ai_mentor_orgs_mentors_link_course_retrieve - [GET /api/ai-mentor/orgs/{org}/mentors/{mentor}/link-course/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_mentors_link_course_retrieve.md): API endpoint to link mentor with a course and enable guided mode. Permissions: - Accessible to tenant admins. ### ai_mentor_orgs_mentors_link_course_create - [POST /api/ai-mentor/orgs/{org}/mentors/{mentor}/link-course/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_mentors_link_course_create.md): API endpoint to link mentor with a course and enable guided mode. Permissions: - Accessible to tenant admins. ### ai_mentor_orgs_metadata_create - [POST /api/ai-mentor/orgs/{org}/metadata/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_metadata_create.md): Create or update metadata for a mentor. Args: request: The HTTP request containing the metadata. org: The organization/tenant identifier. Returns: Response: The created or updated mentor metadata. Raises: BadRequest: If the provided data is invalid. ### ai_mentor_orgs_quiz_customizer_retrieve - [GET /api/ai-mentor/orgs/{org}/quiz-customizer/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_quiz_customizer_retrieve.md): Retrieve existing questions. Args: request: The HTTP request. Returns: Response: The existing questions. ### ai_mentor_orgs_quiz_customizer_create - [POST /api/ai-mentor/orgs/{org}/quiz-customizer/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_quiz_customizer_create.md): Generate follow-up questions based on initial questions. Args: request: The HTTP request containing the initial questions. Returns: Response: The generated follow-up questions. Raises: BadRequest: If the provided data is invalid. ### ai_mentor_orgs_sessions_create - [POST /api/ai-mentor/orgs/{org}/sessions/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_sessions_create.md): Retrieve or create a chat session with a mentor. Passing as results in using all tools assigned to the mentor. To specify that no tools be used, pass an empty list. Args: request: HTTP request containing mentor details. org: Organization key identifier. user_id (optional): Username for authentication (if required by the mentor). Returns: Response: JSON object containing the session ID. Raises: Http404: If the mentor is not found. ValidationError: If the username is invalid. ValidationError: If one or more tool slugs are invalid. ### ai_mentor_orgs_trigger_create - [POST /api/ai-mentor/orgs/{org}/trigger/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_trigger_create.md): Create or modify a trigger. Args: request: The HTTP request containing the trigger data. org: The organization/tenant identifier. Returns: Response: The created or updated trigger details. Raises: BadRequest: If the provided data is invalid or missing required parameters. ### ai_mentor_orgs_trigger_templates_retrieve - [GET /api/ai-mentor/orgs/{org}/trigger-templates/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_trigger_templates_retrieve.md): Retrieve available trigger templates. Args: request: The HTTP request. org: The organization/tenant identifier. Returns: Response: A dictionary of available trigger templates and their required parameters. Raises: BadRequest: If the request is invalid. ### ai_mentor_orgs_trigger_retrieve - [GET /api/ai-mentor/orgs/{org}/trigger/{slug}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_trigger_retrieve.md): Retrieve details of a specific trigger. Args: request: The HTTP request. org: The organization/tenant identifier. slug: The unique slug identifier of the trigger. Returns: Response: The details of the specified trigger. Raises: Http404: If the specified trigger does not exist. ### ai_mentor_orgs_trigger_deletion_create - [POST /api/ai-mentor/orgs/{org}/trigger/{slug}/deletion/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_trigger_deletion_create.md): Delete a specific trigger. Args: request: The HTTP request. org: The organization/tenant identifier. slug: The unique slug identifier of the trigger to delete. Returns: Response: A confirmation of the deletion status. Raises: BadRequest: If the specified trigger does not exist. ### ai_mentor_orgs_users_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_list.md): Retrieve a list of mentors. Returns: - List of mentors matching the filters. ### ai_mentor_orgs_users_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_create.md): Create a new mentor. Body Parameters: - name: Mentor name. - unique_id: Unique identifier. - platform_key: Associated platform. - metadata: Additional mentor attributes. ### ai_mentor_orgs_users_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/{name}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_retrieve.md): API ViewSet for managing mentors. Provides endpoints to retrieve, create, update, and delete mentor data. Permissions: - Accessible to both tenant admins and students. ### ai_mentor_orgs_users_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/{name}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_update.md): Update a mentor's details with RBAC enforcement and custom serializer handling. ### ai_mentor_orgs_users_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/{name}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_partial_update.md): API ViewSet for managing mentors. Provides endpoints to retrieve, create, update, and delete mentor data. Permissions: - Accessible to both tenant admins and students. ### ai_mentor_orgs_users_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/{name}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_destroy.md): Soft delete a mentor. ### ai_mentor_orgs_users_ai_generated_images_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/ai-generated-images/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_ai_generated_images_list.md): Endpoint to view and delete AI generated images for a user. AI Generated images are images generated during chat with AI. They are cached to allow retrieval and deletion. optional filtering parameters allowed are - username: The username of the user for which this image was stored. - provider: The provider used to generate the image. eg. openai, nvidia (nim), replicate. - model: the text to image model on the provider used to generate the image. This endpoint is accessible to both students and platform admins. ### ai_mentor_orgs_users_ai_generated_images_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/ai-generated-images/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_ai_generated_images_retrieve.md): Endpoint to view and delete AI generated images for a user. AI Generated images are images generated during chat with AI. They are cached to allow retrieval and deletion. optional filtering parameters allowed are - username: The username of the user for which this image was stored. - provider: The provider used to generate the image. eg. openai, nvidia (nim), replicate. - model: the text to image model on the provider used to generate the image. This endpoint is accessible to both students and platform admins. ### ai_mentor_orgs_users_ai_generated_images_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/ai-generated-images/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_ai_generated_images_destroy.md): Endpoint to view and delete AI generated images for a user. AI Generated images are images generated during chat with AI. They are cached to allow retrieval and deletion. optional filtering parameters allowed are - username: The username of the user for which this image was stored. - provider: The provider used to generate the image. eg. openai, nvidia (nim), replicate. - model: the text to image model on the provider used to generate the image. This endpoint is accessible to both students and platform admins. ### ai_mentor_orgs_users_ai_user_profile_memory_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/ai-user-profile-memory/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_ai_user_profile_memory_list.md): Endpoint to get a list of AI user profile memory entries or to add an entry. ### ai_mentor_orgs_users_ai_user_profile_memory_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/ai-user-profile-memory/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_ai_user_profile_memory_create.md): Endpoint to create an AI user profile memory entry. Sample request: Sample Response (the same as request data): ### ai_mentor_orgs_users_ai_user_profile_memory_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/ai-user-profile-memory/{tag}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_ai_user_profile_memory_destroy.md): The endpoint to delete an AI user profile memory entry. No query parameters or JSON parameters are required. The response is always empty. Successful request will be responded with status 204, and failed request will be responded with status 404. ### ai_mentor_orgs_users_assumed_knowledge_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/assumed-knowledge/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_assumed_knowledge_retrieve.md): Retrieve assumed knowledge levels. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve assumed knowledge for. Returns: Response: The assumed knowledge levels for different categories. Raises: NotFound: If no assumed knowledge exists for the user. ### ai_mentor_orgs_users_assumed_knowledge_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/assumed-knowledge/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_assumed_knowledge_create.md): Update assumed knowledge levels. Args: request: The HTTP request containing the updated knowledge levels. org: The organization/tenant identifier. user_id: The ID of the user to update assumed knowledge for. Returns: Response: The updated assumed knowledge levels. Raises: BadRequest: If the provided data is invalid. ### ai_mentor_orgs_users_audio_to_text_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/audio-to-text/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_audio_to_text_create.md): Convert an uploaded audio file to text. Args: request: The HTTP request containing the audio file. org: The organization/tenant identifier. user_id: The ID of the user uploading the audio. Returns: Response: The transcribed text from the audio file. Raises: BadRequest: If the audio file is invalid or cannot be processed. NotFound: If the API key for the tenant is not found. ### ai_mentor_orgs_users_available_template_mentors_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/available-template-mentors/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_available_template_mentors_retrieve.md): This endpoint list available template mentors for a tenant Returns: 200 : List of Tool objects ### ai_mentor_orgs_users_call_configurations_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/call-configurations/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_call_configurations_list.md): API ViewSet for managing call configurations. This ViewSet provides endpoints to retrieve, create, and update call configurations for mentors. Call configurations define how voice calls are handled for a mentor. Permissions: - Accessible only to platform admins. Endpoints: GET /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - List all call configurations for a specific mentor - Returns paginated list of call configurations POST /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - Create a new call configuration for a mentor - Requires call configuration data in request body PUT /api/org/{org}/mentors/{mentor_pk}/call-configurations/{id}/ - Update an existing call configuration - Requires call configuration data in request body Query Parameters: - mentor: Filter configurations by mentor ID Returns: - CallConfigurationSerializer data ### ai_mentor_orgs_users_call_configurations_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/call-configurations/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_call_configurations_create.md): API ViewSet for managing call configurations. This ViewSet provides endpoints to retrieve, create, and update call configurations for mentors. Call configurations define how voice calls are handled for a mentor. Permissions: - Accessible only to platform admins. Endpoints: GET /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - List all call configurations for a specific mentor - Returns paginated list of call configurations POST /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - Create a new call configuration for a mentor - Requires call configuration data in request body PUT /api/org/{org}/mentors/{mentor_pk}/call-configurations/{id}/ - Update an existing call configuration - Requires call configuration data in request body Query Parameters: - mentor: Filter configurations by mentor ID Returns: - CallConfigurationSerializer data ### ai_mentor_orgs_users_call_configurations_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/call-configurations/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_call_configurations_retrieve.md): API ViewSet for managing call configurations. This ViewSet provides endpoints to retrieve, create, and update call configurations for mentors. Call configurations define how voice calls are handled for a mentor. Permissions: - Accessible only to platform admins. Endpoints: GET /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - List all call configurations for a specific mentor - Returns paginated list of call configurations POST /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - Create a new call configuration for a mentor - Requires call configuration data in request body PUT /api/org/{org}/mentors/{mentor_pk}/call-configurations/{id}/ - Update an existing call configuration - Requires call configuration data in request body Query Parameters: - mentor: Filter configurations by mentor ID Returns: - CallConfigurationSerializer data ### ai_mentor_orgs_users_call_configurations_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/call-configurations/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_call_configurations_update.md): API ViewSet for managing call configurations. This ViewSet provides endpoints to retrieve, create, and update call configurations for mentors. Call configurations define how voice calls are handled for a mentor. Permissions: - Accessible only to platform admins. Endpoints: GET /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - List all call configurations for a specific mentor - Returns paginated list of call configurations POST /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - Create a new call configuration for a mentor - Requires call configuration data in request body PUT /api/org/{org}/mentors/{mentor_pk}/call-configurations/{id}/ - Update an existing call configuration - Requires call configuration data in request body Query Parameters: - mentor: Filter configurations by mentor ID Returns: - CallConfigurationSerializer data ### ai_mentor_orgs_users_call_configurations_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/call-configurations/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_call_configurations_partial_update.md): API ViewSet for managing call configurations. This ViewSet provides endpoints to retrieve, create, and update call configurations for mentors. Call configurations define how voice calls are handled for a mentor. Permissions: - Accessible only to platform admins. Endpoints: GET /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - List all call configurations for a specific mentor - Returns paginated list of call configurations POST /api/org/{org}/mentors/{mentor_pk}/call-configurations/ - Create a new call configuration for a mentor - Requires call configuration data in request body PUT /api/org/{org}/mentors/{mentor_pk}/call-configurations/{id}/ - Update an existing call configuration - Requires call configuration data in request body Query Parameters: - mentor: Filter configurations by mentor ID Returns: - CallConfigurationSerializer data ### ai_mentor_orgs_users_category_groups_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/category-groups/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_category_groups_list.md): Retrieve a list of Mentor Category Groups. ### ai_mentor_orgs_users_category_groups_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/category-groups/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_category_groups_create.md): Create a new Mentor Category Group. Only accessible to Platform Admins. ### ai_mentor_orgs_users_category_groups_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/category-groups/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_category_groups_retrieve.md): Mentor Category Groups offer parent grouping for mentor category objects. The parameter is deprecated and is currently left behind for backward compatibility. Permissions: GET: Accessible to both Platform Admins and Students POST, DELETE, PATCH, PUT: Accessible to only Platform Admins ### ai_mentor_orgs_users_category_groups_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/category-groups/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_category_groups_update.md): Mentor Category Groups offer parent grouping for mentor category objects. The parameter is deprecated and is currently left behind for backward compatibility. Permissions: GET: Accessible to both Platform Admins and Students POST, DELETE, PATCH, PUT: Accessible to only Platform Admins ### ai_mentor_orgs_users_category_groups_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/category-groups/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_category_groups_partial_update.md): Mentor Category Groups offer parent grouping for mentor category objects. The parameter is deprecated and is currently left behind for backward compatibility. Permissions: GET: Accessible to both Platform Admins and Students POST, DELETE, PATCH, PUT: Accessible to only Platform Admins ### ai_mentor_orgs_users_category_groups_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/category-groups/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_category_groups_destroy.md): Mentor Category Groups offer parent grouping for mentor category objects. The parameter is deprecated and is currently left behind for backward compatibility. Permissions: GET: Accessible to both Platform Admins and Students POST, DELETE, PATCH, PUT: Accessible to only Platform Admins ### ai_mentor_orgs_users_clean_vector_results_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/clean-vector-results/{session_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_clean_vector_results_list.md): Retrieve and clean up vector results from a specific session. This endpoint retrieves the documents last used by the mentor to answer the most recent query from the user in the specified session, and cleans them to remove any inappropriate content. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. session_id: The ID of the session to retrieve vector results from. Returns: Response: The cleaned vector results. Raises: BadRequest: If the API key for the cleaning provider is not found. NotFound: If no vector results are found for the session. ### ai_mentor_orgs_users_clean_vector_results_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/clean-vector-results/{session_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_clean_vector_results_create.md): Clean up provided vector results. This endpoint allows users to submit specific vector results for cleaning, which is useful when there are particular documents that need to be processed. Args: request: The HTTP request containing the vector results to clean. org: The organization/tenant identifier. user_id: The ID of the user making the request. Returns: Response: The cleaned vector results. Raises: BadRequest: If the API key for the cleaning provider is not found or the provided data is invalid. ### Delete User Chat History - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/clear-chathistory](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_clear_chathistory_destroy.md): Endpoint to clear a user's chat history. ### ai_mentor_orgs_users_course_creation_task_files_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-task-files/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_task_files_list.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_task_files_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-task-files/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_task_files_create.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_task_files_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-task-files/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_task_files_retrieve.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_task_files_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-task-files/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_task_files_update.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_task_files_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-task-files/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_task_files_partial_update.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_task_files_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-task-files/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_task_files_destroy.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_tasks_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-tasks/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_list.md): Create, retrieve and delete course creation tasks Course creation tasks allow you to schedule the creation of a course on OpenEdx deployment connected to this data manager. The course is created entirely by an ai model (as specified in your inputs). The llm decides on the content of the course based on the name, description, target audience and other parameters. Bigger and newer models tend to outperform smaller once. Clear and unambiguous parameters are more likely to produce better results. ### ai_mentor_orgs_users_course_creation_tasks_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-tasks/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_create.md): Create, retrieve and delete course creation tasks Course creation tasks allow you to schedule the creation of a course on OpenEdx deployment connected to this data manager. The course is created entirely by an ai model (as specified in your inputs). The llm decides on the content of the course based on the name, description, target audience and other parameters. Bigger and newer models tend to outperform smaller once. Clear and unambiguous parameters are more likely to produce better results. ### ai_mentor_orgs_users_course_creation_tasks_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-tasks/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_retrieve.md): Create, retrieve and delete course creation tasks Course creation tasks allow you to schedule the creation of a course on OpenEdx deployment connected to this data manager. The course is created entirely by an ai model (as specified in your inputs). The llm decides on the content of the course based on the name, description, target audience and other parameters. Bigger and newer models tend to outperform smaller once. Clear and unambiguous parameters are more likely to produce better results. ### ai_mentor_orgs_users_course_creation_tasks_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-tasks/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_destroy.md): Create, retrieve and delete course creation tasks Course creation tasks allow you to schedule the creation of a course on OpenEdx deployment connected to this data manager. The course is created entirely by an ai model (as specified in your inputs). The llm decides on the content of the course based on the name, description, target audience and other parameters. Bigger and newer models tend to outperform smaller once. Clear and unambiguous parameters are more likely to produce better results. ### ai_mentor_orgs_users_course_creation_tasks_cancel_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-tasks/{id}/cancel/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_cancel_retrieve.md): Cancel a course creation task run. : The task must be running or pending. : - 200: The course creation task is successfully cancelled. - 400: The course creation task is not in a running or pending state. ### ai_mentor_orgs_users_course_creation_tasks_create_course_outline_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-tasks/{id}/create-course-outline/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_create_course_outline_retrieve.md): This is intended for stepwise approach of course creation. Use this to intiate generating an outline of the course. ### ai_mentor_orgs_users_course_creation_tasks_create_course_outline_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-tasks/{id}/create-course-outline/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_create_course_outline_create.md): This is intended for stepwise approach of course creation. Use this to intiate generating an outline of the course. ### ai_mentor_orgs_users_course_creation_tasks_start_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation-tasks/{id}/start/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_start_retrieve.md): Kick start the course creation task. This endpoint should be called once the files for a course creation task has been successfully uploaded. : - The course creation task must be in a pending state or failed state. : - 200: The course creation task is successfully started. - 400: The course creation task is not in a pending state. ### ai_mentor_orgs_users_course_creation_component_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/component/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_component_list.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_component_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/component/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_component_create.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_component_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/component/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_component_retrieve.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_component_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/component/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_component_update.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_component_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/component/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_component_partial_update.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_component_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/component/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_component_destroy.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_component_draft_content_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/component/{id}/draft-content/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_component_draft_content_retrieve.md): Generate draft content for a specific unit. This action starts a background task to create draft content for the specified unit using AI. Args: request: The HTTP request. pk: The primary key of the unit to generate content for. Returns: Response: A confirmation that the content generation task has been started. Raises: NotFound: If the specified unit does not exist. ### ai_mentor_orgs_users_course_creation_component_draft_content_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/component/{id}/draft-content/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_component_draft_content_create.md): Generate draft content for a specific unit. This action starts a background task to create draft content for the specified unit using AI. Args: request: The HTTP request. pk: The primary key of the unit to generate content for. Returns: Response: A confirmation that the content generation task has been started. Raises: NotFound: If the specified unit does not exist. ### ai_mentor_orgs_users_course_creation_course_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_course_list.md): API viewset for managing EdX courses. This viewset allows platform administrators to retrieve, delete, and perform various operations on EdX courses that were created through course creation tasks. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_course_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_course_retrieve.md): API viewset for managing EdX courses. This viewset allows platform administrators to retrieve, delete, and perform various operations on EdX courses that were created through course creation tasks. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_course_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_course_destroy.md): API viewset for managing EdX courses. This viewset allows platform administrators to retrieve, delete, and perform various operations on EdX courses that were created through course creation tasks. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_course_draft_content_for_all_units_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/{id}/draft-content-for-all-units/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_course_draft_content_for_all_units_retrieve.md): Generate draft content for all units in a course. This action starts a background task to create draft content for all units in the course using AI. Args: request: The HTTP request. pk: The primary key of the course to generate content for. Returns: Response: A confirmation that the content generation task has been started. Raises: NotFound: If the specified course does not exist. ### ai_mentor_orgs_users_course_creation_course_full_structure_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/{id}/full-structure/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_course_full_structure_retrieve.md): Retrieve the full structure of a course. This action returns the complete hierarchical structure of the course, including all sections, subsections, units, and components. Args: request: The HTTP request. pk: The primary key of the course to retrieve. Returns: Response: The full structure of the course. Raises: NotFound: If the specified course does not exist. ### ai_mentor_orgs_users_course_creation_course_load_from_edx_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/{id}/load-from-edx/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_course_load_from_edx_retrieve.md): Load existing course structure from OpenEdX. This action starts a background task to pull the course structure from the EdX platform into the database. Args: request: The HTTP request. pk: The primary key of the course to load. Returns: Response: A confirmation that the load task has been started. Raises: NotFound: If the specified course does not exist. ### ai_mentor_orgs_users_course_creation_course_sync_to_edx_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/course/{id}/sync-to-edx/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_course_sync_to_edx_retrieve.md): Synchronize the course structure to EdX. This action starts a background task to push the course structure from the database to the EdX platform. Args: request: The HTTP request. pk: The primary key of the course to synchronize. Returns: Response: A confirmation that the sync task has been started. Raises: NotFound: If the specified course does not exist. ### ai_mentor_orgs_users_course_creation_files_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/files/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_files_list.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_files_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/files/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_files_create.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_files_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/files/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_files_retrieve.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_files_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/files/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_files_update.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_files_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/files/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_files_partial_update.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_files_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/files/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_files_destroy.md): Endpoint to fetch update and delete files associated with course creation tasks. ### ai_mentor_orgs_users_course_creation_section_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/section/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_section_list.md): API viewset for managing course sections. This viewset allows platform administrators to retrieve and manage sections within EdX courses. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_section_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/section/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_section_create.md): API viewset for managing course sections. This viewset allows platform administrators to retrieve and manage sections within EdX courses. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_section_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/section/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_section_retrieve.md): API viewset for managing course sections. This viewset allows platform administrators to retrieve and manage sections within EdX courses. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_section_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/section/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_section_update.md): API viewset for managing course sections. This viewset allows platform administrators to retrieve and manage sections within EdX courses. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_section_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/section/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_section_partial_update.md): API viewset for managing course sections. This viewset allows platform administrators to retrieve and manage sections within EdX courses. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_section_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/section/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_section_destroy.md): API viewset for managing course sections. This viewset allows platform administrators to retrieve and manage sections within EdX courses. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_subsection_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/subsection/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_subsection_list.md): API viewset for managing course subsections. This viewset allows platform administrators to retrieve and manage subsections within course sections. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_subsection_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/subsection/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_subsection_create.md): API viewset for managing course subsections. This viewset allows platform administrators to retrieve and manage subsections within course sections. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_subsection_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/subsection/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_subsection_retrieve.md): API viewset for managing course subsections. This viewset allows platform administrators to retrieve and manage subsections within course sections. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_subsection_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/subsection/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_subsection_update.md): API viewset for managing course subsections. This viewset allows platform administrators to retrieve and manage subsections within course sections. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_subsection_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/subsection/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_subsection_partial_update.md): API viewset for managing course subsections. This viewset allows platform administrators to retrieve and manage subsections within course sections. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_subsection_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/subsection/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_subsection_destroy.md): API viewset for managing course subsections. This viewset allows platform administrators to retrieve and manage subsections within course sections. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_tasks_list_2 - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/tasks/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_list_2.md): Create, retrieve and delete course creation tasks Course creation tasks allow you to schedule the creation of a course on OpenEdx deployment connected to this data manager. The course is created entirely by an ai model (as specified in your inputs). The llm decides on the content of the course based on the name, description, target audience and other parameters. Bigger and newer models tend to outperform smaller once. Clear and unambiguous parameters are more likely to produce better results. ### ai_mentor_orgs_users_course_creation_tasks_create_2 - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/tasks/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_create_2.md): Create, retrieve and delete course creation tasks Course creation tasks allow you to schedule the creation of a course on OpenEdx deployment connected to this data manager. The course is created entirely by an ai model (as specified in your inputs). The llm decides on the content of the course based on the name, description, target audience and other parameters. Bigger and newer models tend to outperform smaller once. Clear and unambiguous parameters are more likely to produce better results. ### ai_mentor_orgs_users_course_creation_tasks_retrieve_2 - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/tasks/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_retrieve_2.md): Create, retrieve and delete course creation tasks Course creation tasks allow you to schedule the creation of a course on OpenEdx deployment connected to this data manager. The course is created entirely by an ai model (as specified in your inputs). The llm decides on the content of the course based on the name, description, target audience and other parameters. Bigger and newer models tend to outperform smaller once. Clear and unambiguous parameters are more likely to produce better results. ### ai_mentor_orgs_users_course_creation_tasks_destroy_2 - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/tasks/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_destroy_2.md): Create, retrieve and delete course creation tasks Course creation tasks allow you to schedule the creation of a course on OpenEdx deployment connected to this data manager. The course is created entirely by an ai model (as specified in your inputs). The llm decides on the content of the course based on the name, description, target audience and other parameters. Bigger and newer models tend to outperform smaller once. Clear and unambiguous parameters are more likely to produce better results. ### ai_mentor_orgs_users_course_creation_tasks_cancel_retrieve_2 - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/tasks/{id}/cancel/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_cancel_retrieve_2.md): Cancel a course creation task run. : The task must be running or pending. : - 200: The course creation task is successfully cancelled. - 400: The course creation task is not in a running or pending state. ### ai_mentor_orgs_users_course_creation_tasks_create_course_outline_retrieve_2 - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/tasks/{id}/create-course-outline/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_create_course_outline_retrieve_2.md): This is intended for stepwise approach of course creation. Use this to intiate generating an outline of the course. ### ai_mentor_orgs_users_course_creation_tasks_create_course_outline_create_2 - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/tasks/{id}/create-course-outline/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_create_course_outline_create_2.md): This is intended for stepwise approach of course creation. Use this to intiate generating an outline of the course. ### ai_mentor_orgs_users_course_creation_tasks_start_retrieve_2 - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/tasks/{id}/start/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_tasks_start_retrieve_2.md): Kick start the course creation task. This endpoint should be called once the files for a course creation task has been successfully uploaded. : - The course creation task must be in a pending state or failed state. : - 200: The course creation task is successfully started. - 400: The course creation task is not in a pending state. ### ai_mentor_orgs_users_course_creation_unit_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/unit/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_unit_list.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_unit_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/unit/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_unit_create.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_unit_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/unit/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_unit_retrieve.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_unit_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/unit/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_unit_update.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_unit_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/unit/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_unit_partial_update.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_unit_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/unit/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_unit_destroy.md): API viewset for managing course units. This viewset allows platform administrators to retrieve and manage units within course subsections, and generate content for them. Permissions: - Restricted to platform administrators only ### ai_mentor_orgs_users_course_creation_unit_draft_content_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/unit/{id}/draft-content/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_unit_draft_content_retrieve.md): Generate draft content for a specific unit. This action starts a background task to create draft content for the specified unit using AI. Args: request: The HTTP request. pk: The primary key of the unit to generate content for. Returns: Response: A confirmation that the content generation task has been started. Raises: NotFound: If the specified unit does not exist. ### ai_mentor_orgs_users_course_creation_unit_draft_content_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/course-creation/unit/{id}/draft-content/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_course_creation_unit_draft_content_create.md): Generate draft content for a specific unit. This action starts a background task to create draft content for the specified unit using AI. Args: request: The HTTP request. pk: The primary key of the unit to generate content for. Returns: Response: A confirmation that the content generation task has been started. Raises: NotFound: If the specified unit does not exist. ### ai_mentor_orgs_users_create_mentor_wizard_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/create-mentor-wizard/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_create_mentor_wizard_create.md): Create a new mentor using the wizard interface. Args: request: The HTTP request containing the mentor data. org: The organization/tenant identifier. user_id: The ID of the user creating the mentor. Returns: Response: The created mentor. Raises: BadRequest: If the provided data is invalid. ### ai_mentor_orgs_users_custom_instruction_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/custom-instruction/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_custom_instruction_retrieve.md): Retrieve custom instructions for a specific user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve custom instructions for. Returns: Response: The custom instructions for the user. Raises: NotFound: If no custom instructions exist for the user. ### ai_mentor_orgs_users_custom_instruction_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/custom-instruction/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_custom_instruction_create.md): Create a new custom instruction for a user. Args: request: The HTTP request containing the custom instruction data. org: The organization/tenant identifier. user_id: The ID of the user to create custom instructions for. Returns: Response: The created custom instruction. Raises: BadRequest: If the provided data is invalid. ### ai_mentor_orgs_users_custom_instruction_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/custom-instruction/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_custom_instruction_update.md): Update an existing custom instruction for a user. Args: request: The HTTP request containing the updated custom instruction data. org: The organization/tenant identifier. user_id: The ID of the user to update custom instructions for. Returns: Response: The updated custom instruction. Raises: BadRequest: If the provided data is invalid. NotFound: If no custom instruction exists for the user. ### ai_mentor_orgs_users_downloads_tasks_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/downloads/tasks/{task_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_downloads_tasks_retrieve.md): Retrieves the chat history for a user if the export task is ready. This Endpoint to download user chathistory. Accessible to tenant admins and students. Returns: 200: When task is not ready. 200: chat history object 400: When data is not valid. ### ai_mentor_orgs_users_edx_memory_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/edx-memory/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_edx_memory_list.md): Endpoints to fetch and delete Edx stored Memory information stored for a user and a corresponding edx course they have interracted with. This information is passed to the corresponding mentor so the mentor has context information about the course and unit that the user last interracted with. There can be only one UserEdxMemory instance per student and course_id. Url Args: org (str): The organization's platform key. user_id (str): The username identifier of the individual. Returns: 200: A paginated list of UserEdxMemory objects Examples: - List all memories GET: /api/ai-mentor/orgs/main/users/johndoe/edx-memory/ Request: None Response: { "count": 0, "next": null, "previous": null, "results": [{ "student": 1, "course_id": "course-v1:main+CARBON+2024_Fall", "data": {}, "date_created": "2024-06-25T15:30:26.257140", "last_modified": "2024-06-25T15:30:26.257140" }] } - Get a single UserEdxMemory object GET: /api/ai-mentor/orgs/main/users/johndoe/edx-memory/1/ Request: None Response: { "student": 1, "course_id": "course-v1:main+CARBON+2024_Fall", "data": {}, "date_created": "2024-06-25T15:30:26.257140", "last_modified": "2024-06-25T15:30:26.257140" } ### ai_mentor_orgs_users_edx_memory_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/edx-memory/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_edx_memory_retrieve.md): Endpoints to fetch and delete Edx stored Memory information stored for a user and a corresponding edx course they have interracted with. This information is passed to the corresponding mentor so the mentor has context information about the course and unit that the user last interracted with. There can be only one UserEdxMemory instance per student and course_id. Url Args: org (str): The organization's platform key. user_id (str): The username identifier of the individual. Returns: 200: A paginated list of UserEdxMemory objects Examples: - List all memories GET: /api/ai-mentor/orgs/main/users/johndoe/edx-memory/ Request: None Response: { "count": 0, "next": null, "previous": null, "results": [{ "student": 1, "course_id": "course-v1:main+CARBON+2024_Fall", "data": {}, "date_created": "2024-06-25T15:30:26.257140", "last_modified": "2024-06-25T15:30:26.257140" }] } - Get a single UserEdxMemory object GET: /api/ai-mentor/orgs/main/users/johndoe/edx-memory/1/ Request: None Response: { "student": 1, "course_id": "course-v1:main+CARBON+2024_Fall", "data": {}, "date_created": "2024-06-25T15:30:26.257140", "last_modified": "2024-06-25T15:30:26.257140" } ### ai_mentor_orgs_users_edx_memory_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/edx-memory/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_edx_memory_destroy.md): Endpoints to fetch and delete Edx stored Memory information stored for a user and a corresponding edx course they have interracted with. This information is passed to the corresponding mentor so the mentor has context information about the course and unit that the user last interracted with. There can be only one UserEdxMemory instance per student and course_id. Url Args: org (str): The organization's platform key. user_id (str): The username identifier of the individual. Returns: 200: A paginated list of UserEdxMemory objects Examples: - List all memories GET: /api/ai-mentor/orgs/main/users/johndoe/edx-memory/ Request: None Response: { "count": 0, "next": null, "previous": null, "results": [{ "student": 1, "course_id": "course-v1:main+CARBON+2024_Fall", "data": {}, "date_created": "2024-06-25T15:30:26.257140", "last_modified": "2024-06-25T15:30:26.257140" }] } - Get a single UserEdxMemory object GET: /api/ai-mentor/orgs/main/users/johndoe/edx-memory/1/ Request: None Response: { "student": 1, "course_id": "course-v1:main+CARBON+2024_Fall", "data": {}, "date_created": "2024-06-25T15:30:26.257140", "last_modified": "2024-06-25T15:30:26.257140" } ### ai_mentor_orgs_users_elevenlabs_voice_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/elevenlabs-voice/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_elevenlabs_voice_list.md): Retrieve a list of Elevenlabs voices available to a user. This endpoint returns both custom voices created by the user and premade voices available to all users. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve voices for. Returns: Response: A list of available Elevenlabs voices. Raises: NotFound: If the specified user does not exist. ### ai_mentor_orgs_users_elevenlabs_voice_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/elevenlabs-voice/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_elevenlabs_voice_create.md): Create a new custom Elevenlabs voice. This endpoint allows users to upload audio files to create a custom voice that can be used with the Elevenlabs text-to-speech service. Note: The audio files' total length should be longer than 1 minute and the total size should be smaller than 11 MiB. Args: request: The HTTP request containing the voice name and audio files. org: The organization/tenant identifier. user_id: The ID of the user creating the voice. Returns: Response: The created voice configuration. Raises: BadRequest: If the provided data is invalid, credentials are not found, or there's an API error. ### ai_mentor_orgs_users_elevenlabs_voice_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/elevenlabs-voice/{voice_name}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_elevenlabs_voice_destroy.md): Delete an existing Elevenlabs voice configuration. This endpoint removes a custom voice configuration both from the local database and from the Elevenlabs remote API if applicable. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user who owns the voice. voice_name: The name of the voice to delete. Returns: Response: A confirmation of the deletion. Raises: BadRequest: If the Elevenlabs credentials are not found or there's an API error. ### ai_mentor_orgs_users_export_chathistory_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/export-chathistory/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_export_chathistory_create.md): Initiates a background task to export the user's chat history. Returns: 200: task id. ### ai_mentor_orgs_users_free_usage_count_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/free-usage-count](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_free_usage_count_retrieve.md): Retrieve the count of free usage credits available to a user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to check free usage for. Returns: Response: The count of free usage credits available. Raises: NotFound: If the specified user does not exist. ### ai_mentor_orgs_users_mcp_servers_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mcp-servers/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mcp_servers_list.md): List all MCP servers. Returns a paginated list of MCP servers that can be filtered by platform and searched by name or URL. ### ai_mentor_orgs_users_mcp_servers_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mcp-servers/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mcp_servers_create.md): ViewSet for MCP Servers. Allows platform admins to list, create, retrieve, update, and delete MCP servers. Permissions: - Accessible to tenant admins. ### ai_mentor_orgs_users_mcp_servers_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mcp-servers/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mcp_servers_retrieve.md): ViewSet for MCP Servers. Allows platform admins to list, create, retrieve, update, and delete MCP servers. Permissions: - Accessible to tenant admins. ### ai_mentor_orgs_users_mcp_servers_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/mcp-servers/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mcp_servers_update.md): ViewSet for MCP Servers. Allows platform admins to list, create, retrieve, update, and delete MCP servers. Permissions: - Accessible to tenant admins. ### ai_mentor_orgs_users_mcp_servers_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/mcp-servers/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mcp_servers_partial_update.md): ViewSet for MCP Servers. Allows platform admins to list, create, retrieve, update, and delete MCP servers. Permissions: - Accessible to tenant admins. ### ai_mentor_orgs_users_mcp_servers_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/mcp-servers/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mcp_servers_destroy.md): ViewSet for MCP Servers. Allows platform admins to list, create, retrieve, update, and delete MCP servers. Permissions: - Accessible to tenant admins. ### ai_mentor_orgs_users_mentor_feedback_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentor-feedback/{feedback_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_feedback_retrieve.md): Retrieve details of a specific user chat feedback entry. Args: request: The HTTP request. org: The organization/tenant identifier. feedback_id: The ID of the feedback entry to retrieve. Returns: Response: The feedback entry details. Raises: NotFound: If the specified feedback entry does not exist. ### ai_mentor_orgs_users_mentor_feedback_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/mentor-feedback/{feedback_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_feedback_update.md): Update an existing user chat feedback entry. Args: request: The HTTP request containing the updated feedback data. org: The organization/tenant identifier. feedback_id: The ID of the feedback entry to update. Returns: Response: The updated feedback entry. Raises: NotFound: If the specified feedback entry does not exist. BadRequest: If the provided data is invalid or the mentor does not exist. ### ai_mentor_orgs_users_mentor_feedback_create_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentor-feedback/create/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_feedback_create_create.md): Create a new user chat feedback entry. Args: request: The HTTP request containing the feedback data. org: The organization/tenant identifier. Returns: Response: The created feedback entry. Raises: BadRequest: If the provided data is invalid or the mentor does not exist. ### ai_mentor_orgs_users_mentor_from_template_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentor-from-template/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_from_template_create.md): View to create a mentor from a template Accessible to only tenant admins. ### ai_mentor_orgs_users_mentor_llms_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentor-llms/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_llms_list.md): Retrieve available LLMs for a user. ### ai_mentor_orgs_users_mentor_tools_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentor-tools/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_tools_list.md): Retrieve the list of available mentor tools. ### ai_mentor_orgs_users_mentor_with_settings_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentor-with-settings/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_with_settings_create.md): View to create a mentor from a template with settings. Accessible to tenant admins only. ### ai_mentor_orgs_users_mentor_audience_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentor/audience/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_audience_list.md): Retrieve the list of mentor audiences. Returns: - 200: List of mentor audiences. ### ai_mentor_orgs_users_mentor_audience_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentor/audience/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_audience_create.md): Create a new mentor audience. Accessible to tenant admins only. Returns: - 201: Created mentor audience. - 401: Unauthorized. ### ai_mentor_orgs_users_mentor_audience_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/mentor/audience/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_audience_destroy.md): Delete a mentor audience. Accessible to tenant admins only. Returns: - 204: No content. - 400: Bad request if audience name is missing. - 404: Not found if audience does not exist. - 401: Unauthorized. ### ai_mentor_orgs_users_mentor_categories_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentor/categories/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_categories_list.md): Retrieve a list of mentor categories. Returns: 200: A list of mentor categories. ### ai_mentor_orgs_users_mentor_categories_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentor/categories/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_categories_create.md): Create a new mentor category. Accessible only to tenant admins. Returns: 200: Details of the created mentor category. ### ai_mentor_orgs_users_mentor_categories_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/mentor/categories/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_categories_destroy.md): Delete a mentor category. Accessible only to tenant admins. Returns: 204: "No content" when Delete succeeded. 400: Bad request data received ### ai_mentor_orgs_users_mentor_seed_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentor/seed/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentor_seed_retrieve.md): Seed initial mentors in a tenant. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user initiating the seeding. Returns: Response: A success message with details about the seeded mentors. Raises: BadRequest: If the seeding process fails. ### ai_mentor_orgs_users_mentors_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_retrieve.md): Retrieve details of a specific mentor by slug or name. ### ai_mentor_orgs_users_mentors_available_tools_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/available-tools/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_available_tools_list.md): Retrieve tools available for a particular mentor. ### ai_mentor_orgs_users_mentors_create_call_credentials_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/create-call-credentials/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_create_call_credentials_create.md): Generate IBL Call Pro authentication parameters for audio calls. This endpoint creates the necessary authentication tokens and parameters for connecting to a IBL Call Pro room for audio communication with a mentor. Args: request: The HTTP request object containing the required parameters. org: The organization/tenant identifier. user_id: The ID of the user requesting authentication. Returns: Response: IBL Call Pro authentication parameters including URL, room name, participant name, and authentication token. Raises: ValidationError: If the request parameters are invalid. BadRequest: If the IBL Call Pro credentials are not properly configured. ### ai_mentor_orgs_users_mentors_current_memory_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/current-memory/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_current_memory_retrieve.md): Retrieve memory components for a specific mentor. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor to retrieve memory for. Returns: Response: The memory components for the mentor. Raises: NotFound: If the specified mentor or memory does not exist. ### ai_mentor_orgs_users_mentors_current_memory_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/current-memory/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_current_memory_update.md): Update memory components for a specific mentor. Args: request: The HTTP request containing the updated memory data. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor to update memory for. Returns: Response: The updated memory components for the mentor. Raises: BadRequest: If the provided data is invalid. NotFound: If the specified mentor does not exist. ### ai_mentor_orgs_users_mentors_custom_voice_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/custom-voice/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_custom_voice_retrieve.md): Retrieve the current custom voice settings for a mentor. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user who owns the mentor link. mentor: The unique identifier of the mentor. Returns: Response: The current custom voice settings. Raises: NotFound: If the specified mentor or student does not exist. ### ai_mentor_orgs_users_mentors_custom_voice_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/custom-voice/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_custom_voice_create.md): Set a custom voice for a mentor. This endpoint allows setting a custom voice for a specific mentor, either using the default voice provider or Elevenlabs. Args: request: The HTTP request containing the voice provider and name. org: The organization/tenant identifier. user_id: The ID of the user who owns the mentor link. mentor: The unique identifier of the mentor. Returns: Response: The updated custom voice settings. Raises: BadRequest: If the provided data is invalid or the voice does not exist. NotFound: If the mentor or student does not exist. ### ai_mentor_orgs_users_mentors_custom_voice_tts_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/custom-voice-tts/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_custom_voice_tts_create.md): Generate audio from text using a mentor's custom voice. This endpoint converts the provided text to speech using the custom voice configured for the specified mentor. Args: request: The HTTP request containing the text to convert. org: The organization/tenant identifier. user_id: The ID of the user who owns the mentor link. mentor: The unique identifier of the mentor. Returns: Response: An MP3 audio file of the synthesized speech. Raises: BadRequest: If the text is empty, credentials are not found, or custom voice is not set. NotFound: If the mentor or student does not exist. ### ai_mentor_orgs_users_mentors_edit_scenarios_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/edit-scenarios/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_edit_scenarios_update.md): Update scenarios for a specific mentor. Args: request: The HTTP request containing the updated scenarios. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor to update scenarios for. Returns: Response: The updated scenarios for the mentor. Raises: BadRequest: If the provided data is invalid. NotFound: If the specified mentor does not exist. ### ai_mentor_orgs_users_mentors_fork_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/fork/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_fork_create.md): Fork (clone) an existing mentor. Args: request: The HTTP request containing the fork parameters. org: The organization/tenant identifier. mentor: The identifier of the mentor to fork. user_id: The ID of the user initiating the fork. Returns: Response: The newly created forked mentor. Raises: BadRequest: If the provided data is invalid or the fork operation fails. NotFound: If the specified mentor does not exist. ### ai_mentor_orgs_users_mentors_historical_memory_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/historical-memory/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_historical_memory_retrieve.md): Retrieve memory history entries for a specific mentor and user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve memory history for. mentor: The identifier of the mentor to retrieve memory history for. Returns: Response: The memory history entries for the mentor and user. Raises: NotFound: If the specified mentor or memory history does not exist. ### ai_mentor_orgs_users_mentors_memory_progress_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/memory-progress/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_memory_progress_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### ai_mentor_orgs_users_mentors_memory_settings_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/memory-settings/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_memory_settings_retrieve.md): Retrieve memory settings for a specific mentor. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor to retrieve settings for. Returns: Response: The memory settings for the mentor. Raises: NotFound: If the specified mentor or settings do not exist. ### ai_mentor_orgs_users_mentors_memory_settings_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/memory-settings/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_memory_settings_create.md): Endpoint for mentor memory item settings. Accessible to platform admins and superusers. Returns: 200: Change mentor memory component item. 400: When request is not valid. ### ai_mentor_orgs_users_mentors_mentor_eval_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/mentor-eval/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_mentor_eval_retrieve.md): Retrieve evaluation criteria for a specific mentor. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor to retrieve evaluations for. Returns: Response: The evaluation criteria for the mentor. Raises: NotFound: If the specified mentor or evaluations do not exist. ### ai_mentor_orgs_users_mentors_mentor_eval_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/mentor-eval/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_mentor_eval_create.md): Create or update evaluation criteria for a specific mentor. Args: request: The HTTP request containing the evaluation data. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor to create/update evaluations for. Returns: Response: The created or updated evaluation criteria. Raises: BadRequest: If the provided data is invalid or the mentor does not exist. ### ai_mentor_orgs_users_mentors_mentor_eval_execution_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/mentor-eval-execution/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_mentor_eval_execution_create.md): Run an evaluation for a specific mentor. Args: request: The HTTP request containing the evaluation ID. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor to evaluate. Returns: Response: The ID of the generated evaluation report. Raises: BadRequest: If the evaluation ID is invalid or the mentor does not match. ### ai_mentor_orgs_users_mentors_public_settings_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/public-settings/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_public_settings_retrieve.md): Retrieve public mentor settings. Args: request: HTTP request instance. user_id: The ID of the user requesting settings. mentor: The mentor identifier (name, slug, or unique_id). org: The organization key. Returns: Response containing the mentor settings or an error message. ### ai_mentor_orgs_users_mentors_reports_mentor_eval_report_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/reports/{report_id}/mentor-eval-report/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_reports_mentor_eval_report_retrieve.md): Retrieve a specific evaluation report. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor that was evaluated. report_id: The ID of the evaluation report to retrieve. Returns: Response: The detailed evaluation report. Raises: BadRequest: If the report does not exist, does not match the mentor, or is still being generated. ### ai_mentor_orgs_users_mentors_scenarios_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/scenarios/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_scenarios_retrieve.md): Retrieve available scenarios for a specific mentor. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. mentor: The identifier of the mentor to retrieve scenarios for. Returns: Response: The available scenarios for the mentor. Raises: NotFound: If the specified mentor or scenarios do not exist. ### Retrieve Mentor Settings - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/settings/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_settings_retrieve.md): Fetch the settings of a mentor within an organization. Only accessible to tenant admins. ### Update Mentor Settings - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/settings/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_settings_update.md): Update various mentor settings including system prompts, tool permissions, and UI configurations. ### ai_mentor_orgs_users_mentors_spaced_repetition_question_stats_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/spaced-repetition-question-stats/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_spaced_repetition_question_stats_retrieve.md): Retrieve spaced repetition question statistics. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve statistics for. mentor: The unique identifier of the mentor. Returns: Response: Statistics about the user's performance on spaced repetition questions. Raises: NotFound: If the mentor or student does not exist. ### ai_mentor_orgs_users_mentors_spaced_repetition_recommended_paths_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/spaced-repetition-recommended-paths/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_spaced_repetition_recommended_paths_list.md): Retrieve a list of learning paths associated with a specific mentor and student. This endpoint uses the memory component to establish the learning context for a student under the guidance of a mentor. It verifies that the provided organization identifier matches the mentor's platform key, and then retrieves learning path tags associated with the student's question cards. Each tag is annotated with the total number of question cards and the count of cards with successful repetitions (i.e., correct answers). The learning paths are ordered by the number of correct answers and limited to the top five entries. Args: request: The HTTP request containing the necessary context. org (str): The organization identifier/platform key. user_id (str): The username of the student. mentor (str): The unique identifier of the mentor. *args: Additional positional arguments. kwargs: Additional keyword arguments. Returns: Resp200onse: memory component detail infomrmation Raises: NotFound: If the memory component for the specified mentor and student cannot be found, or if the organization identifier does not match the mentor's platform key. ### ai_mentor_orgs_users_mentors_spaced_repetition_recommended_paths_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/spaced-repetition-recommended-paths/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_spaced_repetition_recommended_paths_update.md): Set a specific learning path for spaced repetition. Args: request: The HTTP request containing the learning path. org: The organization/tenant identifier. user_id: The ID of the user to set the learning path for. mentor: The unique identifier of the mentor. Returns: Response: The set learning path. Raises: BadRequest: If the provided data is invalid. NotFound: If the learning path, mentor, or student does not exist. ### ai_mentor_orgs_users_mentors_star_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/star/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_star_retrieve.md): Endpoint for getting the star status of a mentor. Accessible to students and admins. Returns: 200: Star status. 400: When request is not valid. ### ai_mentor_orgs_users_mentors_star_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/star/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_star_create.md): Endpoint for starring a mentor. Accessible to students and admins. Returns: 200: Star status. 400: When request is not valid. ### ai_mentor_orgs_users_mentors_unstar_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/mentors/{mentor}/unstar/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_mentors_unstar_create.md): Remove a mentor from a user's starred list. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user unstarring the mentor. mentor: The identifier of the mentor to unstar. Returns: Response: The updated star status of the mentor. Raises: NotFound: If the specified mentor or student does not exist. BadRequest: If the request is invalid. ### ai_mentor_orgs_users_metadata_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/metadata](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_metadata_retrieve.md): Retrieve metadata for a mentor. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. Returns: Response: The mentor metadata. Raises: NotFound: If no metadata exists for the specified mentor. ### ai_mentor_orgs_users_moderation_logs_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/moderation-logs/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_moderation_logs_list.md): Endpoint to view and delete Moderation Logs for a tenant. These can be filtered by username, platform_key and mentor id A search query can be conducted to search through the prompts and reason for the moderation catch event. ### ai_mentor_orgs_users_moderation_logs_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/moderation-logs/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_moderation_logs_retrieve.md): Endpoint to view and delete Moderation Logs for a tenant. These can be filtered by username, platform_key and mentor id A search query can be conducted to search through the prompts and reason for the moderation catch event. ### ai_mentor_orgs_users_moderation_logs_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/moderation-logs/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_moderation_logs_destroy.md): Endpoint to view and delete Moderation Logs for a tenant. These can be filtered by username, platform_key and mentor id A search query can be conducted to search through the prompts and reason for the moderation catch event. ### ai_mentor_orgs_users_periodic_agent_logs_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/periodic-agent-logs/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_periodic_agent_logs_list.md): Endpoint to view logs for periodic agent runs. These logs contain the full mentor output for each run for debugging. Logs are ordered from newest to oldest. However this can be changed. You can also filter logs for a PeriodicAgent by passing the query parameter in the URL. ### ai_mentor_orgs_users_periodic_agent_logs_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/periodic-agent-logs/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_periodic_agent_logs_retrieve.md): Endpoint to view logs for periodic agent runs. These logs contain the full mentor output for each run for debugging. Logs are ordered from newest to oldest. However this can be changed. You can also filter logs for a PeriodicAgent by passing the query parameter in the URL. ### ai_mentor_orgs_users_periodic_agents_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/periodic-agents/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_periodic_agents_list.md): Endpoint to create and view, update and delete periodic agents. Periodic agents are schedulers issued for mentors. These are configured with input prompt (if any) as well as a cron schedule to trigger the periodic agent. Access to these are restricted to platform admins and tenant administrators Session information for running the periodic agent will be generated with the credentials of the user (platform administrator) who created the agent. A Periodic Agent is allowed to have a and . When a is set for a Periodic Agent, a post request with data entries containing the log and timestamp of the run will be made to the callback_url provided. Here is the payload structure: The payload is encrypted using the provided. You can validate the payload using the X-Hub-Signature-256 signature header for request data. This is a Sha256 encoded HMAC hex digest of the payload body. ### ai_mentor_orgs_users_periodic_agents_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/periodic-agents/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_periodic_agents_create.md): Endpoint to create and view, update and delete periodic agents. Periodic agents are schedulers issued for mentors. These are configured with input prompt (if any) as well as a cron schedule to trigger the periodic agent. Access to these are restricted to platform admins and tenant administrators Session information for running the periodic agent will be generated with the credentials of the user (platform administrator) who created the agent. A Periodic Agent is allowed to have a and . When a is set for a Periodic Agent, a post request with data entries containing the log and timestamp of the run will be made to the callback_url provided. Here is the payload structure: The payload is encrypted using the provided. You can validate the payload using the X-Hub-Signature-256 signature header for request data. This is a Sha256 encoded HMAC hex digest of the payload body. ### ai_mentor_orgs_users_periodic_agents_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/periodic-agents/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_periodic_agents_retrieve.md): Endpoint to create and view, update and delete periodic agents. Periodic agents are schedulers issued for mentors. These are configured with input prompt (if any) as well as a cron schedule to trigger the periodic agent. Access to these are restricted to platform admins and tenant administrators Session information for running the periodic agent will be generated with the credentials of the user (platform administrator) who created the agent. A Periodic Agent is allowed to have a and . When a is set for a Periodic Agent, a post request with data entries containing the log and timestamp of the run will be made to the callback_url provided. Here is the payload structure: The payload is encrypted using the provided. You can validate the payload using the X-Hub-Signature-256 signature header for request data. This is a Sha256 encoded HMAC hex digest of the payload body. ### ai_mentor_orgs_users_periodic_agents_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/periodic-agents/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_periodic_agents_update.md): Endpoint to create and view, update and delete periodic agents. Periodic agents are schedulers issued for mentors. These are configured with input prompt (if any) as well as a cron schedule to trigger the periodic agent. Access to these are restricted to platform admins and tenant administrators Session information for running the periodic agent will be generated with the credentials of the user (platform administrator) who created the agent. A Periodic Agent is allowed to have a and . When a is set for a Periodic Agent, a post request with data entries containing the log and timestamp of the run will be made to the callback_url provided. Here is the payload structure: The payload is encrypted using the provided. You can validate the payload using the X-Hub-Signature-256 signature header for request data. This is a Sha256 encoded HMAC hex digest of the payload body. ### ai_mentor_orgs_users_periodic_agents_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/periodic-agents/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_periodic_agents_partial_update.md): Endpoint to create and view, update and delete periodic agents. Periodic agents are schedulers issued for mentors. These are configured with input prompt (if any) as well as a cron schedule to trigger the periodic agent. Access to these are restricted to platform admins and tenant administrators Session information for running the periodic agent will be generated with the credentials of the user (platform administrator) who created the agent. A Periodic Agent is allowed to have a and . When a is set for a Periodic Agent, a post request with data entries containing the log and timestamp of the run will be made to the callback_url provided. Here is the payload structure: The payload is encrypted using the provided. You can validate the payload using the X-Hub-Signature-256 signature header for request data. This is a Sha256 encoded HMAC hex digest of the payload body. ### ai_mentor_orgs_users_periodic_agents_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/periodic-agents/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_periodic_agents_destroy.md): Endpoint to create and view, update and delete periodic agents. Periodic agents are schedulers issued for mentors. These are configured with input prompt (if any) as well as a cron schedule to trigger the periodic agent. Access to these are restricted to platform admins and tenant administrators Session information for running the periodic agent will be generated with the credentials of the user (platform administrator) who created the agent. A Periodic Agent is allowed to have a and . When a is set for a Periodic Agent, a post request with data entries containing the log and timestamp of the run will be made to the callback_url provided. Here is the payload structure: The payload is encrypted using the provided. You can validate the payload using the X-Hub-Signature-256 signature header for request data. This is a Sha256 encoded HMAC hex digest of the payload body. ### ai_mentor_orgs_users_pin_message_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/pin-message/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_pin_message_list.md): Retrieve pinned messages for a user. Args: request: The HTTP request. org: Organization key identifier. user_id: The username of the student. Returns: Response: Paginated list of pinned messages. Raises: NotFound: If the student or session does not exist. ### ai_mentor_orgs_users_pin_message_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/pin-message/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_pin_message_create.md): Create a pinned message for a user session. Args: request: The HTTP request containing session details. org: Organization key identifier. user_id: The username of the student. Returns: Response: Status 201 on success. Raises: NotFound: If the student does not exist. ValidationError: If request data is invalid. ### ai_mentor_orgs_users_pin_message_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/pin-message/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_pin_message_destroy.md): Delete a pinned message for a user. Args: request: The HTTP request containing session details. org: Organization key identifier. user_id: The username of the student. Returns: Response: Status 204 on success. Raises: NotFound: If the student or pinned message does not exist. ValidationError: If request data is invalid. ### ai_mentor_orgs_users_planned_jobs_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/planned-jobs/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_planned_jobs_list.md): Endpoints for viewing jobs and their status A job run refers to a task with steps that an agent is going to undertake. You can filter job runs by their status. Note that for a single user and a specified session, at most only one JobRun instance is active at any point in time. ### ai_mentor_orgs_users_planned_jobs_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/planned-jobs/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_planned_jobs_retrieve.md): Endpoints for viewing jobs and their status A job run refers to a task with steps that an agent is going to undertake. You can filter job runs by their status. Note that for a single user and a specified session, at most only one JobRun instance is active at any point in time. ### ai_mentor_orgs_users_playwright_scripts_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/playwright-scripts/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_playwright_scripts_list.md): Endpoints for viewing playwright scripts and updating playwright scripts for a tenant and user. ### ai_mentor_orgs_users_playwright_scripts_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/playwright-scripts/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_playwright_scripts_create.md): Endpoints for viewing playwright scripts and updating playwright scripts for a tenant and user. ### ai_mentor_orgs_users_playwright_scripts_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/playwright-scripts/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_playwright_scripts_retrieve.md): Endpoints for viewing playwright scripts and updating playwright scripts for a tenant and user. ### ai_mentor_orgs_users_playwright_scripts_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/playwright-scripts/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_playwright_scripts_update.md): Endpoints for viewing playwright scripts and updating playwright scripts for a tenant and user. ### ai_mentor_orgs_users_playwright_scripts_partial_update - [PATCH /api/ai-mentor/orgs/{org}/users/{user_id}/playwright-scripts/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_playwright_scripts_partial_update.md): Endpoints for viewing playwright scripts and updating playwright scripts for a tenant and user. ### ai_mentor_orgs_users_playwright_scripts_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/playwright-scripts/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_playwright_scripts_destroy.md): Endpoints for viewing playwright scripts and updating playwright scripts for a tenant and user. ### ai_mentor_orgs_users_predictive_analytics_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/predictive-analytics/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_predictive_analytics_create.md): Retrieve predictive analytics based on historical data variables. Args: request: HTTP request containing predictive analytics input. org: Organization key identifier. Returns: - 200: Object containing predicted data. - 400: When AI response cannot be loaded into JSON. - 404: When OpenAI key for the tenant is not set. - 429: When OpenAI request exceeds the rate limit. Example: ### ai_mentor_orgs_users_recent_messages_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/recent-messages/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_recent_messages_retrieve.md): Retrieves recent chat messages based on provided query parameters. Returns: 200: Paginated List of chat messages. 400: Invalid query parameters. ### ai_mentor_orgs_users_recently_accessed_mentors_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/recently-accessed-mentors/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_recently_accessed_mentors_list.md): Endpoint for listing most recently accessed mentors. Accessible to students and admins. Returns: 200: List of most recently accessed mentors. 400: When request is not valid. ### ai_mentor_orgs_users_recommend_courses_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/recommend-courses/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_recommend_courses_retrieve.md): Retrieve recommended courses for a specific user. Args: request: The HTTP request containing query parameters. org: The organization/tenant identifier. user_id: The ID of the user to get recommendations for. Returns: Response: A list of recommended courses. Raises: BadRequest: If the query parameters are invalid. NotFound: If the OpenAI API key for the tenant is not found. TooManyRequests: If rate limits are exceeded. ServerError: If there's an error processing the AI response. ### ai_mentor_orgs_users_recommend_courses_block_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/recommend-courses-block/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_recommend_courses_block_retrieve.md): Retrieve recommended course blocks for a specific user. Args: request: The HTTP request containing query parameters. org: The organization/tenant identifier. user_id: The ID of the user to get recommendations for. Returns: Response: A list of recommended course blocks. Raises: BadRequest: If the query parameters are invalid. ### ai_mentor_orgs_users_resources_web_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/resources/web/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_resources_web_create.md): Search for web resources based on a query. Args: request: The HTTP request containing the search query. org: The organization/tenant identifier. user_id: The ID of the user making the request. Returns: Response: A list of web resources matching the query. Raises: ValidationError: If the search fails or returns no results. ### ai_mentor_orgs_users_safety_logs_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/safety-logs/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_safety_logs_list.md): Endpoint to view and delete Safety System Logs for a tenant. These can be filtered by username, platform_key and mentor id A search query can be conducted to search through the prompts and reason for the moderation catch event. ### ai_mentor_orgs_users_safety_logs_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/safety-logs/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_safety_logs_retrieve.md): Endpoint to view and delete Safety System Logs for a tenant. These can be filtered by username, platform_key and mentor id A search query can be conducted to search through the prompts and reason for the moderation catch event. ### ai_mentor_orgs_users_safety_logs_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/safety-logs/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_safety_logs_destroy.md): Endpoint to view and delete Safety System Logs for a tenant. These can be filtered by username, platform_key and mentor id A search query can be conducted to search through the prompts and reason for the moderation catch event. ### ai_mentor_orgs_users_session_detail_mentors_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/session-detail/mentors/{mentor}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_session_detail_mentors_list.md): Retrieve session details including message counts and timestamps. Query Parameters: page (optional, int): Page number for pagination. Returns: - 200: Paginated list of session details. - 404: Session not found. ### ai_mentor_orgs_users_sessionid_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/sessionid/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessionid_list.md): Retrieve user sessions filtered by start date and end date. Query Parameters: start_date (optional, ISO format): Start date for filtering sessions. end_date (optional, ISO format): End date for filtering sessions. Returns: - 200: List of session IDs with insertion timestamps. - 400: Invalid request parameters. ### ai_mentor_orgs_users_sessions_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_create.md): Retrieve or create a chat session with a mentor. Passing as results in using all tools assigned to the mentor. To specify that no tools be used, pass an empty list. Args: request: HTTP request containing mentor details. org: Organization key identifier. user_id (optional): Username for authentication (if required by the mentor). Returns: Response: JSON object containing the session ID. Raises: Http404: If the mentor is not found. ValidationError: If the username is invalid. ValidationError: If one or more tool slugs are invalid. ### Retrieve Chat Messages - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_retrieve.md): Fetches chat messages for a specific session. ### ai_mentor_orgs_users_sessions_update - [PUT /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_update.md): Update the title of a chat session and its tools ### ai_mentor_orgs_users_sessions_destroy - [DELETE /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_destroy.md): Deletes all messages in a chat session. ### ai_mentor_orgs_users_sessions_browser_screenshot_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/browser-screenshot/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_browser_screenshot_retrieve.md): Endpoint to fetch the logs of a session. Logs are cached for up to 1 hour of their creation: accessing the logs after an hour will result in an empty data. This is intentional and made to avoid cases where logs bloat our in-memory db. Accessible to tenant admins and students. Url Args: org (str): The organization's platform key. user_id (str): The username identifier of the individual. session_id (str): The session id. Returns: 200: a SessionBrowserScreenshot object ### ai_mentor_orgs_users_sessions_download_session_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/download-session](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_download_session_retrieve.md): Retrieves the chat history for a session as a plain text file. Returns: 200: txt file containing coversation ### ai_mentor_orgs_users_sessions_memory_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/memory/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_memory_retrieve.md): Retrieve memory data for a specific session. This endpoint returns the memory components (knowledge gaps, lessons learned, help requests) that were generated during the specified chat session. Args: org: The organization/tenant identifier. user_id: The ID of the user who owns the session. session_id: The ID of the session to retrieve memory for. Returns: Response: The memory data associated with the session. Raises: NotFound: If the session does not exist or does not belong to the user. ### ai_mentor_orgs_users_sessions_shell_logs_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/shell-logs/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_shell_logs_retrieve.md): Retrieve shell logs for a specific session. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user who owns the session. session_id: The ID of the session to retrieve logs for. Returns: Response: The shell logs for the specified session. Raises: NotFound: If the specified session does not exist. ### ai_mentor_orgs_users_sessions_suggestion_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/suggestion](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_suggestion_list.md): Retrieve a list of related questions based on a chat session. ### ai_mentor_orgs_users_sessions_tasks_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/tasks/{task_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_sessions_tasks_retrieve.md): Retrieves the chat history for a given session if the export task is ready. Returns: 200: When task is not ready. 200: chat history object 400: When data is not valid. ### ai_mentor_orgs_users_settings_tenant_llm_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/settings/tenant-llm/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_settings_tenant_llm_list.md): Retrieve all LLM models assigned to a specific tenant. Args: request: The HTTP request. org: The unique identifier of the tenant. Returns: Response: A list of LLM models assigned to the tenant. Raises: NotFound: If the specified tenant does not have any associated models. ValidationError: If an unexpected error occurs. ### ai_mentor_orgs_users_settings_tenant_llm_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/settings/tenant-llm/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_settings_tenant_llm_create.md): Create or update an LLM model for a tenant. Accessible only to tenant administrators. Args: request: The HTTP request containing LLM model details. org: The unique identifier of the tenant. Returns: Response: Details of the newly created or updated LLM model. Raises: ValidationError: If request data is invalid. NotFound: If the tenant does not exist. ### ai_mentor_orgs_users_starred_mentors_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/starred-mentors/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_starred_mentors_list.md): Retrieve a list of mentors starred by a specific user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve starred mentors for. Returns: Response: A list of the user's starred mentors, sorted by most recently accessed. Raises: NotFound: If the specified student does not exist. BadRequest: If the request is invalid. ### ai_mentor_orgs_users_tasks_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/tasks/{task_id}](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_tasks_retrieve.md): Retrieves the status of a task using its task ID. Accessible to both tenant admins and students. Returns: 200: task id ### ai_mentor_orgs_users_tasks_sessions_create - [POST /api/ai-mentor/orgs/{org}/users/{user_id}/tasks/sessions/{session_id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_tasks_sessions_create.md): Export chat history for a session. Returns: 200: Task ID for the export operation. ### ai_mentor_orgs_users_voices_list - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/voices/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_voices_list.md): Retrieve a list of available voice options. Args: request: The HTTP request. Returns: Response: A list of available voice options. Raises: NotFound: If no voice options are available. ### ai_mentor_orgs_users_voices_retrieve - [GET /api/ai-mentor/orgs/{org}/users/{user_id}/voices/{id}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_users_voices_retrieve.md): Retrieve details of a specific voice option. Args: request: The HTTP request. pk: The primary key of the voice option to retrieve. Returns: Response: The details of the specified voice option. Raises: NotFound: If the specified voice option does not exist. ### ai_mentor_orgs_webhooks_azure_trigger_create - [POST /api/ai-mentor/orgs/{org}/webhooks/azure/trigger/{slug}/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_webhooks_azure_trigger_create.md) ### ai_mentor_orgs_webhooks_github_pullrequest_create - [POST /api/ai-mentor/orgs/{org}/webhooks/github/pullrequest/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_orgs_webhooks_github_pullrequest_create.md): Handle incoming POST requests from GitHub webhook for pull requests. Args: request: The HTTP request object containing the webhook payload. org: the organizaion name. Returns: Response: A response indicating the result of processing the webhook event. ### ai_mentor_webhooks_azure_emailchat_create - [POST /api/ai-mentor/webhooks/azure/emailchat/](https://docs.ibl.ai/apis/ibl/ai-mentor/ai_mentor_webhooks_azure_emailchat_create.md) ## ai-prompt ### ai_prompt_orgs_metadata_create - [POST /api/ai-prompt/orgs/{org}/metadata/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_metadata_create.md): Create or update metadata for a prompt. Args: request: The HTTP request containing the metadata. org: The organization/tenant identifier. Returns: Response: The created or updated prompt metadata. Raises: BadRequest: If the provided data is invalid. ### ai_prompt_orgs_users_all_chats_memory_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/all-chats-memory/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_all_chats_memory_retrieve.md): Retrieve chat memory for a specific user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve chat memory for. Returns: Response: The user's chat memory entries. Raises: NotFound: If no chat memory exists for the user. ### ai_prompt_orgs_users_all_chats_memory_create - [POST /api/ai-prompt/orgs/{org}/users/{user_id}/all-chats-memory/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_all_chats_memory_create.md): Create a new chat memory entry for a user. Args: request: The HTTP request containing the chat memory data. org: The organization/tenant identifier. user_id: The ID of the user to create chat memory for. Returns: Response: The created chat memory entry. Raises: BadRequest: If the provided data is invalid. ### ai_prompt_orgs_users_all_chats_memory_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/all-chats-memory/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_all_chats_memory_update.md): Update chat memory for a specific user. Args: request: The HTTP request containing the updated chat memory data. org: The organization/tenant identifier. user_id: The ID of the user to update chat memory for. Returns: Response: A confirmation of the scheduled update task. Raises: BadRequest: If the provided data is invalid. NotFound: If no chat memory exists for the user. ### ai_prompt_orgs_users_all_chats_memory_destroy - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/all-chats-memory/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_all_chats_memory_destroy.md): Delete all chat memory for a specific user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to delete chat memory for. Returns: Response: A success message if the memory was deleted. Raises: NotFound: If no chat memory exists for the user. ### ai_prompt_orgs_users_all_chats_memory_update_2 - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/all-chats-memory/{memory_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_all_chats_memory_update_2.md): Update a specific chat memory entry. Args: request: The HTTP request containing the updated chat memory data. org: The organization/tenant identifier. user_id: The ID of the user who owns the memory. memory_id: The ID of the specific memory entry to update. Returns: Response: The updated chat memory entry. Raises: BadRequest: If the provided data is invalid. NotFound: If the specified memory entry does not exist. ### ai_prompt_orgs_users_all_chats_memory_destroy_2 - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/all-chats-memory/{memory_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_all_chats_memory_destroy_2.md): Delete a specific chat memory entry. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user who owns the memory. memory_id: The ID of the specific memory entry to delete. Returns: Response: A success message if the memory was deleted. Raises: NotFound: If the specified memory entry does not exist. ### ai_prompt_orgs_users_chat_memory_status_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/chat-memory-status/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_chat_memory_status_retrieve.md): Retrieve the chat memory status for a specific user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve memory status for. Returns: Response: The user's chat memory status. Raises: NotFound: If no memory status exists for the user. ### ai_prompt_orgs_users_chat_memory_status_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/chat-memory-status/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_chat_memory_status_update.md): Update the chat memory status for a specific user. Args: request: The HTTP request containing the updated status. org: The organization/tenant identifier. user_id: The ID of the user to update memory status for. Returns: Response: The updated chat memory status. Raises: BadRequest: If the provided data is invalid. ### ai_prompt_orgs_users_languages_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/languages/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_languages_retrieve.md): Retrieve all available prompt languages. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. Returns: Response: A list of available prompt languages. ### ai_prompt_orgs_users_languages_create - [POST /api/ai-prompt/orgs/{org}/users/{user_id}/languages/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_languages_create.md): Create a new prompt language. Args: request: The HTTP request containing the language data. org: The organization/tenant identifier. user_id: The ID of the user creating the language. Returns: Response: The created prompt language. Raises: BadRequest: If the provided data is invalid. ### ai_prompt_orgs_users_languages_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/languages/{language_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_languages_update.md): Update a specific prompt language. Args: request: The HTTP request containing the updated language data. org: The organization/tenant identifier. user_id: The ID of the user making the request. language_id: The ID of the language to update. Returns: Response: The updated prompt language. Raises: BadRequest: If the provided data is invalid. NotFound: If the specified language does not exist. ### ai_prompt_orgs_users_languages_destroy - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/languages/{language_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_languages_destroy.md): Delete a specific prompt language. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. language_id: The ID of the language to delete. Returns: Response: A success message if the language was deleted. Raises: NotFound: If the specified language does not exist. ### ai_prompt_orgs_users_memory_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/memory/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_retrieve.md): Retrieve catalog item memory for a specific user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve catalog item memory for. Returns: Response: The user's catalog item memory entries. Raises: NotFound: If no catalog item memory exists for the user. ### ai_prompt_orgs_users_memory_create - [POST /api/ai-prompt/orgs/{org}/users/{user_id}/memory/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_create.md): Create a new catalog item memory entry for a user. Args: request: The HTTP request containing the catalog item memory data. org: The organization/tenant identifier. user_id: The ID of the user to create catalog item memory for. Returns: Response: The created catalog item memory entry. Raises: BadRequest: If the provided data is invalid. ### ai_prompt_orgs_users_memory_destroy - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/memory/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_destroy.md): Delete all catalog item memory for a specific user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to delete catalog item memory for. Returns: Response: A success message if the memory was deleted. Raises: NotFound: If no catalog item memory exists for the user. ### ai_prompt_orgs_users_memory_context_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/memory-context/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_context_retrieve.md): Retrieve a user's memory context settings. ### ai_prompt_orgs_users_memory_context_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/memory-context/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_context_update.md): Updates the user's memory context settings. Returns: 200: list of user memory context data. ### ai_prompt_orgs_users_memory_status_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/memory-status/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_status_retrieve.md): Retrieve the memory status for a specific user. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user to retrieve memory status for. Returns: Response: The user's memory status. Raises: NotFound: If no memory status exists for the user. ### ai_prompt_orgs_users_memory_status_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/memory-status/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_status_update.md): Update the memory status for a specific user. Args: request: The HTTP request containing the updated status. org: The organization/tenant identifier. user_id: The ID of the user to update memory status for. Returns: Response: The updated memory status. Raises: BadRequest: If the provided data is invalid. ### ai_prompt_orgs_users_memory_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/memory/{memory_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_update.md): Update a specific catalog item memory entry. Args: request: The HTTP request containing the updated catalog item memory data. org: The organization/tenant identifier. user_id: The ID of the user who owns the memory. memory_id: The ID of the specific memory entry to update. Returns: Response: The updated catalog item memory entry. Raises: BadRequest: If the provided data is invalid. NotFound: If the specified memory entry does not exist. ### ai_prompt_orgs_users_memory_destroy_2 - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/memory/{memory_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_memory_destroy_2.md): Delete a specific catalog item memory entry. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user who owns the memory. memory_id: The ID of the specific memory entry to delete. Returns: Response: A success message if the memory was deleted. Raises: NotFound: If the specified memory entry does not exist. ### ai_prompt_orgs_users_metadata_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/metadata](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_metadata_retrieve.md): Retrieve metadata for a prompt. Args: request: The HTTP request. org: The organization/tenant identifier. user_id: The ID of the user making the request. Returns: Response: The prompt metadata. Raises: NotFound: If no metadata exists for the specific prompt ### ai_prompt_orgs_users_prompt_list - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/prompt/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompt_list.md): API viewset for managing prompts. This view allows tenant admins and students to create, retrieve, update, and filter prompts based on various parameters. Permissions: - Accessible to both tenant administrators and students ### ai_prompt_orgs_users_prompt_create - [POST /api/ai-prompt/orgs/{org}/users/{user_id}/prompt/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompt_create.md): Create a new prompt. Args: request: HTTP request containing prompt data. Returns: Response with created prompt details. Raises: ValidationError: If the input data is invalid. ### ai_prompt_orgs_users_prompt_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/prompt/{id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompt_retrieve.md): API viewset for managing prompts. This view allows tenant admins and students to create, retrieve, update, and filter prompts based on various parameters. Permissions: - Accessible to both tenant administrators and students ### ai_prompt_orgs_users_prompt_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/prompt/{id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompt_update.md): Update an existing prompt. Args: request: HTTP request containing updated prompt data. Returns: Response with updated prompt details. Raises: ValidationError: If the input data is invalid. PermissionDenied: If the prompt is system-generated and cannot be edited. ### ai_prompt_orgs_users_prompt_partial_update - [PATCH /api/ai-prompt/orgs/{org}/users/{user_id}/prompt/{id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompt_partial_update.md): API viewset for managing prompts. This view allows tenant admins and students to create, retrieve, update, and filter prompts based on various parameters. Permissions: - Accessible to both tenant administrators and students ### ai_prompt_orgs_users_prompt_destroy - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/prompt/{id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompt_destroy.md): API viewset for managing prompts. This view allows tenant admins and students to create, retrieve, update, and filter prompts based on various parameters. Permissions: - Accessible to both tenant administrators and students ### ai_prompt_orgs_users_prompts_category_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/prompts/category/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompts_category_retrieve.md): Retrieve a list of prompt categories. Query Parameters: - filter_by (optional): Sorts categories by name if set to "name". Args: request: The HTTP request. org: Organization key identifier. Returns: - 200: List of prompt categories. - 400: If query parameters are invalid. ### ai_prompt_orgs_users_prompts_category_create - [POST /api/ai-prompt/orgs/{org}/users/{user_id}/prompts/category/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompts_category_create.md): Create a new prompt category. Args: request: The HTTP request containing category information. org: Organization key identifier. user_id: User performing the request. Returns: - 201: Created prompt category. - 401: If the user is not a tenant admin. - 400: If request data is invalid. ### ai_prompt_orgs_users_prompts_category_destroy - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/prompts/category/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompts_category_destroy.md): Delete a prompt category. Args: request: The HTTP request containing the category to delete. org: Organization key identifier. user_id: User performing the request. Returns: - 204: No Content (successful deletion). - 401: If the user is not a tenant admin. - 400: If request data is invalid. - 404: If the category does not exist. ### ai_prompt_orgs_users_prompts_public_list - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/prompts/public/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompts_public_list.md): API viewset for managing prompts. This view allows anyone to retrieve, and filter prompts based on various parameters. Permissions: - Accessible to anyone ### ai_prompt_orgs_users_prompts_public_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/prompts/public/{id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_prompts_public_retrieve.md): API viewset for managing prompts. This view allows anyone to retrieve, and filter prompts based on various parameters. Permissions: - Accessible to anyone ### Retrieve guided prompts for a chat session - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/sessions/{session_id}/guided-prompts/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_sessions_guided_prompts_retrieve.md): Fetches AI-generated guided prompts for a given session and organization. ### ai_prompt_orgs_users_styles_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/styles/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_styles_retrieve.md): Endpoint for getting prompt styles. Accessible to tenant admins and students. Returns: 200: List of styles. ### ai_prompt_orgs_users_styles_create - [POST /api/ai-prompt/orgs/{org}/users/{user_id}/styles/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_styles_create.md): Endpoint for Adding prompt style. Accessible to tenant admins only. Returns: 201: style Object. 400: When data is not valid. ### ai_prompt_orgs_users_styles_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/styles/{style_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_styles_update.md): Endpoint for Adding prompt style. Accessible to tenant admins only. Returns: 200: style Object. 400: When data is not valid. ### ai_prompt_orgs_users_styles_destroy - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/styles/{style_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_styles_destroy.md): Endpoint for deleting prompt style. Accessible to tenant admins and students. Returns: 204: No response data. 400: When data is not valid. ### ai_prompt_orgs_users_tags_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/tags/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_tags_retrieve.md): Endpoint for getting prompt tags. Accessible to tenant admins and students. Returns: 200: List of tags. ### ai_prompt_orgs_users_tags_create - [POST /api/ai-prompt/orgs/{org}/users/{user_id}/tags/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_tags_create.md): Endpoint for Adding prompt tag. Accessible to tenant admins and students. Returns: 201: tag Object. 400: When data is not valid. Example: POST: /api/ai-prompt/orgs/main/users/johndoe/tags/ Request: Response: { "name": "Programming", "description": "tags for programing prompts" } Response: { "id": 1, "name": "Programming", "description": "tags for programing prompts" } ### ai_prompt_orgs_users_tags_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/tags/{tag_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_tags_update.md): Endpoint for updating prompt tag. Accessible to tenant admins and students. Returns: 200: tag Object. 400: When data is not valid. ### ai_prompt_orgs_users_tags_destroy - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/tags/{tag_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_tags_destroy.md): Endpoint for deleting prompt tag. Accessible to tenant admins and students. Returns: 204: No response data. 400: When data is not valid. ### ai_prompt_orgs_users_tones_retrieve - [GET /api/ai-prompt/orgs/{org}/users/{user_id}/tones/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_tones_retrieve.md): Endpoint for getting prompt tones. Accessible to tenant admins and students. Returns: 200: List of tones. ### ai_prompt_orgs_users_tones_create - [POST /api/ai-prompt/orgs/{org}/users/{user_id}/tones/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_tones_create.md): Endpoint for Adding prompt tone. Accessible to tenant admins only. Returns: 201: tone Object. 400: When data is not valid. ### ai_prompt_orgs_users_tones_update - [PUT /api/ai-prompt/orgs/{org}/users/{user_id}/tones/{tone_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_tones_update.md): Endpoint for updating prompt tone. Accessible to tenant admins only. Returns: 200: tone Object. 400: When data is not valid. ### ai_prompt_orgs_users_tones_destroy - [DELETE /api/ai-prompt/orgs/{org}/users/{user_id}/tones/{tone_id}/](https://docs.ibl.ai/apis/ibl/ai-prompt/ai_prompt_orgs_users_tones_destroy.md): Endpoint for deleting prompt tone. Accessible to tenant admins and students. Returns: 204: No response data. 400: When data is not valid. ## career ### career_location_orgs_users_retrieve - [GET /api/career/location/orgs/{org}/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_location_orgs_users_retrieve.md): API endpoint for managing user base locations ### career_location_orgs_users_create - [POST /api/career/location/orgs/{org}/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_location_orgs_users_create.md): API endpoint for managing user base locations ### career_location_orgs_users_update - [PUT /api/career/location/orgs/{org}/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_location_orgs_users_update.md): API endpoint for managing user base locations ### career_locations_orgs_retrieve - [GET /api/career/locations/orgs/{org}/](https://docs.ibl.ai/apis/ibl/career/career_locations_orgs_retrieve.md): Platform-wide location statistics (GET only) ### career_orgs_companies_users_retrieve - [GET /api/career/orgs/{org}/companies/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_companies_users_retrieve.md) ### career_orgs_companies_users_create - [POST /api/career/orgs/{org}/companies/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_companies_users_create.md) ### career_orgs_companies_users_update - [PUT /api/career/orgs/{org}/companies/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_companies_users_update.md) ### career_orgs_companies_users_destroy - [DELETE /api/career/orgs/{org}/companies/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_companies_users_destroy.md) ### career_orgs_education_users_retrieve - [GET /api/career/orgs/{org}/education/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_education_users_retrieve.md) ### career_orgs_education_users_create - [POST /api/career/orgs/{org}/education/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_education_users_create.md) ### career_orgs_education_users_update - [PUT /api/career/orgs/{org}/education/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_education_users_update.md) ### career_orgs_education_users_destroy - [DELETE /api/career/orgs/{org}/education/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_education_users_destroy.md) ### career_orgs_experience_users_retrieve - [GET /api/career/orgs/{org}/experience/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_experience_users_retrieve.md) ### career_orgs_experience_users_create - [POST /api/career/orgs/{org}/experience/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_experience_users_create.md) ### career_orgs_experience_users_update - [PUT /api/career/orgs/{org}/experience/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_experience_users_update.md) ### career_orgs_experience_users_destroy - [DELETE /api/career/orgs/{org}/experience/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_experience_users_destroy.md) ### career_orgs_institutions_users_retrieve - [GET /api/career/orgs/{org}/institutions/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_institutions_users_retrieve.md) ### career_orgs_institutions_users_create - [POST /api/career/orgs/{org}/institutions/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_institutions_users_create.md) ### career_orgs_institutions_users_update - [PUT /api/career/orgs/{org}/institutions/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_institutions_users_update.md) ### career_orgs_institutions_users_destroy - [DELETE /api/career/orgs/{org}/institutions/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_institutions_users_destroy.md) ### career_orgs_programs_users_retrieve - [GET /api/career/orgs/{org}/programs/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_programs_users_retrieve.md) ### career_orgs_programs_users_create - [POST /api/career/orgs/{org}/programs/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_programs_users_create.md) ### career_orgs_programs_users_update - [PUT /api/career/orgs/{org}/programs/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_programs_users_update.md) ### career_orgs_programs_users_destroy - [DELETE /api/career/orgs/{org}/programs/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_orgs_programs_users_destroy.md) ### career_resume_orgs_users_retrieve - [GET /api/career/resume/orgs/{org}/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_resume_orgs_users_retrieve.md) ### career_resume_orgs_users_create - [POST /api/career/resume/orgs/{org}/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_resume_orgs_users_create.md) ### career_resume_orgs_users_update - [PUT /api/career/resume/orgs/{org}/users/{username}/](https://docs.ibl.ai/apis/ibl/career/career_resume_orgs_users_update.md) ## 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 ## core ### core_consolidated_token_proxy_create - [POST /api/core/consolidated-token/proxy/](https://docs.ibl.ai/apis/ibl/core/core_consolidated_token_proxy_create.md): Create DM and AXD Tokens for user and platform_key Params: - Any of user_id, username, or email (choose one only, required) - platform_key: str (required) ### core_departments_retrieve - [GET /api/core/departments/](https://docs.ibl.ai/apis/ibl/core/core_departments_retrieve.md): Show (active) departments associated with a platform ### core_departments_create - [POST /api/core/departments/](https://docs.ibl.ai/apis/ibl/core/core_departments_create.md): Create/update a department ### core_departments_destroy - [DELETE /api/core/departments/](https://docs.ibl.ai/apis/ibl/core/core_departments_destroy.md): Delete department ### core_departments_members_retrieve - [GET /api/core/departments/members/](https://docs.ibl.ai/apis/ibl/core/core_departments_members_retrieve.md): Show active users in department (paginated) ### core_departments_members_create - [POST /api/core/departments/members/](https://docs.ibl.ai/apis/ibl/core/core_departments_members_create.md): Add single user to department, or update status ### core_departments_members_destroy - [DELETE /api/core/departments/members/](https://docs.ibl.ai/apis/ibl/core/core_departments_members_destroy.md): Delete department member ### core_departments_members_bulk_create - [POST /api/core/departments/members/bulk/](https://docs.ibl.ai/apis/ibl/core/core_departments_members_bulk_create.md): Add users to department, or update status ### core_departments_members_check_retrieve - [GET /api/core/departments/members/check/](https://docs.ibl.ai/apis/ibl/core/core_departments_members_check_retrieve.md): Get department member admin info of requesting user ### core_domains_whitelist_retrieve - [GET /api/core/domains/whitelist/](https://docs.ibl.ai/apis/ibl/core/core_domains_whitelist_retrieve.md): Check if a domain is whitelisted ### core_domains_whitelist_create - [POST /api/core/domains/whitelist/](https://docs.ibl.ai/apis/ibl/core/core_domains_whitelist_create.md): Add a new domain to whitelist ### core_heartbeat_celery_retrieve - [GET /api/core/heartbeat/celery/](https://docs.ibl.ai/apis/ibl/core/core_heartbeat_celery_retrieve.md): Celery heartbeat endpoint. GET /api/core/heartbeat/celery/ * 200 on success. * 500 on failure. ### core_heartbeat_celery_beat_retrieve - [GET /api/core/heartbeat/celery-beat/](https://docs.ibl.ai/apis/ibl/core/core_heartbeat_celery_beat_retrieve.md): Celery Beat heartbeat endpoint. GET /api/core/heartbeat/celery-beat/ * 200 on success. * 500 on failure. ### core_launcher_retrieve - [GET /api/core/launcher/](https://docs.ibl.ai/apis/ibl/core/core_launcher_retrieve.md): GET Launch status Params: key user_id: Optional ### core_launcher_create - [POST /api/core/launcher/](https://docs.ibl.ai/apis/ibl/core/core_launcher_create.md): POST: Launch a new edX platform Params: user_id: The ID of the requesting user (required) key: The Deep LMS subdomain (required) name: The edX platform name ("optional") org: The edX organization ("optional") lms_url: LMS URL ("optional") cms_url: CMS URL ("optional") portal_url: Portal URL ("optional") ### core_lti_1p3_provider_lti_keys_list - [GET /api/core/lti/1p3/provider/lti-keys/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_keys_list.md): List your LTI Provider Key's ### core_lti_1p3_provider_lti_keys_create - [POST /api/core/lti/1p3/provider/lti-keys/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_keys_create.md): Create a new LTI Provider Key ### core_lti_1p3_provider_lti_keys_retrieve - [GET /api/core/lti/1p3/provider/lti-keys/{id}/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_keys_retrieve.md): Get details about a specific LTI Provider Key ### core_lti_1p3_provider_lti_keys_update - [PUT /api/core/lti/1p3/provider/lti-keys/{id}/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_keys_update.md): Update an LTI Provider Key ### core_lti_1p3_provider_lti_keys_destroy - [DELETE /api/core/lti/1p3/provider/lti-keys/{id}/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_keys_destroy.md): Delete an LTI Provider Key Deleting a key will also delete all Tools that reference that Key. If you need to delete a Key you should first create a new one and update all Tools to reference the new Key before deleting the old one. ### core_lti_1p3_provider_lti_tools_list - [GET /api/core/lti/1p3/provider/lti-tools/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_tools_list.md): List your LTI Tool's ### core_lti_1p3_provider_lti_tools_create - [POST /api/core/lti/1p3/provider/lti-tools/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_tools_create.md): Create a new LTI Tool ### core_lti_1p3_provider_lti_tools_retrieve - [GET /api/core/lti/1p3/provider/lti-tools/{id}/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_tools_retrieve.md): Get details about a specific LTI Tool ### core_lti_1p3_provider_lti_tools_update - [PUT /api/core/lti/1p3/provider/lti-tools/{id}/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_tools_update.md): Update an LTI Tool ### core_lti_1p3_provider_lti_tools_destroy - [DELETE /api/core/lti/1p3/provider/lti-tools/{id}/](https://docs.ibl.ai/apis/ibl/core/core_lti_1p3_provider_lti_tools_destroy.md): Delete an LTI Tool ### core_orgs_dark_mode_logo_retrieve - [GET /api/core/orgs/{org}/dark-mode-logo/](https://docs.ibl.ai/apis/ibl/core/core_orgs_dark_mode_logo_retrieve.md): Get platform logo ### core_orgs_dark_mode_logo_create_create - [POST /api/core/orgs/{org}/dark-mode-logo/create/](https://docs.ibl.ai/apis/ibl/core/core_orgs_dark_mode_logo_create_create.md): Upload a new platform logo ### core_orgs_favicon_retrieve - [GET /api/core/orgs/{org}/favicon/](https://docs.ibl.ai/apis/ibl/core/core_orgs_favicon_retrieve.md): Get platform logo ### core_orgs_favicon_create_create - [POST /api/core/orgs/{org}/favicon/create/](https://docs.ibl.ai/apis/ibl/core/core_orgs_favicon_create_create.md): Upload a new platform logo ### core_orgs_logo_retrieve - [GET /api/core/orgs/{org}/logo/](https://docs.ibl.ai/apis/ibl/core/core_orgs_logo_retrieve.md): Get platform logo ### core_orgs_logo_create_create - [POST /api/core/orgs/{org}/logo/create/](https://docs.ibl.ai/apis/ibl/core/core_orgs_logo_create_create.md): Upload a new platform logo ### core_orgs_metadata_retrieve - [GET /api/core/orgs/{org}/metadata/](https://docs.ibl.ai/apis/ibl/core/core_orgs_metadata_retrieve.md) ### core_orgs_metadata_update - [PUT /api/core/orgs/{org}/metadata/](https://docs.ibl.ai/apis/ibl/core/core_orgs_metadata_update.md) ### core_orgs_metadata_partial_update - [PATCH /api/core/orgs/{org}/metadata/](https://docs.ibl.ai/apis/ibl/core/core_orgs_metadata_partial_update.md) ### core_orgs_redirect_tokens_create - [POST /api/core/orgs/{org}/redirect-tokens/](https://docs.ibl.ai/apis/ibl/core/core_orgs_redirect_tokens_create.md): Creates redirect tokens for a URL specified by for a platform ### core_orgs_redirect_tokens_retrieve - [GET /api/core/orgs/{org}/redirect-tokens/{redirect_token}/](https://docs.ibl.ai/apis/ibl/core/core_orgs_redirect_tokens_retrieve.md): Returns Redirect URL for the token specified. ### core_orgs_redirect_tokens_delete_destroy - [DELETE /api/core/orgs/{org}/redirect-tokens/{redirect_token}/delete](https://docs.ibl.ai/apis/ibl/core/core_orgs_redirect_tokens_delete_destroy.md): Delete specific token ### core_orgs_thumbnail_retrieve - [GET /api/core/orgs/{org}/thumbnail/](https://docs.ibl.ai/apis/ibl/core/core_orgs_thumbnail_retrieve.md): Get platform logo ### core_orgs_thumbnail_create_create - [POST /api/core/orgs/{org}/thumbnail/create/](https://docs.ibl.ai/apis/ibl/core/core_orgs_thumbnail_create_create.md): Upload a new platform logo ### core_platform_retrieve - [GET /api/core/platform/](https://docs.ibl.ai/apis/ibl/core/core_platform_retrieve.md): GET /api/core/platform/ Get main platform info. POST /api/core/platform/ Save main platform settings. Params: user_id (optional) key field_key (POST) value (POST) ### core_platform_create - [POST /api/core/platform/](https://docs.ibl.ai/apis/ibl/core/core_platform_create.md): Update platform object Params: user_id key new_key (If changing platform key) name Advanced Params (Don't expose these to users) lms_url cms_url portal_url ### core_platform_api_tokens_list - [GET /api/core/platform/api-tokens/](https://docs.ibl.ai/apis/ibl/core/core_platform_api_tokens_list.md): List Platform API Key's belonging to the target platform ### core_platform_api_tokens_create - [POST /api/core/platform/api-tokens/](https://docs.ibl.ai/apis/ibl/core/core_platform_api_tokens_create.md): Create a new Platform Api Key for the target platform ### core_platform_api_tokens_destroy - [DELETE /api/core/platform/api-tokens/{name}](https://docs.ibl.ai/apis/ibl/core/core_platform_api_tokens_destroy.md): Delete Platform Api Key by name in the target platform ### core_platform_config_site_retrieve - [GET /api/core/platform/config/site/](https://docs.ibl.ai/apis/ibl/core/core_platform_config_site_retrieve.md): GET /site Get site settings. POST /site Save site settings. Params: user_id key field_key (POST) value (POST) ### core_platform_config_site_create - [POST /api/core/platform/config/site/](https://docs.ibl.ai/apis/ibl/core/core_platform_config_site_create.md): GET /site Get site settings. POST /site Save site settings. Params: user_id key field_key (POST) value (POST) ### core_platform_users_retrieve - [GET /api/core/platform/users/](https://docs.ibl.ai/apis/ibl/core/core_platform_users_retrieve.md): Retrieve users associated with platform Params: platform_key platform_org query sort is_admin: Return tenant admin users ### List RBAC groups - [GET /api/core/rbac/groups/](https://docs.ibl.ai/apis/ibl/core/core_rbac_groups_list.md): Retrieve a list of RBAC groups. Can be filtered by platform_key. ### Create RBAC group - [POST /api/core/rbac/groups/](https://docs.ibl.ai/apis/ibl/core/core_rbac_groups_create.md): Create a new RBAC group for a platform. Users can be assigned during creation. ### Retrieve RBAC group - [GET /api/core/rbac/groups/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_groups_retrieve.md): Retrieve details of a specific RBAC group including assigned users. ### Update RBAC group - [PUT /api/core/rbac/groups/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_groups_update.md): Update an existing RBAC group. Platform validation applies for user assignments. ### Partially update RBAC group - [PATCH /api/core/rbac/groups/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_groups_partial_update.md): Partially update an existing RBAC group. Platform validation applies for user assignments. ### Delete RBAC group - [DELETE /api/core/rbac/groups/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_groups_destroy.md): Delete an RBAC group and all associated group role assignments. ### List RBAC policies - [GET /api/core/rbac/policies/](https://docs.ibl.ai/apis/ibl/core/core_rbac_policies_list.md): Retrieve a list of RBAC policies. Can be filtered by platform_key or role_id. ### Create RBAC policy - [POST /api/core/rbac/policies/](https://docs.ibl.ai/apis/ibl/core/core_rbac_policies_create.md): Create a new RBAC policy that defines resource access for a role ### Retrieve RBAC policy - [GET /api/core/rbac/policies/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_policies_retrieve.md): Retrieve details of a specific RBAC policy, including role, platform, resources, users, and groups. ### Update RBAC policy - [PUT /api/core/rbac/policies/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_policies_update.md): Update an existing RBAC policy. ### Partially update RBAC policy - [PATCH /api/core/rbac/policies/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_policies_partial_update.md): Partially update an existing RBAC policy. Only provided fields will be updated. ### Delete RBAC policy - [DELETE /api/core/rbac/policies/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_policies_destroy.md): Delete an RBAC policy. ### List RBAC roles - [GET /api/core/rbac/roles/](https://docs.ibl.ai/apis/ibl/core/core_rbac_roles_list.md): Retrieve a list of RBAC roles. Can be filtered by platform_key. ### Create RBAC role - [POST /api/core/rbac/roles/](https://docs.ibl.ai/apis/ibl/core/core_rbac_roles_create.md): Create a new RBAC role for a platform. ### Retrieve RBAC role - [GET /api/core/rbac/roles/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_roles_retrieve.md): Retrieve details of a specific RBAC role. ### Update RBAC role - [PUT /api/core/rbac/roles/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_roles_update.md): Update an existing RBAC role. ### Partially update RBAC role - [PATCH /api/core/rbac/roles/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_roles_partial_update.md): Partially update an existing RBAC role. ### Delete RBAC role - [DELETE /api/core/rbac/roles/{id}/](https://docs.ibl.ai/apis/ibl/core/core_rbac_roles_destroy.md): Delete an RBAC role. ### core_session_logout_create - [POST /api/core/session/logout/](https://docs.ibl.ai/apis/ibl/core/core_session_logout_create.md): Invalidate all tokens for the authenticated user ### core_signals_edx_create - [POST /api/core/signals/edx/](https://docs.ibl.ai/apis/ibl/core/core_signals_edx_create.md): POST signals/edx/ ### core_token_proxy_create - [POST /api/core/token/proxy/](https://docs.ibl.ai/apis/ibl/core/core_token_proxy_create.md): Param: Any of user_id/username/email ### core_token_verify_retrieve - [GET /api/core/token/verify/](https://docs.ibl.ai/apis/ibl/core/core_token_verify_retrieve.md): Check token user ### core_user_groups_retrieve - [GET /api/core/user_groups/](https://docs.ibl.ai/apis/ibl/core/core_user_groups_retrieve.md): Show (active) user groups associated with a platform ### core_user_groups_create - [POST /api/core/user_groups/](https://docs.ibl.ai/apis/ibl/core/core_user_groups_create.md): Create/update a user group ### core_user_groups_destroy - [DELETE /api/core/user_groups/](https://docs.ibl.ai/apis/ibl/core/core_user_groups_destroy.md): Delete user group ### core_user_groups_link_retrieve - [GET /api/core/user_groups/link/](https://docs.ibl.ai/apis/ibl/core/core_user_groups_link_retrieve.md): Show active users in user group (paginated) group_id is numeric ID of group ### core_user_groups_link_create - [POST /api/core/user_groups/link/](https://docs.ibl.ai/apis/ibl/core/core_user_groups_link_create.md): Add single user to user group, or update status ### core_user_groups_link_destroy - [DELETE /api/core/user_groups/link/](https://docs.ibl.ai/apis/ibl/core/core_user_groups_link_destroy.md): Delete user group link ### core_user_groups_link_bulk_create - [POST /api/core/user_groups/link/bulk/](https://docs.ibl.ai/apis/ibl/core/core_user_groups_link_bulk_create.md): Add users to user group, or update status ### core_users_delete_create - [POST /api/core/users/delete/](https://docs.ibl.ai/apis/ibl/core/core_users_delete_create.md): Initiates the account deletion process for the authenticated user or specified username. ### core_users_metadata_proxy_retrieve - [GET /api/core/users/metadata/proxy/](https://docs.ibl.ai/apis/ibl/core/core_users_metadata_proxy_retrieve.md): Get detailed user information. Make permission check for platform admins here, then proxy request to edx. ### core_users_platforms_list - [GET /api/core/users/platforms/](https://docs.ibl.ai/apis/ibl/core/core_users_platforms_list.md): Retrieve platforms associated with user_id Params: user_id username email ### core_users_platforms_create - [POST /api/core/users/platforms/](https://docs.ibl.ai/apis/ibl/core/core_users_platforms_create.md): Explicitly link platform to user_id Params: user_id platform_key added_on (optional) expired_on (optional) is_admin (optional) active (optional) ### core_users_proxy_retrieve - [GET /api/core/users/proxy/](https://docs.ibl.ai/apis/ibl/core/core_users_proxy_retrieve.md): Retrieve proxy user information by user_id ### core_users_proxy_create - [POST /api/core/users/proxy/](https://docs.ibl.ai/apis/ibl/core/core_users_proxy_create.md): Add proxy user Params: user_id username email edx_data data ### core_users_proxy_bulk_create - [POST /api/core/users/proxy/bulk/](https://docs.ibl.ai/apis/ibl/core/core_users_proxy_bulk_create.md): Add proxy users by bulk Params: users: list of user objects ### core_users_search_retrieve - [GET /api/core/users/search/](https://docs.ibl.ai/apis/ibl/core/core_users_search_retrieve.md): Retrieve users based on query Not intended for public use with multitenant platforms Params: query sort ### departments_orgs_retrieve - [GET /api/departments/orgs/{org}/](https://docs.ibl.ai/apis/ibl/core/departments_orgs_retrieve.md): Get a list of departments with metrics and filtering options. This endpoint provides a paginated list of departments with aggregated metrics about learner performance, course completions, and skill acquisition. Query Parameters: page (int, optional): Page number for pagination length (int, optional): Number of items per page program (str, optional): Filter by program pathway (str, optional): Filter by pathway departments (list, optional): Filter by department ids department_id (str, optional): Filter by department id location (str, optional): Filter by location is_enrolled (bool, optional): Filter for departments with enrolled users start_date (date, optional): Filter by learner join date (start range) end_date (date, optional): Filter by learner join date (end range) Returns: A paginated list of departments with comprehensive metrics. ### roles_platform_orgs_roles_users_desired_roles_retrieve - [GET /api/roles/platform/orgs/{org}/roles/users/{username}/desired-roles/](https://docs.ibl.ai/apis/ibl/core/roles_platform_orgs_roles_users_desired_roles_retrieve.md): Retrieve a user's desired role information. This endpoint returns the role and skills that a user has indicated they want to develop or acquire. This represents the user's career goals and learning objectives. Path Parameters: org (str): The platform/organization identifier username (str): The username of the user to retrieve role information for Returns: The user's desired role information including: - Target role title - Skills needed for the role - Current progress toward skill acquisition Error Responses: 400 Bad Request: If the user doesn't exist in the platform or has no desired role 404 Not Found: If the specified platform doesn't exist ### roles_platform_orgs_roles_users_reported_roles_retrieve - [GET /api/roles/platform/orgs/{org}/roles/users/{username}/reported-roles/](https://docs.ibl.ai/apis/ibl/core/roles_platform_orgs_roles_users_reported_roles_retrieve.md): Retrieve a user's reported role information. This endpoint returns the role and skills that a user has reported having in their profile. This represents the user's current skills and professional role. Path Parameters: org (str): The platform/organization identifier username (str): The username of the user to retrieve role information for Returns: The user's reported role information including: - Role title - Skills associated with the role - Experience level Error Responses: 400 Bad Request: If the user doesn't exist in the platform or has no reported role 404 Not Found: If the specified platform doesn't exist ### user_groups_orgs_retrieve - [GET /api/user-groups/orgs/{key}/](https://docs.ibl.ai/apis/ibl/core/user_groups_orgs_retrieve.md): Get a list of user groups with metrics and filtering options. This endpoint provides a paginated list of user groups with aggregated metrics about learner performance, course completions, and skill acquisition. This endpoint uses DM token authentication and respects department-based access controls. Query Parameters: page (int, optional): Page number for pagination length (int, optional): Number of items per page program (str, optional): Filter by program pathway (str, optional): Filter by pathway groups (list, optional): Filter by group names location (str, optional): Filter by location is_enrolled (bool, optional): Filter for groups with enrolled users start_date (date, optional): Filter by learner join date (start range) end_date (date, optional): Filter by learner join date (end range) Returns: A paginated list of user groups with comprehensive metrics. Access Control: - Platform admins can see all groups - Department admins can only see groups in their departments ## credentials ### credentials_orgs_users_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_retrieve.md): Get all credentials for a platform with search and pagination support. Query Parameters: - platform_org: Platform org ID (takes precedence over URL org) - page: Page number (default: 1) - page_size: Items per page (default: 10, max: 100) - search: Search term to filter credentials - course: Course ID to filter credentials - program: Program ID to filter credentials ### credentials_orgs_users_create - [POST /api/credentials/orgs/{org}/users/{user_id}/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_create.md): API View for managing credentials across a platform. This endpoint allows creating and retrieving credentials for a specific organization/tenant, with support for filtering, searching, and pagination. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request Query Parameters: # Platform identification platform_org (str, optional): Alternative platform identifier (takes precedence over URL org) # Pagination page (int, optional): Page number (default: 1) page_size (int, optional): Items per page (default: 10, max: 100) # Filtering and search search (str, optional): Search term to filter credentials by name or description course (str, optional): Course ID to filter credentials associated with a specific course program (str, optional): Program ID to filter credentials associated with a specific program Methods: GET: Retrieve credentials with filtering and pagination POST: Create a new credential POST Request Body: A JSON object containing credential details: - name (str): Credential name - description (str, optional): Credential description - issuer (str): Issuer entity ID - credential_type (str, optional): Type of credential - html_template (str, optional): HTML template for credential rendering - css_template (str, optional): CSS template for credential styling - icon_image (str, optional): URL to credential icon - background_image (str, optional): URL to credential background - thumbnail_image (str, optional): URL to credential thumbnail - criteria_url (str, optional): URL to credential criteria - criteria_text (str, optional): Text description of credential criteria - issuing_signal (str, optional): Signal that triggers credential issuance Returns: GET: A JSON response containing: { "status": {"success": true, "description": "Ok"}, "result": { "next": "URL to next page", "previous": "URL to previous page", "count": 42, "data": [ {credential object}, {credential object}, ... ], "num_pages": 5, "page_number": 1, "max_page_size": 100 } } POST: A JSON response containing: { "status": {"success": true, "description": "Created"}, "result": {credential object} } Error Responses: 400 Bad Request: If the request data is 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 doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires CredentialAssignmentPermission - Only public credentials are returned by default ### credentials_orgs_users_retrieve_2 - [GET /api/credentials/orgs/{org}/users/{user_id}/{entity_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_retrieve_2.md): API View for managing individual credentials. This endpoint allows retrieving, updating, and deleting specific credentials identified by their entity_id. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The credential entity ID Methods: GET: Retrieve a specific credential PUT: Update a specific credential DELETE: Delete a specific credential PUT Request Body: A JSON object containing credential details to update: - name (str, optional): Credential name - description (str, optional): Credential description - credential_type (str, optional): Type of credential - html_template (str, optional): HTML template for credential rendering - css_template (str, optional): CSS template for credential styling - icon_image (str, optional): URL to credential icon - background_image (str, optional): URL to credential background - thumbnail_image (str, optional): URL to credential thumbnail - criteria_url (str, optional): URL to credential criteria - criteria_text (str, optional): Text description of credential criteria - issuing_signal (str, optional): Signal that triggers credential issuance Returns: GET: A JSON response containing: { "status": {"success": true, "description": "Ok"}, "result": {credential object} } PUT: A JSON response containing: { "status": {"success": true, "description": "Updated"}, "result": {credential object} } DELETE: No content (204) Error Responses: 400 Bad Request: If the request data is 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 credential doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires CredentialAssignmentPermission - Users can only manage credentials they have permission to access ### credentials_orgs_users_update - [PUT /api/credentials/orgs/{org}/users/{user_id}/{entity_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_update.md): API View for managing individual credentials. This endpoint allows retrieving, updating, and deleting specific credentials identified by their entity_id. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The credential entity ID Methods: GET: Retrieve a specific credential PUT: Update a specific credential DELETE: Delete a specific credential PUT Request Body: A JSON object containing credential details to update: - name (str, optional): Credential name - description (str, optional): Credential description - credential_type (str, optional): Type of credential - html_template (str, optional): HTML template for credential rendering - css_template (str, optional): CSS template for credential styling - icon_image (str, optional): URL to credential icon - background_image (str, optional): URL to credential background - thumbnail_image (str, optional): URL to credential thumbnail - criteria_url (str, optional): URL to credential criteria - criteria_text (str, optional): Text description of credential criteria - issuing_signal (str, optional): Signal that triggers credential issuance Returns: GET: A JSON response containing: { "status": {"success": true, "description": "Ok"}, "result": {credential object} } PUT: A JSON response containing: { "status": {"success": true, "description": "Updated"}, "result": {credential object} } DELETE: No content (204) Error Responses: 400 Bad Request: If the request data is 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 credential doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires CredentialAssignmentPermission - Users can only manage credentials they have permission to access ### credentials_orgs_users_destroy - [DELETE /api/credentials/orgs/{org}/users/{user_id}/{entity_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_destroy.md): API View for managing individual credentials. This endpoint allows retrieving, updating, and deleting specific credentials identified by their entity_id. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The credential entity ID Methods: GET: Retrieve a specific credential PUT: Update a specific credential DELETE: Delete a specific credential PUT Request Body: A JSON object containing credential details to update: - name (str, optional): Credential name - description (str, optional): Credential description - credential_type (str, optional): Type of credential - html_template (str, optional): HTML template for credential rendering - css_template (str, optional): CSS template for credential styling - icon_image (str, optional): URL to credential icon - background_image (str, optional): URL to credential background - thumbnail_image (str, optional): URL to credential thumbnail - criteria_url (str, optional): URL to credential criteria - criteria_text (str, optional): Text description of credential criteria - issuing_signal (str, optional): Signal that triggers credential issuance Returns: GET: A JSON response containing: { "status": {"success": true, "description": "Ok"}, "result": {credential object} } PUT: A JSON response containing: { "status": {"success": true, "description": "Updated"}, "result": {credential object} } DELETE: No content (204) Error Responses: 400 Bad Request: If the request data is 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 credential doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires CredentialAssignmentPermission - Users can only manage credentials they have permission to access ### credentials_orgs_users_assertions_retrieve_3 - [GET /api/credentials/orgs/{org}/users/{user_id}/{entity_id}/assertions/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assertions_retrieve_3.md): Endpoint to issue and retrieve credential assertions for a specific credential. This endpoint allows issuing new credential assertions and retrieving existing assertions for a specific credential. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The credential entity ID Methods: POST: Issue a new credential assertion GET: Retrieve assertions for a specific credential POST Request Body: A JSON object containing recipient information and any additional metadata required for issuing the credential. Returns: POST: A JSON response containing the created assertion using the AssertionSerializer format GET: A paginated list of assertions using the AssertionSerializer format Error Responses: 400 Bad Request: If the request data is 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 credential doesn't exist 500 Internal Server Error: If an unexpected error occurs ### credentials_orgs_users_assertions_create - [POST /api/credentials/orgs/{org}/users/{user_id}/{entity_id}/assertions/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assertions_create.md): Endpoint to issue and retrieve credential assertions for a specific credential. This endpoint allows issuing new credential assertions and retrieving existing assertions for a specific credential. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The credential entity ID Methods: POST: Issue a new credential assertion GET: Retrieve assertions for a specific credential POST Request Body: A JSON object containing recipient information and any additional metadata required for issuing the credential. Returns: POST: A JSON response containing the created assertion using the AssertionSerializer format GET: A paginated list of assertions using the AssertionSerializer format Error Responses: 400 Bad Request: If the request data is 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 credential doesn't exist 500 Internal Server Error: If an unexpected error occurs ### credentials_orgs_users_assertions_bulk_create - [POST /api/credentials/orgs/{org}/users/{user_id}/{entity_id}/assertions/bulk/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assertions_bulk_create.md): Endpoint to issue credential assertions in bulk for a specific credential. This endpoint allows issuing credential assertions to multiple users at once. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The credential entity ID POST Request Body: A JSON object containing: - users (list): List of usernames to issue the credential to - Additional metadata required for issuing the credential Returns: A JSON response containing: { "skipped": ["username1", "username3"], // Users that were skipped (e.g., already have the credential) "issued": ["username2", "username4"] // Users that were successfully issued the credential } Error Responses: 400 Bad Request: If the request data is invalid or missing required fields 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 credential doesn't exist 500 Internal Server Error: If an unexpected error occurs ### credentials_orgs_users_assertions_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/assertions/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assertions_retrieve.md): Endpoint to retrieve all credential assertions for a user within an organization. This endpoint provides access to all credential assertions (issued credentials) for a specific user within an organization, with support for filtering. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID to retrieve assertions for Query Parameters: course (str, optional): Filter by course ID include_revoked (bool, optional): Include revoked assertions (default: false) include_expired (bool, optional): Include expired assertions (default: false) exclude_main_tenant_assertions (bool, optional): Exclude assertions from the main tenant (default: false) Returns: A paginated response using the AssertionSerializer format Error Responses: 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 user or organization doesn't exist 500 Internal Server Error: If an unexpected error occurs ### credentials_orgs_users_assertions_over_time_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/assertions-over-time/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assertions_over_time_retrieve.md): Get all credentials of a given tenant ### credentials_orgs_users_assertions_retrieve_2 - [GET /api/credentials/orgs/{org}/users/{user_id}/assertions/{entity_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assertions_retrieve_2.md): Endpoint to retrieve and update a specific credential assertion. This endpoint allows retrieving details of a specific credential assertion and updating its status (e.g., revoking it). Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The assertion entity ID Methods: GET: Retrieve assertion details PUT: Update assertion status (e.g., revoke) PUT Request Body: A JSON object containing: - revoked (bool): Set to true to revoke the assertion - revocationReason (str): Reason for revocation (required when revoking) Returns: GET: A JSON response containing the assertion details using the AssertionSerializer format PUT: A JSON response containing the updated assertion using the AssertionSerializer format Error Responses: 400 Bad Request: If the request data is 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 assertion doesn't exist 500 Internal Server Error: If an unexpected error occurs ### credentials_orgs_users_assertions_update - [PUT /api/credentials/orgs/{org}/users/{user_id}/assertions/{entity_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assertions_update.md): Endpoint to retrieve and update a specific credential assertion. This endpoint allows retrieving details of a specific credential assertion and updating its status (e.g., revoking it). Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The assertion entity ID Methods: GET: Retrieve assertion details PUT: Update assertion status (e.g., revoke) PUT Request Body: A JSON object containing: - revoked (bool): Set to true to revoke the assertion - revocationReason (str): Reason for revocation (required when revoking) Returns: GET: A JSON response containing the assertion details using the AssertionSerializer format PUT: A JSON response containing the updated assertion using the AssertionSerializer format Error Responses: 400 Bad Request: If the request data is 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 assertion doesn't exist 500 Internal Server Error: If an unexpected error occurs ### credentials_orgs_users_assignments_destroy - [DELETE /api/credentials/orgs/{org}/users/{user_id}/assignments/{assignment_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assignments_destroy.md): Delete a credential assignment using its entity_id. Only platform admins and department admins can delete assignments. ### credentials_orgs_users_assignments_groups_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/assignments/groups/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assignments_groups_retrieve.md): Get group assignments with department-aware filtering ### credentials_orgs_users_assignments_groups_create - [POST /api/credentials/orgs/{org}/users/{user_id}/assignments/groups/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assignments_groups_create.md): Create group assignment with department access validation ### credentials_orgs_users_assignments_users_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/assignments/users/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assignments_users_retrieve.md): Get assignments and their corresponding assertions based on user role: - Regular users: get only their own assignments - Platform admins: get assignments for all users in their platform - Department admins: get assignments for users in their department groups ### credentials_orgs_users_assignments_users_create - [POST /api/credentials/orgs/{org}/users/{user_id}/assignments/users/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_assignments_users_create.md): Create assignments with department access validation ### credentials_orgs_users_course_assertions_over_time_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/course-assertions-over-time/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_course_assertions_over_time_retrieve.md): Get all credentials of a given tenant ### credentials_orgs_users_course_credentials_list - [GET /api/credentials/orgs/{org}/users/{user_id}/course-credentials/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_course_credentials_list.md): Endpoint to retrieve the credentials of a given tenant grouped by course. This endpoint provides access to credential data grouped by course for a specific organization/tenant, with support for pagination and filtering. Path Parameters: org (str): The organization/tenant identifier Query Parameters: limit (int, optional): Number of results per page (default: 10) offset (int, optional): Starting position for pagination search (str, optional): Search term e.g course_id Returns: A paginated response using the CourseCredentialSerializer format. Error Responses: 401 Unauthorized: If the user is not authenticated 403 Forbidden: If the user does not have permission to access this data 404 Not Found: If the organization doesn't exist 500 Internal Server Error: If an unexpected error occurs ### credentials_orgs_users_credentials_over_time_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/credentials-over-time/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_credentials_over_time_retrieve.md): Get all credentials of a given tenant ### credentials_orgs_users_images_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/images/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_images_retrieve.md): API View for managing uploaded images for credentials. This endpoint allows uploading new images and retrieving existing images for use with credentials (icons, backgrounds, thumbnails, etc.). Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request Query Parameters: query (str, required for GET): Search term to filter images by name Methods: GET: Retrieve images matching a search query POST: Upload a new image POST Request Body: Multipart form data containing: - image (file, required): The image file to upload - name (str, optional): A descriptive name for the image Returns: GET: A JSON array of image objects: [ { "id": 123, "name": "Logo", "image": "https://example.com/media/uploaded_images/logo.png" }, { "id": 124, "name": "Background", "image": "https://example.com/media/uploaded_images/background.jpg" }, ... ] POST: A JSON object containing the uploaded image details: { "id": 125, "name": "Certificate Icon", "image": "https://example.com/media/uploaded_images/certificate-icon.png" } Error Responses: 400 Bad Request: If the request data is invalid or missing required parameters 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 IsAdminUserOrStudentDRFMixin - Only authenticated users with appropriate permissions can upload and retrieve images ### credentials_orgs_users_images_create - [POST /api/credentials/orgs/{org}/users/{user_id}/images/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_images_create.md): API View for managing uploaded images for credentials. This endpoint allows uploading new images and retrieving existing images for use with credentials (icons, backgrounds, thumbnails, etc.). Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request Query Parameters: query (str, required for GET): Search term to filter images by name Methods: GET: Retrieve images matching a search query POST: Upload a new image POST Request Body: Multipart form data containing: - image (file, required): The image file to upload - name (str, optional): A descriptive name for the image Returns: GET: A JSON array of image objects: [ { "id": 123, "name": "Logo", "image": "https://example.com/media/uploaded_images/logo.png" }, { "id": 124, "name": "Background", "image": "https://example.com/media/uploaded_images/background.jpg" }, ... ] POST: A JSON object containing the uploaded image details: { "id": 125, "name": "Certificate Icon", "image": "https://example.com/media/uploaded_images/certificate-icon.png" } Error Responses: 400 Bad Request: If the request data is invalid or missing required parameters 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 IsAdminUserOrStudentDRFMixin - Only authenticated users with appropriate permissions can upload and retrieve images ### credentials_orgs_users_issuers_retrieve - [GET /api/credentials/orgs/{org}/users/{user_id}/issuers/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_issuers_retrieve.md): API View for managing credential issuers. This endpoint allows creating and retrieving issuers for a specific organization/tenant, with support for filtering and pagination. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request Query Parameters: q (str, optional): Search term to filter issuers by name limit (int, optional): Number of results per page (default: 50) offset (int, optional): Starting position for pagination Methods: GET: Retrieve issuers with filtering and pagination POST: Create a new issuer POST Request Body: A JSON object containing issuer details: - name (str): Issuer name - iconImage (str, optional): URL to issuer icon - email (str, optional): Contact email for the issuer - url (str, optional): Website URL for the issuer - allowed_template_tags (array, optional): List of allowed template tags Returns: GET: A JSON response containing: { "status": {"success": true, "description": "Ok"}, "result": { "next": "URL to next page", "previous": "URL to previous page", "count": 10, "data": [ {issuer object}, {issuer object}, ... ], "num_pages": 1, "page_number": 1, "max_page_size": 1000 } } POST: A JSON response containing: { "status": {"success": true, "description": "Created"}, "result": {issuer object} } Error Responses: 400 Bad Request: If the request data is 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 doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsAdminUserOrStudentDRFMixin - Only authenticated users with appropriate permissions can manage issuers ### credentials_orgs_users_issuers_create - [POST /api/credentials/orgs/{org}/users/{user_id}/issuers/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_issuers_create.md): API View for managing credential issuers. This endpoint allows creating and retrieving issuers for a specific organization/tenant, with support for filtering and pagination. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request Query Parameters: q (str, optional): Search term to filter issuers by name limit (int, optional): Number of results per page (default: 50) offset (int, optional): Starting position for pagination Methods: GET: Retrieve issuers with filtering and pagination POST: Create a new issuer POST Request Body: A JSON object containing issuer details: - name (str): Issuer name - iconImage (str, optional): URL to issuer icon - email (str, optional): Contact email for the issuer - url (str, optional): Website URL for the issuer - allowed_template_tags (array, optional): List of allowed template tags Returns: GET: A JSON response containing: { "status": {"success": true, "description": "Ok"}, "result": { "next": "URL to next page", "previous": "URL to previous page", "count": 10, "data": [ {issuer object}, {issuer object}, ... ], "num_pages": 1, "page_number": 1, "max_page_size": 1000 } } POST: A JSON response containing: { "status": {"success": true, "description": "Created"}, "result": {issuer object} } Error Responses: 400 Bad Request: If the request data is 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 doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsAdminUserOrStudentDRFMixin - Only authenticated users with appropriate permissions can manage issuers ### credentials_orgs_users_issuers_retrieve_2 - [GET /api/credentials/orgs/{org}/users/{user_id}/issuers/{entity_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_issuers_retrieve_2.md): API View for managing individual issuers. This endpoint allows retrieving, updating, and deleting specific issuers identified by their entity_id or org identifier. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The issuer entity ID or org identifier Methods: GET: Retrieve a specific issuer PUT: Update a specific issuer DELETE: Delete a specific issuer PUT Request Body: A JSON object containing issuer details to update: - name (str, optional): Issuer name - iconImage (str, optional): URL to issuer icon - email (str, optional): Contact email for the issuer - url (str, optional): Website URL for the issuer - allowed_template_tags (array, optional): List of allowed template tags Returns: GET: A JSON response containing the issuer details: [ { "name": "Example University", "org": "example-university", "entityId": "abc123", "signatories": [...], "url": "https://example.com", "iconImage": "https://example.com/logo.png", "allowed_template_tags": [...] } ] PUT: A JSON response containing the updated issuer details: [ { "name": "Example University", "org": "example-university", "entityId": "abc123", "signatories": [...], "url": "https://example.com", "iconImage": "https://example.com/new-logo.png", "allowed_template_tags": [...] } ] DELETE: A JSON response indicating success: { "status": {"success": true, "description": "Deleted"} } Error Responses: 400 Bad Request: If the request data is 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 issuer doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsAdminUserOrStudentDRFMixin - Only authenticated users with appropriate permissions can manage issuers ### credentials_orgs_users_issuers_update - [PUT /api/credentials/orgs/{org}/users/{user_id}/issuers/{entity_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_issuers_update.md): API View for managing individual issuers. This endpoint allows retrieving, updating, and deleting specific issuers identified by their entity_id or org identifier. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The issuer entity ID or org identifier Methods: GET: Retrieve a specific issuer PUT: Update a specific issuer DELETE: Delete a specific issuer PUT Request Body: A JSON object containing issuer details to update: - name (str, optional): Issuer name - iconImage (str, optional): URL to issuer icon - email (str, optional): Contact email for the issuer - url (str, optional): Website URL for the issuer - allowed_template_tags (array, optional): List of allowed template tags Returns: GET: A JSON response containing the issuer details: [ { "name": "Example University", "org": "example-university", "entityId": "abc123", "signatories": [...], "url": "https://example.com", "iconImage": "https://example.com/logo.png", "allowed_template_tags": [...] } ] PUT: A JSON response containing the updated issuer details: [ { "name": "Example University", "org": "example-university", "entityId": "abc123", "signatories": [...], "url": "https://example.com", "iconImage": "https://example.com/new-logo.png", "allowed_template_tags": [...] } ] DELETE: A JSON response indicating success: { "status": {"success": true, "description": "Deleted"} } Error Responses: 400 Bad Request: If the request data is 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 issuer doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsAdminUserOrStudentDRFMixin - Only authenticated users with appropriate permissions can manage issuers ### credentials_orgs_users_issuers_destroy - [DELETE /api/credentials/orgs/{org}/users/{user_id}/issuers/{entity_id}](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_issuers_destroy.md): API View for managing individual issuers. This endpoint allows retrieving, updating, and deleting specific issuers identified by their entity_id or org identifier. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request entity_id (str): The issuer entity ID or org identifier Methods: GET: Retrieve a specific issuer PUT: Update a specific issuer DELETE: Delete a specific issuer PUT Request Body: A JSON object containing issuer details to update: - name (str, optional): Issuer name - iconImage (str, optional): URL to issuer icon - email (str, optional): Contact email for the issuer - url (str, optional): Website URL for the issuer - allowed_template_tags (array, optional): List of allowed template tags Returns: GET: A JSON response containing the issuer details: [ { "name": "Example University", "org": "example-university", "entityId": "abc123", "signatories": [...], "url": "https://example.com", "iconImage": "https://example.com/logo.png", "allowed_template_tags": [...] } ] PUT: A JSON response containing the updated issuer details: [ { "name": "Example University", "org": "example-university", "entityId": "abc123", "signatories": [...], "url": "https://example.com", "iconImage": "https://example.com/new-logo.png", "allowed_template_tags": [...] } ] DELETE: A JSON response indicating success: { "status": {"success": true, "description": "Deleted"} } Error Responses: 400 Bad Request: If the request data is 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 issuer doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsAdminUserOrStudentDRFMixin - Only authenticated users with appropriate permissions can manage issuers ### credentials_orgs_users_issuers_authority_create - [POST /api/credentials/orgs/{org}/users/{user_id}/issuers/authority/](https://docs.ibl.ai/apis/ibl/credentials/credentials_orgs_users_issuers_authority_create.md): API View for managing issuer authorities (signatories). This endpoint allows creating authorities/signatories that can be associated with issuers or specific credentials. Path Parameters: org (str): The organization/tenant identifier user_id (str): The user ID making the request Methods: POST: Create a new issuer authority POST Request Body: A JSON object containing authority details: - name (str, required): Name of the signatory - title (str, required): Title of the signatory - signature (str, required): URL to the signature image - org (str, optional): Organization identifier to associate with an issuer - entityId (str, optional): Issuer entity ID to associate with - credential (str, optional): Credential entity ID to associate with Returns: POST: A JSON response containing the created authority: { "data": { "name": "John Smith", "title": "President", "signature": "https://example.com/signatures/john-smith.png" } } Error Responses: 400 Bad Request: If the request data is invalid or missing required fields 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 issuer or credential doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Requires IsAdminUserOrStudentDRFMixin - Only authenticated users with appropriate permissions can manage authorities ### credentials_public_assertions_retrieve - [GET /api/credentials/public/assertions/{entity_id}/](https://docs.ibl.ai/apis/ibl/credentials/credentials_public_assertions_retrieve.md): Public endpoint to retrieve a specific credential assertion by its entity ID. This endpoint allows public access to view a specific credential assertion without authentication. Path Parameters: entity_id (str): The assertion entity ID Returns: A JSON response containing the assertion details using the AssertionSerializer format Error Responses: 404 Not Found: - If the assertion doesn't exist: Empty response with 404 status - If the assertion has been revoked: JSON with error detail and revocation reason 500 Internal Server Error: If an unexpected error occurs ## features ### features_apps_list - [GET /api/features/apps/](https://docs.ibl.ai/apis/ibl/features/features_apps_list.md): Returns a list of the apps that the user has access to. ### features_apps_update_create - [POST /api/features/apps/update/](https://docs.ibl.ai/apis/ibl/features/features_apps_update_create.md): Updates the user onboarding completed status ### features_apps_update_trial_status_create - [POST /api/features/apps/update-trial-status/](https://docs.ibl.ai/apis/ibl/features/features_apps_update_trial_status_create.md): Activates free trial for the user Set free_trial_started to True| false for the user app App URL or ID is required as well as the platform key ### features_bulk_config_create - [POST /api/features/bulk-config/](https://docs.ibl.ai/apis/ibl/features/features_bulk_config_create.md): POST Bulk update user feature config NOTE: Will not create user feature configs Params: platform_key config (OR) feature values ### features_config_retrieve - [GET /api/features/config/](https://docs.ibl.ai/apis/ibl/features/features_config_retrieve.md): Query user feature config Params: user_id/username/email platform_key ### features_config_create - [POST /api/features/config/](https://docs.ibl.ai/apis/ibl/features/features_config_create.md): POST Update user feature config Params: user_id/username/email platform_key config (OR) feature values ## media ### media_orgs_users_media_media_resources_list - [GET /api/media/orgs/{org}/users/{user_id}/media/media-resources/](https://docs.ibl.ai/apis/ibl/media/media_orgs_users_media_media_resources_list.md): List and filter media resources. Supports filtering by course_id, unit_id, item_id and searching across multiple fields. ### media_orgs_users_media_media_resources_create - [POST /api/media/orgs/{org}/users/{user_id}/media/media-resources/](https://docs.ibl.ai/apis/ibl/media/media_orgs_users_media_media_resources_create.md): List and filter media resources. Supports filtering by course_id, unit_id, item_id and searching across multiple fields. ### media_orgs_users_media_media_resources_retrieve - [GET /api/media/orgs/{org}/users/{user_id}/media/media-resources/{id}/](https://docs.ibl.ai/apis/ibl/media/media_orgs_users_media_media_resources_retrieve.md): List and filter media resources. Supports filtering by course_id, unit_id, item_id and searching across multiple fields. ### media_orgs_users_media_media_resources_update - [PUT /api/media/orgs/{org}/users/{user_id}/media/media-resources/{id}/](https://docs.ibl.ai/apis/ibl/media/media_orgs_users_media_media_resources_update.md): List and filter media resources. Supports filtering by course_id, unit_id, item_id and searching across multiple fields. ### media_orgs_users_media_media_resources_partial_update - [PATCH /api/media/orgs/{org}/users/{user_id}/media/media-resources/{id}/](https://docs.ibl.ai/apis/ibl/media/media_orgs_users_media_media_resources_partial_update.md): List and filter media resources. Supports filtering by course_id, unit_id, item_id and searching across multiple fields. ### media_orgs_users_media_media_resources_destroy - [DELETE /api/media/orgs/{org}/users/{user_id}/media/media-resources/{id}/](https://docs.ibl.ai/apis/ibl/media/media_orgs_users_media_media_resources_destroy.md): List and filter media resources. Supports filtering by course_id, unit_id, item_id and searching across multiple fields. ### media_orgs_users_media_media_resources_by_item_retrieve - [GET /api/media/orgs/{org}/users/{user_id}/media/media-resources/by_item/](https://docs.ibl.ai/apis/ibl/media/media_orgs_users_media_media_resources_by_item_retrieve.md): Get media resources for a specific item. The item_type determines which resources are returned based on the provided item_id. ### media_orgs_users_media_media_resources_search_retrieve - [GET /api/media/orgs/{org}/users/{user_id}/media/media-resources/search/](https://docs.ibl.ai/apis/ibl/media/media_orgs_users_media_media_resources_search_retrieve.md): Search media resources by title, description, or IDs. Supports filtering results by course_id, unit_id, and item_id. ## notifications ### notification_v1_campaigns_unsubscribe_retrieve - [GET /api/notification/v1/campaigns/unsubscribe/{unsubscribe_hash}/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_campaigns_unsubscribe_retrieve.md): Unsubscribe from a campaign using a hash ### notification_v1_orgs_notifications_retrieve - [GET /api/notification/v1/orgs/{org}/notifications/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_notifications_retrieve.md): Get notifications for a user ### notification_v1_orgs_notifications_update - [PUT /api/notification/v1/orgs/{org}/notifications/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_notifications_update.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### notification_v1_orgs_notifications_bulk_update_partial_update - [PATCH /api/notification/v1/orgs/{org}/notifications/bulk-update/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_notifications_bulk_update_partial_update.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### notification_v1_orgs_users_notifications_retrieve - [GET /api/notification/v1/orgs/{org}/users/{user_id}/notifications/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_users_notifications_retrieve.md): Get notifications for a user ### notification_v1_orgs_users_notifications_update - [PUT /api/notification/v1/orgs/{org}/users/{user_id}/notifications/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_users_notifications_update.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### notification_v1_orgs_users_notifications_count_retrieve - [GET /api/notification/v1/orgs/{org}/users/{user_id}/notifications-count/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_users_notifications_count_retrieve.md): Get notifications count for a user ### notification_v1_orgs_users_notifications_destroy - [DELETE /api/notification/v1/orgs/{org}/users/{user_id}/notifications/{notification_id}/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_users_notifications_destroy.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### notification_v1_orgs_users_notifications_bulk_update_partial_update - [PATCH /api/notification/v1/orgs/{org}/users/{user_id}/notifications/bulk-update/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_users_notifications_bulk_update_partial_update.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### notification_v1_orgs_users_register_fcm_token_create - [POST /api/notification/v1/orgs/{org}/users/{user_id}/register-fcm-token/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_users_register_fcm_token_create.md): Save a user's device token ### notification_v1_orgs_users_register_fcm_token_destroy - [DELETE /api/notification/v1/orgs/{org}/users/{user_id}/register-fcm-token/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_users_register_fcm_token_destroy.md): Save a user's device token ### notification_v1_orgs_users_send_notification_create - [POST /api/notification/v1/orgs/{org}/users/{user_id}/send-notification/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_users_send_notification_create.md): Save a user's device token ### notification_v1_orgs_campaigns_enable_create - [POST /api/notification/v1/orgs/{platform_key}/campaigns/enable/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_campaigns_enable_create.md): Re-enable campaigns for a user ### notification_v1_orgs_campaigns_exclude_create - [POST /api/notification/v1/orgs/{platform_key}/campaigns/exclude/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_campaigns_exclude_create.md): Exclude a user from specified campaigns ### notification_v1_orgs_mark_all_as_read_create - [POST /api/notification/v1/orgs/{platform_key}/mark-all-as-read](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_mark_all_as_read_create.md): Mark all notifications as read for a user. Optionally provide specific notification IDs. ### Get build recipients - [GET /api/notification/v1/orgs/{platform_key}/notification-builder/{id}/recipients/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_notification_builder_recipients_list.md): Get paginated list of recipients for a notification build ### Get notification context data - [GET /api/notification/v1/orgs/{platform_key}/notification-builder/context/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_notification_builder_context_retrieve.md): Get all context data needed for notification building including templates, channels, and platforms ### Preview notification - [POST /api/notification/v1/orgs/{platform_key}/notification-builder/preview/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_notification_builder_preview_create.md): Preview notification recipients and get build ID for sending ### Send notification - [POST /api/notification/v1/orgs/{platform_key}/notification-builder/send/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_notification_builder_send_create.md): Send notifications to all recipients in a build ### Validate notification source - [POST /api/notification/v1/orgs/{platform_key}/notification-builder/validate_source/](https://docs.ibl.ai/apis/ibl/notifications/notification_v1_orgs_notification_builder_validate_source_create.md): Validate a single notification source (email, username, platform, csv) ## scim ### orgs_scim_v2_DepartmentMembers_retrieve - [GET /api/orgs/{org}/scim/v2/DepartmentMembers/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departmentmembers_retrieve.md): GET /scim/v2/DepartmentMembers List all department members in the system. ### orgs_scim_v2_DepartmentMembers_create - [POST /api/orgs/{org}/scim/v2/DepartmentMembers/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departmentmembers_create.md): POST /scim/v2/DepartmentMembers Create or update a department member using core logic. SCIM format. ### orgs_scim_v2_DepartmentMembers_retrieve_2 - [GET /api/orgs/{org}/scim/v2/DepartmentMembers/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departmentmembers_retrieve_2.md): GET /scim/v2/DepartmentMembers/{id} Get department members for a specific department (must belong to the requesting platform/org). SCIM format. ### orgs_scim_v2_DepartmentMembers_update - [PUT /api/orgs/{org}/scim/v2/DepartmentMembers/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departmentmembers_update.md): PUT /scim/v2/DepartmentMembers/{id} Update a department member using core logic. SCIM format. ### orgs_scim_v2_DepartmentMembers_destroy - [DELETE /api/orgs/{org}/scim/v2/DepartmentMembers/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departmentmembers_destroy.md): DELETE /scim/v2/DepartmentMembers/{id} Delete a department member using core logic. SCIM format. ### orgs_scim_v2_Departments_retrieve - [GET /api/orgs/{org}/scim/v2/Departments/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departments_retrieve.md): GET /scim/v2/Departments List departments in the system. Supports filtering and pagination. ### orgs_scim_v2_Departments_create - [POST /api/orgs/{org}/scim/v2/Departments/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departments_create.md): POST /scim/v2/Departments Create a new department in the system. ### orgs_scim_v2_Departments_retrieve_2 - [GET /api/orgs/{org}/scim/v2/Departments/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departments_retrieve_2.md): GET /scim/v2/Departments/{id} Get details of a specific department. ### orgs_scim_v2_Departments_update - [PUT /api/orgs/{org}/scim/v2/Departments/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departments_update.md): PUT /scim/v2/Departments/{id} Update a department's information. ### orgs_scim_v2_Departments_destroy - [DELETE /api/orgs/{org}/scim/v2/Departments/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departments_destroy.md): DELETE /scim/v2/Departments/{id} Delete a department from the system. ### orgs_scim_v2_Departments_add_members_create - [POST /api/orgs/{org}/scim/v2/Departments/{id}/add_members/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departments_add_members_create.md): POST /scim/v2/Departments/{id}/add_members Add members to a department. ### orgs_scim_v2_Departments_remove_members_create - [POST /api/orgs/{org}/scim/v2/Departments/{id}/remove_members/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_departments_remove_members_create.md): POST /scim/v2/Departments/{id}/remove_members Remove members from a department. ### orgs_scim_v2_GroupMembers_retrieve - [GET /api/orgs/{org}/scim/v2/GroupMembers/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groupmembers_retrieve.md): SCIM Group Member endpoints for managing group members in the system. ### orgs_scim_v2_GroupMembers_create - [POST /api/orgs/{org}/scim/v2/GroupMembers/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groupmembers_create.md): SCIM Group Member endpoints for managing group members in the system. ### orgs_scim_v2_GroupMembers_retrieve_2 - [GET /api/orgs/{org}/scim/v2/GroupMembers/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groupmembers_retrieve_2.md): SCIM Group Member endpoints for managing group members in the system. ### orgs_scim_v2_GroupMembers_update - [PUT /api/orgs/{org}/scim/v2/GroupMembers/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groupmembers_update.md): SCIM Group Member endpoints for managing group members in the system. ### orgs_scim_v2_GroupMembers_destroy - [DELETE /api/orgs/{org}/scim/v2/GroupMembers/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groupmembers_destroy.md): SCIM Group Member endpoints for managing group members in the system. ### orgs_scim_v2_Groups_retrieve - [GET /api/orgs/{org}/scim/v2/Groups/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groups_retrieve.md): SCIM Group endpoints for managing user groups in the system (SCIM 2.0). ### orgs_scim_v2_Groups_create - [POST /api/orgs/{org}/scim/v2/Groups/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groups_create.md): SCIM Group endpoints for managing user groups in the system (SCIM 2.0). ### orgs_scim_v2_Groups_retrieve_2 - [GET /api/orgs/{org}/scim/v2/Groups/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groups_retrieve_2.md): GET /scim/v2/groups/{id} Get details of a specific user group. ### orgs_scim_v2_Groups_update - [PUT /api/orgs/{org}/scim/v2/Groups/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groups_update.md): PUT /scim/v2/groups/{id} Update a user group's information. ### orgs_scim_v2_Groups_destroy - [DELETE /api/orgs/{org}/scim/v2/Groups/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groups_destroy.md): DELETE /scim/v2/groups/{id} Delete a user group from the system. ### orgs_scim_v2_Groups_add_members_create - [POST /api/orgs/{org}/scim/v2/Groups/{id}/add_members/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groups_add_members_create.md): POST /scim/v2/groups/{id}/add_members Add members to a user group. ### orgs_scim_v2_Groups_remove_members_create - [POST /api/orgs/{org}/scim/v2/Groups/{id}/remove_members/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_groups_remove_members_create.md): POST /scim/v2/groups/{id}/remove_members Remove members from a user group. ### orgs_scim_v2_Users_retrieve - [GET /api/orgs/{org}/scim/v2/Users/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_users_retrieve.md): GET /scim/v2/users List users in the system. Supports filtering and pagination. ### orgs_scim_v2_Users_create - [POST /api/orgs/{org}/scim/v2/Users/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_users_create.md): POST /scim/v2/users Create a new user in the system. ### orgs_scim_v2_Users_retrieve_2 - [GET /api/orgs/{org}/scim/v2/Users/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_users_retrieve_2.md): GET /scim/v2/users/{id} Get details of a specific user. ### orgs_scim_v2_Users_update - [PUT /api/orgs/{org}/scim/v2/Users/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_users_update.md): PUT /scim/v2/users/{id} Update a user's information. ### orgs_scim_v2_Users_destroy - [DELETE /api/orgs/{org}/scim/v2/Users/{id}/](https://docs.ibl.ai/apis/ibl/scim/orgs_scim_v2_users_destroy.md): DELETE /scim/v2/users/{id} is not supported. ## commerce ### provider_association_stripe_callback_retrieve - [GET /api/provider-association/stripe/callback/{launch_id}/](https://docs.ibl.ai/apis/ibl/commerce/provider_association_stripe_callback_retrieve.md): Handle callbacks from Stripe after successful checkout. Updates: - Platform launch state - Association configuration status ### providers_apple_associate_account_create - [POST /api/providers/apple/associate-account/](https://docs.ibl.ai/apis/ibl/commerce/providers_apple_associate_account_create.md): Associate an Apple account with a user known user ### providers_apple_hook_create - [POST /api/providers/apple/hook/](https://docs.ibl.ai/apis/ibl/commerce/providers_apple_hook_create.md): View to handle apple webhooks ### providers_apple_subscription_status_create - [POST /api/providers/apple/subscription-status/](https://docs.ibl.ai/apis/ibl/commerce/providers_apple_subscription_status_create.md): Returns information about a user subscription status ### providers_apple_validate_transaction_id_create - [POST /api/providers/apple/validate-transaction-id/](https://docs.ibl.ai/apis/ibl/commerce/providers_apple_validate_transaction_id_create.md): Checks if a provided transaction_id is valid ### providers_aws_create_organization_create - [POST /api/providers/aws/create-organization/](https://docs.ibl.ai/apis/ibl/commerce/providers_aws_create_organization_create.md): Serves a view that redirects to the AWS marketplace create organization page Set CREATE_ORGANIZATION_URL in GlobalConfigurationFetcher to the URL of the AWS marketplace create organization page ### providers_aws_domain_status_retrieve - [GET /api/providers/aws/domain-status/](https://docs.ibl.ai/apis/ibl/commerce/providers_aws_domain_status_retrieve.md): API endpoint to get domain setup status ### providers_aws_launch_tenant_create - [POST /api/providers/aws/launch-tenant/](https://docs.ibl.ai/apis/ibl/commerce/providers_aws_launch_tenant_create.md): Proxy to the Platform launch API We cannot expose launching a tenant to an authorized user hence the need for the API The API validates the x_amzn_marketplace_token and then proxies the request to the Platform Launch API ### providers_aws_sync_domain_records_retrieve - [GET /api/providers/aws/sync-domain-records/](https://docs.ibl.ai/apis/ibl/commerce/providers_aws_sync_domain_records_retrieve.md): API endpoint to get/update CNAME records for domain setup ### providers_aws_sync_domain_records_create - [POST /api/providers/aws/sync-domain-records/](https://docs.ibl.ai/apis/ibl/commerce/providers_aws_sync_domain_records_create.md): API endpoint to get/update CNAME records for domain setup ### providers_gcp_create_organization_create - [POST /api/providers/gcp/create-organization/](https://docs.ibl.ai/apis/ibl/commerce/providers_gcp_create_organization_create.md): Serves a view that redirects to the GCP marketplace create organization page Set CREATE_ORGANIZATION_URL in GlobalConfigurationFetcher to the URL of the GCP marketplace create organization page ### providers_gcp_create_organization_create_2 - [POST /api/providers/gcp/create-organization/{product_id}/](https://docs.ibl.ai/apis/ibl/commerce/providers_gcp_create_organization_create_2.md): Serves a view that redirects to the GCP marketplace create organization page Set CREATE_ORGANIZATION_URL in GlobalConfigurationFetcher to the URL of the GCP marketplace create organization page ### providers_gcp_hook_create - [POST /api/providers/gcp/hook/](https://docs.ibl.ai/apis/ibl/commerce/providers_gcp_hook_create.md) ### providers_gcp_launch_tenant_create - [POST /api/providers/gcp/launch-tenant/](https://docs.ibl.ai/apis/ibl/commerce/providers_gcp_launch_tenant_create.md): Proxy to the Platform launch API We cannot expose launching a tenant to an authorized user hence the need for the API The API validates the x_gcp_marketplace_token and then proxies the request to the Platform Launc API ### providers_gcp_validate_signup_token_create - [POST /api/providers/gcp/validate-signup-token/](https://docs.ibl.ai/apis/ibl/commerce/providers_gcp_validate_signup_token_create.md) ### providers_google_pay_get_account_retrieve - [GET /api/providers/google-pay/get-account/{bundle_id}](https://docs.ibl.ai/apis/ibl/commerce/providers_google_pay_get_account_retrieve.md): Google Allows us to pass an obfuscated account id to be sent to during a subscription purchase ### providers_google_pay_hook_create - [POST /api/providers/google-pay/hook/](https://docs.ibl.ai/apis/ibl/commerce/providers_google_pay_hook_create.md): View to handle Google Pay webhooks ### providers_google_pay_validate_transaction_id_create - [POST /api/providers/google-pay/validate-transaction-id/](https://docs.ibl.ai/apis/ibl/commerce/providers_google_pay_validate_transaction_id_create.md): Associate a Google Pay account with a known user ### providers_stripe_create_organization_create - [POST /api/providers/stripe/create-organization/](https://docs.ibl.ai/apis/ibl/commerce/providers_stripe_create_organization_create.md): Proxy to the Platform launch API We cannot expose launching a tenant to an unauthorized user hence the need for the API The API validates the stripe_checkout_id and then proxies the request to the Platform Launch API ### service_launch_tenant_create - [POST /api/service/launch/tenant/](https://docs.ibl.ai/apis/ibl/commerce/service_launch_tenant_create.md): User/tenant creation API To create using any payment provider, ensure you use the StudentToken Authentication Mechanism and also include the correct in the request body: To create a tenant without a payment provider, call the API without ny of the above provider keys in the request body ### service_manage_user_create - [POST /api/service/manage/user/](https://docs.ibl.ai/apis/ibl/commerce/service_manage_user_create.md): User creation flow ### service_manage_user_role_create - [POST /api/service/manage/user/role/](https://docs.ibl.ai/apis/ibl/commerce/service_manage_user_role_create.md): Make user tenant admin ### service_orgs_users_stripe_checkout_session_create - [POST /api/service/orgs/{org}/users/{user_id}/stripe/checkout-session/](https://docs.ibl.ai/apis/ibl/commerce/service_orgs_users_stripe_checkout_session_create.md): Stripe checkout session API View for user upgrade Request the following fields: - tenant - sku - mode - success_url - cancel_url Response: { "redirect_to": "https://checkout.stripe.com/xxx/xxxx/xxxx", } ### service_orgs_users_stripe_customer_portal_create - [POST /api/service/orgs/{org}/users/{user_id}/stripe/customer-portal/](https://docs.ibl.ai/apis/ibl/commerce/service_orgs_users_stripe_customer_portal_create.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### service_orgs_users_stripe_products_retrieve - [GET /api/service/orgs/{org}/users/{user_id}/stripe/products/](https://docs.ibl.ai/apis/ibl/commerce/service_orgs_users_stripe_products_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### service_orgs_users_stripe_products_manage_create - [POST /api/service/orgs/{org}/users/{user_id}/stripe/products/manage/](https://docs.ibl.ai/apis/ibl/commerce/service_orgs_users_stripe_products_manage_create.md): Mixin that includes the StudentTokenAuthentication and IsPlatformAdmin ### service_orgs_users_stripe_subscription_renewal_create - [POST /api/service/orgs/{org}/users/{user_id}/stripe/subscription-renewal/](https://docs.ibl.ai/apis/ibl/commerce/service_orgs_users_stripe_subscription_renewal_create.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### service_orgs_users_stripe_subscriptions_retrieve - [GET /api/service/orgs/{org}/users/{user_id}/stripe/subscriptions/](https://docs.ibl.ai/apis/ibl/commerce/service_orgs_users_stripe_subscriptions_retrieve.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### service_orgs_stripe_course_payment_callback_retrieve - [GET /api/service/orgs/{platform_key}/stripe/course-payment-callback/](https://docs.ibl.ai/apis/ibl/commerce/service_orgs_stripe_course_payment_callback_retrieve.md): Handle course payment callback after successful Stripe checkout. Enrolls the user in the purchased course. URL Parameters: - stripe_checkout_id: The local Checkout Session UUID Response: - Redirect: Successfully processed course enrollment - 404: Checkout session not found - 400: Invalid checkout session or product - 500: Server error during processing ### service_platforms_stripe_context_retrieve - [GET /api/service/platforms/{platform_key}/stripe/context/](https://docs.ibl.ai/apis/ibl/commerce/service_platforms_stripe_context_retrieve.md): Create a uuid to help us track internally user initiated checkout ### service_platforms_stripe_credit_topup_callback_retrieve - [GET /api/service/platforms/{platform_key}/stripe/credit-topup-callback/{checkout_session_id}/](https://docs.ibl.ai/apis/ibl/commerce/service_platforms_stripe_credit_topup_callback_retrieve.md): Handle callback after successful Stripe checkout for credit top up. Redirects user to another page, ensures user credit is updated accordingly. URL Parameters: - stripe_checkout_id: The Checkout Session UUID Response: - Redirect: Successfully validated and sending to next page - 404: Checkout session not found - 400: Invalid checkout session or product - 500: Server error during processing ### service_platforms_stripe_pricing_page_callback_retrieve - [GET /api/service/platforms/{platform_key}/stripe/pricing-page-callback/{checkout_session_id}/](https://docs.ibl.ai/apis/ibl/commerce/service_platforms_stripe_pricing_page_callback_retrieve.md): Handle callback after successful Stripe checkout. Redirects user to another page, ensures user subscription is updated accordingly. URL Parameters: - stripe_checkout_id: The local Checkout Session UUID Response: - Redirect: Successfully validated and sending to next page - 404: Checkout session not found - 400: Invalid checkout session or product - 500: Server error during processing ### service_platforms_stripe_pricing_page_session_retrieve - [GET /api/service/platforms/{platform_key}/stripe/pricing-page-session/](https://docs.ibl.ai/apis/ibl/commerce/service_platforms_stripe_pricing_page_session_retrieve.md): Create a uuid to help us track internally user initiated checkout ### service_stripe_checkout_retrieve - [GET /api/service/stripe/checkout/{checkout_uuid}/](https://docs.ibl.ai/apis/ibl/commerce/service_stripe_checkout_retrieve.md) ### service_stripe_checkout_free_trial_create - [POST /api/service/stripe/checkout/free-trial/](https://docs.ibl.ai/apis/ibl/commerce/service_stripe_checkout_free_trial_create.md): Stripe free trial checkout session. No user auth Request the following fields: - success_url - cancel_url - product Response: { "redirect_to": "https://checkout.stripe.com/xxx/xxxx/xxxx", } ### service_tenant_validation_create - [POST /api/service/tenant/validation/](https://docs.ibl.ai/apis/ibl/commerce/service_tenant_validation_create.md): Check if tenant exists or not ### service_token_retrieve - [GET /api/service/token/](https://docs.ibl.ai/apis/ibl/commerce/service_token_retrieve.md): GET Gets site hash_key from or Gets site_id form hash_key ### service_user_validation_create - [POST /api/service/user/validation/](https://docs.ibl.ai/apis/ibl/commerce/service_user_validation_create.md): Check if tenant exists or not ## recommendations ### recommendations_orgs_users_retrieve - [GET /api/recommendations/orgs/{org}/users/{user_id}/](https://docs.ibl.ai/apis/ibl/recommendations/recommendations_orgs_users_retrieve.md): API endpoint that returns a search api url prepopulated with context data See http://localhost:8000/api/schema/swagger-ui/#/recommendations ## reports ### reports_orgs_retrieve - [GET /api/reports/orgs/{org}/](https://docs.ibl.ai/apis/ibl/reports/reports_orgs_retrieve.md): Lists all available reports in the system. This endpoint returns a list of all reports available to the user, including: - Report metadata (name, description, icon) - Available query parameters for each report - Result columns that will be returned - Current status of any previously requested reports If a report has been previously requested by the user, its status will be included in the response. Expired reports are automatically cleaned up. Returns: A list of report objects with their metadata and status information. ### reports_orgs_retrieve_2 - [GET /api/reports/orgs/{org}/{report_name}](https://docs.ibl.ai/apis/ibl/reports/reports_orgs_retrieve_2.md): Retrieves detailed information about a specific report type. This endpoint provides: - Metadata about the report (name, description, icon) - Available query parameters for the report - Result columns that will be returned - Current status of the most recent report of this type requested by the user Path Parameters: report_name (str): The identifier of the report to retrieve details for Returns: Detailed information about the report type and its current status if previously requested. Error Responses: 404 Not Found: If the specified report type doesn't exist ### reports_orgs_new_create - [POST /api/reports/orgs/{org}/new](https://docs.ibl.ai/apis/ibl/reports/reports_orgs_new_create.md): Creates and manages report generation requests. This endpoint allows users to: 1. Request a new report generation 2. Check the status of a previously requested report 3. Force regeneration of an existing report Reports expire after a configured time period (default is typically 24-48 hours). Request Parameters: report_name (str): The identifier of the report to generate owner (str): The username of the report owner (usually the current user) learner_id (str, optional): Filter by specific learner course_id (str, optional): Filter by specific course start_date (str, optional): Start date for report data (ISO format) end_date (str, optional): End date for report data (ISO format) filters (dict, optional): Additional filters specific to the report type force (bool, optional): Force regeneration even if a valid report exists Returns: For new reports: - report_id: The unique identifier for the report task - state: The current state of the report (PENDING, RUNNING, etc.) For completed reports: - report_id: The unique identifier for the report task - report_name: The name of the report - url: Download URL for the report - state: COMPLETED - expires: Expiration timestamp for the report For in-progress reports: - report_id: The unique identifier for the report task - state: Current state (PENDING, RUNNING) - started_on: When the report generation started - owner: Username of the report owner Error Responses: 400 Bad Request: Invalid parameters or report configuration 404 Not Found: Report type not found 403 Forbidden: User doesn't have permission for the requested report ### reports_platforms_retrieve - [GET /api/reports/platforms/{key}/](https://docs.ibl.ai/apis/ibl/reports/reports_platforms_retrieve.md): Returns a list of reports available in the system. For each report, it includes: - display_name: Human-readable name of the report - description: Description of what the report contains - icon: URL to an icon representing the report - report_name: Unique identifier for the report - extra_query_params: Additional parameters that can be passed when creating the report - result_columns: Columns that will be included in the report results - status: Current status of the report if it has been previously requested The status will include details like the report ID, state, and download URL if completed. ### reports_platforms_retrieve_2 - [GET /api/reports/platforms/{key}/{report_name}](https://docs.ibl.ai/apis/ibl/reports/reports_platforms_retrieve_2.md): Returns details of a specific report type including its status if previously requested. ### reports_platforms_new_create - [POST /api/reports/platforms/{key}/new](https://docs.ibl.ai/apis/ibl/reports/reports_platforms_new_create.md): Triggers a new report generation. If the report has been previously requested, it returns the status of the report. Reports expire after a configured duration. The request body should include: - report_name: Name of the report to generate - learner_id: (optional) ID of the learner to filter by - course_id: (optional) ID of the course to filter by - force: (optional) Force generation of a new report even if one exists - filters: (optional) Additional filters for the report - departments: (optional) Department IDs to filter by ## search ### search_ai_search_retrieve - [GET /api/search/ai-search/](https://docs.ibl.ai/apis/ibl/search/search_ai_search_retrieve.md): Legacy endpoint for backward compatible mentor search ### search_catalog_retrieve - [GET /api/search/catalog/](https://docs.ibl.ai/apis/ibl/search/search_catalog_retrieve.md): Search and filter content across the learning catalog. This endpoint provides a powerful search interface for discovering content across multiple content types (courses, programs, pathways, skills, roles, resources). It supports full-text search, faceted filtering, and pagination. Query Parameters: query (str, optional): Search term to filter content by name or description content (list, optional): Content types to include in results (courses, programs, pathways, skills, roles, resources) Default: ["programs", "courses", "pathways", "skills"] # Filtering parameters course_id (str, optional): Filter by specific course ID program_id (str, optional): Filter by specific program ID pathway_id (str, optional): Filter by specific pathway ID skill_id (str, optional): Filter by specific skill ID subject (list, optional): Filter by subject areas tenant (list, optional): Filter by tenant/organization topics (list, optional): Filter by topic areas tags (list, optional): Filter by tags level (list, optional): Filter by difficulty level self_paced (list, optional): Filter by course format (self-paced, instructor-led) promotion (list, optional): Filter by promotion status language (list, optional): Filter by content language certificate (list, optional): Filter by certificate type program_type (list, optional): Filter by program type duration (list, optional): Filter by course duration range price (str, optional): Filter by price/audit status resource_type (list, optional): Filter by resource type skills (list, optional): Filter by skills # Sorting and pagination order_by (str, optional): Field to sort results by order_ascending (bool, optional): Sort direction (default: false) alphabetical (bool, optional): Sort alphabetically by name (default: false) limit (int, optional): Number of results per page (default: 12, max: 100) offset (int, optional): Starting position for pagination # Response options return_facet (bool, optional): Include facet data in response (default: true) return_items (bool, optional): Include items in programs/pathways (default: false) allow_skill_search (bool, optional): Enable skill-based search (default: false) update_facet (str, optional): Force facet update Returns: A JSON response containing: - results: List of content items with metadata - count: Total number of matching items - next: URL for the next page of results (if available) - previous: URL for the previous page of results (if available) - current_page: Current page number - total_pages: Total number of pages - facets: Aggregated counts for each filter category (if requested) Each content item contains type-specific fields: - Courses: { "id": 123, "type": "course", "course_id": "CS101", "name": "Introduction to Computer Science", "description": "Learn the fundamentals of computer science", "short_description": "CS fundamentals", "image_url": "https://example.com/images/cs101.jpg", "level": "Beginner", "subject": "Computer Science", "topics": ["Programming", "Algorithms"], "tags": ["python", "coding"], "language": "English", "tenant": "example-university", "self_paced": true, "duration": "6 weeks", "certificate": "Professional Certificate", "price": "Free", "skills": [ {"id": 1, "name": "Python Programming"}, {"id": 2, "name": "Algorithms"} ], "url": "https://example.com/courses/cs101" } - Programs: { "id": 456, "type": "program", "program_id": "PROG123", "name": "Data Science Program", "description": "Comprehensive data science curriculum", "short_description": "Learn data science", "image_url": "https://example.com/images/datascience.jpg", "level": "Intermediate", "subject": "Data Science", "topics": ["Machine Learning", "Statistics"], "program_type": "Professional Certificate", "courses": [ {"id": 123, "name": "Introduction to Python"}, {"id": 124, "name": "Statistics for Data Science"} ], "url": "https://example.com/programs/prog123" } - Pathways: { "id": 789, "type": "pathway", "pathway_id": "PATH456", "name": "Software Engineering Career Path", "description": "Complete pathway to become a software engineer", "image_url": "https://example.com/images/swe-path.jpg", "programs": [ {"id": 456, "name": "Programming Fundamentals"}, {"id": 457, "name": "Web Development"} ], "url": "https://example.com/pathways/path456" } - Skills: { "id": 321, "type": "skill", "name": "Machine Learning", "description": "Building systems that learn from data", "courses": [ {"id": 125, "name": "Machine Learning Fundamentals"} ], "related_skills": [ {"id": 322, "name": "Deep Learning"} ] } - Roles: { "id": 654, "type": "role", "name": "Data Scientist", "description": "Professional who analyzes and interprets complex data", "skills": [ {"id": 321, "name": "Machine Learning"}, {"id": 323, "name": "Data Analysis"} ], "recommended_courses": [ {"id": 125, "name": "Machine Learning Fundamentals"} ] } - Resources: { "id": 987, "type": "resource", "name": "Python Cheat Sheet", "description": "Quick reference guide for Python", "resource_type": "PDF", "url": "https://example.com/resources/python-cheatsheet.pdf", "topics": ["Programming", "Python"] } Error Responses: 500 Internal Server Error: If an unexpected error occurs during processing Notes: - Results are cached for performance - The 'resources' content type is only included by default if IBL_ENABLE_RESOURCES_IN_FACET is true - For debugging, add ?debug=true to see detailed information about skill matching ### search_mentors_retrieve - [GET /api/search/mentors/](https://docs.ibl.ai/apis/ibl/search/search_mentors_retrieve.md): Search and filter AI mentors across the platform. This endpoint provides a powerful search interface for discovering AI mentors with support for filtering, pagination, and detailed mentor information. Query Parameters: # Identification parameters (for detail view) id (int, optional): Retrieve a specific mentor by ID unique_id (uuid, optional): Retrieve a specific mentor by UUID # Search and filtering parameters query (str, optional): Search term to filter mentors by name or description tenant (str, optional): Filter by tenant/organization llm (list, optional): Filter by language model type audience (list, optional): Filter by target audience category (list, optional): Filter by mentor category tags (list, optional): Filter by tags created_by (str, optional): Filter mentors created by specific user # Sorting and pagination order_by (str, optional): Field to sort results by ('created_at', 'recently_accessed_at') order_direction (str, optional): Sort direction ('asc' or 'desc', default: 'desc') limit (int, optional): Number of results per page (default: 12, max: 100) offset (int, optional): Starting position for pagination Returns: For detail view (when id or unique_id is provided): A JSON response containing a single mentor's details: { "id": 123, "unique_id": "550e8400-e29b-41d4-a716-446655440000", "name": "Professor Smith", "description": "AI mentor specializing in computer science", "image_url": "https://example.com/images/prof-smith.jpg", "llm": { "id": 1, "name": "GPT-4", "description": "Advanced language model" }, "audience": { "id": 2, "name": "College Students", "description": "For university-level learners" }, "category": "Computer Science", "tags": ["programming", "algorithms", "data structures"], "created_at": "2023-01-15T12:00:00Z", "recently_accessed_at": "2023-06-20T15:30:00Z", "platform": { "id": 1, "name": "Example University", "key": "example-university" }, "visibility": "public", "settings": { "temperature": 0.7, "max_tokens": 1024, "system_prompt": "You are Professor Smith, an expert in computer science..." } } For list view: A JSON response containing: { "results": [ { "id": 123, "unique_id": "550e8400-e29b-41d4-a716-446655440000", "name": "Professor Smith", "description": "AI mentor specializing in computer science", "image_url": "https://example.com/images/prof-smith.jpg", "llm": {"id": 1, "name": "GPT-4"}, "audience": {"id": 2, "name": "College Students"}, "category": "Computer Science", "tags": ["programming", "algorithms"], "created_at": "2023-01-15T12:00:00Z", "recently_accessed_at": "2023-06-20T15:30:00Z" }, // Additional mentor objects... ], "count": 50, "next": "https://api.example.com/api/search/mentors/?limit=12&offset=12", "previous": null, "current_page": 1, "num_pages": 5, "facets": { "llm": [ {"key": "GPT-4", "doc_count": 30}, {"key": "Claude", "doc_count": 20} ], "audience": [ {"key": "College Students", "doc_count": 35}, {"key": "Professionals", "doc_count": 15} ], "category": [ {"key": "Computer Science", "doc_count": 25}, {"key": "Mathematics", "doc_count": 15}, {"key": "Business", "doc_count": 10} ] } } Error Responses: 400 Bad Request: If the request parameters are invalid 404 Not Found: If the requested mentor doesn't exist 500 Internal Server Error: If an unexpected error occurs Notes: - Results are cached for performance - Public mentors are visible to all users - Private mentors are only visible to authorized users ### search_mentors_documents_retrieve - [GET /api/search/mentors/{mentor_unique_id}/documents/](https://docs.ibl.ai/apis/ibl/search/search_mentors_documents_retrieve.md): Search and filter documents associated with a specific mentor ### search_orgs_users_mentors_retrieve - [GET /api/search/orgs/{org}/users/{username}/mentors/](https://docs.ibl.ai/apis/ibl/search/search_orgs_users_mentors_retrieve.md): Handle GET requests for tenant-specific mentor search. Args: request: HTTP request object org: Tenant/organization key username: Username of the user making the request Returns: Response: DRF Response object with search results ### search_orgs_users_prompts_retrieve - [GET /api/search/orgs/{org}/users/{username}/prompts/](https://docs.ibl.ai/apis/ibl/search/search_orgs_users_prompts_retrieve.md): Search and filter AI prompts for a specific user within a tenant. This endpoint extends the base prompt search functionality but filters results to only show prompts that are available to a specific user within a specific organization/tenant. Path Parameters: org (str): The organization/tenant identifier username (str): The username to filter prompts for Query Parameters: Same as PromptSearchView, plus: # Identification parameters (for detail view) id (int, optional): Retrieve a specific prompt by ID Returns: Same format as PromptSearchView, but filtered to only include prompts that the specified user has access to within the specified organization. Error Responses: 400 Bad Request: If the request parameters are invalid 403 Forbidden: If the requested prompt exists but the user doesn't have access 404 Not Found: If the requested prompt doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - Results are filtered based on user's permissions within the organization - Private prompts are only visible to authorized users ### search_orgs_users_recommended_retrieve - [GET /api/search/orgs/{org}/users/{username}/recommended/](https://docs.ibl.ai/apis/ibl/search/search_orgs_users_recommended_retrieve.md): Determine whether to serve a detail view or a list view. ### search_personalized_catalog_retrieve - [GET /api/search/personalized-catalog/{username}/](https://docs.ibl.ai/apis/ibl/search/search_personalized_catalog_retrieve.md): Determine whether to serve a detail view or a list view. If any detail-identifying parameters are present (course_id, program_id, etc.) the detail view is returned; otherwise the aggregated list view is returned. ### search_prompts_retrieve - [GET /api/search/prompts/](https://docs.ibl.ai/apis/ibl/search/search_prompts_retrieve.md): Search and filter AI prompts across the platform. This endpoint provides a search interface for discovering AI prompts with support for filtering, pagination, and detailed prompt information. Query Parameters: # Identification parameters (for detail view) id (int, optional): Retrieve a specific prompt by ID # Search and filtering parameters query (str, optional): Search term to filter prompts by name or content category (str, optional): Filter by prompt category language (str, optional): Filter by prompt language style (str, optional): Filter by writing style tone (str, optional): Filter by tone tenant (str, optional): Filter by tenant/organization mentor (str, optional): Filter by associated mentor (UUID) # Sorting and pagination sort_by (str, optional): Field to sort results by order_direction (str, optional): Sort direction ('asc' or 'desc', default: 'desc') alphabetical (bool, optional): Sort alphabetically by name (default: false) limit (int, optional): Number of results per page (default: 10) offset (int, optional): Starting position for pagination # Special parameters filter_facet (any, optional): If present, return only facets without results Returns: For detail view (when id is provided): A JSON response containing a single prompt's details: { "id": 456, "name": "Essay Writing Guide", "content": "Write a well-structured essay on the following topic: {{topic}}...", "category": "Academic Writing", "language": "English", "style": "Formal", "tone": "Professional", "mentor": { "id": 123, "unique_id": "550e8400-e29b-41d4-a716-446655440000", "name": "Professor Smith" }, "platform": { "id": 1, "name": "Example University", "key": "example-university" }, "created_at": "2023-02-10T09:15:00Z", "updated_at": "2023-05-05T14:20:00Z", "visibility": "public", "variables": ["topic", "length", "style"] } For list view: A JSON response containing: { "results": [ { "id": 456, "name": "Essay Writing Guide", "content": "Write a well-structured essay on the following topic: {{topic}}...", "category": "Academic Writing", "language": "English", "style": "Formal", "tone": "Professional", "mentor": {"id": 123, "name": "Professor Smith"}, "created_at": "2023-02-10T09:15:00Z", "updated_at": "2023-05-05T14:20:00Z" }, // Additional prompt objects... ], "count": 30, "next": "?limit=10&offset=10", "previous": null, "current_page": 1, "num_pages": 3, "facets": { "category": [ {"key": "Academic Writing", "doc_count": 15}, {"key": "Creative Writing", "doc_count": 10}, {"key": "Technical Documentation", "doc_count": 5} ], "language": [ {"key": "English", "doc_count": 25}, {"key": "Spanish", "doc_count": 5} ], "style": [ {"key": "Formal", "doc_count": 20}, {"key": "Casual", "doc_count": 10} ], "tone": [ {"key": "Professional", "doc_count": 15}, {"key": "Friendly", "doc_count": 10}, {"key": "Technical", "doc_count": 5} ] } } Error Responses: 400 Bad Request: If the request parameters are invalid 403 Forbidden: If the requested prompt exists but is not publicly available 404 Not Found: If the requested prompt doesn't exist 500 Internal Server Error: If an unexpected error occurs Notes: - Only publicly available prompts are returned by default - When filtering by mentor, the mentor ID must be a valid UUID ### search_users_orgs_users_retrieve - [GET /api/search/users/orgs/{org}/users/{username}/](https://docs.ibl.ai/apis/ibl/search/search_users_orgs_users_retrieve.md): Search and filter users within a specific organization/tenant. This endpoint provides a search interface for discovering users within an organization, with support for filtering by departments, pagination, and faceted filtering. Path Parameters: org (str): The organization/tenant identifier username (str): The username of the user making the request Query Parameters: # Search parameters query (str, optional): Search term to filter users by name, username, or email # Department filtering department_mode (bool, optional): Enable department-based filtering (default: false) user_department (bool, optional): Legacy parameter for department_mode (default: false) department (list, optional): Filter by specific departments # Additional filters role (list, optional): Filter by user role status (list, optional): Filter by user status (active, inactive) joined_date (list, optional): Filter by join date range last_login (list, optional): Filter by last login date range # Pagination limit (int, optional): Number of results per page (default: 10) offset (int, optional): Starting position for pagination Returns: A JSON response containing: Error Responses: 400 Bad Request: If the request parameters are invalid 403 Forbidden: If the user doesn't have department admin privileges (when using department_mode) 404 Not Found: If the user or organization doesn't exist 500 Internal Server Error: If an unexpected error occurs Access Control: - The requesting user must have an active account in the specified organization - When department_mode is enabled, the user must be an admin of at least one department - Department filtering restricts results to users in departments where the requesting user is an admin ## skills ### skills_orgs_skills_list - [GET /api/skills/orgs/{org}/skills](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_list.md): List all available skills on the platform. This endpoint returns information about all skills that can be acquired on the platform. Path Parameters: org (str): The platform/organization identifier Returns: A list of all skills with basic information about each skill. Access Control: - Platform admins can access this information - All authenticated users can access this information ### skills_orgs_skills_percentile_retrieve - [GET /api/skills/orgs/{org}/skills/{skill_id}/percentile/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_percentile_retrieve.md): Retrieve percentile distribution for a specific skill. This endpoint returns the percentile distribution of points earned by users for a specific skill. Path Parameters: skill_id (int): The ID of the skill to retrieve percentile information for org (str, optional): The platform/organization identifier to filter results Returns: A list of percentile breakpoints for the specified skill. Error Responses: 404 Not Found: If the specified skill doesn't exist Access Control: - Platform admins can access this information - All authenticated users can access this information ### skills_orgs_skills_retrieve - [GET /api/skills/orgs/{org}/skills/{skill_name}/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_retrieve.md): Retrieve detailed information about a specific skill. This endpoint returns comprehensive information about a specific skill, including its description, categories, and related courses. Path Parameters: org (str): The platform/organization identifier skill_name (str): The name of the skill to retrieve details for Returns: Detailed information about the specified skill. Error Responses: 404 Not Found: If the specified skill doesn't exist Access Control: - Platform admins can access this information - All authenticated users can access this information ### skills_orgs_skills_percentile_list - [GET /api/skills/orgs/{org}/skills/percentile/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_percentile_list.md): Mixin that includes the StudentTokenAuthentication and IsAdminUserOrStudent ### skills_orgs_skills_thresholds_retrieve - [GET /api/skills/orgs/{org}/skills/thresholds/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_thresholds_retrieve.md): Manage skill thresholds for a platform. This endpoint allows platform administrators to view, create, update, and delete skill thresholds. Skill thresholds define the minimum points required to consider a skill as acquired or mastered. Path Parameters: org (str): The platform/organization identifier Methods: GET: Retrieve all skill thresholds for the platform POST: Create a new skill threshold PATCH: Update an existing skill threshold DELETE: Delete all skill thresholds for the platform Request Body (POST): name (str, required): The name of the threshold level (e.g., "Beginner", "Intermediate") threshold (int, required): The minimum points required to reach this threshold Request Body (PATCH): name (str, required): The name of the existing threshold to update threshold (int, required): The new minimum points value for this threshold Returns: GET: A list of all skill thresholds for the platform POST/PATCH: The created or updated skill threshold with format: { "name": "threshold_name", "threshold": threshold_value } DELETE: No content (204) Error Responses: 400 Bad Request: If the request data is invalid or missing required fields 404 Not Found: If the specified platform doesn't exist or the threshold to update cannot be found Access Control: - Only platform administrators can access this endpoint ### skills_orgs_skills_thresholds_create - [POST /api/skills/orgs/{org}/skills/thresholds/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_thresholds_create.md): Manage skill thresholds for a platform. This endpoint allows platform administrators to view, create, update, and delete skill thresholds. Skill thresholds define the minimum points required to consider a skill as acquired or mastered. Path Parameters: org (str): The platform/organization identifier Methods: GET: Retrieve all skill thresholds for the platform POST: Create a new skill threshold PATCH: Update an existing skill threshold DELETE: Delete all skill thresholds for the platform Request Body (POST): name (str, required): The name of the threshold level (e.g., "Beginner", "Intermediate") threshold (int, required): The minimum points required to reach this threshold Request Body (PATCH): name (str, required): The name of the existing threshold to update threshold (int, required): The new minimum points value for this threshold Returns: GET: A list of all skill thresholds for the platform POST/PATCH: The created or updated skill threshold with format: { "name": "threshold_name", "threshold": threshold_value } DELETE: No content (204) Error Responses: 400 Bad Request: If the request data is invalid or missing required fields 404 Not Found: If the specified platform doesn't exist or the threshold to update cannot be found Access Control: - Only platform administrators can access this endpoint ### skills_orgs_skills_thresholds_partial_update - [PATCH /api/skills/orgs/{org}/skills/thresholds/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_thresholds_partial_update.md): Manage skill thresholds for a platform. This endpoint allows platform administrators to view, create, update, and delete skill thresholds. Skill thresholds define the minimum points required to consider a skill as acquired or mastered. Path Parameters: org (str): The platform/organization identifier Methods: GET: Retrieve all skill thresholds for the platform POST: Create a new skill threshold PATCH: Update an existing skill threshold DELETE: Delete all skill thresholds for the platform Request Body (POST): name (str, required): The name of the threshold level (e.g., "Beginner", "Intermediate") threshold (int, required): The minimum points required to reach this threshold Request Body (PATCH): name (str, required): The name of the existing threshold to update threshold (int, required): The new minimum points value for this threshold Returns: GET: A list of all skill thresholds for the platform POST/PATCH: The created or updated skill threshold with format: { "name": "threshold_name", "threshold": threshold_value } DELETE: No content (204) Error Responses: 400 Bad Request: If the request data is invalid or missing required fields 404 Not Found: If the specified platform doesn't exist or the threshold to update cannot be found Access Control: - Only platform administrators can access this endpoint ### skills_orgs_skills_thresholds_destroy - [DELETE /api/skills/orgs/{org}/skills/thresholds/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_thresholds_destroy.md): Manage skill thresholds for a platform. This endpoint allows platform administrators to view, create, update, and delete skill thresholds. Skill thresholds define the minimum points required to consider a skill as acquired or mastered. Path Parameters: org (str): The platform/organization identifier Methods: GET: Retrieve all skill thresholds for the platform POST: Create a new skill threshold PATCH: Update an existing skill threshold DELETE: Delete all skill thresholds for the platform Request Body (POST): name (str, required): The name of the threshold level (e.g., "Beginner", "Intermediate") threshold (int, required): The minimum points required to reach this threshold Request Body (PATCH): name (str, required): The name of the existing threshold to update threshold (int, required): The new minimum points value for this threshold Returns: GET: A list of all skill thresholds for the platform POST/PATCH: The created or updated skill threshold with format: { "name": "threshold_name", "threshold": threshold_value } DELETE: No content (204) Error Responses: 400 Bad Request: If the request data is invalid or missing required fields 404 Not Found: If the specified platform doesn't exist or the threshold to update cannot be found Access Control: - Only platform administrators can access this endpoint ### skills_orgs_skills_users_retrieve - [GET /api/skills/orgs/{org}/skills/users/{user_id}/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_users_retrieve.md): Retrieve a user's skill information. This endpoint returns information about skills that a user has acquired through the platform. It can return all skills or filter by a specific skill. Path Parameters: org (str): The platform/organization identifier user_id (str): The username of the user to retrieve skill information for Query Parameters: skill_name (str, optional): Filter results to a specific skill Returns: When skill_name is provided: Details about the specific skill including points earned and percentile ranking When skill_name is not provided: A list of all skills the user has acquired with their points Access Control: - Platform admins can access any user's skill information - Users can access their own skill information ### skills_orgs_skills_users_desired_skills_retrieve - [GET /api/skills/orgs/{org}/skills/users/{user_id}/desired-skills/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_users_desired_skills_retrieve.md): Retrieve a user's desired skills. This endpoint returns the skills that a user has indicated they want to develop or acquire through the platform. Path Parameters: org (str): The platform/organization identifier user_id (str): The username of the user to retrieve skill information for Returns: The user's desired skills information. Error Responses: 400 Bad Request: If the user doesn't exist in the platform or has no desired skills 404 Not Found: If the specified platform doesn't exist Access Control: - Platform admins can access any user's information - Users can access their own information ### skills_orgs_skills_users_point_percentile_retrieve - [GET /api/skills/orgs/{org}/skills/users/{user_id}/point-percentile/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_users_point_percentile_retrieve.md): Retrieve a user's total skill points and percentile ranking. This endpoint returns the total skill points a user has earned across all skills and their percentile ranking compared to other users on the platform. Path Parameters: org (str): The platform/organization identifier user_id (str): The username of the user to retrieve information for Returns: The user's total skill points and percentile ranking information: - Username - Total points earned across all skills - Percentile ranking compared to other users Access Control: - Platform admins can access any user's information - Users can access their own information ### skills_orgs_skills_users_reported_skills_retrieve - [GET /api/skills/orgs/{org}/skills/users/{user_id}/reported-skills/](https://docs.ibl.ai/apis/ibl/skills/skills_orgs_skills_users_reported_skills_retrieve.md): Retrieve a user's self-reported skills. This endpoint returns the skills that a user has reported having prior to or outside of the platform learning experience. Path Parameters: org (str): The platform/organization identifier user_id (str): The username of the user to retrieve skill information for Returns: The user's self-reported skills information. Error Responses: 400 Bad Request: If the user doesn't exist in the platform or has no reported skills 404 Not Found: If the specified platform doesn't exist Access Control: - Platform admins can access any user's information - Users can access their own information