openapi: 3.1.0 info: title: LinkedIn Compliance Events Access Control Learning Activity Reports API description: LinkedIn provides Compliance API Guides for monitoring, archiving, and management of communications for enterprises in regulated industries. The Compliance Events API allows applications to archive all LinkedIn activities from the past 30 days of a regulated, authenticated member. version: 1.0.0 contact: name: LinkedIn API Support url: https://docs.microsoft.com/en-us/linkedin/compliance/ servers: - url: https://api.linkedin.com description: LinkedIn Production API Server security: - OAuth2Auth: - r_compliance tags: - name: Learning Activity Reports description: APIs to retrieve learning activity reports including completions, views, and logins paths: /v2/learningActivityReports: get: tags: - Learning Activity Reports summary: LinkedIn Get Learning Activity Reports description: Retrieve LinkedIn Learning activity reports including course completions, seconds of content viewed, and learner logins. Data can be aggregated by account, group, individual, or content. operationId: getLearningActivityReports x-microcks-operation: dispatcher: FALLBACK dispatcherRules: '' parameters: - name: referer in: header required: false schema: type: string description: Referrer URN for the request example: urn:li:enterpriseAccount:999 - name: q in: query required: true schema: type: string enum: - criteria description: Query type example: criteria - name: count in: query required: false schema: type: integer minimum: 1 maximum: 100 default: 10 description: Number of results to return example: 1 - name: startedAt in: query required: true schema: type: integer format: int64 description: Start timestamp in milliseconds since epoch example: 1627267600000 - name: timeOffset.unit in: query required: true schema: type: string enum: - DAY - WEEK - MONTH description: Time offset unit example: DAY - name: timeOffset.duration in: query required: true schema: type: integer minimum: 1 description: Time offset duration example: 7 - name: aggregationCriteria.primary in: query required: true schema: type: string enum: - ACCOUNT - GROUP - INDIVIDUAL - CONTENT description: Primary aggregation criteria example: ACCOUNT - name: contentSource in: query required: false schema: type: string enum: - ALL_SOURCES - LINKEDIN_LEARNING - CUSTOM_CONTENT description: Source of learning content to include example: ALL_SOURCES - name: locale.language in: query required: false schema: type: string description: Locale language code example: en - name: start in: query required: false schema: type: integer default: 0 description: Starting index for pagination example: 0 responses: '200': description: Successfully retrieved learning activity reports content: application/json: schema: $ref: '#/components/schemas/LearningActivityReportResponse' examples: SuccessResponse: $ref: '#/components/examples/LearningActivityReportResponseExample' '400': description: Bad request - invalid parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestExample: value: status: 400 message: Invalid aggregation criteria code: INVALID_AGGREGATION_CRITERIA '401': description: Unauthorized - invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UnauthorizedExample: value: status: 401 message: Invalid access token code: UNAUTHORIZED '403': description: Forbidden - insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ForbiddenExample: value: status: 403 message: Access to LinkedIn Learning APIs requires Partner Program membership code: FORBIDDEN '429': description: Too many requests - rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: RateLimitExample: value: status: 429 message: Rate limit exceeded code: RATE_LIMIT_EXCEEDED components: examples: LearningActivityReportResponseExample: summary: Learning activity report aggregated by account value: elements: - latestDataAt: 1632207540000 activities: - engagementType: LOGINS engagementValue: 88 engagementMetricQualifier: UNIQUE firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: VIEWS engagementValue: 12 engagementMetricQualifier: UNIQUE firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: SECONDS_VIEWED engagementValue: 2505 engagementMetricQualifier: TOTAL assetType: VIDEO firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: VIEWS engagementValue: 0 engagementMetricQualifier: TOTAL assetType: ARTICLE firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: COMPLETIONS engagementValue: 0 engagementMetricQualifier: TOTAL assetType: ARTICLE firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: VIEWS engagementValue: 16 engagementMetricQualifier: TOTAL assetType: COURSE firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: COMPLETIONS engagementValue: 1 engagementMetricQualifier: TOTAL assetType: COURSE firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: VIEWS engagementValue: 2 engagementMetricQualifier: TOTAL assetType: LEARNING_PATH firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: COMPLETIONS engagementValue: 0 engagementMetricQualifier: TOTAL assetType: LEARNING_PATH firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: VIEWS engagementValue: 66 engagementMetricQualifier: TOTAL assetType: VIDEO firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 - engagementType: COMPLETIONS engagementValue: 22 engagementMetricQualifier: TOTAL assetType: VIDEO firstEngagedAt: 1627267600000 lastEngagedAt: 1627354000000 learnerDetails: entity: accountUrn: urn:li:enterpriseAccount:999 paging: total: 1 count: 1 start: 0 links: - rel: next href: /v2/learningActivityReports?aggregationCriteria.primary=ACCOUNT&count=1&q=criteria&start=1&startedAt=1627267600000&timeOffset.duration=7&timeOffset.unit=DAY type: application/json schemas: Paging: type: object properties: total: type: integer description: Total number of results example: 1 count: type: integer description: Number of results in this response example: 1 start: type: integer description: Starting index example: 0 links: type: array items: $ref: '#/components/schemas/PagingLink' LearningActivity: type: object properties: engagementType: type: string enum: - LOGINS - VIEWS - SECONDS_VIEWED - COMPLETIONS description: Type of engagement activity example: LOGINS engagementValue: type: integer description: Numeric value of the engagement example: 88 engagementMetricQualifier: type: string enum: - UNIQUE - TOTAL description: Whether the metric is unique or total count example: UNIQUE assetType: type: string enum: - VIDEO - ARTICLE - AUDIO - BOOK - LEARNING_COLLECTION - COURSE - DOCUMENT - EVENT - LEARNING_PATH description: Type of learning asset example: VIDEO firstEngagedAt: type: integer format: int64 description: Timestamp of first engagement example: 1627267600000 lastEngagedAt: type: integer format: int64 description: Timestamp of last engagement example: 1627354000000 required: - engagementType - engagementValue - engagementMetricQualifier PagingLink: type: object properties: rel: type: string example: next href: type: string example: /v2/learningActivityReports?aggregationCriteria.primary=ACCOUNT&count=1&q=criteria&start=1&startedAt=1627267600000&timeOffset.duration=7&timeOffset.unit=DAY type: type: string example: application/json LearningActivityReport: type: object properties: latestDataAt: type: integer format: int64 description: Timestamp of the latest data included in this report example: 1632207540000 activities: type: array items: $ref: '#/components/schemas/LearningActivity' learnerDetails: $ref: '#/components/schemas/LearnerDetails' ErrorResponse: type: object properties: status: type: integer description: HTTP status code example: 400 message: type: string description: Error message example: Invalid request parameters code: type: string description: Error code example: INVALID_PARAMS LearningActivityReportResponse: type: object properties: elements: type: array items: $ref: '#/components/schemas/LearningActivityReport' paging: $ref: '#/components/schemas/Paging' LearnerEntity: type: object properties: accountUrn: type: string description: URN of the enterprise account example: urn:li:enterpriseAccount:999 groupUrn: type: string description: URN of the learner group (if grouped by group) example: urn:li:learnerGroup:456 learnerUrn: type: string description: URN of the individual learner (if grouped by individual) example: urn:li:learner:789 contentUrn: type: string description: URN of the content (if grouped by content) example: urn:li:learningCourse:123 LearnerDetails: type: object properties: entity: $ref: '#/components/schemas/LearnerEntity' securitySchemes: OAuth2Auth: type: oauth2 flows: authorizationCode: authorizationUrl: https://www.linkedin.com/oauth/v2/authorization tokenUrl: https://www.linkedin.com/oauth/v2/accessToken scopes: r_compliance: Read compliance data