Skip to content

ibl-data-manager (4.84.1-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

analytics

Operations

Get Content Analytics

Request

Retrieve aggregated analytics for catalog content (courses, programs, pathways, skills).

Returns both summary statistics and paginated list of content items with individual analytics. When a platform_key is provided, results are filtered to show only content consumed by learners associated with that platform.

Metrics supported:

  • course or courses: Course analytics with time spent
  • program or programs: Program analytics
  • pathway or pathways: Pathway analytics
  • skill or skills: Skill analytics

Platform Filtering:

  • Without platform_key: Shows global analytics across all platforms
  • With platform_key: Shows analytics filtered by platform learners only

Time Spent Analytics:

  • Platform-level: Total time spent across all content and average per learner
  • Course-level: Total time spent per course and average per enrolled learner
  • Time values are provided in seconds for precision
  • Overtime: Time series data showing platform time spent over last 7 days (courses only, and include_overtime=true)

External Content:

  • Content not owned by the requesting platform but used by its learners is marked as "external"
  • External content has limited metadata exposure for privacy
Security
PlatformApiKeyAuthentication
Query
date_filterstringnon-empty
  • today - Today only
  • 7d - Last 7 days
  • 30d - Last 30 days
  • 90d - Last 90 days
  • all_time - All time
  • custom - Custom date range
Default "today"
Enum"today""7d""30d""90d""all_time""custom"
end_datestring(date)
granularitystringnon-empty
  • day - day
  • hour - hour
  • week - week
  • month - month
Default "hour"
Enum"day""hour""week""month"
include_overtimeboolean

Include time spent over time data

Default false
limitinteger[ 1 .. 100 ]

Number of items per page (max 100)

Default 20
mentor_unique_idstring(uuid)
metricstringnon-emptyrequired

The type of content to retrieve (course, program, pathway, skill)

  • course - course
  • courses - courses
  • program - program
  • programs - programs
  • pathway - pathway
  • pathways - pathways
  • skill - skill
  • skills - skills
Enum"course""courses""program""programs""pathway""pathways""skill""skills"
pageinteger>= 1

Page number for pagination

Default 1
platform_keystring or null

Optional platform key to filter results by platform

start_datestring(date)
curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/analytics/content/?date_filter=today&end_date=2019-08-24&granularity=day&include_overtime=false&limit=20&mentor_unique_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&metric=course&page=1&platform_key=string&start_date=2019-08-24' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
metricstringrequired

The metric type (course, program, pathway, skill)

summaryobjectrequired
summary.​totalsobject(ContentTotals)required

Serializer for content summary totals.

summary.​totals.​total_learnersintegerrequired

Total number of learners

summary.​totals.​total_enrollmentsintegerrequired

Total number of enrollments

summary.​totals.​total_time_spentinteger

Total time spent in seconds (courses only)

summary.​totals.​coursesinteger

Total number of courses

summary.​totals.​active_coursesinteger

Number of active courses

summary.​totals.​platform_coursesinteger

Number of platform-owned courses

summary.​totals.​external_coursesinteger

Number of external courses

summary.​totals.​programsinteger

Total number of programs

summary.​totals.​active_programsinteger

Number of active programs

summary.​totals.​platform_programsinteger

Number of platform-owned programs

summary.​totals.​external_programsinteger

Number of external programs

summary.​totals.​pathwaysinteger

Total number of pathways

summary.​totals.​active_pathwaysinteger

Number of active pathways

summary.​totals.​platform_pathwaysinteger

Number of platform-owned pathways

summary.​totals.​external_pathwaysinteger

Number of external pathways

summary.​totals.​skillsinteger

Total number of skills

summary.​totals.​active_skillsinteger

Number of active skills

summary.​totals.​platform_skillsinteger

Number of platform-owned skills

summary.​totals.​external_skillsinteger

Number of external skills

summary.​totals.​associated_coursesinteger

Number of courses associated with skills

summary.​totals.​learners_with_skillsinteger

Number of learners with skills

summary.​averagesobject(ContentAverages)required

Serializer for content summary averages.

summary.​averages.​completion_ratenumber(double)

Average completion rate percentage

summary.​averages.​average_ratingnumber(double)

Average rating

summary.​averages.​enrollments_per_coursenumber(double)

Average enrollments per course

summary.​averages.​enrollments_per_programnumber(double)

Average enrollments per program

summary.​averages.​enrollments_per_pathwaynumber(double)

Average enrollments per pathway

summary.​averages.​courses_per_skillnumber(double)

Average courses per skill

summary.​averages.​time_per_learnernumber(double)

Average time spent per learner in seconds (courses only)

summary.​overtimeArray of objects(OvertimeDataPoint)

Time spent over time data (courses only, when include_overtime=true)

paginationobjectrequired
pagination.​countintegerrequired

Total number of items

pagination.​nextstring or null

URL for next page

pagination.​previousstring or null

URL for previous page

pagination.​current_pageintegerrequired

Current page number

pagination.​total_pagesintegerrequired

Total number of pages

resultsArray of objects(ContentItem)required

List of content items

results[].​idstringrequired

Content identifier

results[].​namestringrequired

Content name

results[].​slugstringrequired

Content slug

results[].​platformstring or nullrequired

Platform key

results[].​externalbooleanrequired

Whether content is external to the platform

results[].​analyticsobject(ContentAnalytics)required

Serializer for individual content item analytics.

results[].​analytics.​enrollmentsintegerrequired

Total enrollments for this item

results[].​analytics.​active_enrollmentsintegerrequired

Active enrollments for this item

results[].​analytics.​completion_ratenumber(double)required

Completion rate percentage

results[].​analytics.​avg_ratingnumber or null(double)

Average rating

results[].​analytics.​rating_countinteger

Number of ratings

results[].​analytics.​associated_coursesinteger

Associated courses (for skills)

results[].​analytics.​learners_countinteger

Number of learners (for skills)

results[].​analytics.​total_time_spentinteger

Total time spent on this content in seconds (courses only)

results[].​analytics.​avg_time_per_learnernumber(double)

Average time spent per learner in seconds (courses only)

results[].​instructorstring or null

Instructor name

results[].​categorystring or null

Content category

results[].​durationstring or null

Content duration

results[].​enabledboolean

Whether content is enabled

results[].​createdstring or null

Creation date

results[].​updatedstring or null

Last update date

results[].​metadataany
Response
application/json
{ "metric": "string", "summary": { "totals": {}, "averages": {}, "overtime": [] }, "pagination": { "count": 0, "next": "string", "previous": "string", "current_page": 0, "total_pages": 0 }, "results": [ {} ] }

Get Content Details

Request

Retrieve detailed analytics for a specific content item including summary statistics, learner-level data, and optional time series information.

Security
PlatformApiKeyAuthentication
Path
content_idstringrequired
Query
date_filterstringnon-empty
  • today - Today only
  • 7d - Last 7 days
  • 30d - Last 30 days
  • 90d - Last 90 days
  • all_time - All time
  • custom - Custom date range
Default "today"
Enum"today""7d""30d""90d""all_time""custom"
end_datestring(date)
limitinteger[ 1 .. 30 ]

Number of learner records per page

Default 10
mentor_unique_idstring(uuid)
metricstringnon-emptyrequired

Content type to fetch (course, program, pathway, skill)

  • course - course
  • courses - courses
  • program - program
  • programs - programs
  • pathway - pathway
  • pathways - pathways
  • skill - skill
  • skills - skills
Enum"course""courses""program""programs""pathway""pathways""skill""skills"
pageinteger>= 1
Default 1
platform_keystringnon-empty
searchstring
start_datestring(date)
time_metricstring or null

Optional time series metric (enrollments, completions, ratings, time_spent)

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/analytics/content/details/{content_id}/?date_filter=today&end_date=2019-08-24&limit=10&mentor_unique_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&metric=course&page=1&platform_key=string&search=string&start_date=2019-08-24&time_metric=string' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
content_infoobject(ContentDetailsContentInfo)required

Serializer for the content information block.

content_info.​idstringrequired

Identifier for the content item

content_info.​namestring or null
content_info.​typestringrequired

Content type (course, program, pathway, skill)

content_info.​slugstring or null
content_info.​platformstring or null
content_info.​externalbooleanrequired

Whether the content is external to the platform

content_info.​metadataobject

Metadata associated with the content item

summaryobject(ContentDetailsSummary)required

Serializer for summary data in the content details endpoint.

summary.​totalsobjectrequired

Total counts related to the content item

summary.​totals.​property name*number(double)additional property
summary.​averagesobjectrequired

Average values related to the content item

summary.​averages.​property name*number or null(double)additional property
summary.​time_seriesobject
paginationobject(ContentDetailsPagination)required

Serializer for pagination information in content details response.

pagination.​countintegerrequired

Total learner records

pagination.​nextstring or null

Relative URL for the next page

pagination.​previousstring or null

Relative URL for the previous page

pagination.​current_pageintegerrequired

Current page number

pagination.​total_pagesintegerrequired

Total number of pages

learnersArray of objects(ContentDetailsLearner)required
learners[].​user_idintegerrequired

Learner identifier

learners[].​usernamestring or nullrequired

Learner username

learners[].​emailstring or null(email)required

Learner email

learners[].​namestring or nullrequired

Learner display name

learners[].​enrollment_datestring or null(date-time)required

Date the learner enrolled in the content

learners[].​completion_statusstringrequired

Completion status for the learner

learners[].​completion_percentagenumber or null(double)required

Learner completion percentage

learners[].​last_activitystring or null(date-time)required

Last activity timestamp for the learner

learners[].​ratingnumber or null(double)required

Learner rating for the content, if available

learners[].​reviewstring or nullrequired

Learner review content, if available

learners[].​detailsobject

Additional learner-specific metadata

Response
application/json
{ "content_info": { "id": "string", "name": "string", "type": "string", "slug": "string", "platform": "string", "external": true, "metadata": {} }, "summary": { "totals": {}, "averages": {}, "time_series": {} }, "pagination": { "count": 0, "next": "string", "previous": "string", "current_page": 0, "total_pages": 0 }, "learners": [ {} ] }

analytics_financial_retrieve

Request

Financial Analytics API - Get comprehensive cost metrics with comparison analysis.

This endpoint provides period-based cost analysis (not cumulative) with support for:

  • Multiple time granularities and metrics
  • Cross-dimensional filtering
  • Percentage change vs comparison periods
  • Forward-filled time series

Examples:

Basic Weekly Costs:

GET /api/analytics/financial/?metric=weekly_costs&comparison_days=10

Platform & Mentor Filtered:

# Get total costs for a specific platform and mentor
GET /api/analytics/financial/?metric=total_costs&platform_key=web-app&mentor_unique_id=mentor-123&comparison_days=14

Monthly Costs by Provider:

GET /api/analytics/financial/?metric=monthly_costs&provider=openai&granularity=month&comparison_days=30

Daily Costs for Specific User:

GET /api/analytics/financial/?metric=total_costs&username=user-456&granularity=day&start_date=2025-01-15&end_date=2025-01-21&comparison_days=7

Response Structure:

{
    "metric": "weekly_costs",
    "value": 12.47,
    "percentage_change": 8.5,
    "overtime": [
        {"date": "2025-01-06", "value": 2.89},
        {"date": "2025-01-13", "value": 3.12}
    ],
    "period_info": {
        "start_date": "2025-01-01",
        "end_date": "2025-01-31",
        "period_days": 31
    },
    "comparison_info": {
        "previous_period_value": 11.50,
        ...
    }
}
Security
PlatformApiKeyAuthentication
Query
comparison_daysinteger>= 1

Number of days for comparison period to calculate percentage change (e.g., 10 for 10-day comparison)

date_filterstringnon-empty
  • today - Today only
  • 7d - Last 7 days
  • 30d - Last 30 days
  • 90d - Last 90 days
  • all_time - All time
  • custom - Custom date range
Default "today"
Enum"today""7d""30d""90d""all_time""custom"
end_datestring(date)
fill_methodstringnon-empty

Method for filling missing time periods in overtime data

  • zero - Fill missing periods with zero
  • previous - Fill missing periods with previous value
Default "zero"
Enum"zero""previous"
granularitystringnon-empty

Time granularity for overtime series data

  • day - Daily data points
  • week - Weekly data points
  • month - Monthly data points
Default "day"
Enum"day""week""month"
llm_modelstringnon-empty

Filter by specific LLM model (e.g., gpt-4o, claude-3-5-sonnet)

mentor_unique_idstring(uuid)
metricstringnon-emptyrequired

Type of financial metric to retrieve

  • total_costs - Total costs for selected timeframe
  • weekly_costs - Costs for current/selected week
  • monthly_costs - Costs for current/selected month
Enum"total_costs""weekly_costs""monthly_costs"
platform_keystringnon-empty
providerstringnon-empty

Filter by AI provider

  • openai - OpenAI
  • anthropic - Anthropic
  • azure - Azure
  • google - Google
  • meta - Meta
  • other - Other
Enum"openai""anthropic""azure""google""meta""other"
show_overtimeboolean

Whether to include overtime series data in response

Default true
start_datestring(date)
usernamestringnon-empty

Filter by specific username - returns costs for this user only

curl -i -X GET \
  'https://docs.ibl.ai/_mock/apis/ibl/api/analytics/financial/?comparison_days=1&date_filter=today&end_date=2019-08-24&fill_method=zero&granularity=day&llm_model=string&mentor_unique_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&metric=total_costs&platform_key=string&provider=openai&show_overtime=true&start_date=2019-08-24&username=string' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Successful financial metrics response with period-based cost data

Bodyapplication/json
metricstringrequired

The metric type that was requested

filtersobjectrequired
filters.​start_datestring
filters.​end_datestring
filters.​granularitystringrequired
filters.​comparison_daysinteger
filters.​platform_keystring
filters.​mentor_unique_idstring
filters.​usernamestring
filters.​providerstring
filters.​llm_modelstring
filters.​all_timeboolean
valuestring(decimal)^-?\d{0,15}(?:\.\d{0,5})?$required

Primary metric value (cost in USD)

percentage_changenumber or null(double)required

Percentage change vs comparison period (null if no comparison)

overtimeArray of objects(OvertimeData)required

Time series data for overtime visualization

overtime[].​datestringrequired

Date in YYYY-MM-DD format

overtime[].​valuestring(decimal)^-?\d{0,15}(?:\.\d{0,5})?$required

Cost value for this time period

period_infoobjectrequired
period_info.​start_datestring

Start date of analysis period

period_info.​end_datestring

End date of analysis period

period_info.​period_daysinteger

Number of days in period

period_info.​range_typestring

Type of date range (custom, default, all_time, etc.)

comparison_infoobjectrequired
comparison_info.​previous_period_countinteger

Number of days in comparison period

comparison_info.​previous_period_valuestring(decimal)^-?\d{0,15}(?:\.\d{0,5})?$

Cost value for comparison period

comparison_info.​comparison_startstring

Start date of comparison period

comparison_info.​comparison_endstring

End date of comparison period

comparison_info.​comparison_daysinteger

Number of comparison days

comparison_info.​recent_period_valuestring(decimal)^-?\d{0,15}(?:\.\d{0,5})?$

Cost value for current period

Response
application/json

Response for total_costs metric.

{ "metric": "total_costs", "filters": { "start_date": "2025-01-01", "end_date": "2025-01-31", "granularity": "day", "comparison_days": 10 }, "value": 45.789, "percentage_change": 15.2, "overtime": [ {}, {}, {}, {}, {} ], "period_info": { "start_date": "2025-01-01", "end_date": "2025-01-31", "period_days": 31, "range_type": "custom" }, "comparison_info": { "previous_period_count": 10, "previous_period_value": 39.654, "comparison_start": "2024-12-22", "comparison_end": "2024-12-31", "comparison_days": 10, "recent_period_value": 45.789 } }

career

Operations

catalog

Operations

core

Operations

credentials

Operations

custom-domains

Operations

features

Operations

media

Operations

notifications

Operations

scim

Operations

commerce

Operations

recommendations

Operations

reports

Operations

skills

Operations