360Learning Paths API
The Paths API from 360Learning β 18 operation(s) for paths.
The Paths API from 360Learning β 18 operation(s) for paths.
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: <my/resource/url>; 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: <my/resource/url>; 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.
# --- truncated at 32 KB (287 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/360learning/refs/heads/main/openapi/360learning-paths-api-openapi.yml