Skip to content

ibl-data-manager (3.59.0-ai-plus)

API for iblai

Download OpenAPI description
Languages
Servers
Mock server

https://docs.ibl.ai/_mock/apis/ibl/

https://base.manager.iblai.app/

ai-account

Operations

ai-analytics

Operations

ai-bot

Operations

ai-finetuning

Operations

ai-index

Operations

ai-marketing

Operations

ai-media

Operations

ai-mentor

Operations

ai-prompt

Operations

career

Operations

catalog

Operations

core

Operations

credentials

Operations

features

Operations

media

Operations

notifications

Operations

scim

Operations

commerce

Operations

recommendations

Operations

reports

Operations

search_ai_search_retrieve

Request

Legacy endpoint for backward compatible mentor search

Query
audienceArray of strings

Filter by target audience

categoryArray of strings

Filter by mentor category

created_bystringnon-empty

Filter mentors created by specific user

filter_facetboolean

If present, return only facets without results

Default false
idinteger

Retrieve a specific mentor by ID

limitinteger

Number of results per page

Default 12
llmArray of strings

Filter by language model type

offsetinteger

Starting position for pagination

Default 0
order_bystringnon-empty

Field to sort results by ('created_at', 'recently_accessed_at')

order_directionstringnon-empty

Sort direction ('asc' or 'desc')

Default "desc"
pageinteger

Page number (1-based, used with page_size)

page_sizeinteger

Number of results per page

querystringnon-empty

Search term to filter mentors by name or description

tagsArray of strings

Filter by tags

tenantstringnon-empty

Filter by tenant/organization

unique_idstring(uuid)

Retrieve a specific mentor by UUID

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/ai-search/?audience=string&category=string&created_by=string&filter_facet=false&id=0&limit=12&llm=string&offset=0&order_by=string&order_direction=desc&page=0&page_size=0&query=string&tags=string&tenant=string&unique_id=497f6eca-6276-4993-bfeb-53cbbbba6f08'

Responses

Bodyapplication/json
resultsArray of objects(Mentor)required

List of mentors matching the search criteria

results[].​namestring<= 255 charactersrequired
results[].​unique_idstring(uuid)
results[].​flowanyrequired

The langflow json for the mentor

results[].​slugstring<= 255 characters^[-a-zA-Z0-9_]+$
results[].​platformstring<= 255 characters
results[].​allow_anonymousboolean
results[].​metadataany or null
results[].​enable_moderationboolean
results[].​enable_post_processing_systemboolean
results[].​enable_openai_assistantboolean

(Deprecated) Set template mentor to openai-agent instead.

results[].​enable_total_groundingboolean

Whether to force mentor to only use information within the provided documents.

results[].​enable_suggested_promptsboolean

Whether to show suggested prompts for the mentor or not. Note: Suggested prompts are created by tenant admins.

results[].​enable_guided_promptsboolean

Whether to show suggested prompts for the mentor or not. Note: Guided prompts are created with an llm based on chat history.

results[].​guided_prompt_instructionsstring

Instructions to determine how prompt suggestions are generated.

results[].​google_voiceinteger or null
results[].​openai_voiceinteger or null
results[].​categoriesArray of objects(MentorCategory)required
results[].​categories[].​idintegerread-onlyrequired
results[].​categories[].​namestring<= 255 charactersrequired
results[].​categories[].​descriptionstring or null<= 255 characters
results[].​categories[].​category_groupinteger or null
results[].​categories[].​audienceobject(MentorAudience)required
results[].​categories[].​audience.​idintegerread-onlyrequired
results[].​categories[].​audience.​namestring<= 255 charactersrequired
results[].​categories[].​audience.​descriptionstring or null<= 255 characters
results[].​categories[].​audiencesArray of objects(MentorAudience)required
results[].​categories[].​audiences[].​idintegerread-onlyrequired
results[].​categories[].​audiences[].​namestring<= 255 charactersrequired
results[].​categories[].​audiences[].​descriptionstring or null<= 255 characters
results[].​proactive_promptstring

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

results[].​moderation_system_promptstring

The prompt for the moderation system. This prompt must clearly distinguish between 'Approapriate' and 'Not Appropriate' queries.

results[].​post_processing_promptstring

Prompt to be used to alter or modify final llm response into any desired form.

results[].​moderation_responsestring

Desired feedback to return to the user when their prompt is deemed inappropriate.

results[].​safety_system_promptstring

Prompt to check whether the models response is appropriate or not.

results[].​safety_responsestring

Feedback given to the user when a model generates an inappropriate response

results[].​enable_safety_systemboolean
results[].​proactive_responsestring

Response to start a conversation with a user.

results[].​greeting_methodstring
  • proactive_prompt - Proactive Prompt
  • proactive_response - Proactive Response
Enum"proactive_prompt""proactive_response"
results[].​call_configurationobject(CallConfiguration)
results[].​mcp_serversArray of objects(MCPServer)required
results[].​mcp_servers[].​idintegerread-onlyrequired
results[].​mcp_servers[].​platformintegerread-onlyrequired
results[].​mcp_servers[].​namestring<= 255 charactersrequired
results[].​mcp_servers[].​urlstring(uri)<= 200 charactersrequired

The url of the MCP server.

results[].​mcp_servers[].​transportstring(TransportEnum)
  • sse - Sse
  • websocket - Websocket
Enum"sse""websocket"
results[].​mcp_servers[].​headersany

Headers to send to the MCP server. Useful for authentication,

results[].​mcp_servers[].​platform_keystringread-onlyrequired
results[].​mcp_servers[].​created_atstring(date-time)read-onlyrequired
results[].​mcp_servers[].​updated_atstring(date-time)read-onlyrequired
results[].​last_accessed_byinteger or null[ 0 .. 2147483647 ]

edX user ID

results[].​recently_accessed_atstring or null(date-time)
results[].​created_bystring or null<= 255 characters
results[].​created_atstring or null(date-time)read-onlyrequired
results[].​updated_atstring or null(date-time)read-onlyrequired
countintegerrequired

Total number of mentors matching the search criteria

nextstring or null(uri)required

URL for the next page of results

previousstring or null(uri)required

URL for the previous page of results

current_pageintegerrequired

Current page number

total_pagesintegerrequired

Total number of pages

facetsobject

Facet information for filtering

Response
application/json
{ "results": [ {} ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "total_pages": 0, "facets": { "property1": {}, "property2": {} } }

search_catalog_retrieve

Request

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
Query
allow_skill_searchboolean

Enable skill-based search

Default false
alphabeticalboolean

Sort alphabetically by name

Default false
certificateArray of strings

Filter by certificate type

contentArray of strings

Content types to include in results

course_idstringnon-empty

Filter by specific course ID

durationArray of strings

Filter by course duration range

languageArray of strings

Filter by content language

levelArray of strings

Filter by difficulty level

limitinteger

Number of results per page

Default 12
offsetinteger

Starting position for pagination

Default 0
order_ascendingboolean

Sort direction

Default false
order_bystringnon-empty

Field to sort results by

pathway_idstringnon-empty

Filter by specific pathway ID

pricestringnon-empty

Filter by price/audit status

program_idstringnon-empty

Filter by specific program ID

program_typeArray of strings

Filter by program type

promotionArray of strings

Filter by promotion status

querystringnon-empty

Search term to filter content by name or description

resource_typeArray of strings

Filter by resource type

return_facetboolean

Include facet data in response

Default true
return_itemsboolean

Include items in programs/pathways

Default false
self_pacedArray of strings

Filter by course format

skill_idstringnon-empty

Filter by specific skill ID

skillsArray of strings

Filter by skills

subjectArray of strings

Filter by subject areas

tagsArray of strings

Filter by tags

tenantArray of strings

Filter by tenant/organization

topicsArray of strings

Filter by topic areas

update_facetstringnon-empty

Force facet update

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/catalog/?allow_skill_search=false&alphabetical=false&certificate=string&content=string&course_id=string&duration=string&language=string&level=string&limit=12&offset=0&order_ascending=false&order_by=string&pathway_id=string&price=string&program_id=string&program_type=string&promotion=string&query=string&resource_type=string&return_facet=true&return_items=false&self_paced=string&skill_id=string&skills=string&subject=string&tags=string&tenant=string&topics=string&update_facet=string'

Responses

Bodyapplication/json
resultsArray of objectsrequired

List of content items matching the search criteria

results[].​property name*anyadditional property
countintegerrequired

Total number of items matching the search criteria

nextstring or null(uri)required

URL for the next page of results

previousstring or null(uri)required

URL for the previous page of results

current_pageintegerrequired

Current page number

total_pagesintegerrequired

Total number of pages

facetsobject

Facet information for filtering

Response
application/json
{ "results": [ {} ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "total_pages": 0, "facets": { "property1": null, "property2": null } }

search_mentors_retrieve

Request

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
Query
audienceArray of strings

Filter by target audience

categoryArray of strings

Filter by mentor category

created_bystringnon-empty

Filter mentors created by specific user

featuredboolean

Filter by featured status

idinteger

Retrieve a specific mentor by ID

limitinteger

Number of results per page

Default 12
llmArray of strings

Filter by language model type

offsetinteger

Starting position for pagination

Default 0
order_bystringnon-empty

Field to sort results by ('created_at', 'recently_accessed_at')

order_directionstringnon-empty

Sort direction ('asc' or 'desc')

Default "desc"
querystringnon-empty

Search term to filter mentors by name or description

tagsArray of strings

Filter by tags

tenantstringnon-empty

Filter by tenant/organization

unique_idstring(uuid)

Retrieve a specific mentor by UUID

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/mentors/?audience=string&category=string&created_by=string&featured=true&id=0&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'

Responses

Bodyapplication/json
resultsArray of objects(Mentor)required

List of mentors matching the search criteria

results[].​namestring<= 255 charactersrequired
results[].​unique_idstring(uuid)
results[].​flowanyrequired

The langflow json for the mentor

results[].​slugstring<= 255 characters^[-a-zA-Z0-9_]+$
results[].​platformstring<= 255 characters
results[].​allow_anonymousboolean
results[].​metadataany or null
results[].​enable_moderationboolean
results[].​enable_post_processing_systemboolean
results[].​enable_openai_assistantboolean

(Deprecated) Set template mentor to openai-agent instead.

results[].​enable_total_groundingboolean

Whether to force mentor to only use information within the provided documents.

results[].​enable_suggested_promptsboolean

Whether to show suggested prompts for the mentor or not. Note: Suggested prompts are created by tenant admins.

results[].​enable_guided_promptsboolean

Whether to show suggested prompts for the mentor or not. Note: Guided prompts are created with an llm based on chat history.

results[].​guided_prompt_instructionsstring

Instructions to determine how prompt suggestions are generated.

results[].​google_voiceinteger or null
results[].​openai_voiceinteger or null
results[].​categoriesArray of objects(MentorCategory)required
results[].​categories[].​idintegerread-onlyrequired
results[].​categories[].​namestring<= 255 charactersrequired
results[].​categories[].​descriptionstring or null<= 255 characters
results[].​categories[].​category_groupinteger or null
results[].​categories[].​audienceobject(MentorAudience)required
results[].​categories[].​audience.​idintegerread-onlyrequired
results[].​categories[].​audience.​namestring<= 255 charactersrequired
results[].​categories[].​audience.​descriptionstring or null<= 255 characters
results[].​categories[].​audiencesArray of objects(MentorAudience)required
results[].​categories[].​audiences[].​idintegerread-onlyrequired
results[].​categories[].​audiences[].​namestring<= 255 charactersrequired
results[].​categories[].​audiences[].​descriptionstring or null<= 255 characters
results[].​proactive_promptstring

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

results[].​moderation_system_promptstring

The prompt for the moderation system. This prompt must clearly distinguish between 'Approapriate' and 'Not Appropriate' queries.

results[].​post_processing_promptstring

Prompt to be used to alter or modify final llm response into any desired form.

results[].​moderation_responsestring

Desired feedback to return to the user when their prompt is deemed inappropriate.

results[].​safety_system_promptstring

Prompt to check whether the models response is appropriate or not.

results[].​safety_responsestring

Feedback given to the user when a model generates an inappropriate response

results[].​enable_safety_systemboolean
results[].​proactive_responsestring

Response to start a conversation with a user.

results[].​greeting_methodstring
  • proactive_prompt - Proactive Prompt
  • proactive_response - Proactive Response
Enum"proactive_prompt""proactive_response"
results[].​call_configurationobject(CallConfiguration)
results[].​mcp_serversArray of objects(MCPServer)required
results[].​mcp_servers[].​idintegerread-onlyrequired
results[].​mcp_servers[].​platformintegerread-onlyrequired
results[].​mcp_servers[].​namestring<= 255 charactersrequired
results[].​mcp_servers[].​urlstring(uri)<= 200 charactersrequired

The url of the MCP server.

results[].​mcp_servers[].​transportstring(TransportEnum)
  • sse - Sse
  • websocket - Websocket
Enum"sse""websocket"
results[].​mcp_servers[].​headersany

Headers to send to the MCP server. Useful for authentication,

results[].​mcp_servers[].​platform_keystringread-onlyrequired
results[].​mcp_servers[].​created_atstring(date-time)read-onlyrequired
results[].​mcp_servers[].​updated_atstring(date-time)read-onlyrequired
results[].​last_accessed_byinteger or null[ 0 .. 2147483647 ]

edX user ID

results[].​recently_accessed_atstring or null(date-time)
results[].​created_bystring or null<= 255 characters
results[].​created_atstring or null(date-time)read-onlyrequired
results[].​updated_atstring or null(date-time)read-onlyrequired
countintegerrequired

Total number of mentors matching the search criteria

nextstring or null(uri)required

URL for the next page of results

previousstring or null(uri)required

URL for the previous page of results

current_pageintegerrequired

Current page number

total_pagesintegerrequired

Total number of pages

facetsobject

Facet information for filtering

Response
application/json
{ "results": [ {} ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "total_pages": 0, "facets": { "property1": {}, "property2": {} } }

search_mentors_documents_retrieve

Request

Search and filter documents associated with a specific mentor

Path
mentor_unique_idstring(uuid)required
Query
accessstringnon-empty

Filter by access level (e.g., 'public', 'private')

document_typestringnon-empty

Filter by document type (e.g., 'pdf', 'text')

limitinteger

Number of results per page

Default 12
offsetinteger

Starting position for pagination

Default 0
order_bystringnon-empty

Field to sort results by ('date_created', 'last_modified', 'document_name')

order_directionstringnon-empty

Sort direction ('asc' or 'desc')

Default "desc"
platform_keystringnon-empty

Filter by platform key

querystringnon-empty

Search term to filter documents by name or content

training_statusstringnon-empty

Filter by training status (e.g., 'trained', 'pending')

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/mentors/{mentor_unique_id}/documents/?access=string&document_type=string&limit=12&offset=0&order_by=string&order_direction=desc&platform_key=string&query=string&training_status=string'

Responses

Bodyapplication/json
resultsArray of objects(Document)required

List of documents matching the search criteria

results[].​idintegerrequired

Document ID

results[].​document_namestringrequired

Name of the document

results[].​document_typestringrequired

Type of document (e.g., 'pdf', 'text')

results[].​accessstringrequired

Access level of the document

results[].​training_statusstringrequired

Training status of the document

results[].​date_createdstring(date-time)required

Date when the document was created

results[].​last_modifiedstring(date-time)required

Date when the document was last modified

results[].​urlstring(uri)required

URL to access the document

results[].​metadataanyrequired

Additional metadata for the document

countintegerrequired

Total number of documents matching the search criteria

nextstring or null(uri)required

URL for the next page of results

previousstring or null(uri)required

URL for the previous page of results

current_pageintegerrequired

Current page number

total_pagesintegerrequired

Total number of pages

facetsobjectrequired

Facet information for filtering

facets.​property name*object(DocumentFacet)additional property

Serializer for document facets

Response
application/json
{ "results": [ {} ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "total_pages": 0, "facets": { "property1": {}, "property2": {} } }

search_orgs_users_mentors_retrieve

Request

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

Path
orgstringrequired
usernamestringrequired
Query
audienceArray of strings

Filter by target audience

categoryArray of strings

Filter by mentor category

created_bystringnon-empty

Filter mentors created by specific user

featuredboolean

Filter by featured status

idinteger

Retrieve a specific mentor by ID

limitinteger

Number of results per page

Default 12
llmArray of strings

Filter by language model type

offsetinteger

Starting position for pagination

Default 0
order_bystringnon-empty

Field to sort results by ('created_at', 'recently_accessed_at')

order_directionstringnon-empty

Sort direction ('asc' or 'desc')

Default "desc"
querystringnon-empty

Search term to filter mentors by name or description

tagsArray of strings

Filter by tags

tenantstringnon-empty

Filter by tenant/organization

unique_idstring(uuid)

Retrieve a specific mentor by UUID

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/orgs/{org}/users/{username}/mentors/?audience=string&category=string&created_by=string&featured=true&id=0&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'

Responses

Bodyapplication/json
resultsArray of objects(Mentor)required

List of mentors matching the search criteria

results[].​namestring<= 255 charactersrequired
results[].​unique_idstring(uuid)
results[].​flowanyrequired

The langflow json for the mentor

results[].​slugstring<= 255 characters^[-a-zA-Z0-9_]+$
results[].​platformstring<= 255 characters
results[].​allow_anonymousboolean
results[].​metadataany or null
results[].​enable_moderationboolean
results[].​enable_post_processing_systemboolean
results[].​enable_openai_assistantboolean

(Deprecated) Set template mentor to openai-agent instead.

results[].​enable_total_groundingboolean

Whether to force mentor to only use information within the provided documents.

results[].​enable_suggested_promptsboolean

Whether to show suggested prompts for the mentor or not. Note: Suggested prompts are created by tenant admins.

results[].​enable_guided_promptsboolean

Whether to show suggested prompts for the mentor or not. Note: Guided prompts are created with an llm based on chat history.

results[].​guided_prompt_instructionsstring

Instructions to determine how prompt suggestions are generated.

results[].​google_voiceinteger or null
results[].​openai_voiceinteger or null
results[].​categoriesArray of objects(MentorCategory)required
results[].​categories[].​idintegerread-onlyrequired
results[].​categories[].​namestring<= 255 charactersrequired
results[].​categories[].​descriptionstring or null<= 255 characters
results[].​categories[].​category_groupinteger or null
results[].​categories[].​audienceobject(MentorAudience)required
results[].​categories[].​audience.​idintegerread-onlyrequired
results[].​categories[].​audience.​namestring<= 255 charactersrequired
results[].​categories[].​audience.​descriptionstring or null<= 255 characters
results[].​categories[].​audiencesArray of objects(MentorAudience)required
results[].​categories[].​audiences[].​idintegerread-onlyrequired
results[].​categories[].​audiences[].​namestring<= 255 charactersrequired
results[].​categories[].​audiences[].​descriptionstring or null<= 255 characters
results[].​proactive_promptstring

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

results[].​moderation_system_promptstring

The prompt for the moderation system. This prompt must clearly distinguish between 'Approapriate' and 'Not Appropriate' queries.

results[].​post_processing_promptstring

Prompt to be used to alter or modify final llm response into any desired form.

results[].​moderation_responsestring

Desired feedback to return to the user when their prompt is deemed inappropriate.

results[].​safety_system_promptstring

Prompt to check whether the models response is appropriate or not.

results[].​safety_responsestring

Feedback given to the user when a model generates an inappropriate response

results[].​enable_safety_systemboolean
results[].​proactive_responsestring

Response to start a conversation with a user.

results[].​greeting_methodstring
  • proactive_prompt - Proactive Prompt
  • proactive_response - Proactive Response
Enum"proactive_prompt""proactive_response"
results[].​call_configurationobject(CallConfiguration)
results[].​mcp_serversArray of objects(MCPServer)required
results[].​mcp_servers[].​idintegerread-onlyrequired
results[].​mcp_servers[].​platformintegerread-onlyrequired
results[].​mcp_servers[].​namestring<= 255 charactersrequired
results[].​mcp_servers[].​urlstring(uri)<= 200 charactersrequired

The url of the MCP server.

results[].​mcp_servers[].​transportstring(TransportEnum)
  • sse - Sse
  • websocket - Websocket
Enum"sse""websocket"
results[].​mcp_servers[].​headersany

Headers to send to the MCP server. Useful for authentication,

results[].​mcp_servers[].​platform_keystringread-onlyrequired
results[].​mcp_servers[].​created_atstring(date-time)read-onlyrequired
results[].​mcp_servers[].​updated_atstring(date-time)read-onlyrequired
results[].​last_accessed_byinteger or null[ 0 .. 2147483647 ]

edX user ID

results[].​recently_accessed_atstring or null(date-time)
results[].​created_bystring or null<= 255 characters
results[].​created_atstring or null(date-time)read-onlyrequired
results[].​updated_atstring or null(date-time)read-onlyrequired
countintegerrequired

Total number of mentors matching the search criteria

nextstring or null(uri)required

URL for the next page of results

previousstring or null(uri)required

URL for the previous page of results

current_pageintegerrequired

Current page number

total_pagesintegerrequired

Total number of pages

facetsobject

Facet information for filtering

Response
application/json
{ "results": [ {} ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "total_pages": 0, "facets": { "property1": {}, "property2": {} } }

search_orgs_users_prompts_retrieve

Request

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
Path
orgstringrequired
usernamestringrequired
Query
alphabeticalboolean

Sort alphabetically

Default false
categorystringnon-empty

Filter by prompt category

filter_facetboolean

If true, return only facets without results

languagestringnon-empty

Filter by prompt language

limitinteger

Number of results per page

Default 10
mentorstringnon-empty

Filter by mentor UUID

offsetinteger

Starting position for pagination

Default 0
order_directionstringnon-empty

Sort direction ('asc' or 'desc')

Default "desc"
querystringnon-empty

Search term to filter prompts by name or content

sort_bystringnon-empty

Field to sort results by

stylestringnon-empty

Filter by prompt style

tenantstringnon-empty

Filter by tenant/organization

tonestringnon-empty

Filter by prompt tone

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/orgs/{org}/users/{username}/prompts/?alphabetical=false&category=string&filter_facet=true&language=string&limit=10&mentor=string&offset=0&order_direction=desc&query=string&sort_by=string&style=string&tenant=string&tone=string'

Responses

Bodyapplication/json
resultsArray of objects(Prompt)required

List of prompts matching the search criteria

results[].​idintegerread-onlyrequired
results[].​mentorstring(uuid)
results[].​tonestring or null
results[].​stylestring
results[].​languagestring
results[].​tagsArray of integers
results[].​is_systemboolean
Default true
results[].​metadataany
results[].​categorystring
results[].​promptstringrequired
results[].​titlestring or null<= 255 characters
results[].​descriptionstring or null
results[].​prompt_visibility(PromptVisibilityEnum (string or null)) or (BlankEnum (any or null)) or (NullEnum (any or null))
One of:
  • viewable_by_tenant_admins - Viewable By Tenant Admins
  • viewable_by_tenant_students - Viewable By Tenant Students
  • viewable_by_anyone - Viewable By Anyone
string or null(PromptVisibilityEnum)
  • viewable_by_tenant_admins - Viewable By Tenant Admins
  • viewable_by_tenant_students - Viewable By Tenant Students
  • viewable_by_anyone - Viewable By Anyone
Enum"viewable_by_tenant_admins""viewable_by_tenant_students""viewable_by_anyone"
results[].​created_atstring(date-time)read-onlyrequired
results[].​updated_atstring(date-time)read-onlyrequired
results[].​created_bystring or null<= 255 characters
results[].​platformintegerrequired
countintegerrequired

Total number of prompts matching the search criteria

nextstring or null(uri)required

URL for the next page of results

previousstring or null(uri)required

URL for the previous page of results

current_pageintegerrequired

Current page number

num_pagesintegerrequired

Total number of pages

facetsobject

Facet information for filtering

Response
application/json
{ "results": [ {} ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "num_pages": 0, "facets": { "property1": {}, "property2": {} } }

search_personalized_catalog_retrieve

Request

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.

Path
usernamestringrequired
Query
allow_skill_searchboolean

Enable skill-based search

Default false
alphabeticalboolean

Sort alphabetically by name

Default false
certificateArray of strings

Filter by certificate type

contentArray of strings

Content types to include in results

course_idstringnon-empty

Retrieve a specific course by ID

durationArray of strings

Filter by course duration range

languageArray of strings

Filter by content language

levelArray of strings

Filter by difficulty level

limitinteger

Number of results per page

Default 12
offsetinteger

Starting position for pagination

Default 0
order_ascendingboolean

Sort direction

Default false
order_bystringnon-empty

Field to sort results by

pathway_idstringnon-empty

Retrieve a specific pathway by ID

pricestringnon-empty

Filter by price/audit status

program_idstringnon-empty

Retrieve a specific program by ID

program_typeArray of strings

Filter by program type

promotionArray of strings

Filter by promotion status

querystringnon-empty

Search term to filter content by name or description

recommendedboolean

Show only recommended content

Default false
resource_idstringnon-empty

Retrieve a specific resource by ID

resource_typeArray of strings

Filter by resource type

return_facetboolean

Include facet data in response

Default true
return_itemsboolean

Include items in programs/pathways

Default false
role_idstringnon-empty

Retrieve a specific role by ID

self_pacedArray of strings

Filter by course format

skill_idstringnon-empty

Retrieve a specific skill by ID

skillsArray of strings

Filter by skills

subjectArray of strings

Filter by subject areas

tagsArray of strings

Filter by tags

tenantArray of strings

Filter by tenant/organization

topicsArray of strings

Filter by topic areas

update_facetstringnon-empty

Force facet update

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/personalized-catalog/{username}/?allow_skill_search=false&alphabetical=false&certificate=string&content=string&course_id=string&duration=string&language=string&level=string&limit=12&offset=0&order_ascending=false&order_by=string&pathway_id=string&price=string&program_id=string&program_type=string&promotion=string&query=string&recommended=false&resource_id=string&resource_type=string&return_facet=true&return_items=false&role_id=string&self_paced=string&skill_id=string&skills=string&subject=string&tags=string&tenant=string&topics=string&update_facet=string'

Responses

Bodyapplication/json
property name*anyadditional property
Response
application/json
{ "property1": null, "property2": null }

search_prompts_retrieve

Request

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
Query
alphabeticalboolean

Sort alphabetically

Default false
categorystringnon-empty

Filter by prompt category

filter_facetboolean

If true, return only facets without results

languagestringnon-empty

Filter by prompt language

limitinteger

Number of results per page

Default 10
mentorstringnon-empty

Filter by mentor UUID

offsetinteger

Starting position for pagination

Default 0
order_directionstringnon-empty

Sort direction ('asc' or 'desc')

Default "desc"
querystringnon-empty

Search term to filter prompts by name or content

sort_bystringnon-empty

Field to sort results by

stylestringnon-empty

Filter by prompt style

tenantstringnon-empty

Filter by tenant/organization

tonestringnon-empty

Filter by prompt tone

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/prompts/?alphabetical=false&category=string&filter_facet=true&language=string&limit=10&mentor=string&offset=0&order_direction=desc&query=string&sort_by=string&style=string&tenant=string&tone=string'

Responses

Bodyapplication/json
resultsArray of objects(Prompt)required

List of prompts matching the search criteria

results[].​idintegerread-onlyrequired
results[].​mentorstring(uuid)
results[].​tonestring or null
results[].​stylestring
results[].​languagestring
results[].​tagsArray of integers
results[].​is_systemboolean
Default true
results[].​metadataany
results[].​categorystring
results[].​promptstringrequired
results[].​titlestring or null<= 255 characters
results[].​descriptionstring or null
results[].​prompt_visibility(PromptVisibilityEnum (string or null)) or (BlankEnum (any or null)) or (NullEnum (any or null))
One of:
  • viewable_by_tenant_admins - Viewable By Tenant Admins
  • viewable_by_tenant_students - Viewable By Tenant Students
  • viewable_by_anyone - Viewable By Anyone
string or null(PromptVisibilityEnum)
  • viewable_by_tenant_admins - Viewable By Tenant Admins
  • viewable_by_tenant_students - Viewable By Tenant Students
  • viewable_by_anyone - Viewable By Anyone
Enum"viewable_by_tenant_admins""viewable_by_tenant_students""viewable_by_anyone"
results[].​created_atstring(date-time)read-onlyrequired
results[].​updated_atstring(date-time)read-onlyrequired
results[].​created_bystring or null<= 255 characters
results[].​platformintegerrequired
countintegerrequired

Total number of prompts matching the search criteria

nextstring or null(uri)required

URL for the next page of results

previousstring or null(uri)required

URL for the previous page of results

current_pageintegerrequired

Current page number

num_pagesintegerrequired

Total number of pages

facetsobject

Facet information for filtering

Response
application/json
{ "results": [ {} ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "num_pages": 0, "facets": { "property1": {}, "property2": {} } }

search_users_orgs_users_retrieve

Request

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:

{
    "results": [
        {
            "id": 123,
            "username": "john.doe",
            "email": "john.doe@example.com",
            "first_name": "John",
            "last_name": "Doe",
            "full_name": "John Doe",
            "profile_image": "https://example.com/profiles/john-doe.jpg",
            "role": "Student",
            "departments": ["Computer Science", "Data Science"],
            "status": "active",
            "joined_date": "2023-01-15T12:00:00Z",
            "last_login": "2023-06-20T15:30:00Z",
            "metadata": {
                "location": "New York",
                "title": "Software Engineer",
                "bio": "Experienced software engineer with a passion for education"
            }
        },
        // Additional user objects...
    ],
    "count": 50,
    "next": "https://api.example.com/api/search/users/example-org/admin/?limit=10&offset=10",
    "previous": null,
    "current_page": 1,
    "total_pages": 5,
    "facets": {
        "role": [
            {"key": "Student", "doc_count": 30},
            {"key": "Instructor", "doc_count": 15},
            {"key": "Admin", "doc_count": 5}
        ],
        "department": [
            {"key": "Computer Science", "doc_count": 20},
            {"key": "Data Science", "doc_count": 15},
            {"key": "Business", "doc_count": 10},
            {"key": "Engineering", "doc_count": 5}
        ],
        "status": [
            {"key": "active", "doc_count": 45},
            {"key": "inactive", "doc_count": 5}
        ]
    }
}

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
Security
PlatformApiKeyAuthentication
Path
orgstringrequired
usernamestringrequired
Query
departmentArray of strings

Filter by department names

education__degreestringnon-empty

Filter by degree

education__field_of_studystringnon-empty

Filter by field of study

education__institutionstringnon-empty

Filter by institution

include_membership_databoolean

Include user group membership data in results

Default false
limitinteger

Number of results per page

Default 10
offsetinteger

Starting position for pagination

Default 0
qstringnon-empty

Search term to filter users by name, email, or other attributes

user_resume__companystringnon-empty

Filter by company

user_resume__industrystringnon-empty

Filter by industry

user_resume__job_titlestringnon-empty

Filter by job title

user_resume__locationstringnon-empty

Filter by location

user_resume__skillsstringnon-empty

Filter by skills

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/search/users/orgs/{org}/users/{username}/?department=string&education__degree=string&education__field_of_study=string&education__institution=string&include_membership_data=false&limit=10&offset=0&q=string&user_resume__company=string&user_resume__industry=string&user_resume__job_title=string&user_resume__location=string&user_resume__skills=string' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
resultsArray of objectsrequired

List of search results (can include user_resume, education, institution, etc.)

results[].​property name*anyadditional property
countintegerrequired

Total number of results

nextstring or null(uri)required

URL for the next page of results

previousstring or null(uri)required

URL for the previous page of results

current_pageintegerrequired

Current page number

total_pagesintegerrequired

Total number of pages

Response
application/json
{ "results": [ {} ], "count": 0, "next": "http://example.com", "previous": "http://example.com", "current_page": 0, "total_pages": 0 }

skills

Operations