openapi: 3.1.0 info: title: Bulk Authentication Paths API description: '' version: 1.0.0 contact: {} servers: - url: https://app.360learning.com description: Production EU - url: https://app.us.360learning.com description: Production US tags: - name: Paths paths: /api/v2/paths/sessions: get: description: '> πŸ”‘ > > Required OAuth scope: `paths:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 path sessions. For more information, see the [Pagination guide](doc:pagination). Lists all path sessions in your platform. This endpoint does not return path session translations. To retrieve translations, use the [Retrieve a path session](/reference/v2pathsgetpathsessioncontroller_getpathsession) endpoint or the [List all sessions in a path](/reference/v2pathsgetpathsessionscontroller_getpathsessions) endpoint.' operationId: v2.paths.GetAllPathSessionsController_getAllPathSessions parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: createdAt required: false in: query style: deepObject explode: true description: 'Filter on **createdAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: modifiedAt required: false in: query style: deepObject explode: true description: 'Filter on **modifiedAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: startDate required: false in: query style: deepObject explode: true description: 'Filter on **startDate** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: endDate required: false in: query style: deepObject explode: true description: 'Filter on **endDate** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: sessionId required: false in: query style: deepObject explode: true description: 'Filter on **sessionId** property with LHS bracket notation. Expected value format is a valid ID (24 digits or letters).' schema: properties: eq: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values equal to the given one example: 507f1f77bcf86cd799439011 ne: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values not equal to the given one example: 507f1f77bcf86cd799439011 in: type: array description: Filter on values including the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 nin: type: array description: Filter on values excluding the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 - name: pathId required: false in: query style: deepObject explode: true description: 'Filter on **pathId** property with LHS bracket notation. Expected value format is a valid ID (24 digits or letters).' schema: properties: eq: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values equal to the given one example: 507f1f77bcf86cd799439011 ne: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values not equal to the given one example: 507f1f77bcf86cd799439011 in: type: array description: Filter on values including the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 nin: type: array description: Filter on values excluding the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 responses: '200': description: Returns one page of 500 path sessions. headers: Link: schema: type: string description: 'URL (between `<` `>`) to fetch the immediate next page of results. For more information, see our [Pagination guide](doc:pagination). ⚠️ Only included if there is another page of results.' example: ; rel="next" content: application/json: schema: type: array items: $ref: '#/components/schemas/PathSessionWithoutTranslationsDTO' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all sessions tags: - Paths /api/v2/paths/stats: get: description: '> πŸ”‘ > > Required OAuth scope: `pathStats:read`. > πŸ“– > > This endpoint is paginated with a page size of 2,000 path user statistics. For more information, see the [Pagination guide](doc:pagination). Lists all user statistics for paths in the platform.' operationId: v2.paths.GetPathStatsController_getPathStats parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: status required: false in: query style: deepObject explode: true description: 'Filter on **status** property with LHS bracket notation. Expected value format is a string (`archived`, `published`).' schema: properties: eq: type: string description: Filter on values equal to the given one example: archived enum: - archived - published - name: completedAt required: false in: query style: deepObject explode: true description: 'Filter on **completedAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: pathId required: false in: query style: deepObject explode: true description: 'Filter on **pathId** property with LHS bracket notation. Expected value format is a valid ID (24 digits or letters).' schema: properties: eq: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values equal to the given one example: 507f1f77bcf86cd799439011 ne: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values not equal to the given one example: 507f1f77bcf86cd799439011 in: type: array description: Filter on values including the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 nin: type: array description: Filter on values excluding the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 - name: userId required: false in: query style: deepObject explode: true description: 'Filter on **userId** property with LHS bracket notation. Expected value format is a valid ID (24 digits or letters).' schema: properties: eq: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values equal to the given one example: 507f1f77bcf86cd799439011 ne: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values not equal to the given one example: 507f1f77bcf86cd799439011 in: type: array description: Filter on values including the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 nin: type: array description: Filter on values excluding the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 responses: '200': description: Returns one page of 2000 path user statistics. headers: Link: schema: type: string description: 'URL (between `<` `>`) to fetch the immediate next page of results. For more information, see our [Pagination guide](doc:pagination). ⚠️ Only included if there is another page of results.' example: ; rel="next" content: application/json: schema: type: array items: $ref: '#/components/schemas/PathSessionUserStatDTO' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all user statistics for all paths tags: - Paths /api/v2/paths/add-tokens: post: description: '> πŸ”‘ > > Required OAuth scope: `tokens:write`. Add tokens to a specific group for a given path.' operationId: v2.paths.AddTokensController_addTokens parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddTokensBody' responses: '204': description: Add tokens. '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `groupId` does not correspond to any existing group. title: Group Not Found type: object properties: error: type: object properties: code: type: string enum: - groupNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given user does not correspond to any existing and non-deleted user. title: User Not Found type: object properties: error: type: object properties: code: type: string enum: - userNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Add tokens tags: - Paths /api/v2/paths/{pathId}/archive: put: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Archives or restores a path.' operationId: v2.paths.ArchiveOrUnarchivePathController_archiveOrUnarchivePath parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ArchivePathBody' responses: '200': description: Returns the updated path. '400': description: The given path has running sessions. content: application/json: schema: title: Path Has Running Sessions type: object properties: error: type: object properties: code: type: string enum: - pathHasRunningSessions message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `pathId` does not correspond to any existing path. content: application/json: schema: title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Archive or restore a path tags: - Paths /api/v2/paths: post: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Creates a new path in the platform.' operationId: v2.paths.CreatePathController_createPath parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/InputPathDTO' responses: '201': description: Returns the information about the created path. content: application/json: schema: $ref: '#/components/schemas/PathDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The main author is present in the co-authors list. title: Main Author As Co Author type: object properties: error: type: object properties: code: type: string enum: - mainAuthorAsCoAuthor message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given media ID does not correspond to any existing image media. title: Media Not Found type: object properties: error: type: object properties: code: type: string enum: - mediaNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `groupId` does not correspond to any existing group. title: Group Not Found type: object properties: error: type: object properties: code: type: string enum: - groupNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given users does not correspond to any existing and non-deleted user. title: Users Not Found type: object properties: error: type: object properties: code: type: string enum: - usersNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `certificateId` does not correspond to any existing certificate outline. title: Certificate Outline Not Found type: object properties: error: type: object properties: code: type: string enum: - certificateOutlineNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Create a path tags: - Paths get: description: '> πŸ”‘ > > Required OAuth scope: `paths:read`. > πŸ“– > > This endpoint is paginated with a page size of 200 paths. For more information, see the [Pagination guide](doc:pagination). Lists all paths in your platform.' operationId: v2.paths.GetPathsController_getPaths parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: createdAt required: false in: query style: deepObject explode: true description: 'Filter on **createdAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: modifiedAt required: false in: query style: deepObject explode: true description: 'Filter on **modifiedAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: status required: false in: query style: deepObject explode: true description: 'Filter on **status** property with LHS bracket notation. Expected value format is a string (`archived`, `published`).' schema: properties: eq: type: string description: Filter on values equal to the given one example: archived enum: - archived - published responses: '200': description: Returns one page of 200 paths. headers: Link: schema: type: string description: 'URL (between `<` `>`) to fetch the immediate next page of results. For more information, see our [Pagination guide](doc:pagination). ⚠️ Only included if there is another page of results.' example: ; rel="next" content: application/json: schema: type: array items: $ref: '#/components/schemas/PathDTO' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all paths tags: - Paths /api/v2/paths/{pathId}/sessions: post: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Creates a path session for the given path.' operationId: v2.paths.CreatePathSessionController_createPathSession parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InputPathSessionDTO' responses: '200': description: Returns the information about the created session. content: application/json: schema: $ref: '#/components/schemas/PathSessionDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The given `endDate` is before the given `startDate`. title: Invalid Start Or End Date type: object properties: error: type: object properties: code: type: string enum: - invalidStartOrEndDate message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given IP addresses is invalid. title: Invalid Ip Filtering type: object properties: error: type: object properties: code: type: string enum: - invalidIpFiltering message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Automatic re-enrollment is set to `certificationExpiryDate` but certificate is missing. title: Missing Certificate type: object properties: error: type: object properties: code: type: string enum: - missingCertificate message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `pathId` corresponds to an archived path. title: Path Archived type: object properties: error: type: object properties: code: type: string enum: - pathArchived message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given registration option `registrationRequestValidation` is not active for this group. title: Invalid Registration Request Option type: object properties: error: type: object properties: code: type: string enum: - invalidRegistrationRequestOption message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given `mainInstructorId` or `instructorIds` does not correspond to any existing and non-deleted user. title: Users Not Found type: object properties: error: type: object properties: code: type: string enum: - usersNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Create a path session tags: - Paths get: description: '> πŸ”‘ > > Required OAuth scope: `paths:read`. > πŸ“– > > This endpoint is paginated with a page size of 100 path sessions. For more information, see the [Pagination guide](doc:pagination). Lists all sessions in a given path.' operationId: v2.paths.GetPathSessionsController_getPathSessions parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: createdAt required: false in: query style: deepObject explode: true description: 'Filter on **createdAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: modifiedAt required: false in: query style: deepObject explode: true description: 'Filter on **modifiedAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: startDate required: false in: query style: deepObject explode: true description: 'Filter on **startDate** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: endDate required: false in: query style: deepObject explode: true description: 'Filter on **endDate** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' responses: '200': description: Returns one page of 100 path sessions. headers: Link: schema: type: string description: 'URL (between `<` `>`) to fetch the immediate next page of results. For more information, see our [Pagination guide](doc:pagination). ⚠️ Only included if there is another page of results.' example: ; rel="next" content: application/json: schema: type: array items: $ref: '#/components/schemas/PathSessionDTO' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `pathId` does not correspond to any existing path. content: application/json: schema: title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all sessions in a path tags: - Paths /api/v2/paths/{pathId}: delete: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Deletes a path given the path ID.' operationId: v2.paths.DeletePathController_deletePath parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '204': description: Deletes a specific path. '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `pathId` does not correspond to any existing path. content: application/json: schema: title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '409': description: You cannot delete this path, it's used as a step or requirement in at least one path. content: application/json: schema: title: Path Is Used As A Training type: object properties: error: type: object properties: code: type: string enum: - pathIsUsedAsATraining message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Delete a path tags: - Paths get: description: '> πŸ”‘ > > Required OAuth scope: `paths:read`. Retrieves information about a path given its ID.' operationId: v2.paths.GetPathController_getPath parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '200': description: Returns the information about the given path. content: application/json: schema: $ref: '#/components/schemas/PathDTO' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `pathId` does not correspond to any existing path. content: application/json: schema: title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Retrieve a path tags: - Paths patch: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Edits specific fields of an existing path. Fields not included in the request payload remain unchanged.' operationId: v2.paths.UpdatePathController_updatePath parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/PatchPathDTO' responses: '200': description: Returns the information about the updated path. content: application/json: schema: $ref: '#/components/schemas/PathDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The main author is present in the co-authors list. title: Main Author As Co Author type: object properties: error: type: object properties: code: type: string enum: - mainAuthorAsCoAuthor message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given media ID does not correspond to any existing image media. title: Media Not Found type: object properties: error: type: object properties: code: type: string enum: - mediaNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `groupId` does not correspond to any existing group. title: Group Not Found type: object properties: error: type: object properties: code: type: string enum: - groupNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given users does not correspond to any existing and non-deleted user. title: Users Not Found type: object properties: error: type: object properties: code: type: string enum: - usersNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `certificateId` does not correspond to any existing certificate outline. title: Certificate Outline Not Found type: object properties: error: type: object properties: code: type: string enum: - certificateOutlineNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Edit a path tags: - Paths /api/v2/paths/{pathId}/sessions/{sessionId}: delete: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Deletes a path session given the path ID and session ID.' operationId: v2.paths.DeletePathSessionController_deletePathSession parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '204': description: Deletes a specific session given its unique ID. '400': description: The given `sessionId` does not belong to the `pathId`. content: application/json: schema: title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Delete a path session tags: - Paths get: description: '> πŸ”‘ > > Required OAuth scope: `paths:read`. Retrieves information about the path session given the path ID and session ID.' operationId: v2.paths.GetPathSessionController_getPathSession parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '200': description: Returns the information about the given session. content: application/json: schema: $ref: '#/components/schemas/PathSessionDTO' '400': description: The given `sessionId` does not belong to the `pathId`. content: application/json: schema: title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Retrieve a path session tags: - Paths patch: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Edits specific fields of an existing path session. Fields not included in the request payload remain unchanged.' operationId: v2.paths.ModifyPathSessionController_modifyPathSession parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchPathSessionDTO' responses: '200': description: Returns the updated session. content: application/json: schema: $ref: '#/components/schemas/PathSessionDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The given `sessionId` corresponds to a child path session. title: Child Path Session type: object properties: error: type: object properties: code: type: string enum: - childPathSession message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given IP addresses is invalid. title: Invalid Ip Filtering type: object properties: error: type: object properties: code: type: string enum: - invalidIpFiltering message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Automatic re-enrollment is set to `certificationExpiryDate` but certificate is missing. title: Missing Certificate type: object properties: error: type: object properties: code: type: string enum: - missingCertificate message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given registration option `registrationRequestValidation` is not active for this group. title: Invalid Registration Request Option type: object properties: error: type: object properties: code: type: string enum: - invalidRegistrationRequestOption message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not belong to the `pathId`. title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` corresponds to an ended session. title: Session Ended type: object properties: error: type: object properties: code: type: string enum: - sessionEnded message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `endDate` is before the given `startDate`. title: Invalid Start Or End Date type: object properties: error: type: object properties: code: type: string enum: - invalidStartOrEndDate message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The `endDate` is updated, but the `sessionId` corresponds to an ended session. title: Unsupported End Date Update type: object properties: error: type: object properties: code: type: string enum: - unsupportedEndDateUpdate message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `groupId` does not correspond to any existing group. title: Group Not Found type: object properties: error: type: object properties: code: type: string enum: - groupNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given `mainInstructorId` or `instructorIds` does not correspond to any existing and non-deleted user. title: Users Not Found type: object properties: error: type: object properties: code: type: string enum: - usersNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Edit a path session tags: - Paths /api/v2/paths/{pathId}/sessions/{sessionId}/self-enrollments/{userId}: delete: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Archives the self-enrollment of a learner in a path session. Learners enrolled through the Audience Builder are rejected β€” unassign those by updating the session audience with `PUT /audiences` and `excludedLearners`.' operationId: v2.paths.ArchiveSelfEnrollmentController_archiveSelfEnrollment parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: userId required: true in: path description: The unique ID of the learner. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '204': description: Archives the learner's self-enrollment in the session. '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The given `sessionId` does not belong to the `pathId`. title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` corresponds to an ended session. title: Session Ended type: object properties: error: type: object properties: code: type: string enum: - sessionEnded message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` corresponds to a child path session. title: Child Path Session type: object properties: error: type: object properties: code: type: string enum: - childPathSession message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `userId` is enrolled in the session but not via self-enrollment. If they were enrolled through the Audience Builder, unassign them by updating the session audience with `PUT /audiences` and `excludedLearners`. title: Learner Not Self Enrolled type: object properties: error: type: object properties: code: type: string enum: - learnerNotSelfEnrolled message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `userId` has no active enrollment in the given session. title: Learner Not Enrolled type: object properties: error: type: object properties: code: type: string enum: - learnerNotEnrolled message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Archive a self-enrolled learner from a path session tags: - Paths /api/v2/paths/{pathId}/enrollments: get: description: '> πŸ”‘ > > Required OAuth scope: `paths:read`. > πŸ“– > > This endpoint is paginated with a page size of 5,000 enrollments. For more information, see the [Pagination guide](doc:pagination). Lists all enrollments for the given path.' operationId: v2.paths.GetEnrollmentsController_getEnrollments parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: status required: false in: query style: deepObject explode: true description: 'Filter on **status** property with LHS bracket notation. Expected value format is a string (`archived`, `published`).' schema: properties: eq: type: string description: Filter on values equal to the given one example: archived enum: - archived - published - name: createdAt required: false in: query style: deepObject explode: true description: 'Filter on **createdAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: modifiedAt required: false in: query style: deepObject explode: true description: 'Filter on **modifiedAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: sessionId required: false in: query style: deepObject explode: true description: 'Filter on **sessionId** property with LHS bracket notation. Expected value format is a valid ID (24 digits or letters).' schema: properties: eq: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values equal to the given one example: 507f1f77bcf86cd799439011 ne: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values not equal to the given one example: 507f1f77bcf86cd799439011 in: type: array description: Filter on values including the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 nin: type: array description: Filter on values excluding the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 responses: '200': description: Returns one page of 5000 enrollments. headers: Link: schema: type: string description: 'URL (between `<` `>`) to fetch the immediate next page of results. For more information, see our [Pagination guide](doc:pagination). ⚠️ Only included if there is another page of results.' example: ; rel="next" content: application/json: schema: type: array items: $ref: '#/components/schemas/PathEnrollmentDTO' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `pathId` does not correspond to any existing path. content: application/json: schema: title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all enrollments tags: - Paths /api/v2/paths/{pathId}/sessions/{sessionId}/custom-fields/values: get: description: '> πŸ”‘ > > Required OAuth scope: `paths:read`. Lists all custom field values in a given session.' operationId: v2.paths.GetPathSessionCustomFieldValuesController_getPathSessionCustomFieldValues parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '200': description: Returns all custom field values for the given session. content: application/json: schema: type: array items: $ref: '#/components/schemas/CustomFieldValueDTO' '400': description: The given `sessionId` does not belong to the `pathId`. content: application/json: schema: title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all custom field values for a session tags: - Paths put: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Replaces all custom field values in the given path session with the provided ones. Values not included are removed.' operationId: v2.paths.v2.paths.UpdatePathSessionCustomFieldValuesController_updatePathSessionCustomFieldValues parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePathSessionCustomFieldValuesBody' responses: '200': description: Returns the updated path session custom field values. content: application/json: schema: type: array items: $ref: '#/components/schemas/CustomFieldValueDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The given `sessionId` does not belong to the `pathId`. title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given body has a `customField` with an unauthorized value. title: Unauthorized Value type: object properties: error: type: object properties: code: type: string enum: - unauthorizedValue message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given body has a `customField` with invalid value type. title: Wrong Type Value type: object properties: error: type: object properties: code: type: string enum: - wrongTypeValue message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given body has multiple values for a single `customField`. title: Multiple Values For Single Custom Field type: object properties: error: type: object properties: code: type: string enum: - multipleValuesForSingleCustomField message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `customFieldId` does not correspond to any existing custom field. title: Custom Field Not Found type: object properties: error: type: object properties: code: type: string enum: - customFieldNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Replace all custom fields values for a path session tags: - Paths /api/v2/paths/{pathId}/tags: get: description: '> πŸ”‘ > > Required OAuth scope: `tags:read`. > πŸ“– > > This endpoint is paginated with a page size of 500 tags. For more information, see the [Pagination guide](doc:pagination). Lists all unique tag IDs of the given path.' operationId: v2.paths.GetPathTagsController_getTags parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '200': description: Returns one page of 500 tags. headers: Link: schema: type: string description: 'URL (between `<` `>`) to fetch the immediate next page of results. For more information, see our [Pagination guide](doc:pagination). ⚠️ Only included if there is another page of results.' example: ; rel="next" content: application/json: schema: type: array items: $ref: '#/components/schemas/TagIdWithSource' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `pathId` does not correspond to any existing path. content: application/json: schema: title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all tags in a path tags: - Paths put: description: '> πŸ”‘ > > Required OAuth scope: `tags:write`. Replaces all tags in the given path with the provided onces. Tags not included are removed.' operationId: v2.paths.UpdateTagsController_updateTags parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePathsTagsBody' responses: '200': description: Returns the new tag IDs linked to the path. content: application/json: schema: type: array items: type: string format: ObjectId example: 507f1f77bcf86cd799439011 '400': description: The given `pathId` corresponds to an archived path. content: application/json: schema: title: Path Archived type: object properties: error: type: object properties: code: type: string enum: - pathArchived message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given `tagIds` does not correspond to any existing tag. title: Tag Not Found type: object properties: error: type: object properties: code: type: string enum: - tagNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Replace all tags in a path tags: - Paths /api/v2/paths/{pathId}/sessions/{sessionId}/audiences: get: description: '> πŸ”‘ > > Required OAuth scope: `paths:read`. Retrieves information about the path session audience given the path ID and session ID.' operationId: v2.paths.GetSessionAudienceController_getSessionAudience parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '200': description: Returns the information about the given session audience. content: application/json: schema: $ref: '#/components/schemas/SessionAudienceDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The given `sessionId` does not belong to the `pathId`. title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to an audience builder session. title: Session Is Not Audience Builder type: object properties: error: type: object properties: code: type: string enum: - sessionIsNotAudienceBuilder message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` has unsupported filter type. title: Unsupported Audience Filter type: object properties: error: type: object properties: code: type: string enum: - unsupportedAudienceFilter message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Retrieve a path session audience tags: - Paths put: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Replaces the audience in the given path and session with the provided one. Audience not included is removed.' operationId: v2.paths.UpdateSessionAudienceController_updateSessionAudience parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PutSessionAudienceDTO' responses: '200': description: Returns the updated session audience. content: application/json: schema: $ref: '#/components/schemas/SessionAudienceDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The given `sessionId` does not belong to the `pathId`. title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to an audience builder session. title: Session Is Not Audience Builder type: object properties: error: type: object properties: code: type: string enum: - sessionIsNotAudienceBuilder message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `pathId` corresponds to an archived path. title: Path Archived type: object properties: error: type: object properties: code: type: string enum: - pathArchived message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` corresponds to a child path session. title: Child Path Session type: object properties: error: type: object properties: code: type: string enum: - childPathSession message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` corresponds to an ended session. title: Session Ended type: object properties: error: type: object properties: code: type: string enum: - sessionEnded message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` has unsupported filter type. title: Unsupported Audience Filter type: object properties: error: type: object properties: code: type: string enum: - unsupportedAudienceFilter message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given body has an invalid audience builder shape. title: Invalid Audience Builder Shape type: object properties: error: type: object properties: code: type: string enum: - invalidAudienceBuilderShape message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given body has invalid audience filter for token based path. title: Token Based Path Audience Filter type: object properties: error: type: object properties: code: type: string enum: - tokenBasedPathAudienceFilter message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given body has invalid mode for token based path. title: Token Based Path Mode type: object properties: error: type: object properties: code: type: string enum: - tokenBasedPathMode message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given body has excluded learners for token based path. title: Token Based Path Excluded Learners type: object properties: error: type: object properties: code: type: string enum: - tokenBasedPathExcludedLearners message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given users does not correspond to any existing and non-deleted user. title: Users Not Found type: object properties: error: type: object properties: code: type: string enum: - usersNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given groups does not correspond to any existing group. title: Groups Not Found type: object properties: error: type: object properties: code: type: string enum: - groupsNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Replace an audience for a path session tags: - Paths /api/v2/paths/{pathId}/sessions/{sessionId}/user-statuses: get: description: '> πŸ”‘ > > Required OAuth scope: `pathStats:read`. Retrieves aggregated metrics for a given path session, including counts of users by session status and total certificates issued.' operationId: v2.paths.v2.paths.GetSessionStatsController_getSessionStats parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '200': description: Returns aggregated stats for the given session. content: application/json: schema: $ref: '#/components/schemas/AggregatedSessionStatDTO' '400': description: The given `sessionId` does not belong to the `pathId`. content: application/json: schema: title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Retrieve metrics for a path session tags: - Paths /api/v2/paths/{pathId}/sessions/{sessionId}/user-stats: get: description: '> πŸ”‘ > > Required OAuth scope: `pathStats:read`. > πŸ“– > > This endpoint is paginated with a page size of 2,000 user statistics. For more information, see the [Pagination guide](doc:pagination). Lists all user statistics for the given path session.' operationId: v2.paths.GetUserStatsController_getUserStats parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: sessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: completedAt required: false in: query style: deepObject explode: true description: 'Filter on **completedAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: userId required: false in: query style: deepObject explode: true description: 'Filter on **userId** property with LHS bracket notation. Expected value format is a valid ID (24 digits or letters).' schema: properties: eq: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values equal to the given one example: 507f1f77bcf86cd799439011 ne: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: Filter on values not equal to the given one example: 507f1f77bcf86cd799439011 in: type: array description: Filter on values including the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 nin: type: array description: Filter on values excluding the given ones items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 responses: '200': description: Returns one page of 2000 user statistics. headers: Link: schema: type: string description: 'URL (between `<` `>`) to fetch the immediate next page of results. For more information, see our [Pagination guide](doc:pagination). ⚠️ Only included if there is another page of results.' example: ; rel="next" content: application/json: schema: type: array items: $ref: '#/components/schemas/SessionUserStatDTO' '400': description: The given `sessionId` does not belong to the `pathId`. content: application/json: schema: title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all user statistics for a path session tags: - Paths /api/v2/paths/{pathId}/child-sessions/{childSessionId}: patch: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Edits a child path session given its unique ID and path.' operationId: v2.paths.ModifyChildPathSessionController_modifyChildPathSession parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string - name: childSessionId required: true in: path description: The unique ID of the path session. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchChildPathSessionDTO' responses: '200': description: Returns the updated child session. content: application/json: schema: $ref: '#/components/schemas/PathSessionDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The given `sessionId` corresponds to a root path session. title: Root Path Session type: object properties: error: type: object properties: code: type: string enum: - rootPathSession message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not belong to the `pathId`. title: Session Not Belong To Path type: object properties: error: type: object properties: code: type: string enum: - sessionNotBelongToPath message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` corresponds to an ended session. title: Session Ended type: object properties: error: type: object properties: code: type: string enum: - sessionEnded message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given `sessionId` does not correspond to any existing path session. title: Session Not Found type: object properties: error: type: object properties: code: type: string enum: - sessionNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: At least one of the given `mainInstructorId` or `instructorIds` does not correspond to any existing and non-deleted user. title: Users Not Found type: object properties: error: type: object properties: code: type: string enum: - usersNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Edit a child path session tags: - Paths /api/v2/paths/{pathId}/translations: put: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Replaces all translations in the given path with the provided ones. Translations not included are removed.' operationId: v2.paths.ReplacePathTranslationsController_replacePathTranslations parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReplacePathTranslationsBody' responses: '200': description: Returns the updated path translations. content: application/json: schema: type: array items: $ref: '#/components/schemas/PathTranslationDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The default lang of a path cannot be removed. title: Removing Default Lang type: object properties: error: type: object properties: code: type: string enum: - removingDefaultLang message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The default lang of a path cannot be unpublished. title: Unpublishing Default Lang type: object properties: error: type: object properties: code: type: string enum: - unpublishingDefaultLang message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Each lang can only be translated once. title: Non Unique Lang Entries type: object properties: error: type: object properties: code: type: string enum: - nonUniqueLangEntries message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `pathId` does not correspond to any existing path. content: application/json: schema: title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Replace all translations for a path tags: - Paths /api/v2/paths/{pathId}/steps: put: description: '> πŸ”‘ > > Required OAuth scope: `paths:write`. Replaces all steps in the given path with the provided ones. Steps not included are removed.' operationId: v2.paths.UpdateStepsController_updateSteps parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: pathId required: true in: path description: The unique ID of the path. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateStepsBody' responses: '200': description: Returns the updated steps. content: application/json: schema: type: array items: oneOf: - $ref: '#/components/schemas/AssessmentStepDTO' - $ref: '#/components/schemas/ClassroomStepDTO' - $ref: '#/components/schemas/CourseStepDTO' - $ref: '#/components/schemas/EmailStepDTO' - $ref: '#/components/schemas/PathStepDTO' - $ref: '#/components/schemas/ProgramStepDTO' - $ref: '#/components/schemas/SlackMessageStepDTO' - $ref: '#/components/schemas/TeamsMessageStepDTO' '400': description: The server cannot or will not process the request due to something that is perceived to be a client error. content: application/json: schema: oneOf: - description: The given `pathId` corresponds to an archived path. title: Path Archived type: object properties: error: type: object properties: code: type: string enum: - pathArchived message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Some steps are duplicated in the payload. title: Duplicated Step type: object properties: error: type: object properties: code: type: string enum: - duplicatedStep message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The Teams or Slack message steps can only be used if an active integration is set up in the root group. title: Message Step Unavailable type: object properties: error: type: object properties: code: type: string enum: - messageStepUnavailable message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The condition and conditionOnDetailedStatus are inconsistent with each other. title: Message Step Inconsistent Scheduling Conditions type: object properties: error: type: object properties: code: type: string enum: - messageStepInconsistentSchedulingConditions message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The conditionOnDetailedStatus cannot be an empty array. title: Message Step Empty Detailed Conditions type: object properties: error: type: object properties: code: type: string enum: - messageStepEmptyDetailedConditions message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The conditionOnDetailedStatus contains duplicate elements. title: Message Step Duplicate Detailed Conditions type: object properties: error: type: object properties: code: type: string enum: - messageStepDuplicateDetailedConditions message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Some steps are already assigned to another path. title: Step Already Assigned type: object properties: error: type: object properties: code: type: string enum: - stepAlreadyAssigned message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: A path cannot have only optional steps. title: Only Optional Steps type: object properties: error: type: object properties: code: type: string enum: - onlyOptionalSteps message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Some path steps would create a cycle in the path structure. title: Path Cycle type: object properties: error: type: object properties: code: type: string enum: - pathCycle message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Some steps are part of the path requirements. title: Step As A Requirement type: object properties: error: type: object properties: code: type: string enum: - stepAsARequirement message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: You cannot add a step which contains a classroom in a path which has re-enrollment activated in one of its sessions. title: No Classroom With Reenrollment type: object properties: error: type: object properties: code: type: string enum: - noClassroomWithReenrollment message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Steps with examination option can only be used on a certifying path. title: Examination Without Certification type: object properties: error: type: object properties: code: type: string enum: - examinationWithoutCertification message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: MinScore option on an assessment step can only be used on an assessment with the `scored` scoreMode. title: Min Score With Wrong Score Mode type: object properties: error: type: object properties: code: type: string enum: - minScoreWithWrongScoreMode message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Only one step in the path can have thresholds. title: Multiple Positioning Quiz Steps type: object properties: error: type: object properties: code: type: string enum: - multiplePositioningQuizSteps message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The step with thresholds must be the first non-message step in the path. title: Threshold Not On First Non Message Step type: object properties: error: type: object properties: code: type: string enum: - thresholdNotOnFirstNonMessageStep message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: Two or more thresholds share the same thresholdValue. title: Duplicate Threshold Value type: object properties: error: type: object properties: code: type: string enum: - duplicateThresholdValue message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: A step ID appears in more than one threshold's waivedStepIds. title: Duplicate Waived Step type: object properties: error: type: object properties: code: type: string enum: - duplicateWaivedStep message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: One or more step IDs in waivedStepIds do not correspond to a valid step in this path, or is a message step. title: Invalid Waived Step type: object properties: error: type: object properties: code: type: string enum: - invalidWaivedStep message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The server cannot find the requested resource. content: application/json: schema: oneOf: - description: The given `pathId` does not correspond to any existing path. title: Path Not Found type: object properties: error: type: object properties: code: type: string enum: - pathNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given assessment step does not correspond to any existing assessment. title: Assessment Step Not Found type: object properties: error: type: object properties: code: type: string enum: - assessmentStepNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given classroom step does not correspond to any existing classroom. title: Classroom Step Not Found type: object properties: error: type: object properties: code: type: string enum: - classroomStepNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given course step does not correspond to any existing course. title: Course Step Not Found type: object properties: error: type: object properties: code: type: string enum: - courseStepNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given email step does not correspond to any existing email. title: Email Step Not Found type: object properties: error: type: object properties: code: type: string enum: - emailStepNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given path step does not correspond to any existing path. title: Path Step Not Found type: object properties: error: type: object properties: code: type: string enum: - pathStepNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given program step does not correspond to any existing program. title: Program Step Not Found type: object properties: error: type: object properties: code: type: string enum: - programStepNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given slackMessage step does not correspond to any existing slackMessage. title: Slack Message Step Not Found type: object properties: error: type: object properties: code: type: string enum: - slackMessageStepNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error - description: The given teamsMessage step does not correspond to any existing teamsMessage. title: Teams Message Step Not Found type: object properties: error: type: object properties: code: type: string enum: - teamsMessageStepNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Replace all steps tags: - Paths components: schemas: InputOptions: title: Input Options type: object properties: linearProgression: type: boolean description: True if learners must follow the steps in the defined order (top to bottom) as set in the **Build your training** section of the path editor; false otherwise. mandatoryReplay: type: boolean description: True if learners must complete the steps within the path session, even if they have already completed the steps elsewhere; false otherwise. displayForum: type: boolean description: True if learners can see the path forum and reactions; false otherwise. displayClassroomMessages: type: boolean description: True if learners can see the classroom slot message on the path homepage, even if they aren’t registered for the classroom slot; false otherwise. automatedReminders: type: boolean description: True if an automated reminder is sent to enrolled learners who have been inactive for 2 days and then for 7 days; false otherwise. notificationOnStepCreation: type: boolean description: True if an email notification is sent to all learners when a new step is added, updating their path status to **On time** and moving the path back to the **Ongoing** tab on their homepage; false otherwise. PathStepOptionsDTO: title: Path Step Options type: object properties: optional: type: boolean description: True if the step is optional to complete the path; false otherwise. relativeDate: description: A soft deadline to encourage learners to complete the step on time, calculated from their enrollment date. Learners can still play the step after the relative due date. allOf: - $ref: '#/components/schemas/RelativeDateOptionDTO' required: - optional CourseStepDTO: title: Course Step type: object properties: _id: type: string description: The unique ID of the step resource. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - course description: The type of the step. options: oneOf: - $ref: '#/components/schemas/RegularCourseStepOptionsDTO' - $ref: '#/components/schemas/PositioningQuizCourseStepOptionsDTO' description: The options for this step. subtype: type: string enum: - quiz description: The subtype of the step. required: - _id - type - options PathDTO: title: Path type: object properties: authorId: type: string description: The unique ID of the main author of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ certificateId: type: string description: The unique ID of the certificate outline from which certificates are issued upon path completion. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ groupId: type: string description: The unique ID of the owner group of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ _id: type: string description: The unique ID of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ coAuthorIds: description: The list of co-author IDs in an array. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ createdAt: format: date-time type: string description: The date and time when the path was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). defaultLang: type: string enum: - bg - cs - da - de - el - en - es - fi - fr - hr - ht_HT - hu - id - it - ja - kar_MM - ko - lt - mh_MH - nl - nl_BE - 'no' - pl - pt - ro - ru - rw_RW - sk - sl - so_SO - sv - sw_KE - th - ti_ET - tr - uk - zh - am_ET - bn - bs - ca - cy - en_CA - en_GB - es_AR - es_MX - et - fr_CA - gu - he_IL - hy - kk - km - lo - lv - mi - mn_MN - mr - ms - my_MM - nn_NO - or - pa - pt_BR - pt_MZ - rn_BI - si - ta - te - tl_PH - ur - uz - yo_NG - zh_tw - el - hi - sr - ar - vi - zh_HANT description: The language in which the path is displayed when the learner’s profile language is not available. modifiedAt: format: date-time type: string description: The date and time when the path was last updated, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). name: type: string description: The title of the path. example: Employee Onboarding options: description: A set of options to customize the behavior of the path. allOf: - $ref: '#/components/schemas/Options' sourceLang: type: string enum: - bg - cs - da - de - el - en - es - fi - fr - hr - ht_HT - hu - id - it - ja - kar_MM - ko - lt - mh_MH - nl - nl_BE - 'no' - pl - pt - ro - ru - rw_RW - sk - sl - so_SO - sv - sw_KE - th - ti_ET - tr - uk - zh - am_ET - bn - bs - ca - cy - en_CA - en_GB - es_AR - es_MX - et - fr_CA - gu - he_IL - hy - kk - km - lo - lv - mi - mn_MN - mr - ms - my_MM - nn_NO - or - pa - pt_BR - pt_MZ - rn_BI - si - ta - te - tl_PH - ur - uz - yo_NG - zh_tw - el - hi - sr - ar - vi - zh_HANT description: The language in which the path is created. status: type: string enum: - archived - published description: The status of the path. steps: maxItems: 300 description: The ordered list of steps of the path. type: array items: oneOf: - $ref: '#/components/schemas/AssessmentStepDTO' - $ref: '#/components/schemas/ClassroomStepDTO' - $ref: '#/components/schemas/CourseStepDTO' - $ref: '#/components/schemas/EmailStepDTO' - $ref: '#/components/schemas/PathStepDTO' - $ref: '#/components/schemas/ProgramStepDTO' - $ref: '#/components/schemas/SlackMessageStepDTO' - $ref: '#/components/schemas/TeamsMessageStepDTO' translations: description: The different translations available for the path. type: array items: $ref: '#/components/schemas/PathTranslationDTO' additionalInformation: type: string description: A custom field to store information available only in the **Advanced settings** of the path editor, the CSV exports, and the API. This information is not displayed to learners on the platform. example: Training content 203 coverPicture: type: string description: The unique ID of the cover picture of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ description: type: string description: The description of the path. example: This path will teach you how to onboard a new employee! estimatedDuration: description: An estimate of the time required to complete the path. allOf: - $ref: '#/components/schemas/EstimatedDuration' estimatedWeeklyCommitment: description: An estimated weekly time commitment in hours for learners on the path. This value is set in the field **Estimated weekly commitment** in the path settings and displayed to learners on the path homepage. allOf: - $ref: '#/components/schemas/EstimatedWeeklyCommitment' required: - authorId - groupId - _id - coAuthorIds - createdAt - defaultLang - modifiedAt - name - options - sourceLang - status - steps - translations InputPathDTO: title: Input Path type: object properties: authorId: type: string description: The unique ID of the main author of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ certificateId: type: string description: The unique ID of the certificate outline from which certificates are issued upon path completion. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ groupId: type: string description: The unique ID of the owner group of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ name: type: string description: The title of the path. example: Employee Onboarding minLength: 1 coAuthorIds: description: The list of co-author IDs in an array. No co-authors are added if empty. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: type: string description: The description of the path. example: This path will teach you how to onboard a new employee! minLength: 1 additionalInformation: type: string description: A custom field to store information available only in the **Advanced settings** of the path editor, the CSV exports, and the API. This information is not displayed to learners on the platform. example: Training content 203 minLength: 1 coverPicture: oneOf: - type: string format: binary title: File description: 'The cover picture of the path. The maximum file size is 10 MB. Supported media types: image/bmp, image/gif, image/heic, image/jpeg, image/png, image/svg+xml, image/webp.' - type: string format: ObjectId title: Media example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ description: The unique ID of the cover picture of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ defaultLang: type: string enum: - bg - cs - da - de - el - en - es - fi - fr - hr - ht_HT - hu - id - it - ja - kar_MM - ko - lt - mh_MH - nl - nl_BE - 'no' - pl - pt - ro - ru - rw_RW - sk - sl - so_SO - sv - sw_KE - th - ti_ET - tr - uk - vm - zh - am_ET - bn - bs - ca - cy - en_CA - en_GB - es_AR - es_MX - et - fr_CA - gr - gu - he_IL - hy - in - kk - km - lo - lv - mi - mn_MN - mr - ms - my_MM - nn_NO - or - pa - pt_BR - pt_MZ - rn_BI - rs - sa - si - ta - tc - te - tl_PH - ur - uz - yo_NG - zh_tw description: The language in which the path is displayed when the learner’s profile language is not available. estimatedWeeklyCommitment: description: An estimated weekly time commitment in hours for learners on the path. This value is set in the field **Estimated weekly commitment** in the path settings and displayed to learners on the path homepage. allOf: - $ref: '#/components/schemas/EstimatedWeeklyCommitment' options: description: A set of options to customize the behavior of the path. allOf: - $ref: '#/components/schemas/InputOptions' required: - authorId - groupId - name CertificationExpiryDateAutomaticReenrollmentDTO: title: Certification Expiry Date Automatic Reenrollment type: object properties: type: type: string enum: - certificationExpiryDate description: The type of automatic reenrollment set for this path session. delayDays: type: number description: The number of days to enroll the learner prior to the next due date. example: 90 required: - type - delayDays AggregatedSessionStatDTO: title: Aggregated Session Stat type: object properties: certificates: type: integer minimum: 0 description: Number of certificates obtained within the session. usersCountByStatus: description: 'Number of users per detailed path status. Possible status are: awaitingCorrection, late, notYetStarted, onTime, sessionNotOpened, successful, toRetake, unsuccessful.' allOf: - $ref: '#/components/schemas/UsersCountByStatusDTO' required: - certificates - usersCountByStatus ProgramStepOptionsDTO: title: Program Step Options type: object properties: optional: type: boolean description: True if the step is optional to complete the path; false otherwise. relativeDate: description: A soft deadline to encourage learners to complete the step on time, calculated from their enrollment date. Learners can still play the step after the relative due date. allOf: - $ref: '#/components/schemas/RelativeDateOptionDTO' required: - optional TeamsMessageStepDTO: title: Teams Message Step type: object properties: _id: type: string description: The unique ID of the step resource. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - teamsMessage description: The type of the step. options: description: The options for this step. allOf: - $ref: '#/components/schemas/MessageStepOptionsDTO' required: - _id - type - options UpdatePathSessionCustomFieldValuesBody: title: Update Path Session Custom Field Values Body type: object properties: customValues: maxItems: 300 description: The list of custom field values to replace the existing ones. type: array items: $ref: '#/components/schemas/CustomFieldValueDTO' required: - customValues PatchChildPathSessionDTO: title: Patch Child Path Session type: object properties: additionalInformation: type: string nullable: true description: The additional information of the path session. example: A0015221 minLength: 1 mainInstructorId: type: string description: The unique ID of the main instructor of the path session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ instructorIds: maxItems: 100 description: The list of unique IDs of the co-instructors of the path session. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ TimeLimitOptionDTO: title: Time Limit Option type: object properties: mode: type: string enum: - maxTime - minTime description: "The time constraint option. Options are:\n- `maxTime`: Setting a maximum time limit will lock the course in its current state at the end of the defined time, and allow the learner to proceed to the next step. They cannot access the remaining activities.\n `minTime`: Setting a minimum time limit will prevent the learner from going to the next step until the end of the defined time, even if they've finished the course." value: type: number minimum: 0 description: The time limit in seconds. required: - mode - value PutSessionAudienceDTO: title: Put Session Audience type: object properties: filters: maxItems: 3 description: The list of filters in the audience. The maximum filters array size is 3. type: array items: oneOf: - $ref: '#/components/schemas/SessionUsersAudienceFilterDTO' - $ref: '#/components/schemas/SessionGroupsAudienceFilterDTO' - $ref: '#/components/schemas/SessionExcludedLearnersAudienceFilterDTO' mode: type: string enum: - dynamic - dynamicEnrollment - dynamicUnenrollment - manual description: 'The audience builder update mode. Options are: - `dynamic`: Learners are dynamically enrolled and unenrolled. - `dynamicEnrollment`: Learners are dynamically enrolled. - `dynamicUnenrollment`: Learners are dynamically unenrolled. - `manual`: The audience is manually updated.' required: - filters - mode PathTranslatedFields: title: Path Translated Fields type: object properties: name: type: string description: The translation of the field `name` for this language. example: Accueil des employΓ©s minLength: 1 description: type: string description: The translation of the field `description` for this language. example: Ce chemin vous apprend Γ  intΓ©grer un nouveau collaborateur ! minLength: 1 ThresholdDTO: title: Threshold type: object properties: thresholdValue: type: number minimum: 0 maximum: 100 description: The minimum score needed to reach the threshold. waivedStepIds: maxItems: 250 description: Array of step IDs waived when this threshold is reached. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ required: - thresholdValue - waivedStepIds MessageStepOptionsDTO: title: Message Step Options type: object properties: recipientType: type: string enum: - learner description: The role of users that will receive the message. scheduling: description: Additional options for message scheduling. If not set, the message is sent right after the previous step. allOf: - $ref: '#/components/schemas/SchedulingOptionDTO' required: - recipientType ArchivePathBody: title: Archive Path Body type: object properties: archived: type: boolean description: If true, archives the path. If false, restores the path. required: - archived SelfRegistrationOptionDTO: title: Self Registration Option type: object properties: enabled: type: boolean description: True if learners can self-register for any available classroom slots until the event begins; false otherwise. delay: description: A period before the event begins during which learners cannot make any registration changes. allOf: - $ref: '#/components/schemas/RelativeDateOptionDTO' required: - enabled EmailStepOptionsDTO: title: Email Step Options type: object properties: recipientType: type: string enum: - learner - manager description: The role of users that will receive the message. scheduling: description: Additional options for message scheduling. If not set, the message is sent right after the previous step. allOf: - $ref: '#/components/schemas/SchedulingOptionDTO' required: - recipientType AssessmentStepOptionsDTO: title: Assessment Step Options type: object properties: isExamination: type: boolean description: True if learners must pass the assessment to receive a certificate; false otherwise. A certificate must be included in the path to activate this option. minScore: type: number minimum: 0 maximum: 100 description: The minimum score required to pass the assessment, expressed as a percentage. If set, the assessor will validate progress based on this score rather than using a fail/pass validation. If not set, the assessor will use a fail/pass validation. required: - isExamination EstimatedWeeklyCommitment: title: Estimated Weekly Commitment type: object properties: min: type: number description: The minimum number of hours the learners should spend on the path each week. max: type: number description: The maximum number of hours the learners should spend on the path each week. required: - min - max AvailabilityOptionDTO: title: Availability Option type: object properties: mode: type: string enum: - afterEnrollmentDate - afterSessionStartDate description: The event that triggers the start of the availability period. relativeDate: description: The period of availability. allOf: - $ref: '#/components/schemas/RelativeDateOptionDTO' required: - mode - relativeDate SessionExcludedLearnersAudienceFilterDTO: title: Session Excluded Learners Audience Filter type: object properties: type: type: string enum: - excludedLearners description: The type of the session audience filter. ids: example: - 507f1f77bcf86cd799439011 maxItems: 20000 description: The list of unique IDs in the the audience filter. type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ required: - type - ids PathSessionUserStatDTO: title: Path Session User Stat type: object properties: _id: type: string description: The unique ID of the user enrollment. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ progress: type: integer description: The completion rate of the user as a percentage. minimum: 0 maximum: 100 status: oneOf: - $ref: '#/components/schemas/AwaitingCorrectionStatus' - $ref: '#/components/schemas/LateStatus' - $ref: '#/components/schemas/NotYetStartedStatus' - $ref: '#/components/schemas/OnTimeStatus' - $ref: '#/components/schemas/SessionNotOpenedStatus' - $ref: '#/components/schemas/SuccessfulStatus' - $ref: '#/components/schemas/ToRetakeStatus' - $ref: '#/components/schemas/UnsuccessfulStatus' description: The status of the user in the path session. timeSpent: type: number description: The number of milliseconds spent by the user on the session. userId: type: string description: The unique ID of the user. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ completedAt: format: date-time type: string description: The date and time of completion of the session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). score: type: integer description: The score obtained by the user as a percentage. minimum: 0 maximum: 100 enrolledAt: format: date-time type: string description: The date and time the user was enrolled, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). unenrolledAt: format: date-time type: string description: The date and time the user was unenrolled, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). certificateId: type: string description: The ID of the certificate obtained by the user in the session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ selfEnrolled: type: boolean description: True if the user self-enrolled in the given path session; false otherwise. startedAt: format: date-time type: string description: The date and time the user started working in the session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). dueDate: format: date-time type: string description: The date and time when the session is due, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). pathId: type: string description: The unique ID of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ sessionId: type: string description: The unique ID of the path session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ required: - _id - progress - status - timeSpent - userId - enrolledAt - selfEnrolled - pathId - sessionId SessionUserStatDTO: title: Session User Stat type: object properties: _id: type: string description: The unique ID of the user enrollment. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ progress: type: integer description: The completion rate of the user as a percentage. minimum: 0 maximum: 100 status: oneOf: - $ref: '#/components/schemas/AwaitingCorrectionStatus' - $ref: '#/components/schemas/LateStatus' - $ref: '#/components/schemas/NotYetStartedStatus' - $ref: '#/components/schemas/OnTimeStatus' - $ref: '#/components/schemas/SessionNotOpenedStatus' - $ref: '#/components/schemas/SuccessfulStatus' - $ref: '#/components/schemas/ToRetakeStatus' - $ref: '#/components/schemas/UnsuccessfulStatus' description: The status of the user in the path session. timeSpent: type: number description: The number of milliseconds spent by the user on the session. userId: type: string description: The unique ID of the user. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ completedAt: format: date-time type: string description: The date and time of completion of the session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). score: type: integer description: The score obtained by the user as a percentage. minimum: 0 maximum: 100 enrolledAt: format: date-time type: string description: The date and time the user was enrolled, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). unenrolledAt: format: date-time type: string description: The date and time the user was unenrolled, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). certificateId: type: string description: The ID of the certificate obtained by the user in the session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ selfEnrolled: type: boolean description: True if the user self-enrolled in the given path session; false otherwise. startedAt: format: date-time type: string description: The date and time the user started working in the session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). dueDate: format: date-time type: string description: The date and time when the session is due, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). required: - _id - progress - status - timeSpent - userId - enrolledAt - selfEnrolled PathEnrollmentDTO: title: Path Enrollment type: object properties: _id: type: string description: The unique ID of the user enrollment. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ archivedAt: format: date-time type: string description: The date and time when the enrollment was archived from the path session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). createdAt: format: date-time type: string description: The date and time when the learner enrolled to the path session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). isSelfEnrolled: type: boolean description: True if the user self-enrolled in the given path session; false otherwise. modifiedAt: format: date-time type: string description: The date and time when the learner enrollment has been updated, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). sessionId: type: string description: The unique ID of the path session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ status: type: string enum: - archived - published description: The status of the enrollment. userId: type: string description: The unique ID of the user. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ required: - _id - createdAt - isSelfEnrolled - sessionId - status - userId PathSessionTranslatedFields: title: Path Session Translated Fields type: object properties: name: type: string description: The translation of the field `name` for this language. example: Accueil des employΓ©s Session d'Octobre minLength: 1 EmailStepDTO: title: Email Step type: object properties: _id: type: string description: The unique ID of the step resource. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - email description: The type of the step. options: description: The options for this step. allOf: - $ref: '#/components/schemas/EmailStepOptionsDTO' required: - _id - type - options SessionAudienceDTO: title: Session Audience type: object properties: filters: description: The list of filters in the audience. type: array items: oneOf: - $ref: '#/components/schemas/SessionUsersAudienceFilterDTO' - $ref: '#/components/schemas/SessionGroupsAudienceFilterDTO' - $ref: '#/components/schemas/SessionExcludedLearnersAudienceFilterDTO' mode: type: string enum: - dynamic - dynamicEnrollment - dynamicUnenrollment - manual description: 'The audience builder update mode. Options are: - `dynamic`: Learners are dynamically enrolled and unenrolled. - `dynamicEnrollment`: Learners are dynamically enrolled. - `dynamicUnenrollment`: Learners are dynamically unenrolled. - `manual`: The audience is manually updated.' required: - filters - mode PathStepDTO: title: Path Step type: object properties: _id: type: string description: The unique ID of the step resource. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - path description: The type of the step. options: description: The options for this step. allOf: - $ref: '#/components/schemas/PathStepOptionsDTO' required: - _id - type - options AssessmentStepDTO: title: Assessment Step type: object properties: _id: type: string description: The unique ID of the step resource. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - assessment description: The type of the step. options: description: The options for this step. allOf: - $ref: '#/components/schemas/AssessmentStepOptionsDTO' required: - _id - type - options InputPathSessionDTO: title: Input Path Session type: object properties: mainInstructorId: type: string description: The unique ID of the main instructor of the path session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ registrationRequestValidation: type: string enum: - disabled - instructors - managers - adminsAndManagers - adminsCoachesInstructorsManagers description: 'The registration request validation options for open access registrations. Options are: - `disabled`: There is no validation for registration. - `instructors`: The instructors validate the registration request. - `managers`: The managers validate the registration request. - `adminsAndManagers`: The managers and group admin validate the registration request. - `adminsCoachesInstructorsManagers`:Managers, instructors, group admins and coaches validate the registration request.' startDate: format: date-time type: string description: The date and time when the path session starts, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). endDate: format: date-time type: string description: The date and time when the path session ends, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). userLimit: type: integer minimum: 1 description: The maximum number of learners that can self enroll in the path session. automaticReenrollment: oneOf: - $ref: '#/components/schemas/CertificationExpiryDateAutomaticReenrollmentDTO' - $ref: '#/components/schemas/PathCompletionDateAutomaticReenrollmentDTO' description: The automatic reenrollment settings if enabled for the path session. ipFiltering: description: The IP filtering configuration of the path session. allOf: - $ref: '#/components/schemas/IPFilteringDTO' name: type: string description: The title of the path session. example: Employee Onboarding October Session. minLength: 1 additionalInformation: type: string description: The additional information of the path session. example: A0015221 minLength: 1 instructorIds: maxItems: 100 description: The list of unique IDs of the co-instructors of the path session. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ required: - mainInstructorId - registrationRequestValidation - startDate - name ToRetakeStatus: title: To Retake Status type: object properties: type: type: string enum: - toRetake description: 'The path session is ongoing, the learner has started the path, and they meet at least one of the following conditions: - They have not reached the minimum score for at least one mandatory course, and they have not reached the maximum number of authorized attempts. - They have not completed the path within the time limits and they have not reached the maximum number of attempts for mandatory courses. - They completed at least one step outside the path context in a path that has the mandatory replay option activated.' reason: type: string enum: - mandatoryReplay description: The learner has not re-completed some mandatory steps previously completed outside the path. required: - type SessionNotOpenedStatus: title: Session Not Opened Status type: object properties: type: type: string enum: - sessionNotOpened description: The learner is enrolled in a path session that has not started yet. required: - type UnsuccessfulStatus: title: Unsuccessful Status type: object properties: type: type: string enum: - unsuccessful description: 'The path session ended with a status of **Not yet started**, **Late**, **On time**, or **To retake**, or the learner meets at least one of the following conditions: - They have not reached the minimum score for at least one mandatory step and they reached the maximum number of attempts. - They have not completed the path within the time limits, and they reached the maximum number of attempts for the mandatory steps.' reason: type: string enum: - sessionEnded description: The learner status was either **Not yet started**, **Late**, **On time**, or **To retake**. required: - type RelativeDateOptionDTO: title: Relative Date Option type: object properties: unit: type: string enum: - day - month - week description: The unit of measurement for the duration. value: type: number minimum: 0.01 maximum: 1000 description: The numerical estimate of the duration. example: 0.01 required: - unit - value ClassroomStepOptionsDTO: title: Classroom Step Options type: object properties: optional: type: boolean description: True if the step is optional to complete the path; false otherwise. relativeDate: description: A soft deadline to encourage learners to complete the step on time, calculated from their enrollment date. Learners can still play the step after the relative due date. allOf: - $ref: '#/components/schemas/RelativeDateOptionDTO' autoRegistration: type: boolean description: True if newly enrolled learners should be automatically registered in the next open classroom slot; false otherwise. selfRegistration: description: The options for learners self-registration. allOf: - $ref: '#/components/schemas/SelfRegistrationOptionDTO' attendanceSheets: description: 'The options for multiple attendance sheets in each classroom slot. For example: - If `unit` is set to `slot` and number is `2`, 2 attendance sheets will be generated for each classroom slot, regardless of the number of days in the slot. - If `unit` is set to `day` and number is `2` in a classroom slot lasting 3 days, 6 attendance sheets will be generated for the slot (2 sheets per day x 3 days).' allOf: - $ref: '#/components/schemas/AttendanceSheetsOptionDTO' required: - optional - autoRegistration - selfRegistration UpdatePathsTagsBody: title: Update Paths Tags Body type: object properties: tagIds: maxItems: 100 description: The new tag IDs linked to the given path. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ required: - tagIds ClassroomStepDTO: title: Classroom Step type: object properties: _id: type: string description: The unique ID of the step resource. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - classroom description: The type of the step. options: description: The options for this step. allOf: - $ref: '#/components/schemas/ClassroomStepOptionsDTO' required: - _id - type - options PositioningQuizCourseStepOptionsDTO: title: Positioning Quiz Course Step Options type: object properties: optional: type: boolean description: True if the step is optional to complete the path; false otherwise. relativeDate: description: A soft deadline to encourage learners to complete the step on time, calculated from their enrollment date. Learners can still play the step after the relative due date. allOf: - $ref: '#/components/schemas/RelativeDateOptionDTO' showCorrection: type: string enum: - never - onAnswer - onCompletion - onSuccess description: 'When answers to questions will be displayed. Options are: - `never`: Answers will not be displayed at any time. - `onAnswer`: Answers will be displayed immediately after the learner provides their response. - `onCompletion`: Answers will be displayed only after the learner has completed the course. - `onSuccess`: Answers will be displayed only after the learner completes the course and meets the success criteria.' showForum: type: string enum: - never - onAnswer - onCompletion - onSuccess description: 'When the forum will be displayed. Options are: - `never`: The forum will not be displayed at any time. - `onAnswer`: The forum will be displayed immediately after the learner provides their response. - `onCompletion`: The forum will be displayed only after the learner has completed the course. - `onSuccess`: The forum will be displayed only after the learner completes the course and meets the success criteria.' timeLimit: description: The time required for learners to complete the step. Note that this parameter does not apply if the course is a SCORM module. allOf: - $ref: '#/components/schemas/TimeLimitOptionDTO' attemptsLimit: type: number description: Must be 1 for a positioning quiz step. example: 1 thresholds: description: The thresholds defined for this positioning quiz step. type: array items: $ref: '#/components/schemas/ThresholdDTO' required: - optional - showCorrection - showForum - attemptsLimit - thresholds CustomFieldValueDTO: title: Custom Field Value type: object properties: customFieldId: type: string description: The unique ID of the custom field. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - string - date description: The type of the custom field. value: oneOf: - type: string title: string type description: The custom field string value. minLength: 1 example: US - type: string title: date type format: date-time description: The custom field date value is in the `YYYY-MM-DD` (ISO 8601 in Coordinated Universal Time (UTC)). minLength: 1 example: '2025-01-27' description: The value assigned to the target for this custom field. required: - customFieldId - type - value SlackMessageStepDTO: title: Slack Message Step type: object properties: _id: type: string description: The unique ID of the step resource. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - slackMessage description: The type of the step. options: description: The options for this step. allOf: - $ref: '#/components/schemas/MessageStepOptionsDTO' required: - _id - type - options SessionUsersAudienceFilterDTO: title: Session Users Audience Filter type: object properties: type: type: string enum: - users description: The type of the session audience filter. ids: example: - 507f1f77bcf86cd799439011 maxItems: 20000 description: The list of unique IDs in the the audience filter. type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ required: - type - ids UsersCountByStatusDTO: title: Users Count By Status type: object properties: awaitingCorrection: type: integer minimum: 0 description: Number of users awaiting correction for this path session. late: type: integer minimum: 0 description: Number of users that are late for this path session. notYetStarted: type: integer minimum: 0 description: Number of users not having started this path session. onTime: type: integer minimum: 0 description: Number of users on time in this path session. sessionNotOpened: type: integer minimum: 0 description: Number of users for which this path session is not opened yet. successful: type: integer minimum: 0 description: Number of users having succeeded this path session. toRetake: type: integer minimum: 0 description: Number of users having to retake this path session. unsuccessful: type: integer minimum: 0 description: Number of users having failed this path session. required: - awaitingCorrection - late - notYetStarted - onTime - sessionNotOpened - successful - toRetake - unsuccessful PathCompletionDateAutomaticReenrollmentDTO: title: Path Completion Date Automatic Reenrollment type: object properties: type: type: string enum: - pathCompletionDate description: The type of automatic reenrollment set for this path session. delayDays: type: number description: The number of days to enroll the learner prior to the next due date. example: 90 recurrenceMonths: type: number description: Only available when `automaticReenrollment.type` is `pathCompletionDate`. The number of months from the last completion of the path that the learner should have completed the path again by. example: 3 required: - type - delayDays - recurrenceMonths SessionGroupsAudienceFilterDTO: title: Session Groups Audience Filter type: object properties: type: type: string enum: - groups description: The type of the session audience filter. ids: example: - 507f1f77bcf86cd799439011 maxItems: 5000 description: The list of unique IDs in the the audience filter. type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ required: - type - ids AddTokensBody: title: Add Tokens Body type: object properties: authorId: type: string description: The unique ID of the user adding the tokens. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ groupId: type: string description: The unique ID of the group to which tokens are being added. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ numberTokensBought: type: integer minimum: 1 description: The number of tokens being added. pathId: type: string description: The unique ID of the path associated with the tokens. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ required: - authorId - groupId - numberTokensBought - pathId LateStatus: title: Late Status type: object properties: type: type: string enum: - late description: 'The path session is ongoing, and the learner meets all the following conditions: - They have started the path. - They have not completed at least one mandatory step with a past due date.' required: - type SuccessfulStatus: title: Successful Status type: object properties: type: type: string enum: - successful description: 'The learner meets all the following conditions: - They have reached the minimum score in all the mandatory courses that require it. - They have completed all mandatory steps in the path within the time limits. If the path has the mandatory replay option activated, they must have completed all mandatory steps within the path session, even if they has previously completed the courses elsewhere.' required: - type PathSessionDTO: title: Path Session type: object properties: mainInstructorId: type: string description: The unique ID of the main instructor of the path session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ registrationRequestValidation: type: string enum: - disabled - instructors - managers - adminsAndManagers - adminsCoachesInstructorsManagers description: 'The registration request validation options for open access registrations. Options are: - `disabled`: There is no validation for registration. - `instructors`: The instructors validate the registration request. - `managers`: The managers validate the registration request. - `adminsAndManagers`: The managers and group admin validate the registration request. - `adminsCoachesInstructorsManagers`:Managers, instructors, group admins and coaches validate the registration request.' startDate: format: date-time type: string description: The date and time when the path session starts, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). endDate: format: date-time type: string description: The date and time when the path session ends, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). userLimit: type: integer minimum: 1 description: The maximum number of learners that can self enroll in the path session. automaticReenrollment: oneOf: - $ref: '#/components/schemas/CertificationExpiryDateAutomaticReenrollmentDTO' - $ref: '#/components/schemas/PathCompletionDateAutomaticReenrollmentDTO' description: The automatic reenrollment settings if enabled for the path session. ipFiltering: description: The IP filtering configuration of the path session. allOf: - $ref: '#/components/schemas/IPFilteringDTO' _id: type: string description: The unique ID of the path session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ createdAt: format: date-time type: string description: The date and time when the path session was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). groupId: type: string description: The unique ID of the path session owner group. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ instructorIds: description: The list of unique IDs of the co-instructors of the path session. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ isAudienceBuilder: type: boolean description: True if the path session is an audience builder session; false otherwise. modifiedAt: format: date-time type: string description: The date and time when the path session was last updated, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). name: type: string description: The title of the path session. example: Employee Onboarding October Session. pathId: type: string description: The unique ID of the path the session belongs to. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ additionalInformation: type: string description: The additional information of the path session. example: A0015221 rootSessionId: type: string description: The unique ID of the root session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ translations: description: The different translations available for the path session. type: array items: $ref: '#/components/schemas/PathSessionTranslationDTO' required: - mainInstructorId - registrationRequestValidation - startDate - _id - createdAt - groupId - instructorIds - isAudienceBuilder - modifiedAt - name - pathId - translations PathSessionWithoutTranslationsDTO: title: Path Session Without Translations type: object properties: mainInstructorId: type: string description: The unique ID of the main instructor of the path session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ registrationRequestValidation: type: string enum: - disabled - instructors - managers - adminsAndManagers - adminsCoachesInstructorsManagers description: 'The registration request validation options for open access registrations. Options are: - `disabled`: There is no validation for registration. - `instructors`: The instructors validate the registration request. - `managers`: The managers validate the registration request. - `adminsAndManagers`: The managers and group admin validate the registration request. - `adminsCoachesInstructorsManagers`:Managers, instructors, group admins and coaches validate the registration request.' startDate: format: date-time type: string description: The date and time when the path session starts, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). endDate: format: date-time type: string description: The date and time when the path session ends, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). userLimit: type: integer minimum: 1 description: The maximum number of learners that can self enroll in the path session. automaticReenrollment: oneOf: - $ref: '#/components/schemas/CertificationExpiryDateAutomaticReenrollmentDTO' - $ref: '#/components/schemas/PathCompletionDateAutomaticReenrollmentDTO' description: The automatic reenrollment settings if enabled for the path session. ipFiltering: description: The IP filtering configuration of the path session. allOf: - $ref: '#/components/schemas/IPFilteringDTO' _id: type: string description: The unique ID of the path session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ createdAt: format: date-time type: string description: The date and time when the path session was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). groupId: type: string description: The unique ID of the path session owner group. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ instructorIds: description: The list of unique IDs of the co-instructors of the path session. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ isAudienceBuilder: type: boolean description: True if the path session is an audience builder session; false otherwise. modifiedAt: format: date-time type: string description: The date and time when the path session was last updated, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). name: type: string description: The title of the path session. example: Employee Onboarding October Session. pathId: type: string description: The unique ID of the path the session belongs to. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ additionalInformation: type: string description: The additional information of the path session. example: A0015221 rootSessionId: type: string description: The unique ID of the root session. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ required: - mainInstructorId - registrationRequestValidation - startDate - _id - createdAt - groupId - instructorIds - isAudienceBuilder - modifiedAt - name - pathId NotYetStartedStatus: title: Not Yet Started Status type: object properties: type: type: string enum: - notYetStarted description: The learner is enrolled in an ongoing path session, but they have not started the path yet. required: - type PathSessionTranslationDTO: title: Path Session Translation type: object properties: lang: type: string enum: - bg - cs - da - de - el - en - es - fi - fr - hr - ht_HT - hu - id - it - ja - kar_MM - ko - lt - mh_MH - nl - nl_BE - 'no' - pl - pt - ro - ru - rw_RW - sk - sl - so_SO - sv - sw_KE - th - ti_ET - tr - uk - zh - am_ET - bn - bs - ca - cy - en_CA - en_GB - es_AR - es_MX - et - fr_CA - gu - he_IL - hy - kk - km - lo - lv - mi - mn_MN - mr - ms - my_MM - nn_NO - or - pa - pt_BR - pt_MZ - rn_BI - si - ta - te - tl_PH - ur - uz - yo_NG - zh_tw - el - hi - sr - ar - vi - zh_HANT description: The language of the translation. example: fr published: type: boolean description: True if the translation is available to users in this language; false otherwise. translatorIds: description: The list of unique IDs of the translators assigned to this language. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ translatedFields: description: The translations of the path session fields for this language. allOf: - $ref: '#/components/schemas/PathSessionTranslatedFields' required: - lang - published - translatorIds - translatedFields Options: title: Options type: object properties: linearProgression: type: boolean description: True if learners must follow the steps in the defined order (top to bottom) as set in the **Build your training** section of the path editor; false otherwise. mandatoryReplay: type: boolean description: True if learners must complete the steps within the path session, even if they have already completed the steps elsewhere; false otherwise. displayForum: type: boolean description: True if learners can see the path forum and reactions; false otherwise. displayClassroomMessages: type: boolean description: True if learners can see the classroom slot message on the path homepage, even if they aren’t registered for the classroom slot; false otherwise. automatedReminders: type: boolean description: True if an automated reminder is sent to enrolled learners who have been inactive for 2 days and then for 7 days; false otherwise. notificationOnStepCreation: type: boolean description: True if an email notification is sent to all learners when a new step is added, updating their path status to **On time** and moving the path back to the **Ongoing** tab on their homepage; false otherwise. required: - linearProgression - mandatoryReplay - displayForum - displayClassroomMessages - automatedReminders - notificationOnStepCreation ReplacePathTranslationsBody: title: Replace Path Translations Body type: object properties: translations: maxItems: 80 description: The new or updated translations of the path. type: array items: $ref: '#/components/schemas/PathTranslationDTO' required: - translations SchedulingOptionDTO: title: Scheduling Option type: object properties: relativeTo: type: string enum: - afterEnrollmentDate - afterSessionStartDate - beforeSessionStartDate description: 'The event triggering the message scheduling. Options are: - `afterEnrollmentDate`: The message will be sent a specific number of days after the enrollment date. - `afterSessionStartDate`: The message will be sent a specific number of days after the session start date. - `beforeSessionStartDate`: The message will be sent a specific number of days before the session start date.' relativity: type: number minimum: 1 maximum: 2000 description: The number of days from the triggering event to send the message. example: 1 condition: type: string enum: - completed - notCompleted - notSuccessful - successful description: 'The path result required to trigger the message. Note that this parameter only applies to the following triggering events: `afterEnrollmentDate` and `afterSessionStartDate`. Path results options are: - `completed`: The learner completed all steps in the path. - `notCompleted`: The learner has at least one uncompleted step in the path. - `notSuccessful`: The learner has at least one uncompleted step in the path, or has not reached the minimum score for at least one mandatory step. - `successful`: The learner has completed all mandatory steps in the path, reached the minimum score in all mandatory courses that have one, and completed them in less than the maximum time limit, or more than the minimum time limit.' conditionOnDetailedStatus: type: array description: 'The detailed path statuses required to trigger the message. Note that this parameter only applies to the following triggering events: `afterEnrollmentDate` and `afterSessionStartDate`. Detailed status options include: - `awaitingCorrection`: The learner is awaiting correction of at least one step in the path. - `late`: The learner is late on the path based on the relative date deadline. - `notYetStarted`: The learner has not yet started the path. - `onTime`: The learner is progressing through the path on time. - `successful`: The learner has successfully completed all mandatory steps in the path. - `toRetake`: The learner needs to retake one or more steps in the path. - `unsuccessful`: The learner has not successfully completed at least one of the required steps in the path.' items: type: string enum: - awaitingCorrection - late - notYetStarted - onTime - successful - toRetake - unsuccessful required: - relativeTo - relativity PatchPathSessionDTO: title: Patch Path Session type: object properties: additionalInformation: type: string nullable: true description: The additional information of the path session. example: A0015221 minLength: 1 instructorIds: maxItems: 100 description: The list of unique IDs of the co-instructors of the path session. The update of instructorIds modifies instructorIds in child path sessions. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ mainInstructorId: type: string description: The unique ID of the main instructor of the path session. The update of mainInstructorId modifies mainInstructorId in child path sessions. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ name: type: string description: The title of the path session. example: Employee Onboarding October Session. minLength: 1 groupId: type: string description: The unique ID of the path session owner group. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ registrationRequestValidation: type: string enum: - disabled - instructors - managers - adminsAndManagers - adminsCoachesInstructorsManagers description: 'The registration request validation options for open access registrations. Options are: - `disabled`: There is no validation for registration. - `instructors`: The instructors validate the registration request. - `managers`: The managers validate the registration request. - `adminsAndManagers`: The managers and group admin validate the registration request. - `adminsCoachesInstructorsManagers`:Managers, instructors, group admins and coaches validate the registration request.' startDate: format: date-time type: string description: The date and time when the path session starts, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). endDate: format: date-time type: string nullable: true description: The date and time when the path session ends, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). userLimit: type: integer nullable: true minimum: 1 description: The maximum number of learners that can self enroll in the path session. automaticReenrollment: oneOf: - $ref: '#/components/schemas/CertificationExpiryDateAutomaticReenrollmentDTO' - $ref: '#/components/schemas/PathCompletionDateAutomaticReenrollmentDTO' description: The automatic reenrollment settings if enabled for the path session. nullable: true ipFiltering: nullable: true description: The IP filtering configuration of the path session. allOf: - $ref: '#/components/schemas/IPFilteringDTO' RegularCourseStepOptionsDTO: title: Regular Course Step Options type: object properties: optional: type: boolean description: True if the step is optional to complete the path; false otherwise. relativeDate: description: A soft deadline to encourage learners to complete the step on time, calculated from their enrollment date. Learners can still play the step after the relative due date. allOf: - $ref: '#/components/schemas/RelativeDateOptionDTO' showCorrection: type: string enum: - never - onAnswer - onCompletion - onSuccess description: 'When answers to questions will be displayed. Options are: - `never`: Answers will not be displayed at any time. - `onAnswer`: Answers will be displayed immediately after the learner provides their response. - `onCompletion`: Answers will be displayed only after the learner has completed the course. - `onSuccess`: Answers will be displayed only after the learner completes the course and meets the success criteria.' showForum: type: string enum: - never - onAnswer - onCompletion - onSuccess description: 'When the forum will be displayed. Options are: - `never`: The forum will not be displayed at any time. - `onAnswer`: The forum will be displayed immediately after the learner provides their response. - `onCompletion`: The forum will be displayed only after the learner has completed the course. - `onSuccess`: The forum will be displayed only after the learner completes the course and meets the success criteria.' timeLimit: description: The time required for learners to complete the step. Note that this parameter does not apply if the course is a SCORM module. allOf: - $ref: '#/components/schemas/TimeLimitOptionDTO' minScore: type: number minimum: 0 maximum: 100 description: The minimum score required to successfully complete the step. The score ranges from 0 to 100. attemptsLimit: type: number minimum: 1 description: The maximum number of attempts allowed for the step. The learner cannot retry the step once this limit is reached. example: 1 availability: description: The period during which the step is available to learners. allOf: - $ref: '#/components/schemas/AvailabilityOptionDTO' required: - optional - showCorrection - showForum ProgramStepDTO: title: Program Step type: object properties: _id: type: string description: The unique ID of the step resource. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - program description: The type of the step. options: description: The options for this step. allOf: - $ref: '#/components/schemas/ProgramStepOptionsDTO' required: - _id - type - options EstimatedDuration: title: Estimated Duration type: object properties: unit: type: string enum: - day - hour - minute - month - week description: The unit of measurement for the estimated duration, as specified in the path settings under Estimated duration. value: type: number description: The numerical estimate of the duration, as specified in the path settings under Estimated duration. required: - unit - value OnTimeStatus: title: On Time Status type: object properties: type: type: string enum: - onTime description: 'The path session is ongoing, and the learner meets all the following conditions: - They have started the path. - They have completed all mandatory steps with past due dates. - They have not yet completed all mandatory steps without a due date or with a future due date.' required: - type PathTranslationDTO: title: Path Translation type: object properties: lang: type: string enum: - bg - cs - da - de - el - en - es - fi - fr - hr - ht_HT - hu - id - it - ja - kar_MM - ko - lt - mh_MH - nl - nl_BE - 'no' - pl - pt - ro - ru - rw_RW - sk - sl - so_SO - sv - sw_KE - th - ti_ET - tr - uk - zh - am_ET - bn - bs - ca - cy - en_CA - en_GB - es_AR - es_MX - et - fr_CA - gu - he_IL - hy - kk - km - lo - lv - mi - mn_MN - mr - ms - my_MM - nn_NO - or - pa - pt_BR - pt_MZ - rn_BI - si - ta - te - tl_PH - ur - uz - yo_NG - zh_tw - el - hi - sr - ar - vi - zh_HANT description: The language of the translation. example: fr published: type: boolean description: True if the translation is available to users in this language; false otherwise. translatorIds: description: The list of unique IDs of the translators assigned to this language. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ translatedFields: description: The translations of the path fields for this language. allOf: - $ref: '#/components/schemas/PathTranslatedFields' required: - lang - published - translatorIds - translatedFields IPFilteringDTO: title: IP Filtering type: object properties: active: type: boolean description: True if the IP filtering is active. False otherwise. authorizedAddresses: maxItems: 1000 description: The list of authorized IP addresses. example: '''141.25.186.74'', ''56.231.*.85'', ''96.127.36.47/28'', etc' type: array items: type: string required: - active - authorizedAddresses TagIdWithSource: title: Tag Id With Source type: object properties: tagId: type: string description: The unique ID of the tag. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ source: type: string enum: - native - integration description: 'The source of the tag. - `native`: The tag has been manually added by an admin or created through the API. - `integration`: The tag has been synced from an external source.' required: - tagId - source UpdateStepsBody: title: Update Steps Body type: object properties: steps: minItems: 1 maxItems: 250 description: The ordered list of steps to replace the existing ones. type: array items: oneOf: - $ref: '#/components/schemas/AssessmentStepDTO' - $ref: '#/components/schemas/ClassroomStepDTO' - $ref: '#/components/schemas/CourseStepDTO' - $ref: '#/components/schemas/EmailStepDTO' - $ref: '#/components/schemas/PathStepDTO' - $ref: '#/components/schemas/ProgramStepDTO' - $ref: '#/components/schemas/SlackMessageStepDTO' - $ref: '#/components/schemas/TeamsMessageStepDTO' required: - steps AttendanceSheetsOptionDTO: title: Attendance Sheets Option type: object properties: unit: type: string enum: - day - slot description: 'The frequency at which attendance sheets are generated for each classroom slot. Options are: - `slot`: Generates the specified number of attendance sheet per classroom slot. - `day`: Generates the specified number of attendance sheets per day within the classroom slot.' number: type: number description: The number of attendance sheets per `day` or `slot`. required: - unit - number AwaitingCorrectionStatus: title: Awaiting Correction Status type: object properties: type: type: string enum: - awaitingCorrection description: The learner reached an assessment step that the assessor has not validated yet. required: - type PatchPathDTO: title: Patch Path type: object properties: authorId: type: string description: The unique ID of the main author of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ certificateId: type: string description: The unique ID of the certificate outline from which certificates are issued upon path completion. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ groupId: type: string description: The unique ID of the owner group of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ name: type: string description: The title of the path. example: Employee Onboarding minLength: 1 coAuthorIds: description: The list of co-author IDs in an array. No co-authors are added if empty. example: - 507f1f77bcf86cd799439011 type: array items: type: string format: ObjectId pattern: ^[a-fA-F0-9]{24}$ description: type: string description: The description of the path. example: This path will teach you how to onboard a new employee! minLength: 1 additionalInformation: type: string description: A custom field to store information available only in the **Advanced settings** of the path editor, the CSV exports, and the API. This information is not displayed to learners on the platform. example: Training content 203 minLength: 1 coverPicture: oneOf: - type: string format: binary title: File description: 'The cover picture of the path. The maximum file size is 10 MB. Supported media types: image/bmp, image/gif, image/heic, image/jpeg, image/png, image/svg+xml, image/webp.' - type: string format: ObjectId title: Media example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ description: The unique ID of the cover picture of the path. description: The unique ID of the cover picture of the path. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ defaultLang: type: string enum: - bg - cs - da - de - el - en - es - fi - fr - hr - ht_HT - hu - id - it - ja - kar_MM - ko - lt - mh_MH - nl - nl_BE - 'no' - pl - pt - ro - ru - rw_RW - sk - sl - so_SO - sv - sw_KE - th - ti_ET - tr - uk - vm - zh - am_ET - bn - bs - ca - cy - en_CA - en_GB - es_AR - es_MX - et - fr_CA - gr - gu - he_IL - hy - in - kk - km - lo - lv - mi - mn_MN - mr - ms - my_MM - nn_NO - or - pa - pt_BR - pt_MZ - rn_BI - rs - sa - si - ta - tc - te - tl_PH - ur - uz - yo_NG - zh_tw description: The language in which the path is displayed when the learner’s profile language is not available. estimatedWeeklyCommitment: description: An estimated weekly time commitment in hours for learners on the path. This value is set in the field **Estimated weekly commitment** in the path settings and displayed to learners on the path homepage. allOf: - $ref: '#/components/schemas/EstimatedWeeklyCommitment' options: description: A set of options to customize the behavior of the path. allOf: - $ref: '#/components/schemas/InputOptions' securitySchemes: oauth2: type: oauth2 flows: {} description: 'Use the token from the authentication endpoint in the Authorization header. Example: `Authorization: Bearer `'