API for iblai
- Search and filter AI mentors across the platform
ibl-data-manager (4.84.1-ai-plus)
Request
Search and filter AI mentors with support for comprehensive filtering, pagination, and detailed mentor information. This endpoint supports both anonymous and authenticated users with different access levels.
Anonymous Users:
- Access to public mentors only (VIEWABLE_BY_ANYONE)
- Limited search capabilities
- No personalization
Authenticated Users:
- Full access based on platform permissions (scoped to requested platform)
- Personalized results
- Access to tenant-specific mentors
Available Filters:
query: Search term to filter mentors by name or descriptiontenant: Filter by tenant/organization platform key(s)category: Filter by mentor category (comma-separated)subjects: Filter by mentor subject (comma-separated)types: Filter by mentor type (comma-separated)llm: Filter by LLM provider (comma-separated, e.g., GPT-4, Claude)visibility: Filter by visibility level (comma-separated: viewable_by_anyone, viewable_by_tenant_students, viewable_by_tenant_admins)created_by: Filter mentors created by specific user (for personalized search)include_main_public_mentors: Include main tenant public mentors
Facets: The response includes facets with aggregated counts for all filterable attributes:
- categories, subjects, types, llm_providers, visibility All facet values can be used as filter parameters in subsequent requests.
Notes:
- Detail view is removed; use the ibl_ai_mentor app for mentor details
- include_main_public_mentors=true shows only VIEWABLE_BY_ANYONE mentors from the main tenant across tenants
- For authenticated requests, platform_key is required when username is provided
- Frontend uses
llmparameter name (backend maps tollm_providerautomatically)
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/mentors/
- https://base.manager.iblai.app/api/ai-search/mentors/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/mentors/?category=string&created_by=string&include_main_public_mentors=false&limit=1&llm=string&offset=0&platform_key=string&query=string&subjects=string&tenant=string&types=string&visibility=string' \
-H 'Authorization: YOUR_API_KEY_HERE'Search for computer science mentors as an anonymous user
{ "query": "computer science", "category": [ "Computer Science" ], "limit": 10 }
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/orgs/{org}/users/{username}/my-mentors/
- https://base.manager.iblai.app/api/ai-search/orgs/{org}/users/{username}/my-mentors/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/orgs/{org}/users/{username}/my-mentors/?audience=string&category=string&created_by=string&featured=true&id=0&include_main_public_mentors=false&limit=12&llm=string&offset=0&order_by=string&order_direction=desc&query=string&tags=string&tenant=string&unique_id=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
-H 'Authorization: YOUR_API_KEY_HERE'List of mentors matching the search criteria
Whether to force mentor to only use information within the provided documents.
Whether to show suggested prompts for the mentor or not. Note: Suggested prompts are created by tenant admins.
Whether to show suggested prompts for the mentor or not. Note: Guided prompts are created with an llm based on chat history.
Instructions to determine how prompt suggestions are generated.
Prompt template used to start a conversation with the user when greeting_type is proactive_prompt. This will be sent to the LLM so it can respond naturally
Allow embedded mentor to read content on the embedded web page.
Placeholder to be shown in the input text area when the mentor is used.
The prompt for the moderation system. This prompt must clearly distinguish between 'Approapriate' and 'Not Appropriate' queries.
Prompt to be used to alter or modify final llm response into any desired form.
Desired feedback to return to the user when their prompt is deemed inappropriate.
Prompt to check whether the models response is appropriate or not.
Feedback given to the user when a model generates an inappropriate response
sse- Ssewebsocket- Websocketstreamable_http- Streamable Http
Headers to send to the MCP server. Useful for authentication,
Featured mcp servers will be accessible to all other tenants.
{ "results": [ { … } ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "total_pages": 0, "facets": { "property1": { … }, "property2": { … } } }
Request
Get mentors created by a specific user within a given organization/platform. This endpoint provides a personalized view of the user's own mentors with support for filtering, pagination, and detailed mentor information.
Authentication Required:
- username: Required for personalized mentor access
- platform_key: Required for tenant-specific content
Features:
- User's own mentors only
- Personalization data (access counts, last used)
- Filtering and faceted search
- Pagination support
- Detail and list views
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/personalized-mentors/
- https://base.manager.iblai.app/api/ai-search/personalized-mentors/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/personalized-mentors/?audience=string&category=string&limit=0&llm_providers=string&offset=0&order_by=string&order_direction=asc&platform_key=string&query=string&return_facet=true&tags=string&username=string&visibility=string' \
-H 'Authorization: YOUR_API_KEY_HERE'Get all mentors created by john.doe
{ "username": "john.doe", "platform_key": "example-university", "limit": 20 }
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/prompts/
- https://base.manager.iblai.app/api/ai-search/prompts/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/prompts/ \
-H 'Authorization: YOUR_API_KEY_HERE'[ { "platform_key": "string", "prompt_text": "string", "recommendation_type": "string", "spa_url": "string", "active": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "created_by": "string" } ]
- application/json
- application/scim+json
- application/x-www-form-urlencoded
- multipart/form-data
- */*
Frontend/SPA identifier (e.g., 'catalog.example.com', 'mentor-ai.ibl.com', 'https://mentor-ai.ibl.com'). Protocol and case will be normalized automatically. Leave blank for platform-wide prompts.
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/prompts/
- https://base.manager.iblai.app/api/ai-search/prompts/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/prompts/ \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"platform_key": "acme-corp",
"recommendation_type": "courses",
"spa_url": "catalog.acme-corp.com",
"prompt_text": "Focus on technical skills and certifications...",
"active": true
}'{ "platform_key": "acme-corp", "recommendation_type": "courses", "spa_url": "catalog.acme-corp.com", "prompt_text": "Focus on technical skills and certifications...", "active": true }
- application/json
- application/scim+json
- application/x-www-form-urlencoded
- multipart/form-data
- */*
Frontend/SPA identifier (e.g., 'catalog.example.com', 'mentor-ai.ibl.com', 'https://mentor-ai.ibl.com'). Protocol and case will be normalized automatically. Leave blank for platform-wide prompts.
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/prompts/
- https://base.manager.iblai.app/api/ai-search/prompts/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/prompts/ \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"platform_key": "string",
"prompt_text": "string",
"recommendation_type": "catalog",
"spa_url": "string",
"active": true
}'{ "platform_key": "string", "prompt_text": "string", "recommendation_type": "string", "spa_url": "string", "active": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "created_by": "string" }
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/prompts/
- https://base.manager.iblai.app/api/ai-search/prompts/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/prompts/ \
-H 'Authorization: YOUR_API_KEY_HERE'- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendation/prompts/
- https://base.manager.iblai.app/api/ai-search/recommendation/prompts/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendation/prompts/ \
-H 'Authorization: YOUR_API_KEY_HERE'[ { "platform_key": "string", "prompt_text": "string", "recommendation_type": "string", "spa_url": "string", "active": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "created_by": "string" } ]
- application/json
- application/scim+json
- application/x-www-form-urlencoded
- multipart/form-data
- */*
Frontend/SPA identifier (e.g., 'catalog.example.com', 'mentor-ai.ibl.com', 'https://mentor-ai.ibl.com'). Protocol and case will be normalized automatically. Leave blank for platform-wide prompts.
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendation/prompts/
- https://base.manager.iblai.app/api/ai-search/recommendation/prompts/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendation/prompts/ \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"platform_key": "acme-corp",
"recommendation_type": "courses",
"spa_url": "catalog.acme-corp.com",
"prompt_text": "Focus on technical skills and certifications...",
"active": true
}'{ "platform_key": "acme-corp", "recommendation_type": "courses", "spa_url": "catalog.acme-corp.com", "prompt_text": "Focus on technical skills and certifications...", "active": true }
- application/json
- application/scim+json
- application/x-www-form-urlencoded
- multipart/form-data
- */*
Frontend/SPA identifier (e.g., 'catalog.example.com', 'mentor-ai.ibl.com', 'https://mentor-ai.ibl.com'). Protocol and case will be normalized automatically. Leave blank for platform-wide prompts.
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendation/prompts/
- https://base.manager.iblai.app/api/ai-search/recommendation/prompts/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendation/prompts/ \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"platform_key": "string",
"prompt_text": "string",
"recommendation_type": "catalog",
"spa_url": "string",
"active": true
}'{ "platform_key": "string", "prompt_text": "string", "recommendation_type": "string", "spa_url": "string", "active": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "created_by": "string" }
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendation/prompts/
- https://base.manager.iblai.app/api/ai-search/recommendation/prompts/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendation/prompts/ \
-H 'Authorization: YOUR_API_KEY_HERE'Request
Generate personalized course recommendations using AI that considers the user's learning history, organizational goals, and available courses.
Authentication Required:
- User must be authenticated
- Platform key must be provided
- User must have access to the specified platform
How It Works:
- Fetches tenant's custom recommendation prompt (if configured)
- Analyzes user's course completion history and performance
- Reviews available course catalog
- Uses AI to match courses to user's needs and organizational goals
- Returns 3-5 courses with clear explanations
Tenant Prompts: Each organization can configure custom prompts that guide recommendations. For example: "Prioritize leadership for sales roles" or "Focus on technical skills."
Use Cases:
- Manual recommendation requests by users
- Post-assessment recommendations
- Milestone-triggered suggestions
- Learning path planning
Context type for recommendation (e.g., 'assessment_completed', 'milestone_reached')
Include items from 'main' tenant catalog IN ADDITION TO platform-specific catalog. By default, only platform-specific data is returned (tenant isolation). Set to True to also include shared 'main' tenant resources.
Include user's learning history (completed courses, topics) in the RAG search query. Helps find content that builds on their background.
Include user's skills and badges in the RAG search query. Helps personalize results based on what the user already knows.
Number of similar items to retrieve via RAG per tenant (before filtering). Higher values give more options but may be slower.
Platform org identifier (optional - avoids database lookup if provided)
Custom prompt for LLM ranking (only if ranking_strategy='custom'). Define how the LLM should evaluate and order the recommendations.
Strategy for LLM ranking. Only used if use_llm_ranking=True.
relevance- Rank by relevance and value (default)difficulty- Rank by difficulty progressionpersonalized- Personalize to user context and goalscustom- Use custom ranking prompt
Type of resource to recommend. Catalog types (courses/programs/resources/pathways) will use the platform's 'catalog' prompt category if configured.
mentors- Mentor Recommendationscourses- Course Recommendationsprograms- Program Recommendationsresources- Resource Recommendationspathways- Pathway Recommendations
Search terms to find similar content (e.g., 'leadership', 'data science'). Used to build the RAG query.
Frontend/SPA identifier (e.g., 'catalog.example.com', 'mentor-ai.ibl.com'). Used to retrieve the correct prompt for that specific frontend. Auto-detected from HTTP_REFERER if not provided.
Use LLM to rank and personalize RAG results. Adds AI-generated reasoning but increases cost and latency. Only applies if use_rag_search=True.
- Mock serverhttps://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendations/
- https://base.manager.iblai.app/api/ai-search/recommendations/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.ibl.ai/_mock/apis/ibl/api/ai-search/recommendations/?assessment_id=string&context_type=string&difficulty_levels=string&domains=string&include_main_catalog=false&include_user_history=false&include_user_skills=false&k=20&limit=5&page=1&page_size=10&platform_key=string&platform_org=string&ranking_prompt=string&ranking_strategy=relevance&recommendation_type=mentors&search_terms=string&spa_url=string&trigger_source=manual&use_llm_ranking=false&use_rag_search=true' \
-H 'Authorization: YOUR_API_KEY_HERE'List of course recommendations with reasoning
Platform/tenant key this course belongs to (extracted from course_id or metadata)
Course description (priority: description > short_description > overview with HTML stripped)
Whether the results include items from the 'main' tenant catalog
Request 5 course recommendations for authenticated user
{ "platform_key": "sba-university", "limit": 5 }