@iblai/iblai-api 4.45.1-core → 4.46.0-core

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Serializer for pagination information in content details response.
3
+ */
4
+ export type ContentDetailsPagination = {
5
+ /**
6
+ * Total learner records
7
+ */
8
+ count: number;
9
+ /**
10
+ * Relative URL for the next page
11
+ */
12
+ next?: string | null;
13
+ /**
14
+ * Relative URL for the previous page
15
+ */
16
+ previous?: string | null;
17
+ /**
18
+ * Current page number
19
+ */
20
+ current_page: number;
21
+ /**
22
+ * Total number of pages
23
+ */
24
+ total_pages: number;
25
+ };
@@ -0,0 +1,13 @@
1
+ import type { ContentDetailsContentInfo } from './ContentDetailsContentInfo';
2
+ import type { ContentDetailsLearner } from './ContentDetailsLearner';
3
+ import type { ContentDetailsPagination } from './ContentDetailsPagination';
4
+ import type { ContentDetailsSummary } from './ContentDetailsSummary';
5
+ /**
6
+ * Serializer for the content details API response.
7
+ */
8
+ export type ContentDetailsResponse = {
9
+ content_info: ContentDetailsContentInfo;
10
+ summary: ContentDetailsSummary;
11
+ pagination: ContentDetailsPagination;
12
+ learners: Array<ContentDetailsLearner>;
13
+ };
@@ -0,0 +1,18 @@
1
+ import type { ContentDetailsTimeSeries } from './ContentDetailsTimeSeries';
2
+ /**
3
+ * Serializer for summary data in the content details endpoint.
4
+ */
5
+ export type ContentDetailsSummary = {
6
+ /**
7
+ * Total counts related to the content item
8
+ */
9
+ totals: Record<string, number>;
10
+ /**
11
+ * Average values related to the content item
12
+ */
13
+ averages: Record<string, number | null>;
14
+ /**
15
+ * Optional time series data for the requested metric
16
+ */
17
+ time_series?: ContentDetailsTimeSeries;
18
+ };
@@ -0,0 +1,15 @@
1
+ import type { ContentDetailsTimeSeriesPoint } from './ContentDetailsTimeSeriesPoint';
2
+ /**
3
+ * Serializer describing the time series block.
4
+ */
5
+ export type ContentDetailsTimeSeries = {
6
+ /**
7
+ * Metric represented in the time series
8
+ */
9
+ metric: string;
10
+ /**
11
+ * Aggregation interval (e.g., month)
12
+ */
13
+ interval: string;
14
+ data: Array<ContentDetailsTimeSeriesPoint>;
15
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Serializer for individual time series points in content details response.
3
+ */
4
+ export type ContentDetailsTimeSeriesPoint = {
5
+ /**
6
+ * ISO8601 timestamp representing the aggregated period
7
+ */
8
+ period: string;
9
+ /**
10
+ * Value for the requested metric during the period
11
+ */
12
+ value: number;
13
+ /**
14
+ * Average value for the period (used for ratings)
15
+ */
16
+ average?: number | null;
17
+ };
@@ -4,6 +4,7 @@ import type { ActivityAPI } from '../models/ActivityAPI';
4
4
  import type { Average } from '../models/Average';
5
5
  import type { AverageOvertime } from '../models/AverageOvertime';
6
6
  import type { AvgCourseGradeWithCutoff } from '../models/AvgCourseGradeWithCutoff';
7
+ import type { ContentDetailsResponse } from '../models/ContentDetailsResponse';
7
8
  import type { ContentResponse } from '../models/ContentResponse';
8
9
  import type { Count } from '../models/Count';
9
10
  import type { CourseCompletionPerCourse } from '../models/CourseCompletionPerCourse';
@@ -99,6 +100,50 @@ export declare class AiAnalyticsService {
99
100
  */
100
101
  platformKey?: string | null;
101
102
  }): CancelablePromise<ContentResponse>;
103
+ /**
104
+ * Get Content Details
105
+ * Retrieve detailed analytics for a specific content item including summary statistics, learner-level data, and optional time series information.
106
+ * @returns ContentDetailsResponse
107
+ * @throws ApiError
108
+ */
109
+ static getContentDetails({ contentId, metric, dateFilter, endDate, limit, page, platformKey, search, startDate, timeMetric, }: {
110
+ contentId: string;
111
+ /**
112
+ * Content type to fetch (course, program, pathway, skill)
113
+ *
114
+ * * `course` - course
115
+ * * `courses` - courses
116
+ * * `program` - program
117
+ * * `programs` - programs
118
+ * * `pathway` - pathway
119
+ * * `pathways` - pathways
120
+ * * `skill` - skill
121
+ * * `skills` - skills
122
+ */
123
+ metric: 'course' | 'courses' | 'program' | 'programs' | 'pathway' | 'pathways' | 'skill' | 'skills';
124
+ /**
125
+ * * `today` - Today only
126
+ * * `7d` - Last 7 days
127
+ * * `30d` - Last 30 days
128
+ * * `90d` - Last 90 days
129
+ * * `all_time` - All time
130
+ * * `custom` - Custom date range
131
+ */
132
+ dateFilter?: 'today' | '7d' | '30d' | '90d' | 'all_time' | 'custom';
133
+ endDate?: string;
134
+ /**
135
+ * Number of learner records per page
136
+ */
137
+ limit?: number;
138
+ page?: number;
139
+ platformKey?: string;
140
+ search?: string;
141
+ startDate?: string;
142
+ /**
143
+ * Optional time series metric (enrollments, completions, ratings)
144
+ */
145
+ timeMetric?: string | null;
146
+ }): CancelablePromise<ContentDetailsResponse>;
102
147
  /**
103
148
  *
104
149
  * Retrieve a holistic snapshot of a learner across catalog enrollments, mentor
@@ -1,3 +1,4 @@
1
+ import type { ContentDetailsResponse } from '../models/ContentDetailsResponse';
1
2
  import type { ContentResponse } from '../models/ContentResponse';
2
3
  import type { LearnerAnalyticsResponse } from '../models/LearnerAnalyticsResponse';
3
4
  import type { CancelablePromise } from '../core/CancelablePromise';
@@ -55,6 +56,50 @@ export declare class AnalyticsService {
55
56
  */
56
57
  platformKey?: string | null;
57
58
  }): CancelablePromise<ContentResponse>;
59
+ /**
60
+ * Get Content Details
61
+ * Retrieve detailed analytics for a specific content item including summary statistics, learner-level data, and optional time series information.
62
+ * @returns ContentDetailsResponse
63
+ * @throws ApiError
64
+ */
65
+ static getContentDetails({ contentId, metric, dateFilter, endDate, limit, page, platformKey, search, startDate, timeMetric, }: {
66
+ contentId: string;
67
+ /**
68
+ * Content type to fetch (course, program, pathway, skill)
69
+ *
70
+ * * `course` - course
71
+ * * `courses` - courses
72
+ * * `program` - program
73
+ * * `programs` - programs
74
+ * * `pathway` - pathway
75
+ * * `pathways` - pathways
76
+ * * `skill` - skill
77
+ * * `skills` - skills
78
+ */
79
+ metric: 'course' | 'courses' | 'program' | 'programs' | 'pathway' | 'pathways' | 'skill' | 'skills';
80
+ /**
81
+ * * `today` - Today only
82
+ * * `7d` - Last 7 days
83
+ * * `30d` - Last 30 days
84
+ * * `90d` - Last 90 days
85
+ * * `all_time` - All time
86
+ * * `custom` - Custom date range
87
+ */
88
+ dateFilter?: 'today' | '7d' | '30d' | '90d' | 'all_time' | 'custom';
89
+ endDate?: string;
90
+ /**
91
+ * Number of learner records per page
92
+ */
93
+ limit?: number;
94
+ page?: number;
95
+ platformKey?: string;
96
+ search?: string;
97
+ startDate?: string;
98
+ /**
99
+ * Optional time series metric (enrollments, completions, ratings)
100
+ */
101
+ timeMetric?: string | null;
102
+ }): CancelablePromise<ContentDetailsResponse>;
58
103
  /**
59
104
  * Unified API endpoint for learner analytics.
60
105
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iblai/iblai-api",
3
- "version": "4.45.1-core",
3
+ "version": "4.46.0-core",
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.esm.js",
6
6
  "type": "module",
package/sdk_schema.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ibl-data-manager
4
- version: 4.45.1-core
4
+ version: 4.46.0-core
5
5
  description: API for iblai
6
6
  paths:
7
7
  /api/analytics/content/:
@@ -100,6 +100,133 @@ paths:
100
100
  schema:
101
101
  description: Internal server error
102
102
  description: ''
103
+ /api/analytics/content/details/{content_id}/:
104
+ get:
105
+ operationId: get_content_details
106
+ description: Retrieve detailed analytics for a specific content item including
107
+ summary statistics, learner-level data, and optional time series information.
108
+ summary: Get Content Details
109
+ parameters:
110
+ - in: path
111
+ name: content_id
112
+ schema:
113
+ type: string
114
+ required: true
115
+ - in: query
116
+ name: date_filter
117
+ schema:
118
+ enum:
119
+ - today
120
+ - 7d
121
+ - 30d
122
+ - 90d
123
+ - all_time
124
+ - custom
125
+ type: string
126
+ default: today
127
+ minLength: 1
128
+ description: |-
129
+ * `today` - Today only
130
+ * `7d` - Last 7 days
131
+ * `30d` - Last 30 days
132
+ * `90d` - Last 90 days
133
+ * `all_time` - All time
134
+ * `custom` - Custom date range
135
+ - in: query
136
+ name: end_date
137
+ schema:
138
+ type: string
139
+ format: date
140
+ - in: query
141
+ name: limit
142
+ schema:
143
+ type: integer
144
+ maximum: 30
145
+ minimum: 1
146
+ default: 10
147
+ description: Number of learner records per page
148
+ - in: query
149
+ name: metric
150
+ schema:
151
+ enum:
152
+ - course
153
+ - courses
154
+ - program
155
+ - programs
156
+ - pathway
157
+ - pathways
158
+ - skill
159
+ - skills
160
+ type: string
161
+ minLength: 1
162
+ description: |-
163
+ Content type to fetch (course, program, pathway, skill)
164
+
165
+ * `course` - course
166
+ * `courses` - courses
167
+ * `program` - program
168
+ * `programs` - programs
169
+ * `pathway` - pathway
170
+ * `pathways` - pathways
171
+ * `skill` - skill
172
+ * `skills` - skills
173
+ required: true
174
+ - in: query
175
+ name: page
176
+ schema:
177
+ type: integer
178
+ minimum: 1
179
+ default: 1
180
+ - in: query
181
+ name: platform_key
182
+ schema:
183
+ type: string
184
+ minLength: 1
185
+ - in: query
186
+ name: search
187
+ schema:
188
+ type: string
189
+ - in: query
190
+ name: start_date
191
+ schema:
192
+ type: string
193
+ format: date
194
+ - in: query
195
+ name: time_metric
196
+ schema:
197
+ type: string
198
+ nullable: true
199
+ description: Optional time series metric (enrollments, completions, ratings)
200
+ tags:
201
+ - ai-analytics
202
+ - analytics
203
+ security:
204
+ - PlatformApiKeyAuthentication: []
205
+ responses:
206
+ '200':
207
+ content:
208
+ application/json:
209
+ schema:
210
+ $ref: '#/components/schemas/ContentDetailsResponse'
211
+ description: ''
212
+ '400':
213
+ content:
214
+ application/json:
215
+ schema:
216
+ description: Invalid request parameters
217
+ description: ''
218
+ '404':
219
+ content:
220
+ application/json:
221
+ schema:
222
+ description: Content not found or page out of range
223
+ description: ''
224
+ '500':
225
+ content:
226
+ application/json:
227
+ schema:
228
+ description: Internal server error
229
+ description: ''
103
230
  /api/analytics/learner/details:
104
231
  get:
105
232
  operationId: analytics_learner_details_retrieve
@@ -30966,6 +31093,204 @@ components:
30966
31093
  type: number
30967
31094
  format: double
30968
31095
  description: Average courses per skill
31096
+ ContentDetailsContentInfo:
31097
+ type: object
31098
+ description: Serializer for the content information block.
31099
+ properties:
31100
+ id:
31101
+ type: string
31102
+ description: Identifier for the content item
31103
+ name:
31104
+ type: string
31105
+ nullable: true
31106
+ type:
31107
+ type: string
31108
+ description: Content type (course, program, pathway, skill)
31109
+ slug:
31110
+ type: string
31111
+ nullable: true
31112
+ platform:
31113
+ type: string
31114
+ nullable: true
31115
+ external:
31116
+ type: boolean
31117
+ description: Whether the content is external to the platform
31118
+ metadata:
31119
+ type: object
31120
+ additionalProperties: {}
31121
+ description: Metadata associated with the content item
31122
+ required:
31123
+ - external
31124
+ - id
31125
+ - type
31126
+ ContentDetailsLearner:
31127
+ type: object
31128
+ description: Serializer for individual learner entries in content details.
31129
+ properties:
31130
+ user_id:
31131
+ type: integer
31132
+ description: Learner identifier
31133
+ username:
31134
+ type: string
31135
+ nullable: true
31136
+ description: Learner username
31137
+ email:
31138
+ type: string
31139
+ format: email
31140
+ nullable: true
31141
+ description: Learner email
31142
+ name:
31143
+ type: string
31144
+ nullable: true
31145
+ description: Learner display name
31146
+ enrollment_date:
31147
+ type: string
31148
+ format: date-time
31149
+ nullable: true
31150
+ description: Date the learner enrolled in the content
31151
+ completion_status:
31152
+ type: string
31153
+ description: Completion status for the learner
31154
+ completion_percentage:
31155
+ type: number
31156
+ format: double
31157
+ nullable: true
31158
+ description: Learner completion percentage
31159
+ last_activity:
31160
+ type: string
31161
+ format: date-time
31162
+ nullable: true
31163
+ description: Last activity timestamp for the learner
31164
+ rating:
31165
+ type: number
31166
+ format: double
31167
+ nullable: true
31168
+ description: Learner rating for the content, if available
31169
+ review:
31170
+ type: string
31171
+ nullable: true
31172
+ description: Learner review content, if available
31173
+ details:
31174
+ type: object
31175
+ additionalProperties: {}
31176
+ description: Additional learner-specific metadata
31177
+ required:
31178
+ - completion_percentage
31179
+ - completion_status
31180
+ - email
31181
+ - enrollment_date
31182
+ - last_activity
31183
+ - name
31184
+ - rating
31185
+ - review
31186
+ - user_id
31187
+ - username
31188
+ ContentDetailsPagination:
31189
+ type: object
31190
+ description: Serializer for pagination information in content details response.
31191
+ properties:
31192
+ count:
31193
+ type: integer
31194
+ description: Total learner records
31195
+ next:
31196
+ type: string
31197
+ nullable: true
31198
+ description: Relative URL for the next page
31199
+ previous:
31200
+ type: string
31201
+ nullable: true
31202
+ description: Relative URL for the previous page
31203
+ current_page:
31204
+ type: integer
31205
+ description: Current page number
31206
+ total_pages:
31207
+ type: integer
31208
+ description: Total number of pages
31209
+ required:
31210
+ - count
31211
+ - current_page
31212
+ - total_pages
31213
+ ContentDetailsResponse:
31214
+ type: object
31215
+ description: Serializer for the content details API response.
31216
+ properties:
31217
+ content_info:
31218
+ $ref: '#/components/schemas/ContentDetailsContentInfo'
31219
+ summary:
31220
+ $ref: '#/components/schemas/ContentDetailsSummary'
31221
+ pagination:
31222
+ $ref: '#/components/schemas/ContentDetailsPagination'
31223
+ learners:
31224
+ type: array
31225
+ items:
31226
+ $ref: '#/components/schemas/ContentDetailsLearner'
31227
+ required:
31228
+ - content_info
31229
+ - learners
31230
+ - pagination
31231
+ - summary
31232
+ ContentDetailsSummary:
31233
+ type: object
31234
+ description: Serializer for summary data in the content details endpoint.
31235
+ properties:
31236
+ totals:
31237
+ type: object
31238
+ additionalProperties:
31239
+ type: number
31240
+ format: double
31241
+ description: Total counts related to the content item
31242
+ averages:
31243
+ type: object
31244
+ additionalProperties:
31245
+ type: number
31246
+ format: double
31247
+ nullable: true
31248
+ description: Average values related to the content item
31249
+ time_series:
31250
+ allOf:
31251
+ - $ref: '#/components/schemas/ContentDetailsTimeSeries'
31252
+ description: Optional time series data for the requested metric
31253
+ required:
31254
+ - averages
31255
+ - totals
31256
+ ContentDetailsTimeSeries:
31257
+ type: object
31258
+ description: Serializer describing the time series block.
31259
+ properties:
31260
+ metric:
31261
+ type: string
31262
+ description: Metric represented in the time series
31263
+ interval:
31264
+ type: string
31265
+ description: Aggregation interval (e.g., month)
31266
+ data:
31267
+ type: array
31268
+ items:
31269
+ $ref: '#/components/schemas/ContentDetailsTimeSeriesPoint'
31270
+ required:
31271
+ - data
31272
+ - interval
31273
+ - metric
31274
+ ContentDetailsTimeSeriesPoint:
31275
+ type: object
31276
+ description: Serializer for individual time series points in content details
31277
+ response.
31278
+ properties:
31279
+ period:
31280
+ type: string
31281
+ description: ISO8601 timestamp representing the aggregated period
31282
+ value:
31283
+ type: number
31284
+ format: double
31285
+ description: Value for the requested metric during the period
31286
+ average:
31287
+ type: number
31288
+ format: double
31289
+ nullable: true
31290
+ description: Average value for the period (used for ratings)
31291
+ required:
31292
+ - period
31293
+ - value
30969
31294
  ContentItem:
30970
31295
  type: object
30971
31296
  description: Serializer for individual content items.
@@ -21,7 +21,7 @@ export type OpenAPIConfig = {
21
21
 
22
22
  export const OpenAPI: OpenAPIConfig = {
23
23
  BASE: 'https://base.manager.iblai.app',
24
- VERSION: '4.45.1-core',
24
+ VERSION: '4.46.0-core',
25
25
  WITH_CREDENTIALS: false,
26
26
  CREDENTIALS: 'include',
27
27
  TOKEN: undefined,
package/src/index.ts CHANGED
@@ -57,6 +57,13 @@ export type { Company } from './models/Company';
57
57
  export type { ConfigurationItem } from './models/ConfigurationItem';
58
58
  export type { ContentAnalytics } from './models/ContentAnalytics';
59
59
  export type { ContentAverages } from './models/ContentAverages';
60
+ export type { ContentDetailsContentInfo } from './models/ContentDetailsContentInfo';
61
+ export type { ContentDetailsLearner } from './models/ContentDetailsLearner';
62
+ export type { ContentDetailsPagination } from './models/ContentDetailsPagination';
63
+ export type { ContentDetailsResponse } from './models/ContentDetailsResponse';
64
+ export type { ContentDetailsSummary } from './models/ContentDetailsSummary';
65
+ export type { ContentDetailsTimeSeries } from './models/ContentDetailsTimeSeries';
66
+ export type { ContentDetailsTimeSeriesPoint } from './models/ContentDetailsTimeSeriesPoint';
60
67
  export type { ContentItem } from './models/ContentItem';
61
68
  export type { ContentPagination } from './models/ContentPagination';
62
69
  export type { ContentResponse } from './models/ContentResponse';
@@ -0,0 +1,29 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ /**
6
+ * Serializer for the content information block.
7
+ */
8
+ export type ContentDetailsContentInfo = {
9
+ /**
10
+ * Identifier for the content item
11
+ */
12
+ id: string;
13
+ name?: string | null;
14
+ /**
15
+ * Content type (course, program, pathway, skill)
16
+ */
17
+ type: string;
18
+ slug?: string | null;
19
+ platform?: string | null;
20
+ /**
21
+ * Whether the content is external to the platform
22
+ */
23
+ external: boolean;
24
+ /**
25
+ * Metadata associated with the content item
26
+ */
27
+ metadata?: Record<string, any>;
28
+ };
29
+
@@ -0,0 +1,54 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ /**
6
+ * Serializer for individual learner entries in content details.
7
+ */
8
+ export type ContentDetailsLearner = {
9
+ /**
10
+ * Learner identifier
11
+ */
12
+ user_id: number;
13
+ /**
14
+ * Learner username
15
+ */
16
+ username: string | null;
17
+ /**
18
+ * Learner email
19
+ */
20
+ email: string | null;
21
+ /**
22
+ * Learner display name
23
+ */
24
+ name: string | null;
25
+ /**
26
+ * Date the learner enrolled in the content
27
+ */
28
+ enrollment_date: string | null;
29
+ /**
30
+ * Completion status for the learner
31
+ */
32
+ completion_status: string;
33
+ /**
34
+ * Learner completion percentage
35
+ */
36
+ completion_percentage: number | null;
37
+ /**
38
+ * Last activity timestamp for the learner
39
+ */
40
+ last_activity: string | null;
41
+ /**
42
+ * Learner rating for the content, if available
43
+ */
44
+ rating: number | null;
45
+ /**
46
+ * Learner review content, if available
47
+ */
48
+ review: string | null;
49
+ /**
50
+ * Additional learner-specific metadata
51
+ */
52
+ details?: Record<string, any>;
53
+ };
54
+