Skip to main content

5app REST API (1.0.0)

Download OpenAPI specification:Download

Documentation for the 5app endpoints defined in the Hub within hub/api/routes.
The main router for the endpoints is found under hub/api/app.js.
This API is documented in OpenAPI format and utilises Swagger version 3.0.0.

Assets

Operations for assets via Admin routes.

Get reset Mark As Done assets count

Get count of assets to reset Mark As Done mode for

Responses

Reset Mark As Done mode for assets

Bulk reset Mark as Done mode for all assets in a hub

Responses

Get stats for an asset

Returns the stats for an asset by id

path Parameters
assetId
required
string
query Parameters
duration
string

Responses

Content

Operations for content (e.g. playlists, assets, sections) via Admin routes.

Fetch or download content audit

Returns the audit for all content (playlist, assets, folders) with pagination or downloads the content audit as a csv file.

query Parameters
format
string (CSVFormat)
Value: "csv"

If passed through, the requested data will be downloaded as a csv file. Also determines the format of the downloaded file.

attachment
string (Attachment)
Example: attachment=1

The name given to the file to be downloaded

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

search
object

Search term to filter the content audit results by.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Get content featured for teams

Get content featured for a list of teams

path Parameters
teamIds
required
string

Responses

Add content featured for teams

Add content featured for a list of teams

path Parameters
teamIds
required
string
Request Body schema: application/json
contentIds
any

Responses

Request samples

Content type
application/json
{
  • "contentIds": "any"
}

Delete content featured for teams

Delete content featured for a list of teams

path Parameters
teamIds
required
string
Request Body schema: application/json
contentIds
any

Responses

Request samples

Content type
application/json
{
  • "contentIds": "any"
}

Update content featured for teams

Update content featured for a list of teams

path Parameters
teamIds
required
string
contentId
required
string
Request Body schema: application/json
rank
any

Responses

Request samples

Content type
application/json
{
  • "rank": "any"
}

Email Templates

Operations for email templates via Admin routes.

Get email template

Get the preview for an email template.

path Parameters
id
required
string

Responses

Get email template fields

Get the fields for an email template in a specific locale.

path Parameters
type
required
string
locale
required
string

Responses

Imports - Users

Operations for user imports via Admin routes.

Integrations - MS Teams

Operations for MS teams integration via Admin routes.

Block MS Teams for a user

Block MS Teams for a user.

Request Body schema: application/json
email
any

Responses

Request samples

Content type
application/json
{
  • "email": "any"
}

Connect the hub to a tenant in MS Teams

Connect the hub to a tenant in MS Teams.

header Parameters
host
string
Request Body schema: application/json
token
any

Responses

Request samples

Content type
application/json
{
  • "token": "any"
}

Add a tenant to MS Teams

Add a tenant (organization) to MS Teams.

Request Body schema: application/json
tenantId
any

Responses

Request samples

Content type
application/json
{
  • "tenantId": "any"
}

Add a user to MS Teams

Add a user to MS Teams.

Request Body schema: application/json
aadObjectId
any
email
any

Responses

Request samples

Content type
application/json
{
  • "aadObjectId": "any",
  • "email": "any"
}

Delete users from MS Teams

Delete users from MS Teams.

Request Body schema: application/json
emails
any

Responses

Request samples

Content type
application/json
{
  • "emails": "any"
}

Nudges

Operations for nudges via Admin routes.

Create a nudge

Creates a nudge and accordingly its nudgeActions, nudgeContents and nudgeTeams.

Request Body schema:
required
isEnabled
required
boolean
name
required
string
locale
string (Locale)
Enum: "da-DK" "de-DE" "de-DE-Sie" "en-GB" "en-US" "es-ES" "fi-FI" "fr-FR" "hu-HU" "it-IT" "ja-JP" "ko-KR" "nl-NL" "no-NO" "pl-PL" "pt-PT" "ro-RO" "sv-SE" "th-TH" "zh-CN" "zh-TW"

Locale supported by the hub

timezone
required
string (Timezone)
Default: null

IANA time zone name in the format Area/Location

goalType
required
string (NudgeGoalType)
Enum: "completeContent" "openContent" "logInFirstTime" "logInAgain"

Goal type of the nudge, belonging to the two categories content nudge (goalType is either completeContent or openContent) or login nudge (goalType is either logInFirstTime or logInAgain).
Content nudges can only have nudgeActions with the nudgeActions[i].type of share and remind.
Nudges with goalType logInFirstTime can only have nudgeActions with the nudgeActions[i].type of invite.
Nudges with goalType logInAgain can only have nudgeActions with the nudgeActions[i].type of remind.

object (NudgeTarget)
teamIds
Array of numbers (TeamIds)
contentIds
Array of numbers (ContentIds)
Array of objects (NudgeActionsPostPayload)

Responses

Request samples

Content type
{
  • "isEnabled": true,
  • "name": "Nudge name",
  • "locale": "da-DK",
  • "timezone": "Europe/Berlin",
  • "goalType": "completeContent",
  • "target": {
    },
  • "teamIds": [
    ],
  • "contentIds": [
    ],
  • "nudgeActions": [
    ]
}

Response samples

Content type
{
  • "id": 1
}

Update nudges

Update one or multiple nudges. For multi updates, the audience, nudgeTeams and enabled state of the nudges can be updated. For single nudges, all nudge details, nudgeActions, nudgeContents and nudgeTeams can be updated.

Request Body schema:
required
ids
required
Array of numbers (NudgeId)
isEnabled
boolean
isDeleted
boolean (NudgePatchIsDeleted)

Can be used to restore a deleted nudge by passing through false. Deletion of a nudge via PATCH is not supported and thus the value for isDeleted cannot be true. Use DELETE instead.

name
string
locale
string (Locale)
Enum: "da-DK" "de-DE" "de-DE-Sie" "en-GB" "en-US" "es-ES" "fi-FI" "fr-FR" "hu-HU" "it-IT" "ja-JP" "ko-KR" "nl-NL" "no-NO" "pl-PL" "pt-PT" "ro-RO" "sv-SE" "th-TH" "zh-CN" "zh-TW"

Locale supported by the hub

timezone
string (Timezone)
Default: null

IANA time zone name in the format Area/Location

goalType
string (NudgeGoalType)
Enum: "completeContent" "openContent" "logInFirstTime" "logInAgain"

Goal type of the nudge, belonging to the two categories content nudge (goalType is either completeContent or openContent) or login nudge (goalType is either logInFirstTime or logInAgain).
Content nudges can only have nudgeActions with the nudgeActions[i].type of share and remind.
Nudges with goalType logInFirstTime can only have nudgeActions with the nudgeActions[i].type of invite.
Nudges with goalType logInAgain can only have nudgeActions with the nudgeActions[i].type of remind.

object (NudgeTarget)
teamIdsToAdd
Array of numbers (TeamIds)
teamIdsToRemove
Array of numbers (TeamIds)
contentIds
Array of numbers (ContentIds)
Array of objects (NudgeActionsPatchPayload)

Responses

Request samples

Content type
{
  • "ids": [
    ],
  • "isEnabled": true,
  • "isDeleted": false,
  • "name": "Nudge name",
  • "locale": "da-DK",
  • "timezone": "Europe/Berlin",
  • "goalType": "completeContent",
  • "target": {
    },
  • "teamIdsToAdd": [
    ],
  • "teamIdsToRemove": [
    ],
  • "contentIds": [
    ],
  • "nudgeActions": [
    ]
}

Response samples

Content type
{
  • "success": true
}

Delete nudges

Soft deletes one or multiple nudges. The ids of nudges to be deleted are passed via the query.filter.

query Parameters
object

Takes an array with the ids of nudges to be deleted

Responses

Response samples

Content type
{
  • "success": true
}

Fetch all nudges

Returns all nudges with pagination.

query Parameters
offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

search
object

Search term to filter the nudge list results by.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Fetch or download nudges audit

Returns the audit for all nudges with pagination or downloads the nudges audit as a csv file.

query Parameters
format
string (CSVFormat)
Value: "csv"

If passed through, the requested data will be downloaded as a csv file. Also determines the format of the downloaded file.

attachment
string (Attachment)
Example: attachment=1

The name given to the file to be downloaded

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

search
object

Search term to filter the nudges audit results by.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Fetch a nudge

Fetch a nudge with its nudgeActions, nudgeContents and nudgeTeams.

path Parameters
nudgeId
required
string

Responses

Response samples

Content type
{
  • "id": 1,
  • "name": "Nudge name",
  • "audience": "all",
  • "locale": "en-GB",
  • "timezone": "Europe/Berlin",
  • "goalType": "completeContent",
  • "isEnabled": true,
  • "target": {
    },
  • "nudgeTeams": [
    ],
  • "nudgeContents": [
    ],
  • "nudgeActions": [
    ]
}

Fetch stats for a nudge

Returns the stats for a nudge, depending on its goalType.

path Parameters
nudgeId
required
number (NudgeId)
Example: 1

Nudge id

query Parameters
startDate
string (StartDate)
Example: startDate=2023-05-16

The start date of the date range to filter by. Must be in ISO 8601 format.

endDate
string (EndDate)
Example: endDate=2023-05-16

The end date of the date range to filter by. Must be in ISO 8601 format.

Responses

Response samples

Content type
Example
{
  • "nudgedUsersCount": 1,
  • "actionsSentCount": 1,
  • "loggedInAfterNudgeCount": 1,
  • "analyticsType": "logInFirstTime"
}

Fetch report for a nudge

Returns the report for a nudge with pagination or downloads the nudge's report as a csv file. All dates are shown within the nudge's timezone.

path Parameters
nudgeId
required
number (NudgeId)
Example: 1

Nudge id

query Parameters
search
object

Search term to filter the nudges report results by. Searches for matching user names and emails.

progress
string (NudgeCompletionProgress)
Enum: "achievedAll" "unachievedAll" "achievedLate" "unachievedLate" "achievedOnTime" "unachievedOnTime"

Filter the result set based on the users' completion status of the nudge goal. Login nudges can only be filtered for achievedAll and unachievedAll

startDate
string (StartDate)
Example: startDate=2023-05-16

The start date of the date range to filter by. Must be in ISO 8601 format.

endDate
string (EndDate)
Example: endDate=2023-05-16

The end date of the date range to filter by. Must be in ISO 8601 format.

format
string (CSVFormat)
Value: "csv"

If passed through, the requested data will be downloaded as a csv file. Also determines the format of the downloaded file.

attachment
string (Attachment)
Example: attachment=1

The name given to the file to be downloaded

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

Responses

Response samples

Content type
Example
{
  • "items": [
    ],
  • "analyticsType": "logInAgain",
  • "total": 100,
  • "nextOffset": 1
}

Playlists

Operations for playlists and team playlists via Admin routes.

Get stats for a playlist

Returns the stats for a playlist by id

path Parameters
playlistId
required
string
query Parameters
duration
string

Responses

Reset playlist ranks

Reset playlist ranks to be ordered alphabetically. Only accessible for owners.

Responses

Duplicate playlists

Duplicate one or more playlists.

Request Body schema: application/json
playlistIds
any

Responses

Request samples

Content type
application/json
{
  • "playlistIds": "any"
}

Delete topics for a playlist

Deletes topics for a playlist by id

Request Body schema: application/json
idsToRemove
any

Responses

Request samples

Content type
application/json
{
  • "idsToRemove": "any"
}

Add contents to a playlist Deprecated

Add contents to a playlist and recalculate the playlists' completion time

path Parameters
id
required
string
Request Body schema: application/json
assets
any
optional
any

Responses

Request samples

Content type
application/json
{
  • "assets": "any",
  • "optional": "any"
}

Remove contents from a playlist

Remove contents from a playlist and recaluclate the playlists' completion time

path Parameters
id
required
string
Request Body schema: application/json
ids
any

Responses

Request samples

Content type
application/json
{
  • "ids": "any"
}

Update playlist rank

Change rank (order) for a playlist

path Parameters
id
required
string
query Parameters
index
string

Responses

Update playlist content rank

Change rank (order) for a playlist content

path Parameters
id
required
string
asset_id
required
string
query Parameters
log
string
index
string

Responses

Stats

Operations for admin home stats via Admin routes.

Get user session stats

Get user session stats for the last 30 days, 12 months or 7 days.

query Parameters
period
string

Responses

Get unique user stats

Get unique user stats for the last 30 days, 12 months or 7 days.

query Parameters
period
string

Responses

Get asset open stats

Get asset open stats for the last 30 days, 12 months or 7 days.

query Parameters
period
string

Responses

Get overview stats

Get overview stats for the admin home dashboard, including user, asset, asset open, playlist and playlist completion counts.

Responses

Subtitles

Operations for subtitles via Admin routes.

Update a subtitle

Update a subtitle for a specific language and asset.

path Parameters
id
required
string
Request Body schema: application/json
language
any

Responses

Request samples

Content type
application/json
{
  • "language": "any"
}

Delete a subtitle

Delete a subtitle for an asset.

path Parameters
id
required
string

Responses

Teams

Operations for teams via Admin routes.

Fetch a team's asset history

Returns an activity summary for actions performed by a team on assets.

path Parameters
teamId
required
string
query Parameters
duration
string

Responses

Fetch or download teams audit

Returns the audit for all teams with pagination or downloads the teams audit as a csv file.

query Parameters
format
string
search
string

Responses

Team Types

Operations for team types via Admin routes.

Update team type rank

Update a team type's rank.

path Parameters
teamTypeId
required
string
rank
required
string

Responses

Topics

Operations for topics via Admin routes.

Post topic rank

Update the ranking of topics.

path Parameters
topicId
required
string
query Parameters
index
string
parentTopicId
string

Responses

Reset topic ranks

Reset welcome topic ranks. If parentTopicId is provided then only reset the ranks of the topics that are children of the parent topic.

query Parameters
parentTopicId
string

Responses

Users

Operations for users via Admin routes.

Add users

Add users to a hub. If teams are specified, the users will be added to the userTeams. Utilised by the Zapier integration.

header Parameters
host
string
Request Body schema: application/json
password
any
send_email
any
teamId
any
users
any

Responses

Request samples

Content type
application/json
{
  • "password": "any",
  • "send_email": "any",
  • "teamId": "any",
  • "users": "any"
}

Get users audit

Get the audit information for users.

query Parameters
format
string
search
string
userId
string

Responses

Invite users

Send invitations to users.

Request Body schema: application/json
ids
any

Responses

Request samples

Content type
application/json
{
  • "ids": "any"
}

Get users with team roles

Get users with team roles (member or manager role)

query Parameters
search
string
team
string
role
string

Responses

Update a user

Update a user's information by id.

path Parameters
userId
required
number (UserId)
Example: 1

User id

header Parameters
host
string
Request Body schema:
required
any

Responses

Request samples

Content type
null

Response samples

Content type
{
  • "success": true
}

Update a user

Update a user's information by id.

path Parameters
userId
required
number (UserId)
Example: 1

User id

header Parameters
host
string
Request Body schema:
required
any

Responses

Request samples

Content type
null

Response samples

Content type
{
  • "success": true
}

Get a user's asset stats

Get a user's asset stats for a given duration.

path Parameters
userId
required
string
query Parameters
duration
string

Responses

Get hubs a user belongs too

Fetch hubs a user belongs too

path Parameters
userId
required
string
query Parameters
limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Welcome Views

Operations for welcome views via Admin routes.

Reset welcome views

Reset welcome views for all users in the domain.

Responses

Assets

Operations for assets via Store routes.

Create assets

Creates assets and assigns them to a owner team, if provided

Request Body schema: application/json
map(asset
any
length
any

Responses

Request samples

Content type
application/json
{
  • "map(asset": "any",
  • "length": "any"
}

Updates an asset

Updates an asset, including changing the owner team if provided

path Parameters
assetId
required
number (ContentId)
Example: 1

Content id

Request Body schema:
required
name
string or null

Asset name. Optional unless webUrl is not defined

webUrl
string or null

WebUrl. Optional unless name if not defined (the asset is a web link). Can only be updated if type === web

published
boolean or null

Will need to be set to true to publish the asset

type
string (AssetContentType)
Enum: "upload" "zip" "web" "scorm"

All asset content types. See types in content table.

fileFormat
string (FileFormat)
Default: null

Format of a file

customType
string (AssetCustomType)
Default: null

Custom type for an asset. See types in content table.

ownerTeamId
number (OwnerTeamId)

Team id of the content owning team

description
string or null
locale
string (Locale)
Enum: "da-DK" "de-DE" "de-DE-Sie" "en-GB" "en-US" "es-ES" "fi-FI" "fr-FR" "hu-HU" "it-IT" "ja-JP" "ko-KR" "nl-NL" "no-NO" "pl-PL" "pt-PT" "ro-RO" "sv-SE" "th-TH" "zh-CN" "zh-TW"

Locale supported by the hub

tags
Array of numbers (TagIds)
subtitles
Array of numbers (FileId)

Optional list of Subtitles IDs. If present, this list of subtitles IDs will replace all video subtitles

fileId
number (FileId)

File id

thumbnailId
number (ContentCompletionTime)
Default: null

The completion time for a playlist or an asset in minutes.

alternativeText
string or null
download
string (AssetDownload)
Enum: "disabled" "enabled" "required"

Whether an asset must or can be downloaded.

openInIframe
boolean or null
scormAdvancedSettings
object or null

If present, it will replace the scorm_settings of the asset

markAsDoneMode
string (AssetMarkAsDoneMode)
Enum: "automatic" "manual"

Mark as done mode of the asset

refid
string or null

A reference used to identify this asset in the future

externalRefId
string or null

Custom data of an asset

parent_id
number or null

id of a folder/ topic a content belongs to

optional
boolean (ContentOptional)
Default: false

Whether the content has been marked as 'optional' by the user within the specified playlist

parentPlaylistId
number (ContentId)

Content id

Responses

Request samples

Content type
{
  • "name": "Asset name",
  • "published": true,
  • "type": "upload",
  • "fileFormat": null,
  • "customType": "video",
  • "ownerTeamId": 1,
  • "description": "Asset description",
  • "locale": "da-DK",
  • "tags": [
    ],
  • "subtitles": [
    ],
  • "fileId": 1,
  • "thumbnailId": 30,
  • "alternativeText": "string",
  • "download": "disabled",
  • "openInIframe": true,
  • "scormAdvancedSettings": { },
  • "markAsDoneMode": "automatic",
  • "refid": "string",
  • "externalRefId": "string",
  • "parent_id": 0,
  • "optional": false,
  • "parentPlaylistId": 1
}

Response samples

Content type
{
  • "id": 1,
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "name": "Asset name",
  • "goal": {
    },
  • "domain_id": 1,
  • "type": "upload",
  • "customType": "video",
  • "url": "www.5app.com",
  • "downloadUrl": "/api/asset/1/file",
  • "description": "Asset description",
  • "completionTime": 30,
  • "convertedFileType": "mp3",
  • "converted": false,
  • "convertedUrl": "/api/asset/1/file",
  • "openInIframe": true,
  • "download": "disabled",
  • "pictureUrl": "`/api/content/1/thumb`",
  • "rating_count": 1,
  • "user_rated_like": "Whether the content has been 'liked' by the user.",
  • "duration": "The actual duration of an asset in minutes if available. E.g. the length of the video or of the audio file.",
  • "parentId": 1,
  • "parentPlaylists": [
    ],
  • "is_read": true,
  • "isDeleted": false,
  • "isSaved": false,
  • "userContentStatus": "notstarted",
  • "userScormAssetStatus": "completed",
  • "collection_id": 1,
  • "sharers": [
    ],
  • "alternativeText": "Asset alternative text",
  • "published": true,
  • "fileStatus": "draft",
  • "fileFormat": null,
  • "uploadErrorCode": "404",
  • "locale": "da-DK",
  • "brightcoveVideoId": 1,
  • "brightcoveAccountId": 1,
  • "insightsEnabled": true,
  • "commentCount": 0,
  • "commentCountUser": 0,
  • "ownerTeamId": 1,
  • "author": {
    },
  • "original_file_name": "original_file_name",
  • "fileId": 1,
  • "fileSize": 1560,
  • "subtitles": [
    ],
  • "tags": [
    ],
  • "lastUpdated": "2023-02-21T10:52:09.000Z",
  • "scormSettings": "Parsed JSON SCORM settings",
  • "markAsDoneMode": "automatic",
  • "rank": "1.2.04"
}

Deletes an asset

Soft deletes an asset

path Parameters
assetId
required
string
Request Body schema: application/json
optional
any

Responses

Request samples

Content type
application/json
{
  • "optional": "any"
}

Badges

Operations for badges via Store routes. Can only be used if the "Badges" feature flag is enabled.

Fetch all badges

Returns all badges with pagination. Can be accessed by Admins with "Playlist Write" permission and by team managers, if the "Team Playlists" feature flag is enabled.

Responses

Create a badge

Creates a badge for a playlist, assigning the badge to badgeRequirements. Can be accessed by Admins with "Playlist Write" permission and by team managers of the playlist owning team, if the "Team Playlists" feature flag is enabled.

Request Body schema: application/json
contentIds
any
imageId
any

Responses

Request samples

Content type
application/json
{
  • "contentIds": "any",
  • "imageId": "any"
}

Update a badge

Updates a badge for a playlist and undeletes it if previously deleted. Can be accessed by Admins with "Playlist Write" permission and by team managers of the playlist owning team, if the "Team Playlists" feature flag is enabled.

path Parameters
badgeId
required
string
Request Body schema: application/json
contentIds
any
imageId
any

Responses

Request samples

Content type
application/json
{
  • "contentIds": "any",
  • "imageId": "any"
}

Delete a badge

Soft deletes a badge for a playlist. Can be accessed by Admins with "Playlist Write" permission and by team managers of the playlist owning team, if the "Team Playlists" feature flag is enabled.

path Parameters
badgeId
required
string
Request Body schema: application/json
contentIds
any

Responses

Request samples

Content type
application/json
{
  • "contentIds": "any"
}

Badge Images

Operations for badge images via Store routes. Can only be used if the "Badges" feature flag is enabled.

Fetch all badge images

Returns all system and custom badge images with pagination. Can be accessed by Admins with "Playlist Write" permission and by team managers, if the "Team Playlists" feature flag is enabled.

query Parameters
search
string

Responses

Fetch a badge image URL

Returns a badge image URL. Can be accessed by any logged in user.

path Parameters
imageId
required
string
query Parameters
size
string

Responses

Update a custom badge image

Updates a badge image with the type custom. Can be accessed by Admins with "Playlist Write" permission.

path Parameters
imageId
required
string
Request Body schema: application/json
alternativeText
any
style
any

Responses

Request samples

Content type
application/json
{
  • "alternativeText": "any",
  • "style": "any"
}

Delete a custom badge image

Soft deletes a badge image with the type custom. Can be accessed by Admins with "Playlist Write" permission.

path Parameters
imageId
required
string
Request Body schema: application/json
replacementImageId
any

Responses

Request samples

Content type
application/json
{
  • "replacementImageId": "any"
}

Fetch playlists with same badge images

Returns all playlists which use the same badge image. Can be accessed by any logged in user.

path Parameters
imageId
required
string

Responses

Content

Operations for content (e.g. playlists, assets, sections) via Store routes.

Get content list

Get content which is is used in the report filter, Asset/Playlist/Topic pickers etc.

query Parameters
audience
string (ContentListAudience)
Enum: "all" "noadmin"

Audience to filter content by for content list

teamIds
Array of numbers (TeamIds)
Example: teamIds=1
type
string (ContentType)
Enum: "playlist" "folder" "section" "topic" "upload" "zip" "web" "scorm" "section"

All content types

search
string (Search)
Example: search=playlistName

Search terms to filter the result by.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

start
number (Offset)
Example: start=1

The number used to identify the starting point to return rows from a result set.

privilege
string (Privilege)
Enum: "settings_read" "settings_write" "user_write" "user_read" "report_write" "report_read" "nudge_write" "nudge_read" "playlist_write" "playlist_read" "asset_write" "asset_read"
Example: privilege=admin

User privilege level

playlistIdForCircularReferenceCheck
number (PlaylistIdForCircularReferenceCheck)
Example: playlistIdForCircularReferenceCheck=1

Only applicable for playlists. Pass through a content Id to check whether the playlist could create a circular reference

getFullData
boolean (ContentGetFullData)
Example: getFullData=true

Whether to return the full data of the content

id
number (ContentId)
Example: id=1

Content id

owner
string (ContentListOwner)
Default: "common"
Enum: "local" "local_and_common" "common"
Example: owner=common

Owner of content. Does this include assets which are: common (default) (belong to a playlist which is available on hub), local * NOT IMPLEMENTED * (created just for this hub, might not be in a playlist) or local_and_common (both)

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "nextOffset": 1
}

Get content for content cards

Get very basic metadata surrounding a bit of content (assets and playlists), usually to fill components such as cards

query Parameters
content_id
string

Responses

Me - Assets

User specific operations for assets via Store routes.

Fetch all store assets available to a user

Fetch all of the user's assets available in the store with pagination. Can be filtered by asset completion status.

query Parameters
search
string (AssetSearch)
Enum: "completed" "uncompleted" "saved"

Search terms to filter the query by.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
[
  • {
    }
]

Fetch store assets by id

Fetch an asset available in the store by id. If a playlistId is provided in the path, the asset must be in that collection.

path Parameters
assetId
required
string

Responses

Response samples

Content type
{
  • "id": 1,
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "name": "Asset name",
  • "goal": {
    },
  • "domain_id": 1,
  • "type": "upload",
  • "customType": "video",
  • "url": "www.5app.com",
  • "downloadUrl": "/api/asset/1/file",
  • "description": "Asset description",
  • "completionTime": 30,
  • "convertedFileType": "mp3",
  • "converted": false,
  • "convertedUrl": "/api/asset/1/file",
  • "openInIframe": true,
  • "download": "disabled",
  • "pictureUrl": "`/api/content/1/thumb`",
  • "rating_count": 1,
  • "user_rated_like": "Whether the content has been 'liked' by the user.",
  • "duration": "The actual duration of an asset in minutes if available. E.g. the length of the video or of the audio file.",
  • "parentId": 1,
  • "parentPlaylists": [
    ],
  • "is_read": true,
  • "isDeleted": false,
  • "isSaved": false,
  • "userContentStatus": "notstarted",
  • "userScormAssetStatus": "completed",
  • "collection_id": 1,
  • "sharers": [
    ],
  • "alternativeText": "Asset alternative text",
  • "published": true,
  • "fileStatus": "draft",
  • "fileFormat": null,
  • "uploadErrorCode": "404",
  • "locale": "da-DK",
  • "brightcoveVideoId": 1,
  • "brightcoveAccountId": 1,
  • "insightsEnabled": true,
  • "commentCount": 0,
  • "commentCountUser": 0,
  • "ownerTeamId": 1,
  • "author": {
    },
  • "original_file_name": "original_file_name",
  • "fileId": 1,
  • "fileSize": 1560,
  • "subtitles": [
    ],
  • "tags": [
    ],
  • "lastUpdated": "2023-02-21T10:52:09.000Z",
  • "scormSettings": "Parsed JSON SCORM settings",
  • "markAsDoneMode": "automatic",
  • "rank": "1.2.04"
}

Fetch store assets by id

Fetch an asset available in the store by id. If a playlistId is provided in the path, the asset must be in that collection.

path Parameters
assetId
required
string
playlistId
required
string

Responses

Response samples

Content type
{
  • "id": 1,
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "name": "Asset name",
  • "goal": {
    },
  • "domain_id": 1,
  • "type": "upload",
  • "customType": "video",
  • "url": "www.5app.com",
  • "downloadUrl": "/api/asset/1/file",
  • "description": "Asset description",
  • "completionTime": 30,
  • "convertedFileType": "mp3",
  • "converted": false,
  • "convertedUrl": "/api/asset/1/file",
  • "openInIframe": true,
  • "download": "disabled",
  • "pictureUrl": "`/api/content/1/thumb`",
  • "rating_count": 1,
  • "user_rated_like": "Whether the content has been 'liked' by the user.",
  • "duration": "The actual duration of an asset in minutes if available. E.g. the length of the video or of the audio file.",
  • "parentId": 1,
  • "parentPlaylists": [
    ],
  • "is_read": true,
  • "isDeleted": false,
  • "isSaved": false,
  • "userContentStatus": "notstarted",
  • "userScormAssetStatus": "completed",
  • "collection_id": 1,
  • "sharers": [
    ],
  • "alternativeText": "Asset alternative text",
  • "published": true,
  • "fileStatus": "draft",
  • "fileFormat": null,
  • "uploadErrorCode": "404",
  • "locale": "da-DK",
  • "brightcoveVideoId": 1,
  • "brightcoveAccountId": 1,
  • "insightsEnabled": true,
  • "commentCount": 0,
  • "commentCountUser": 0,
  • "ownerTeamId": 1,
  • "author": {
    },
  • "original_file_name": "original_file_name",
  • "fileId": 1,
  • "fileSize": 1560,
  • "subtitles": [
    ],
  • "tags": [
    ],
  • "lastUpdated": "2023-02-21T10:52:09.000Z",
  • "scormSettings": "Parsed JSON SCORM settings",
  • "markAsDoneMode": "automatic",
  • "rank": "1.2.04"
}

Fetch a user's asset status

Fetch the status of assets and scorm assets for a user to be displayed in the store

path Parameters
assetId
required
string
header Parameters
host
string

Responses

Put the status of an asset to read

Set the status of an asset to read, thereby marking it as done

path Parameters
assetId
required
string

Responses

Put the status of an asset to unread

Set the status of an asset to unread, thereby unmarking it as done

path Parameters
assetId
required
string

Responses

Set an asset as saved ("favourite")

Set an asset as saved ("favourite") by adding an entry for assetFavourites

path Parameters
assetId
required
string

Responses

Set an asset as no longer saved ("favourite")

Remove an asset as saved ("favourite") by deleting the entry for assetFavourites

path Parameters
assetId
required
string

Responses

Rate an asset as liked and give feedback

Put the rating (like) and feedback for an asset

path Parameters
assetId
required
string
Request Body schema: application/json
message
any
rating
any
rated_like
any

Responses

Request samples

Content type
application/json
{
  • "message": "any",
  • "rating": "any",
  • "rated_like": "any"
}

Me - Content

User specific operations for content via Store routes.

Fetch featured content

Fetch contents which are being featured for a user

query Parameters
limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Fetch a user's saved assets and playlists

Fetch all saved assets and playlists available to a user in the store with pagination. Can be filtered by content completion status and whether it is an asset or a playlist.

query Parameters
status
string (MyContentStatus)
Enum: "all" "opened" "completed"

Content has been opened, completed or both

type
string (MyContentType)
Enum: "all" "assets" "playlists"

Content is an asset, playlist or both

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Fetch user's todo assets and playlists with due date

Fetch all todo assets and playlists with due date set available to user in the store with pagination. Can be filtered by content type (asset or a playlist).

query Parameters
type
string (MyContentType)
Enum: "all" "assets" "playlists"

Content is an asset, playlist or both

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Fetch a user's content history

Fetch all assets and playlists that a user has interacted with in the store with pagination. Can be filtered by content completion status and whether it is an asset or a playlist.

query Parameters
status
string (MyContentStatus)
Enum: "all" "opened" "completed"

Content has been opened, completed or both

type
string (MyContentType)
Enum: "all" "assets" "playlists"

Content is an asset, playlist or both

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Get content search

Search for assets, topics and playlists for the store

query Parameters
query
string (Search)
Example: query=playlistName

Search terms to filter the result by.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "nextOffset": 1
}

Get content search terms

Search for tags by name

query Parameters
query
string (Search)
Example: query=playlistName

Search terms to filter the result by.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "nextOffset": 1
}

Get comments

Get comments and comment count for a playlist or asset

path Parameters
contentId
required
number (ContentId)
Example: 1

Content id

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Create a comment

Create a user comment for a playlist or asset

path Parameters
contentId
required
number (ContentId)
Example: 1

Content id

Request Body schema:
required
message
required
string
parentId
number (ContentId)

Content id

Responses

Request samples

Content type
{
  • "message": "This is a comment",
  • "parentId": 1
}

Response samples

Content type
{
  • "id": 1,
  • "message": "This is a comment",
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "hasSubscribed": true
}

Update a comment

Update a user comment for a playlist or asset

path Parameters
contentId
required
number (ContentId)
Example: 1

Content id

commentId
required
number (CommentId)
Example: 1

Comment id

Request Body schema:
required
message
required
string

Responses

Request samples

Content type
{
  • "message": "This is an updated comment"
}

Response samples

Content type
{
  • "success": true
}

Delete a comment

Delete a user comment for a playlist or asset

path Parameters
contentId
required
number (ContentId)
Example: 1

Content id

commentId
required
number (CommentId)
Example: 1

Comment id

Responses

Response samples

Content type
{
  • "success": true
}

Me - Filters

User specific operations for filters via Store routes.

Get topic filters for a user

Get topic filters for a user

query Parameters
topic
string

Responses

Me - Managed Assets

User specific operations for managed assets via Store routes.

Fetch insights for a managed asset

Fetch insights for a managed asset. This also includes team specific asset insights for team managers.

path Parameters
assetId
required
string
query Parameters
teamIds
string

Responses

Fetch user stats for a managed asset

Fetch user stats for a managed asset. This also includes team specific asset stats for team managers.

path Parameters
assetId
required
string
query Parameters
search
string
progress
string
start
string
limit
string
order
string
column
string
teamIds
string

Responses

Me - Managed Playlists

User specific operations for managed playlists via Store routes.

Fetch insights for a managed playlist

Fetch insights for a managed playlist. This also includes team specific playlist insights for team managers.

path Parameters
playlistId
required
string
query Parameters
teamIds
string

Responses

Fetch user stats for a managed playlist

Fetch user stats for a managed playlist. This also includes team specific playlist stats for team managers.

path Parameters
playlistId
required
string
query Parameters
search
string
progress
string
start
string
limit
string
order
string
column
string
teamIds
string

Responses

Me - Managed Teams

User specific operations for managed teams via Store routes.

Fetch a user's managed teams

Fetch the total count and the list of teams which the user manages. By providing the hasUsers query parameter, the list of teams will be filtered to only include teams which have users. By providing the playlistId query parameter, the list of teams will be filtered to only include teams which have access to the playlist.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Fetch team details

Fetch the details for a team including playlist and user count

path Parameters
id
required
string

Responses

Fetch team insights

Fetch insights for a team for a set amount of days.

path Parameters
id
required
string
query Parameters
days
string

Responses

Fetch team trends

Fetch trends for a team for a set amount of days.

path Parameters
id
required
string
query Parameters
days
string

Responses

Fetch team members

Fetch member details and the member count for a team.

path Parameters
id
required
string
query Parameters
days
string
search
string
column
string
order
string

Responses

Fetch all team member details

Fetch details incl. team types and last activity data for all members of a team.

path Parameters
id
required
string
userId
required
string

Responses

Fetch activity data for a team member

Fetch team member activity for a given duration.

path Parameters
id
required
string
userId
required
string
query Parameters
days
string

Responses

Fetch all team member playlists

Fetch all team member playlists and their count.

path Parameters
id
required
string
userId
required
string
query Parameters
column
string
order
string

Responses

Fetch all team member details

Fetch details incl. team types and last activity data for all members of a team.

path Parameters
userId
required
string

Responses

Fetch activity data for a team member

Fetch team member activity for a given duration.

path Parameters
userId
required
string
query Parameters
days
string

Responses

Fetch all team member playlists

Fetch all team member playlists and their count.

path Parameters
userId
required
string
query Parameters
column
string
order
string

Responses

Me - Managed Team Types

User specific operations for managed team types via Store routes.

Fetch my managed team types

Fetch the managed team types

Responses

Me - Managed Users

User specific operations for managed users via Store routes.

Fetch a user's stats for a playlist

Fetch a user's stats for a specific playlist e.g. for a manager to check the user's playlist progress

path Parameters
userId
required
string
playlistId
required
string
query Parameters
limit
string
order
string
column
string
start
string

Responses

Me - Playlists

User specific operations for playlists via Store routes.

Fetch a user's playlists

Fetch all playlists available to a user in the store with pagination. Can be filtered whether the playlist has a badge.

query Parameters
search
string (MyPlaylistSearch)
Value: "badge"

Search terms to filter the query by.

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
{
  • "playlists": [
    ],
  • "nextOffset": 1,
  • "total": 100
}

Set a playlist as saved

Subscribe to a playlist by setting saved: 1 for a playlist within the userCollections

path Parameters
playlistId
required
string

Responses

Set a playlist as liked or unlike a playlist

Set a playlist within the userCollections as liked (rated_like: 1) or unlike the playlist (rated_like: 0)

path Parameters
playlistId
required
string
Request Body schema: application/json
isLiked
any

Responses

Request samples

Content type
application/json
{
  • "isLiked": "any"
}

Fetch all store playlists containing a specific asset

Fetch basic information for all playlists containing a specific asset available to the user in the store

path Parameters
assetId
required
number (ContentId)
Example: 1

Content id

Responses

Response samples

Content type
[
  • {
    }
]

Fetch recommended playlists

Get a randomised selection of recommended playlists for a user based on their activity

query Parameters
limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

Responses

Response samples

Content type
[
  • [
    ]
]

Get playlists for browsing

Fetch playlists for a user to browse

query Parameters
limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

format
string (Format)
Value: "list"
Example: format=list

Explcitly return items within the standard list format, e.g. {items: [...items], total: 0, nextOffset: 0}

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Me - Profile

Operations for user profiles via Store routes.

Fetch a user's profile

Fetch a user's profile

Responses

Update a user's profile

Update a user's profile

Request Body schema: application/json
first_name
any
last_name
any

Responses

Request samples

Content type
application/json
{
  • "first_name": "any",
  • "last_name": "any"
}

Change a user's language

Change a user's account language

header Parameters
host
string

Responses

Fetch stats for a user's profile sections

Fetch the counts of earned badges, saved content items and content items with unachieved target

Responses

Response samples

Content type
{
  • "savedCount": 0,
  • "badgesTotalCount": 0,
  • "badgesAwardedCount": 0,
  • "dueCountComplete": 0,
  • "dueCountIncomplete": 0
}

Me - Settings

User specific operations for settings via Store routes.

Fetch user settings

Fetch user settings incl. notification_channel from userDomains

Responses

Update user settings

Update user settings incl. notification_channel in userDomains

header Parameters
host
string
Request Body schema: application/json
notification_channel
any
settingsToPatch
any

Responses

Request samples

Content type
application/json
{
  • "notification_channel": "any",
  • "settingsToPatch": "any"
}

Me - Shared

Operations for content shared with a user via Store routes.

Fetch assets or playlists shared with a user

Fetch assets and playlists which were shared with a user

query Parameters
limit
number (Limit)
Example: limit=1

The number of items to return per page.

Responses

Response samples

Content type
{
  • "items": [
    ],
  • "total": 100,
  • "nextOffset": 1
}

Dismiss assets or playlists shared with a user

Dismiss assets and playlists which were shared with a user as no longer shared

Request Body schema: application/json
share_ref_id
any
share_context_id
any

Responses

Request samples

Content type
application/json
{
  • "share_ref_id": "any",
  • "share_context_id": "any"
}

Me - Subscriptions

Operations for a user's subscriptions to e.g. comments via Store routes.

Fetch user comment subscriptions

Fetch a user's content comment subscriptions

path Parameters
contentId
required
number (ContentId)
Example: 1

Content id

Responses

Response samples

Content type
{
  • "isSubscribed": true
}

Update a user's user comment subscription

Update a user's user comment subscription for a piece of content

path Parameters
contentId
required
number (ContentId)
Example: 1

Content id

Request Body schema:
required
isSubscribed
boolean

Responses

Request samples

Content type
{
  • "isSubscribed": true
}

Response samples

Content type
{
  • "isSubscribed": true
}

Mindset AI

Operations for Mindset AI via Store routes.

Fetch Mindset AI auth token

Uses hub config values to fetch the Mindset AI auth token

Responses

Response samples

Content type
{
  • "authToken": "TOKENSTRING"
}

Fetch Mindset AI agent uid

Uses hub config values to fetch the Mindset AI agent uid for this user

Responses

Response samples

Content type
{
  • "agentUid": "STRING"
}

Playlists

Operations for playlists and team playlists via Store routes.

Fetch a playlist for the current user

Fetch a playlist with user specific data

query Parameters
playlistId
required
number (ContentId)
Example: playlistId=1

Content id

Responses

Response samples

Content type
{
  • "id": 1,
  • "allow_member_contributions": true,
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "contentCount": 10,
  • "completionTime": "6",
  • "audience": "all",
  • "teamIds": [
    ],
  • "author": {
    },
  • "sharers": [
    ],
  • "badge": {
    },
  • "commentCount": 0,
  • "domain_id": 1,
  • "description": "Playlist description",
  • "hasPlaylistNumbering": true,
  • "isDeleted": false,
  • "lastUpdated": "2024-09-24T09:30:42.000Z",
  • "locale": "da-DK",
  • "name": "Playlist name",
  • "originatingId": 1,
  • "ownerTeamId": 1,
  • "pictureUrl": "`/api/content/1/thumb`",
  • "parentPlaylists": [
    ],
  • "rating_count": 1,
  • "saved": false,
  • "sourceDomain": {
    },
  • "tags": [
    ],
  • "topics": [
    ],
  • "type": "playlist",
  • "commentCountUser": 0,
  • "completionRate": 0,
  • "hasUserBadge": true,
  • "insightsEnabled": true,
  • "isSaved": false,
  • "user_rated_like": true,
  • "userContentStatus": "notstarted",
  • "recommendationType": "user",
  • "goal": {
    }
}

Fetch a playlist for the current user

Fetch a playlist with user specific data

query Parameters
playlistId
required
number (ContentId)
Example: playlistId=1

Content id

Responses

Response samples

Content type
{
  • "id": 1,
  • "allow_member_contributions": true,
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "contentCount": 10,
  • "completionTime": "6",
  • "audience": "all",
  • "teamIds": [
    ],
  • "author": {
    },
  • "sharers": [
    ],
  • "badge": {
    },
  • "commentCount": 0,
  • "domain_id": 1,
  • "description": "Playlist description",
  • "hasPlaylistNumbering": true,
  • "isDeleted": false,
  • "lastUpdated": "2024-09-24T09:30:42.000Z",
  • "locale": "da-DK",
  • "name": "Playlist name",
  • "originatingId": 1,
  • "ownerTeamId": 1,
  • "pictureUrl": "`/api/content/1/thumb`",
  • "parentPlaylists": [
    ],
  • "rating_count": 1,
  • "saved": false,
  • "sourceDomain": {
    },
  • "tags": [
    ],
  • "topics": [
    ],
  • "type": "playlist",
  • "commentCountUser": 0,
  • "completionRate": 0,
  • "hasUserBadge": true,
  • "insightsEnabled": true,
  • "isSaved": false,
  • "user_rated_like": true,
  • "userContentStatus": "notstarted",
  • "recommendationType": "user",
  • "goal": {
    }
}

Fetch a playlist's content for the current user

Fetch a playlist's user-accessible contents with user specific data

query Parameters
playlistId
required
number (ContentId)
Example: playlistId=1

Content id

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

format
string (Format)
Value: "list"
Example: format=list

Explcitly return items within the standard list format, e.g. {items: [...items], total: 0, nextOffset: 0}

Responses

Response samples

Content type
{
  • "items": {
    },
  • "total": 100,
  • "nextOffset": 1
}

Fetch all team playlists

Get all team playlists by teamId

query Parameters
teamId
number (TeamId)
Example: teamId=1

Team id

Responses

Response samples

Content type
{
  • "list": [
    ]
}

Create a playlist

Create a new playlist and, if supplied, assign the team as the owner

Request Body schema:
required
name
required
string
description
string or null
locale
string (Locale)
Enum: "da-DK" "de-DE" "de-DE-Sie" "en-GB" "en-US" "es-ES" "fi-FI" "fr-FR" "hu-HU" "it-IT" "ja-JP" "ko-KR" "nl-NL" "no-NO" "pl-PL" "pt-PT" "ro-RO" "sv-SE" "th-TH" "zh-CN" "zh-TW"

Locale supported by the hub

tags
Array of numbers (TagIds)
topics
Array of numbers (TopicIds)
thumbnailId
number (ContentThumbnailId)

thumbnailId of the content

ownerTeamId
number (OwnerTeamId)

Team id of the content owning team

allow_member_contributions
boolean or null
playlist_numbering
boolean or null
optional
boolean (ContentOptional)
Default: false

Whether the content has been marked as 'optional' by the user within the specified playlist

parentPlaylistId
number (ContentId)

Content id

Responses

Request samples

Content type
{
  • "name": "Playlist name",
  • "description": "Playlist description",
  • "locale": "da-DK",
  • "tags": [
    ],
  • "topics": [
    ],
  • "thumbnailId": 1,
  • "ownerTeamId": 1,
  • "allow_member_contributions": true,
  • "playlist_numbering": true,
  • "optional": false,
  • "parentPlaylistId": 1
}

Response samples

Content type
{
  • "id": 1,
  • "allow_member_contributions": true,
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "contentCount": 10,
  • "completionTime": "6",
  • "audience": "all",
  • "teamIds": [
    ],
  • "author": {
    },
  • "sharers": [
    ],
  • "badge": {
    },
  • "commentCount": 0,
  • "domain_id": 1,
  • "description": "Playlist description",
  • "hasPlaylistNumbering": true,
  • "isDeleted": false,
  • "lastUpdated": "2024-09-24T09:30:42.000Z",
  • "locale": "da-DK",
  • "name": "Playlist name",
  • "originatingId": 1,
  • "ownerTeamId": 1,
  • "pictureUrl": "`/api/content/1/thumb`",
  • "parentPlaylists": [
    ],
  • "rating_count": 1,
  • "saved": false,
  • "sourceDomain": {
    },
  • "tags": [
    ],
  • "topics": [
    ],
  • "type": "playlist",
  • "commentCountUser": 0,
  • "completionRate": 0,
  • "hasUserBadge": true,
  • "insightsEnabled": true,
  • "isSaved": false,
  • "user_rated_like": true,
  • "userContentStatus": "notstarted",
  • "recommendationType": "user",
  • "goal": {
    }
}

Fetch a playlist

Get a single playlist by id

query Parameters
playlistId
required
number (ContentId)
Example: playlistId=1

Content id

includeDeleted
boolean (IncludeDeletedPlaylist)
Default: false
Example: includeDeleted=false

Whether data for a deleted playlist should be included in the response.

Responses

Response samples

Content type
{
  • "id": 1,
  • "allow_member_contributions": true,
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "contentCount": 10,
  • "completionTime": "6",
  • "audience": "all",
  • "teamIds": [
    ],
  • "author": {
    },
  • "sharers": [
    ],
  • "badge": {
    },
  • "commentCount": 0,
  • "domain_id": 1,
  • "description": "Playlist description",
  • "hasPlaylistNumbering": true,
  • "isDeleted": false,
  • "lastUpdated": "2024-09-24T09:30:42.000Z",
  • "locale": "da-DK",
  • "name": "Playlist name",
  • "originatingId": 1,
  • "ownerTeamId": 1,
  • "pictureUrl": "`/api/content/1/thumb`",
  • "parentPlaylists": [
    ],
  • "rating_count": 1,
  • "saved": false,
  • "sourceDomain": {
    },
  • "tags": [
    ],
  • "topics": [
    ],
  • "type": "playlist"
}

Update a playlist

Update update one or multiple fields of a playlist by id

path Parameters
playlistId
required
number (ContentId)
Example: 1

Content id

Request Body schema:
required
name
string or null
description
string or null
locale
string (Locale)
Enum: "da-DK" "de-DE" "de-DE-Sie" "en-GB" "en-US" "es-ES" "fi-FI" "fr-FR" "hu-HU" "it-IT" "ja-JP" "ko-KR" "nl-NL" "no-NO" "pl-PL" "pt-PT" "ro-RO" "sv-SE" "th-TH" "zh-CN" "zh-TW"

Locale supported by the hub

tags
Array of numbers (TagIds)
topics
Array of numbers (TopicIds)
thumbnailId
number (ContentThumbnailId)

thumbnailId of the content

ownerTeamId
number (OwnerTeamId)

Team id of the content owning team

allow_member_contributions
boolean or null
playlist_numbering
boolean or null
externalRefId
string or null

Custom data

optional
boolean (ContentOptional)
Default: false

Whether the content has been marked as 'optional' by the user within the specified playlist

parentPlaylistId
number (ContentId)

Content id

Responses

Request samples

Content type
{
  • "name": "Playlist name",
  • "description": "Playlist description",
  • "locale": "da-DK",
  • "tags": [
    ],
  • "topics": [
    ],
  • "thumbnailId": 1,
  • "ownerTeamId": 1,
  • "allow_member_contributions": true,
  • "playlist_numbering": true,
  • "externalRefId": "string",
  • "optional": false,
  • "parentPlaylistId": 1
}

Response samples

Content type
{
  • "id": 1,
  • "allow_member_contributions": true,
  • "createdTime": "2023-02-21T10:52:09.000Z",
  • "contentCount": 10,
  • "completionTime": "6",
  • "audience": "all",
  • "teamIds": [
    ],
  • "author": {
    },
  • "sharers": [
    ],
  • "badge": {
    },
  • "commentCount": 0,
  • "domain_id": 1,
  • "description": "Playlist description",
  • "hasPlaylistNumbering": true,
  • "isDeleted": false,
  • "lastUpdated": "2024-09-24T09:30:42.000Z",
  • "locale": "da-DK",
  • "name": "Playlist name",
  • "originatingId": 1,
  • "ownerTeamId": 1,
  • "pictureUrl": "`/api/content/1/thumb`",
  • "parentPlaylists": [
    ],
  • "rating_count": 1,
  • "saved": false,
  • "sourceDomain": {
    },
  • "tags": [
    ],
  • "topics": [
    ],
  • "type": "playlist",
  • "commentCountUser": 0,
  • "completionRate": 0,
  • "hasUserBadge": true,
  • "insightsEnabled": true,
  • "isSaved": false,
  • "user_rated_like": true,
  • "userContentStatus": "notstarted",
  • "recommendationType": "user",
  • "goal": {
    }
}

Delete playlist

Soft deletes a playlist by id

query Parameters
playlistId
required
number (ContentId)
Example: playlistId=1

Content id

Responses

Response samples

Content type
{
  • "success": true
}

Fetch a playlist and its content

Fetch a playlist with its contents

query Parameters
playlistId
required
number (ContentId)
Example: playlistId=1

Content id

limit
number (Limit)
Example: limit=1

The number of items to return per page.

offset
number (Offset)
Example: offset=1

The number used to identify the starting point to return rows from a result set.

includeDeleted
boolean (IncludeDeletedPlaylist)
Default: false
Example: includeDeleted=false

Whether data for a deleted playlist should be included in the response.

Responses

Response samples

Content type
{
  • "items": {
    },
  • "total": 100,
  • "nextOffset": 1
}

Add new content to a playlist

Add new content (assets or playlist links) to a playlist

path Parameters
playlistId
required
number (ContentId)
Example: 1

Content id

Request Body schema:
required
Array of objects
Array
id
number (ContentId)

Content id

optional
boolean (ContentOptional)
Default: false

Whether the content has been marked as 'optional' by the user within the specified playlist

rank
string (PlaylistContentRank)

Ranking of a piece of content within a playlist. Up to 3 levels deep.

Responses

Request samples

Content type
{
  • "content": [
    ]
}

Response samples

Content type
{
  • "success": true
}

Update playlist content

Update the content (assets, playlists, sections) and content order of a playlist and create new sections.
Note: all content of the playlist must be sent with contentId and rank (and any changes). Only new sections to be created are sent without a contentId.
If content is not sent, it will be removed from the playlist. Removed sections will additionally be deleted.

path Parameters
playlistId
required
number (ContentId)
Example: 1

Content id

Request Body schema:
required
Array
Any of
rank
required
string (PlaylistContentRank)

Ranking of a piece of content within a playlist. Up to 3 levels deep.

object (PlaylistSectionNewDetails)

Responses

Request samples

Content type
[
  • {
    }
]

Response samples

Content type
{
  • "success": true
}

Delete content from a playlist

Remove content (assets, sections) from a playlist by deleting the entry in assetCollections

path Parameters
playlistId
required
string
contentId
required
string

Responses

Add a new section to a playlist

Add a new section to a playlist

path Parameters
playlistId
required
string

Responses

Reports

Operations for reports via Store routes.

Fetch available team reports

Return a list of all available team reports. Can be accessed by Admins with "Report Read" permission and by team managers, if the "Manager Reports" feature flag is enabled.

query Parameters
teamId
string

Responses

Fetch a report

Returns a report. Can be accessed by Admins with "Report Read" permission and by team managers, if the "Manager Reports" feature flag is enabled.

path Parameters
id
required
string
query Parameters
table
string
fields
string
filter
string
notfound
string
attachment
string
format
string
teamId
string
sessionToken
string

Responses

Tags

Operations for tags via Store routes.

Create tags

Create new tags in the hub without assigning them to content

Request Body schema: application/json
map(tagName
any
length
any

Responses

Request samples

Content type
application/json
{
  • "map(tagName": "any",
  • "length": "any"
}

Get all tags

Get all hub tags

Responses

Topics

Operations for topics via Store routes.

Fetch all topics

Get all topics in the hub.

Responses

Post topic rank

Update the ranking of topics.

path Parameters
topicId
required
string
query Parameters
index
string
parentTopicId
string

Responses

URL

Operations for urls via Store routes.

Get URL

Get the URL address of e.g. an asset

query Parameters
url
string

Responses

Recommendations

Operations for recommendations via Sharing routes.

Get users or teams to recommend content to

Get a list of users or teams to recommend content to depending on their permissions.

query Parameters
assetIds
string
query
string
collections
string

Responses

Recommend content to users or teams

Share recommended content to users or teams via email, same as the share content nudge actions.

Request Body schema: application/json
share_ref_ids
any
share_context_ids
any
sendEmail
any
subject
any
message
any
testMode
any
label
any
searchQuery
any
limit
any
user_ids
any
team_ids
any
type
any

Responses

Request samples

Content type
application/json
{
  • "share_ref_ids": "any",
  • "share_context_ids": "any",
  • "sendEmail": "any",
  • "subject": "any",
  • "message": "any",
  • "testMode": "any",
  • "label": "any",
  • "searchQuery": "any",
  • "limit": "any",
  • "user_ids": "any",
  • "team_ids": "any",
  • "type": "any"
}

Delete a team recommendation

Delete a content recommendation for a team to stop auto-sharing a playlist with a team from the team settings. Used by admins.

Request Body schema: application/json
team_id
any
playlist_id
any
action
any

Responses

Request samples

Content type
application/json
{
  • "team_id": "any",
  • "playlist_id": "any",
  • "action": "any"
}

Files

Operations for files via Files routes.

Get thumbnail for users and content

Get the thumbnail for an asset or playlist by the contentId. Or user avatar. The thumbnail can be requested in different sizes.

path Parameters
pictureId
required
number (FileId)
Example: 1

File id

dimensions?
required
string
dimensions
required
string (ImageDimensions)
Example: /w_75,h_50

The size of the picture in pixels

Responses

Get the file's upload policy.

Use the file to get it's S3 upload policy and token for processing the file after upload.

Request Body schema: application/json
filename
any
contentType
any
size
any
type
any
referenceId
any
referenceIds
any
language
any
alternativeText
any
style
any
skipPostProcessing
any
skipAssigningToReference
any
notifyOnProcessingCompletion
any

Responses

Request samples

Content type
application/json
{
  • "filename": "any",
  • "contentType": "any",
  • "size": "any",
  • "type": "any",
  • "referenceId": "any",
  • "referenceIds": "any",
  • "language": "any",
  • "alternativeText": "any",
  • "style": "any",
  • "skipPostProcessing": "any",
  • "skipAssigningToReference": "any",
  • "notifyOnProcessingCompletion": "any"
}

Upload and process a file

Upload and postprocess a file depending on its type

Request Body schema: application/json
error
any
uploadToken
any

Responses

Request samples

Content type
application/json
{
  • "error": "any",
  • "uploadToken": "any"
}

Get file information

Get file information by it's id, such as its status, duration and notification settings

path Parameters
fileId
required
number (FileId)
Example: 1

File id

Responses

Response samples

Content type
{
  • "fileStatus": "draft",
  • "duration": "The actual duration of an asset in minutes if available. E.g. the length of the video or of the audio file.",
  • "notifyOnProcessingCompletion": false
}

Cancel file post-processing notification

Cancel the post-processing notification for a file

path Parameters
fileId
required
string

Responses

Content Files

Operations for content files via Files routes.

Get asset file by type

Get an asset's file by asset ID and type. When fetching subtitle files, also provide the subtitle id.

path Parameters
assetId
required
string
type
required
string
subId?
required
string
query Parameters
cdn
string
redirect
string
download
string
wrap
string
baseUrl
string
header Parameters
user-agent
string

Responses

Messages

Operations for messages via Message routes.

Send a content request message

Send a user's content request form to the admin

Request Body schema: application/json
content
any
name
any

Responses

Request samples

Content type
application/json
{
  • "content": "any",
  • "name": "any"
}

Get messages and unread count

Get all message and the unread messages count for a user

Responses

Mark all message as read

Mark all message as read by a user

Request Body schema: application/json
read
any

Responses

Request samples

Content type
application/json
{
  • "read": "any"
}

Mark message as read

Mark a message as read by a user

path Parameters
id
required
string
Request Body schema: application/json
read
any

Responses

Request samples

Content type
application/json
{
  • "read": "any"
}