Secure Code Warrior (Independent Publisher) (Preview)

This Secure Code Warrior(https://securecodewarrior.com) connector provides programmatic access to the learning platform. Secure Code Warrior makes secure coding a positive and engaging experience for developers as they increase their software security skills. With our flagship Learning Platform, we guide each coder along their own preferred learning pathway, so that security-skilled developers become the everyday superheroes of our connected world.

This connector is available in the following products and regions:

Service Class Regions
Logic Apps Standard All Logic Apps regions except the following:
     -   Azure Government regions
     -   Azure China regions
     -   US Department of Defense (DoD)
Power Automate Premium All Power Automate regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Power Apps Premium All Power Apps regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Contact
Name Troy Taylor
URL https://www.hitachisolutions.com
Email [email protected]
Connector Metadata
Publisher Hitachi Solutions
Find out more about Secure Code Warrior https://docs.microsoft.com/connectors/securecodewarrior
Website https://www.securecodewarrior.com/
Privacy policy https://www.securecodewarrior.com/trust/privacy-policy
Categories IT Operations

Creating a connection

The connector supports the following authentication types:

Default Parameters for creating connection. All regions Not shareable

Default

Applicable: All regions

Parameters for creating connection.

This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.

Name Type Description Required
API Token securestring The API tokenfor this api True

Throttling Limits

Name Calls Renewal Period
API calls per connection 100 60 seconds

Actions

Assign Assessments

This endpoint will assign the given assessment to the specified users/teams. Returns a list of users that were assigned to the assessment with their email, inviteUrl and status indicating whether invite email was sent.

Create a team

This is used to create a team.

Create a user

Creates a User.

Delete team

This is used to delete a team.

Delete User

Deletes the user referenced by the given ID.

Get Activity Strengths and Weaknesses

This endpoint returns the average strengths and weaknesses for a company, team or user (depending on the level of granularity of the query) for a specific language or all languages

Get Activity Top Performers

This is used to retrieve list of top performing users.

Get all courses

This endpoint will return a list of Course objects which contain a range of datapoints related to courses. This includes course IDs, which may be used in conjunction with the other course API endpoints.

Get Assessment Attempts

This endpoint returns a detailed report for all developers who have taken the Assessment with the given ID. The scope of the report may be filtered in a number of ways. You may filter results to a given developer by supplying their email address with the query. If a start date is provided, only attempts started or completed after (and including) this date are included. If an end date is provided, only challenges started or completed before this date are included. Providing both indicates a date range to filter on. This includes all the data in the summary report plus details on all the challenges that are a part of the assessment.

Get Assessments

This endpoint will return a list of Assessment objects which contain a range of datapoints related to assessments. This includes assessment IDs, which may be used in conjunction with the other assessments API endpoints.

Get course URL

JSON containing course URL

Get Developer Activity

This endpoint returns the detailed challenge log of all developers within the organisation, with challenge score, difficulty and challenge outcome of the developer.

Get Developer Leaderboard

This endpoint returns a list of all developers within the organisation, with their current stats as well as the change in stats over the report period (which may be 1, 7 or 30 days).

Get Developer Progress

This endpoint returns the training progress of all developers within the organisation, with current realm, level and quest progress.

Get progress of all developers for the course

This endpoint will return the progress of all developers for the specified course.

Get Resources

Learning resources list

Get Team Activity Most Engaged

This endpoint returns the top 'N' most engaged teams.

Get team details

This is used to get details of a team.

Get Team Leaderboard

This endpoint returns a list of all teams within the organisation, with their current stats as well as the change in stats over the report period (which may be 1, 7 or 30 days).

Get Teams

This endpoint will return a list of Team objects which contain a range of datapoints related to teams. This includes team IDs, which may be used in conjunction with the other team API endpoints.

Get time spent

Time spent on the platform across Assessments, Learning, Tournaments and Training.

Get Tournament Leaderboard

This endpoint returns the leaderboard for a single tournament. This includes all levels, challenges and stages that the developer participated in, with detailed metrics of each.

Get Tournaments

This endpoint returns a list of tournaments in the company.

Get User

This is used to retrieve a single user record. The response may be shaped by passing in a fields query parameter listing the attribute names to return.

Get Users

This is used to retrieve all user records. The response may be shaped by passing in a fields query parameter listing the attribute names to return.

Get Users Activity Most Engaged

This endpoint returns the top 'N' most engaged users.

Search Assessment

This endpoint will return a list of Assessment objects which contain a range of datapoints related to assessments. This includes assessment IDs, which may be used in conjunction with the other assessments API endpoints. Results can be filtered based on status, name, supported language and difficulty.

Search Assessment Attempts

This endpoint returns a detailed report for all developers who have taken the Assessment with the given ID. The scope of the report may be filtered in a number of ways. You may filter results to given developer(s) by supplying their email address(es) with the query. If a status is provided, only assessment attempts with specified status are included. If team name(s) provided, only assessment attempts of users within those team(s) are included. If tags(s) is provided, only assessment attempts of users with those tag(s) are included. If a pass_status is provided, only assessment attempts with specified pass_status are included. This includes all the data in the summary report plus details on all the challenges that are a part of the assessment.

Search course developers progress

This endpoint returns the course progress of all developers within the organisation.

Search Developer Leaderboard

This endpoint returns a list of all developers within the organisation, with their current stats. This also lists the change in stats over the report period (which may be 1, 7 or 30 days) or a given date range. Results can be filtered based on developer emails, developer tags and team names.

Search Developers Activity

This endpoint returns the detailed challenge log of all developers within the organisation, with challenge score, difficulty and challenge outcome of the developer. This also lists the challenge log over the report period (which may be 1, 7 or 30 days) or a given date range. Results can be filtered based on developer emails, developer tags and team names.

Search Developers Progress

This endpoint returns the training progress of all developers within the organisation, with current realm, level and quest progress. This also lists the change in developer progress over the report period (which may be 1, 7 or 30 days) or a given date range. Results can be filtered based on developer emails, developer tags and team names.

Search Learning Progress

Learning description Filters - users, teams and tags

Search Tournament Leaderboard

This endpoint returns the leaderboard for a single tournament. This includes all levels, challenges and stages that the developer participated in, with detailed metrics of each. This endpoint can also return the leaderboard over a report period (which may be 1, 7 or 30 days) or a given date range. Results can be filtered based on developer emails, developer tags and team names.

Search Users

This is used to retrieve all user records. The response may be shaped by passing in a fields query parameter listing the attribute names to return. Filter is achieved by passing the filter criteria through the body.

Shows learning resources which have be completed, read or watched

Learning description

Update team details

This is used to update details of a team.

Update User

Updates a user with the given data. Tags will be replaced.

Assign Assessments

This endpoint will assign the given assessment to the specified users/teams. Returns a list of users that were assigned to the assessment with their email, inviteUrl and status indicating whether invite email was sent.

Parameters

Name Key Required Type Description
Assessment ID
assessment_id True string

The assessment ID

users
users array of string

List of users to assign the assessment to

teams
teams array of string

List of teams to assign the assessment to

sendEmail
sendEmail boolean

Flag to indicate if assessment invite email sent on assigning assessment (Default: true)

Returns

Name Path Type Description
assessmentInvitations
assessmentInvitations array of AssessmentAssignResponse

Create a team

This is used to create a team.

Parameters

Name Key Required Type Description
name
name string

Team Name

tags
tags array of string

Any identifying information about the team. Example: Head Quarters, Asia-Pacific, Engineering

activeFrom
activeFrom string

Team Active From. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

activeUntil
activeUntil string

Team Active Until. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

languages
languages array of string

Team languages list, _id and _framework separated by double colons (::) and separated by commas (,)

onboardingmessage
onboardingmessage string

Team On Boarding Message

type
type string

License type

granted
granted integer

Licenses granted (valid only if license type set to usage)

Returns

Team Details

Create a user

Creates a User.

Parameters

Name Key Required Type Description
Send Invite
sendInvite boolean

Flag to disable user invite and invite reminders.

enabled
enabled boolean

Users status on the platform

email
email True string

The email of the user

isProfileComplete
isProfileComplete boolean

Converts properties necessary for profile completion as required. If set to true properties 'name.first' and 'name.last' as required, Else the name is optional

first
first string

User first name. Required if 'isProfileComplete' is set to true

middle
middle string

User middle name

last
last string

User last name. Required if 'isProfileComplete' is set to true

role
role True string

The role assigned to the user which is one of developer, team manager or company administrator

team
team string

The team the user is associated with

tags
tags array of string

Any identifying information about the user. Example: Head Quarters, Asia-Pacific

_id
_id string

Language Id

_framework
_framework string

Language Framework

Returns

User Created
UserCreated

Delete team

This is used to delete a team.

Parameters

Name Key Required Type Description
Team ID
team_id True string

Team ID

Returns

Team Delete Response

Delete User

Deletes the user referenced by the given ID.

Parameters

Name Key Required Type Description
ID
id True string

The user resource ID.

Returns

User Deleted
UserDeleted

Get Activity Strengths and Weaknesses

This endpoint returns the average strengths and weaknesses for a company, team or user (depending on the level of granularity of the query) for a specific language or all languages

Parameters

Name Key Required Type Description
Target Type
targetType string

Type of target. Defaults depending on the scope of the API key. Report key defaults to company. Team key defaults to team.

Target Identifier
targetIdentifier string

Target Identifier (Team Name, User email or User Id)

Language ID
languageId string

Language Id

Language Framework
languageFramework string

Language Framework

Page
page integer

The page number of results

Returns

Average strengths and weaknesses object

Get Activity Top Performers

This is used to retrieve list of top performing users.

Parameters

Name Key Required Type Description
Report Period
report_period integer

The number of days over which to view the changes in statistics

Number of Users
num_users integer

The number of top performers to be returned

Page
page integer

The page number of results

Tags
tags string

Filter results to show top peformers for the specified tags. Specified tags are seperated by commas and uses OR logic to filter results.

Team
team string

Filter results to show top performers for the given team

Start Time
starttime date-time

Includes points from progress completed on or after the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

End Time
endtime date-time

Include points from progress completed on or before the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

Returns

Name Path Type Description
schema
schema TopPerformers

List of top performers

Get all courses

This endpoint will return a list of Course objects which contain a range of datapoints related to courses. This includes course IDs, which may be used in conjunction with the other course API endpoints.

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

Returns

Name Path Type Description
courses
courses array of Course
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Get Assessment Attempts

This endpoint returns a detailed report for all developers who have taken the Assessment with the given ID. The scope of the report may be filtered in a number of ways. You may filter results to a given developer by supplying their email address with the query. If a start date is provided, only attempts started or completed after (and including) this date are included. If an end date is provided, only challenges started or completed before this date are included. Providing both indicates a date range to filter on. This includes all the data in the summary report plus details on all the challenges that are a part of the assessment.

Parameters

Name Key Required Type Description
Assessment ID
assessment_id True string

The assessment ID

Page
page integer

The page number of results

Developer's Email
developer string

The email address of the developer to filter on

Start Date
startdate date-time

Only return attempts started on and after the given date. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

End Date
enddate date-time

Only return attempts started or completed before the given date. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

Returns

Name Path Type Description
attempts
attempts array of object

attempts

ID
attempts._id string

The assessment attempt ID

Assessment
attempts._assessment string

The assessment it belongs to

Assessment Name
attempts.name string

The assessment name

Name
attempts.developer.name string

The name of the developer (first + middle + surname).

Email
attempts.developer.email string

The developer's email address.

Member Since
attempts.developer.member_since string

The date the developer became a member.

Last Logged In
attempts.developer.last_logged_in string

The date the developer last logged in.

Status
attempts.developer.status string

The current status of the developer account.

Company
attempts.developer.company string

The company name that the developer is a part of.

Team
attempts.developer.team string

The team name that the developer is a part of.

tags
attempts.developer.tags array of string

tags

roles
attempts.developer.roles array of string

roles

Status
attempts.status string

Indicates the status of a challenge/assessment which may be pending, in progress, done or 'out of reach'.

Language
attempts.language string

The language/framework of the assessment. null = language/framework not selected for assessment supporting more than one language.

Started
attempts.started string

The date/time that the assessment was started.

Completed
attempts.completed string

The date/time that the assessment was completed

Deadline
attempts.deadline string

The date/time of the assessment deadline. If an assessment does not have a time limit, deadline will be null.

Score
attempts.score integer

Assessment score in %.

Completed In
attempts.completed_in string

The amount of time taken to complete the assessment attempt.

Passing Grade
attempts.passing_grade integer

The percentage required to pass the assessment.

Pass Status
attempts.pass_status string

The pass status of the assessment.

Correct
attempts.progress.correct integer

The number of correct challenges.

Incorrect
attempts.progress.incorrect integer

The number of incorrect challenges.

Number of Challenges
attempts.progress.number_of_challenges integer

The total number of challenges.

Completed
attempts.progress.completed integer

The date/time that the assessment was completed.

Located
attempts.accuracy.located integer

The % of vulnerabilities located

Identified
attempts.accuracy.identified integer

The % of vulnerabilities identified

Fixed
attempts.accuracy.fixed integer

The % of vulnerabilities fixed

challenges
attempts.challenges array of object

challenges

number
attempts.challenges.number integer

number

category
attempts.challenges.category string

category

subcategory
attempts.challenges.subcategory string

subcategory

difficulty
attempts.challenges.difficulty string

difficulty

status
attempts.challenges.status string

status

max_score
attempts.challenges.max_score integer

max_score

score
attempts.challenges.score integer

score

status
attempts.challenges.locate.status string

status

status
attempts.challenges.identify.status string

status

status
attempts.challenges.fix.status string

status

Total Pages
links.total_pages integer

The total number of pages in the results.

Results per Page
links.results_per_page integer

The maximum number of results in each page.

Next Page
links.next_page integer

The page number of the next page (if one exists).

Prev Page
links.prev_page integer

The page number of the previous page (if one exists).

Total Results
links.total_results integer

The total number of the results.

Get Assessments

This endpoint will return a list of Assessment objects which contain a range of datapoints related to assessments. This includes assessment IDs, which may be used in conjunction with the other assessments API endpoints.

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

Start Date
startdate date-time

Only return assessments started on and after the given date. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

End Date
enddate date-time

Only return assessments started or completed before the given date. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

Returns

Name Path Type Description
assessments
assessments array of Assessment
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Get course URL

JSON containing course URL

Parameters

Name Key Required Type Description
Language Framework
language_framework True string

Name of language and framework in the format of "Java::Spring"

Course
course True string

Name of course

Module
module True string

Name of course module

Redirect
redirect boolean

Redirects user to the return URL

Returns

URL to training courses

Course URL
CourseURL

Get Developer Activity

This endpoint returns the detailed challenge log of all developers within the organisation, with challenge score, difficulty and challenge outcome of the developer.

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

Returns

Detailed log of challenges for a given time period

Developer Activity
DevelopersActivity

Get Developer Leaderboard

This endpoint returns a list of all developers within the organisation, with their current stats as well as the change in stats over the report period (which may be 1, 7 or 30 days).

Parameters

Name Key Required Type Description
Report Period
report_period integer

The number of days over which to view the changes in statistics

Page
page integer

The page number of results

Start Date
startdate date-time

Include progress for leaderboard completed on or after the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

End Date
enddate date-time

Include progress for leaderboard completed on or before the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

Returns

Name Path Type Description
leaderboard
leaderboard array of object

leaderboard

Rank
leaderboard.rank integer

The final position of the participant within the tournament.

Name
leaderboard.developer.name string

The name of the developer (first + middle + surname)

Email
leaderboard.developer.email string

The developer's email address.

Member Since
leaderboard.developer.member_since string

The date the developer became a member.

Last Logged In
leaderboard.developer.last_logged_in string

The date the developer last logged in.

Status
leaderboard.developer.status string

The current status of the developer account.

Company
leaderboard.developer.company string

The company name that the developer is a part of

Team
leaderboard.developer.team string

The team name that the developer is a part of.

tags
leaderboard.developer.tags array of string

tags

roles
leaderboard.developer.roles array of string

roles

Blocked
leaderboard.blocked boolean

Whether this participant was blocked from the tournament.

Minutes Spent
leaderboard.minutes_spent integer

How long the developer spent answering (in minutes).

Language
leaderboard.language string

The language/framework the participant used.

Max Points
leaderboard.max_points integer

The maximum amount of points available in the tournament

Points
leaderboard.points integer

The amount of points the participant gained.

Hints Used
leaderboard.hints_used integer

Number of hints the participant used.

Lives Lost
leaderboard.lives_lost integer

The number of lives the participant lost during the tournament.

levels
leaderboard.levels array of object

levels

name
leaderboard.levels.name string

name

challenges
leaderboard.levels.challenges array of object

challenges

number
leaderboard.levels.challenges.number integer

number

category
leaderboard.levels.challenges.category string

category

subcategory
leaderboard.levels.challenges.subcategory string

subcategory

difficulty
leaderboard.levels.challenges.difficulty string

difficulty

status
leaderboard.levels.challenges.status string

status

max_points
leaderboard.levels.challenges.max_points integer

max_points

points
leaderboard.levels.challenges.points integer

points

codebase_size
leaderboard.levels.challenges.codebase_size string

codebase_size

minutes_spent
leaderboard.levels.challenges.minutes_spent integer

minutes_spent

stages
leaderboard.levels.challenges.stages array of object

stages

number
leaderboard.levels.challenges.stages.number integer

number

name
leaderboard.levels.challenges.stages.name string

name

status
leaderboard.levels.challenges.stages.status string

status

points
leaderboard.levels.challenges.stages.points integer

points

max_points
leaderboard.levels.challenges.stages.max_points integer

max_points

minutes_spent
leaderboard.levels.challenges.stages.minutes_spent integer

minutes_spent

lives_lost
leaderboard.levels.challenges.stages.lives_lost integer

lives_lost

hints_used
leaderboard.levels.challenges.stages.hints_used integer

hints_used

Total Pages
links.total_pages integer

The total number of pages in the results

Results per Page
links.results_per_page integer

The maximum number of results in each page.

Next Page
links.next_page integer

The page number of the next page (if one exists).

Previous Page
links.prev_page integer

The page number of the previous page (if one exists).

Total Results
links.total_results integer

The total number of the results.

Get Developer Progress

This endpoint returns the training progress of all developers within the organisation, with current realm, level and quest progress.

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

Returns

This contains the progress of each developer on each of languages, realms, levels, and quests

Developer Progress
DevelopersProgress

Get progress of all developers for the course

This endpoint will return the progress of all developers for the specified course.

Parameters

Name Key Required Type Description
Course ID
course_id True string

Course ID

Page
page integer

The page number of results

Returns

Name Path Type Description
data
data array of CourseDeveloperProgressEntry
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Get Resources

Learning resources list

Returns

Name Path Type Description
resources
resources array of Resource

Get Team Activity Most Engaged

This endpoint returns the top 'N' most engaged teams.

Parameters

Name Key Required Type Description
Report Period
report_period integer

The number of days over which to view most engaged teams (report_period should be specified alone or with enddate)

Start Date
startdate string

Start date for date range (should not be specified with report_period). Format: YYYY-MM-DDTHH:mm:ss.SSSZ

End Date
enddate string

End date for date range (should be greater than startdate). Format: YYYY-MM-DDTHH:mm:ss.SSSZ

Number of Teams
number_of_teams integer

Top 'N' number of teams

Tags
tags string

User tags

Page
page integer

The page number of results

Returns

Most Engaged Teams in the company

Get team details

This is used to get details of a team.

Parameters

Name Key Required Type Description
Team ID
team_id True string

Team ID

Returns

Team Details

Get Team Leaderboard

This endpoint returns a list of all teams within the organisation, with their current stats as well as the change in stats over the report period (which may be 1, 7 or 30 days).

Parameters

Name Key Required Type Description
Report Period
report_period integer

The number of days over which to view the changes in statistics

Omit Inactive
omitInactive boolean

When set to true, will omit all inactive accounts from results

Page
page integer

The page number of results

Start Date
startdate date-time

Include progress for leaderboard completed on or after the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

End Date
enddate date-time

Include progress for leaderboard completed on or before the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

Returns

Get Teams

This endpoint will return a list of Team objects which contain a range of datapoints related to teams. This includes team IDs, which may be used in conjunction with the other team API endpoints.

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

Team Name
name string

Team name

Returns

Name Path Type Description
teams
teams array of TeamDetails
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Get time spent

Time spent on the platform across Assessments, Learning, Tournaments and Training.

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

ID
id string

Filter results based on user Id in UUID format

Email
email string

Filter results based on email

Tags
tags string

Filter results base to show users with the tags. Specified tags are seperated by commas and uses OR logic to filter results.

Team
team string

Filter results to show users belong to specified team

Start Date
startdate date-time

Filter results to include results from start of day. Date format 'YYYY-MM-DD'. In UTC

End Date
enddate date-time

Filter results to including all results till end of day. Date format 'YYYY-MM-DD'. In UTC

Returns

Name Path Type Description
users
users array of UsersTimeSpent
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Get Tournament Leaderboard

This endpoint returns the leaderboard for a single tournament. This includes all levels, challenges and stages that the developer participated in, with detailed metrics of each.

Parameters

Name Key Required Type Description
Tournament ID
tournament_id True string

The tournament ID

Page
page integer

The page number of results

Returns

Name Path Type Description
leaderboard
leaderboard array of TournamentParticipant
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Get Tournaments

This endpoint returns a list of tournaments in the company.

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

Tournament Name
name string

Tournament name

Start Date
startdate date-time

Only return tournaments that start on or after the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

End Date
enddate date-time

Only return tournaments that finish on or before the given time. time: YYYY-MM-DDTHH:mm:ss.SSSZ

Returns

Name Path Type Description
tournaments
tournaments array of Tournament
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Get User

This is used to retrieve a single user record. The response may be shaped by passing in a fields query parameter listing the attribute names to return.

Parameters

Name Key Required Type Description
ID
id True string

The user resource ID.

ID Type
idtype string

Used to classify the type of user ID in the URL.

Fields
fields string

An array of fields. Only returns the attributes specified in the Filter. Each attribute should be comma separated.

Returns

User Data
UserData

Get Users

This is used to retrieve all user records. The response may be shaped by passing in a fields query parameter listing the attribute names to return.

Parameters

Name Key Required Type Description
Fields
fields string

An array of fields. Only returns the attributes provided. Each attribute should be comma separated.

Page
page integer

Returns the given page number of a paginated result set. Page sizes are 1000 records.

Returns

List of UserData

User List
UsersList

Get Users Activity Most Engaged

This endpoint returns the top 'N' most engaged users.

Parameters

Name Key Required Type Description
Report Period
report_period integer

The number of days over which to view most engaged users (report_period should be specified alone or with enddate)

Start Date
startdate string

Start date for date range (should not be specified with report_period). Format: YYYY-MM-DDTHH:mm:ss.SSSZ

End Date
enddate string

End date for date range (should be greater than startdate). Format: YYYY-MM-DDTHH:mm:ss.SSSZ

Number of users
number_of_users integer

Top 'N' number of users

Team Name
team_name string

Team Name

Tags
tags string

User tags

Page
page integer

The page number of results

Returns

Most Engaged Users in the company

Search Assessment

This endpoint will return a list of Assessment objects which contain a range of datapoints related to assessments. This includes assessment IDs, which may be used in conjunction with the other assessments API endpoints. Results can be filtered based on status, name, supported language and difficulty.

Parameters

Name Key Required Type Description
status
status string

Assessment status

name
name string

Assessment name

_id
_id string

Language Id

_framework
_framework string

Language framework

difficulty
difficulty string

Assessment difficulty

page
page integer

The page number of results

Returns

Name Path Type Description
assessments
assessments array of Assessment
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Search Assessment Attempts

This endpoint returns a detailed report for all developers who have taken the Assessment with the given ID. The scope of the report may be filtered in a number of ways. You may filter results to given developer(s) by supplying their email address(es) with the query. If a status is provided, only assessment attempts with specified status are included. If team name(s) provided, only assessment attempts of users within those team(s) are included. If tags(s) is provided, only assessment attempts of users with those tag(s) are included. If a pass_status is provided, only assessment attempts with specified pass_status are included. This includes all the data in the summary report plus details on all the challenges that are a part of the assessment.

Parameters

Name Key Required Type Description
assessment_id
assessment_id string

The assessment ID

name
name string

The assessment name

users
users string

Users attempting the assessment (one or more user emails, separated by comma)

status
status string

Assessment attempt status

team_names
team_names string

Team names (one or more team names, separated by comma)

tags
tags string

User tags (one or more user tags, separated by comma)

pass_status
pass_status string

Assessment attempt pass status

page
page integer

The page number of results

Returns

Name Path Type Description
attempts
attempts array of object

attempts

ID
attempts._id string

The assessment attempt ID

Assessment
attempts._assessment string

The assessment it belongs to

Assessment Name
attempts.name string

The assessment name

Name
attempts.developer.name string

The name of the developer (first + middle + surname).

Email
attempts.developer.email string

The developer's email address.

Member Since
attempts.developer.member_since string

The date the developer became a member.

Last Logged In
attempts.developer.last_logged_in string

The date the developer last logged in.

Status
attempts.developer.status string

The current status of the developer account.

Company
attempts.developer.company string

The company name that the developer is a part of.

Team
attempts.developer.team string

The team name that the developer is a part of.

tags
attempts.developer.tags array of string

tags

roles
attempts.developer.roles array of string

roles

Status
attempts.status string

Indicates the status of a challenge/assessment which may be pending, in progress, done or 'out of reach'.

Language
attempts.language string

The language/framework of the assessment. null = language/framework not selected for assessment supporting more than one language.

Started
attempts.started string

The date/time that the assessment was started.

Completed
attempts.completed string

The date/time that the assessment was completed

Deadline
attempts.deadline string

The date/time of the assessment deadline. If an assessment does not have a time limit, deadline will be null.

Score
attempts.score integer

Assessment score in %.

Completed In
attempts.completed_in string

The amount of time taken to complete the assessment attempt.

Passing Grade
attempts.passing_grade integer

The percentage required to pass the assessment.

Pass Status
attempts.pass_status string

The pass status of the assessment.

Correct
attempts.progress.correct integer

The number of correct challenges.

Incorrect
attempts.progress.incorrect integer

The number of incorrect challenges.

Number of Challenges
attempts.progress.number_of_challenges integer

The total number of challenges.

Completed
attempts.progress.completed integer

The date/time that the assessment was completed.

Located
attempts.accuracy.located integer

The % of vulnerabilities located

Identified
attempts.accuracy.identified integer

The % of vulnerabilities identified

Fixed
attempts.accuracy.fixed integer

The % of vulnerabilities fixed

challenges
attempts.challenges array of object

challenges

number
attempts.challenges.number integer

number

category
attempts.challenges.category string

category

subcategory
attempts.challenges.subcategory string

subcategory

difficulty
attempts.challenges.difficulty string

difficulty

status
attempts.challenges.status string

status

max_score
attempts.challenges.max_score integer

max_score

score
attempts.challenges.score integer

score

status
attempts.challenges.locate.status string

status

status
attempts.challenges.identify.status string

status

status
attempts.challenges.fix.status string

status

Total Pages
links.total_pages integer

The total number of pages in the results.

Results per Page
links.results_per_page integer

The maximum number of results in each page.

Next Page
links.next_page integer

The page number of the next page (if one exists).

Prev Page
links.prev_page integer

The page number of the previous page (if one exists).

Total Results
links.total_results integer

The total number of the results.

Search course developers progress

This endpoint returns the course progress of all developers within the organisation.

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

course_id
course_id array of uuid

Array of course ID

user_id
user_id array of uuid

Array of user resource ID

status
status string

Course status

Returns

Name Path Type Description
data
data array of object
user_id
data.user_id string

User resource ID

status
data.status string

Course status

accuracy
data.accuracy integer

The percentage of correct attempts

confidence
data.confidence integer

The ratio of hits used to available hints

minutes_spent
data.minutes_spent integer

The total time in mimnutes that the user spent on the course

first_completed_date
data.first_completed_date date-time

The date the first course language was completed

first_enrolled_date
data.first_enrolled_date date-time

The date the first course language was enrolled in

progress
data.progress integer

The progress of the course

languages
data.languages array of CourseDeveloperProgressLanguageEntry

List of languages for the course

invites
data.invites array of CourseDeveloperProgressInviteEntry

List of invites and reminders

total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Search Developer Leaderboard

This endpoint returns a list of all developers within the organisation, with their current stats. This also lists the change in stats over the report period (which may be 1, 7 or 30 days) or a given date range. Results can be filtered based on developer emails, developer tags and team names.

Parameters

Name Key Required Type Description
report_period_in_days
report_period_in_days integer

The number of days into the past to report on (valid values - 1, 7 and 30 days)

startdate
startdate string

developer leaderboard completed on or after the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

enddate
enddate string

developer leaderboard completed on or before the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

users
users string

Users to include in leaderboard (one or more user emails, separated by comma)

team_names
team_names string

Team names (one or more team names, separated by comma)

tags
tags string

User tags (one or more user tags, separated by comma)

page
page integer

The page number of results

Returns

Name Path Type Description
leaderboard
leaderboard array of object

leaderboard

Rank
leaderboard.rank integer

The final position of the participant within the tournament.

Name
leaderboard.developer.name string

The name of the developer (first + middle + surname).

Email
leaderboard.developer.email string

The developers email address

Member Since
leaderboard.developer.member_since string

The date the developer became a member.

Last Logged In
leaderboard.developer.last_logged_in string

The date the developer last logged in.

Status
leaderboard.developer.status string

The current status of the developer account.

Company
leaderboard.developer.company string

The company name that the developer is a part of.

Team
leaderboard.developer.team string

The team name that the developer is a part of.

tags
leaderboard.developer.tags array of string

tags

roles
leaderboard.developer.roles array of string

roles

Blocked
leaderboard.blocked boolean

Whether this participant was blocked from the tournament.

Minutes Spent
leaderboard.minutes_spent integer

How long the developer spent answering (in minutes).

Language
leaderboard.language string

The language/framework the the participant used.

Max Points
leaderboard.max_points integer

The maximum amount of points available in the tournament.

Points
leaderboard.points integer

The amount of points the participant gained.

Hints Used
leaderboard.hints_used integer

Number of hints the participant used.

Lives Lost
leaderboard.lives_lost integer

The number of lives the participant lost during the tournament.

levels
leaderboard.levels array of object

levels

name
leaderboard.levels.name string

name

challenges
leaderboard.levels.challenges array of object

challenges

number
leaderboard.levels.challenges.number integer

number

category
leaderboard.levels.challenges.category string

category

subcategory
leaderboard.levels.challenges.subcategory string

subcategory

difficulty
leaderboard.levels.challenges.difficulty string

difficulty

status
leaderboard.levels.challenges.status string

status

max_points
leaderboard.levels.challenges.max_points integer

max_points

points
leaderboard.levels.challenges.points integer

points

codebase_size
leaderboard.levels.challenges.codebase_size string

codebase_size

minutes_spent
leaderboard.levels.challenges.minutes_spent integer

minutes_spent

stages
leaderboard.levels.challenges.stages array of object

stages

number
leaderboard.levels.challenges.stages.number integer

number

name
leaderboard.levels.challenges.stages.name string

name

status
leaderboard.levels.challenges.stages.status string

status

points
leaderboard.levels.challenges.stages.points integer

points

max_points
leaderboard.levels.challenges.stages.max_points integer

max_points

minutes_spent
leaderboard.levels.challenges.stages.minutes_spent integer

minutes_spent

lives_lost
leaderboard.levels.challenges.stages.lives_lost integer

lives_lost

hints_used
leaderboard.levels.challenges.stages.hints_used integer

hints_used

Total Pages
links.total_pages integer

The total number of pages in the results.

Results per Page
links.results_per_page integer

The maximum number of results in each page.

Next Page
links.next_page integer

The page number of the next page (if one exists).

Previous Page
links.prev_page integer

The page number of the previous page (if one exists).

Total Results
links.total_results integer

The total number of the results.

Search Developers Activity

This endpoint returns the detailed challenge log of all developers within the organisation, with challenge score, difficulty and challenge outcome of the developer. This also lists the challenge log over the report period (which may be 1, 7 or 30 days) or a given date range. Results can be filtered based on developer emails, developer tags and team names.

Parameters

Name Key Required Type Description
report_period_in_days
report_period_in_days integer

The number of days into the past to report on (valid values - 1, 7 and 30 days)

startdate
startdate string

developer challenge logs completed on or after the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

enddate
enddate string

developer challenge logs completed on or before the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

users
users string

Users to include in challenge logs (one or more user emails, separated by comma)

team_names
team_names string

Team names (one or more team names, separated by comma)

tags
tags string

User tags (one or more user tags, separated by comma)

page
page integer

The page number of results

Returns

Detailed log of challenges for a given time period

Developer Activity
DevelopersActivity

Search Developers Progress

This endpoint returns the training progress of all developers within the organisation, with current realm, level and quest progress. This also lists the change in developer progress over the report period (which may be 1, 7 or 30 days) or a given date range. Results can be filtered based on developer emails, developer tags and team names.

Parameters

Name Key Required Type Description
report_period_in_days
report_period_in_days integer

The number of days into the past to report on (valid values - 1, 7 and 30 days)

startdate
startdate string

developer progress completed on or after the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

enddate
enddate string

developer progress completed on or before the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

users
users string

Users to include in developer progress (one or more user emails, separated by comma)

team_names
team_names string

Team names (one or more team names, separated by comma)

tags
tags string

User tags (one or more user tags, separated by comma)

page
page integer

The page number of results

Returns

This contains the progress of each developer on each of languages, realms, levels, and quests

Developer Progress
DevelopersProgress

Search Learning Progress

Learning description Filters - users, teams and tags

Parameters

Name Key Required Type Description
users
users string

Users to include in learning progress (one or more user emails, separated by comma)

team_names
team_names string

Team names (one or more team names, separated by comma)

tags
tags string

User tags (one or more user tags, separated by comma)

page
page integer

The page number of results

Returns

Name Path Type Description
developers
developers array of ResourceRecord
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Search Tournament Leaderboard

This endpoint returns the leaderboard for a single tournament. This includes all levels, challenges and stages that the developer participated in, with detailed metrics of each. This endpoint can also return the leaderboard over a report period (which may be 1, 7 or 30 days) or a given date range. Results can be filtered based on developer emails, developer tags and team names.

Parameters

Name Key Required Type Description
Tournament ID
tournament_id True string

The tournament ID

report_period_in_days
report_period_in_days integer

The number of days into the past to report on (valid values - 1, 7 and 30 days)

startdate
startdate string

developer leaderboard completed on or after the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

enddate
enddate string

developer leaderboard completed on or before the given time. Format: YYYY-MM-DDTHH:mm:ss.SSSZ

users
users string

Users to include in leaderboard (one or more user emails, separated by comma)

team_names
team_names string

Team names (one or more team names, separated by comma)

tags
tags string

User tags (one or more user tags, separated by comma)

page
page integer

The page number of results

Returns

Name Path Type Description
leaderboard
leaderboard array of TournamentParticipant
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Search Users

This is used to retrieve all user records. The response may be shaped by passing in a fields query parameter listing the attribute names to return. Filter is achieved by passing the filter criteria through the body.

Parameters

Name Key Required Type Description
Fields
fields string

An array of fields. Only returns the attributes provided. Each attribute should be comma separated.

Page
page integer

Returns the given page number of a paginated result set. Page sizes are 1000 records.

id
id string

User resource ID

email
email string

The email of the user

role
role string

The role assigned to the user which is one of developer, team manager or company administrator

team
team string

The team the user is associated with

tags
tags array of string

Any identifying information about the user. Example: Head Quarters, Asia-Pacific

Returns

List of UserData

User List
UsersList

Shows learning resources which have be completed, read or watched

Learning description

Parameters

Name Key Required Type Description
Page
page integer

The page number of results

Returns

Name Path Type Description
developers
developers array of ResourceRecord
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

Update team details

This is used to update details of a team.

Parameters

Name Key Required Type Description
Team ID
team_id True string

Team ID

name
name string

Team Name

tags
tags array of string

Any identifying information about the team. Example: Head Quarters, Asia-Pacific, Engineering

status
status string

Team Status

onboardingmessage
onboardingmessage string

Team On Boarding Message

languages
languages array of string

Team languages list, _id and _framework separated by double colons (::) and separated by commas (,)

Returns

Team Details

Update User

Updates a user with the given data. Tags will be replaced.

Parameters

Name Key Required Type Description
ID
id True string

The user resource ID.

Skip Notify If SSO
skipNotifyIfSso boolean

Used to disable the change of email notification sent to user.

email
email email

The email address of the user

enabled
enabled boolean

Users status on the platform

role
role string

The role assigned to the user which is one of developer, team manager or company administrator

team
team string

The team the user is associated with

tags
tags array of string

Any identifying information about the user. Example: Head Quarters, Asia-Pacific

_id
_id string

Language Id

_framework
_framework string

Language Framework

Returns

User Updated
UserUpdated

Definitions

Tournament

Name Path Type Description
_id
_id string

The ID of the tournament

name
name string

The name of the tournament

description
description string

The tournament description

start_time
start_time date-time

The time the tournament starts

end_time
end_time date-time

The time the tournament ends

timezone
timezone string

The timezone that the tournament is being held in

TournamentParticipant

Name Path Type Description
rank
rank integer

The final position of the participant within the tournament

Developer
developer Developer

Information about an individual developer

blocked
blocked boolean

Whether this participant was blocked from the tournnament

minutes_spent
minutes_spent integer

How long the developer spent answering (in minutes)

language
language string

The language/framework the the participant used

max_points
max_points integer

The maximum amount of points available in the tournament

points
points integer

The amount of points the participant gained

hints_used
hints_used integer

Number of hints the participant used

lives_lost
lives_lost integer

The number of lives the participant lost during the tournament

levels
levels array of Level

The levels of the challenge

Level

Name Path Type Description
name
name string

The level name

challenges
challenges array of object
number
challenges.number integer

The challenge number (starts at 1)

category
challenges.category string

The challenge category

subcategory
challenges.subcategory string

The challenge subcategory

difficulty
challenges.difficulty string
Status
challenges.status Status

Indicates the status of a challenge/assessment which may be pending, in progress, done or 'out of reach'

max_points
challenges.max_points integer

The maximum points available for this challenge

points
challenges.points integer

The points obtained for this challenge

codebase_size
challenges.codebase_size string
minutes_spent
challenges.minutes_spent integer

How long the developer spent answering (in minutes)

stages
challenges.stages array of Stage

Stage

Name Path Type Description
number
number integer

The stage number

name
name string

The name of the stage

status
status string

The status of the attempt at this stage

points
points integer

Points gained on this stage

max_points
max_points integer

Maximum points available on this stage

minutes_spent
minutes_spent integer

How long the developer spent answering (in minutes)

lives_lost
lives_lost integer

The number of lives lost on this stage

hints_used
hints_used integer

The number of hints used on this stage

Assessment

Name Path Type Description
_id
_id string

The assessment ID

status
status string

The status of the assessment

name
name string

The name of the assessment

description
description string

The assessment description

supported_languages
supported_languages array of string

List of languages/frameworks available for the assessment

difficulty
difficulty string

The difficulty of the assessment

success_ratio
success_ratio integer

The percentage required to pass the assessment

emits_certificate
emits_certificate boolean

Is the assessment linked to a certificate?

time_limit
time_limit integer

The time limit of the assessment in milliseconds. null = no time limit

start_date
start_date date-time

The date the assessment starts

end_date
end_date date-time

The date the assessment ends

timezone
timezone string

The timezone of the assessment

number_of_challenges
number_of_challenges integer

The number of challenges in the assessment

self_assess
self_assess boolean

Is assessment a public assessment?

retries_allowed
retries_allowed boolean

Are retries allowed for this assessment?

Status

Indicates the status of a challenge/assessment which may be pending, in progress, done or 'out of reach'

Indicates the status of a challenge/assessment which may be pending, in progress, done or 'out of reach'

Status
string

preferredDevLanguage

Dev language preference

Name Path Type Description
_id
_id string

Language Id

_framework
_framework string

Language Framework

AssessmentAssignResponse

Response to assessment assign POST request

Name Path Type Description
user
user string

User email Id

inviteEmailSent
inviteEmailSent boolean

Was invite email sent ?

inviteUrl
inviteUrl string

Assessment invite url

TeamLeaderboard

The team leaderboard contains all the team leaderboard entries valid during the given reporting period

Name Path Type Description
report_period_in_days
report_period_in_days integer

The number of days into the past to report on

leaderboard
leaderboard array of TeamLeaderboardEntry
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

TeamLeaderboardEntry

An entry in the team leaderboard

Name Path Type Description
rank
rank integer

The team's rank on the leaderboard.

name
name string

The name of the team

developers
developers integer

The number of developers on the team

points_average
points_average integer

The team's average points

points_total
points_total integer

The team's total points

accuracy
accuracy integer

The team's accuracy (in %)

confidence_level
confidence_level integer

The team's confidence level (in %)

time_spent
time_spent integer

The total minutes spent by the team on challenges

installed_sensei
installed_sensei integer

The number of developers in the team that have installed sensei

Stats over Report Period
stats_over_report_period StatsOverReportPeriod

The statistics computed for the given report period

MostEngagedTeams

Most Engaged Teams in the company

Name Path Type Description
teams
teams array of TeamEntry

Team details

total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

TeamEntry

This object represents team details

Name Path Type Description
name
name string

Name of the team

status
status string

Status of the team

timeSpent
timeSpent integer

Team time spent

MostEngagedUsers

Most Engaged Users in the company

Name Path Type Description
users
users array of UserEntry

User details

total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

UserEntry

This object represents user details

Name Path Type Description
name
name string

Name of the user

status
status string

Status of the user

timeSpent
timeSpent integer

Time spent by the user

StatsOverReportPeriod

The statistics computed for the given report period

Name Path Type Description
points_gained
points_gained integer

The number of points the developer has gained

accuracy_change
accuracy_change integer

The change in accuracy over the reporting period

confidence_level_change
confidence_level_change integer

The change in confidence level over the reporting period

minutes_spent
minutes_spent integer

The minutes spent by the team on challenges

challenges_correct
challenges_correct integer

The number of correct challenges

challenges_incorrect
challenges_incorrect integer

The number of incorrect challenges

Developer

Information about an individual developer

Name Path Type Description
name
name string

The name of the developer (first + middle + surname)

email
email string

The developers email address

member_since
member_since date-time

The date the developer became a member

last_logged_in
last_logged_in date-time

The date the developer last logged in

status
status string

The current status of the developer account

company
company string

The company name that the developer is a part of

team
team string

The team name that the developer is a part of

tags
tags array of string

The tags associated with this developer

roles
roles string

The roles that this developer has

DevelopersProgress

This contains the progress of each developer on each of languages, realms, levels, and quests

Name Path Type Description
developers
developers array of DeveloperProgressEntry

List of developers who have made an attempt at training

total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

DeveloperProgressEntry

This entry represents an object in the developers training progress containing information the developer and the progress of their attempts in training mode

Name Path Type Description
Developer
developer Developer

Information about an individual developer

languages
languages array of TrainingProgressEntry

List of languages attempted by the developer on training mode

TrainingProgressEntry

Entry with progress of completion on languages and list of realms

Name Path Type Description
name
name string

Name of language framework

language_progress
language_progress integer

Percentage of the language completed

realms
realms array of object

List of realms for each language

name
realms.name string

Name of realm

realm_progress
realms.realm_progress integer

Percentage of the realm completed

levels
realms.levels array of object

List of levels for each realm

name
realms.levels.name string

Name of level

level_progress
realms.levels.level_progress integer

Percentage of the level completed

quests
realms.levels.quests array of object

List of quests for each level

name
realms.levels.quests.name string

Name of quest

quest_progress
realms.levels.quests.quest_progress integer

percentage of quest completed

DevelopersActivity

Detailed log of challenges for a given time period

Name Path Type Description
activities
activities array of ActivityEntry

List of developers containing with list of languages containing challenge attempts

total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

ActivityEntry

This object represents the developer and their challenge attempts

Name Path Type Description
Developer
developer Developer

Information about an individual developer

Challenge Attempt
challenge ChallengeAttempt

Attempt made by deverloper in training mode

ChallengeAttempt

Attempt made by deverloper in training mode

Name Path Type Description
language
language string

Name of language framework

realm
realm string

Name of realm

level
level string

Name of level

quest
quest string

Name of quest

category
category string

Category name of the challenge

subcategory
subcategory string

Subcategory name of the challenge

difficulty
difficulty string

Level of difficulty for the challenge

started
started date-time

Time challenge was started

completed
completed date-time

Time challenges was completed

duration
duration integer

Time in seconds it took for the challenge to complete

status
status string

Status of challenge, with incorrect status on challenge with 1 or more incorrect stages

hints_used
hints_used integer

Total number of hints from the challenge stages used by the developer

score
score integer

Points acquired

max_score
max_score string

Max points attainable for the challenge

Select Vulnerability
select_vulnerability SelectVulnerability

Nature of challenge challenge

Locate Vulnerability
locate_vulnerability LocateVulnerability

Nature of challenge challenge

Identify Solution
identify_solution IdentifySolution

Nature of challenge challenge

SelectVulnerability

Nature of challenge challenge

Name Path Type Description
attempt_index
attempt_index integer

Number of times the developer has attempted the stage

status
status string

Outcome of the challenge, out_of_reach status describes a stage not yet attempted by the developer

max_score
max_score integer

Max points attainable for selecting the vulnerability

score
score integer

Points acquired for selecting the vulnerability

skipped
skipped boolean

When set to true, stage has been skipped. If status is false, stage was completed or has yet to be attempted

LocateVulnerability

Nature of challenge challenge

Name Path Type Description
attempt_index
attempt_index integer

Number of times the developer has attempted the stage

status
status string

Outcome of the challenge

max_score
max_score integer

Max points attainable for locating the vulnerability

score
score integer

Points acquired for locating the vulnerability

IdentifySolution

Nature of challenge challenge

Name Path Type Description
attempt_index
attempt_index integer

Number of times the developer has attempted the stage

status
status string

Outcome of the challenge

max_score
max_score integer

Max points attainable for identifying the solution

score
score integer

Points acquired for identifying the solution

ResourceItem

Resource item details

Name Path Type Description
id
id string
name
name string

Resource

Resource details

Name Path Type Description
id
id string
name
name string
items
items array of ResourceItem

CompletedResource

Details of a completed learning resource

Name Path Type Description
resource
resource array of string

An ordered list of the categorisation and name of the completed resource

time_completed
time_completed date-time

When the learning resource was completed

ResourceRecord

A record of a developer's completed learning resources

Name Path Type Description
Developer
profile Developer

Information about an individual developer

completed
completed array of CompletedResource

All learning resources completed by the user

CourseURL

URL to training courses

Name Path Type Description
url
url string

URL to course

TeamData

Name Path Type Description
name
name string

Team name

UserData

Name Path Type Description
id
id string

The resource Id of the user

email
email string

The email of the user

role
role string

The role assigned to the user which is one of developer, team manager or company administrator

first
name.first

First name

middle
name.middle

Middle name

last
name.last

Last name

status
status string

User status

invite-date
invite-date date-time

Time of when the user was last invited

last-login-date
last-login-date date-time

Last time the user logged in

Team Data
team TeamData
tags
tags array of string

Any identifying information about the user. Example: Head Quarters, Asia-Pacific

preferredDevLanguages
preferredDevLanguages array of preferredDevLanguage

Dev languages preference

UserUpdated

Name Path Type Description
statusCode
statusCode integer

Success response message status code

message
message string

Success response message description

code
code string

Secure Code Warrior Code

UserCreated

Name Path Type Description
id
id string

Secure Code Warrior resource identifier

statusCode
statusCode integer

Success response message status code

message
message string

Success response message description

code
code string

Secure Code Warrior Code

UserDeleted

Name Path Type Description
statusCode
statusCode integer

Success response message status code

message
message string

Success response message description

code
code string

Secure Code Warrior Code

UsersList

List of UserData

Name Path Type Description
users
users array of UserData

TopPerformers

List of top performers

Name Path Type Description
report_period_in_days
report_period_in_days integer

The number of days in the past to report on

top_performers
top_performers array of TopPerformer
total_pages
links.total_pages integer

The total number of pages in the results

results_per_page
links.results_per_page integer

The maximum number of results in each page

next_page
links.next_page integer

The page number of the next page (if one exists)

prev_page
links.prev_page integer

The page number of the previous page (if one exists)

total_results
links.total_results integer

The total number of the results

TopPerformer

Top performing user

Name Path Type Description
points
points integer

Total points earned within a period of time

id
id string

User Id in UUID format

email
email string

User email

first
name.first string

User first name

middle
name.middle string

User middle name

last
name.last string

User last name

tags
tags array of string

User tags

status
status string

User status

Team Data
team TeamData

UsersTimeSpent

Entry showing users activity.

Name Path Type Description
id
id string

User Id in UUID format

email
email string

User email

first
name.first string

User first name

middle
name.middle string

User middle name

last
name.last string

User last name

tags
tags array of string

User tags

status
status string

User status

Team Data
team TeamData
time-spent
time-spent array of object

Array of dates with the breakdown of time-spent/activity in a day

date
time-spent.date date

Date in UTC

Assessments
time-spent.activity.Assessments integer

Time-spent on Assessments

Learning
time-spent.activity.Learning integer

Time-spent on Learning

Tournaments
time-spent.activity.Tournaments integer

Time-spent on Tournaments

Training
time-spent.activity.Training integer

Time-spent on Training

StrengthsAndWeaknesses

Average strengths and weaknesses object

Name Path Type Description
auth
auth AverageStrengthsAndWeaknessesEntry

This object represents each individual management category

data_handling
data_handling AverageStrengthsAndWeaknessesEntry

This object represents each individual management category

misconfig
misconfig AverageStrengthsAndWeaknessesEntry

This object represents each individual management category

practices
practices AverageStrengthsAndWeaknessesEntry

This object represents each individual management category

sensitive_data
sensitive_data AverageStrengthsAndWeaknessesEntry

This object represents each individual management category

other
other AverageStrengthsAndWeaknessesEntry

This object represents each individual management category

AverageStrengthsAndWeaknessesEntry

This object represents each individual management category

Name Path Type Description
challenges
challenges ChallengesEntry

Challenges Data

hints
hints HintsEntry

Hints Data

points
points integer

Points

timeSpent
timeSpent integer

Time spent

ChallengesEntry

Challenges Data

Name Path Type Description
attempted
attempted integer

Attempted challenges

correct
correct integer

Correct of attempted

incorrect
incorrect integer

Incorrect of attempted

percentageCorrect
percentageCorrect integer

Percentage correct

ratioCorrect
ratioCorrect number

Ratio correct

HintsEntry

Hints Data

Name Path Type Description
confidenceLevel
confidenceLevel integer

Confidence Level

total
total integer

Total

used
used integer

Used

TeamDetails

Team Details

Name Path Type Description
id
id string

Team Id

name
name string

Name of the team

tags
tags array of string

Any identifying information about the team. Example: Head Quarters, Asia-Pacific, Engineering

onboardingMessage
onboardingMessage string

On boarding message for the team

status
status string

Team status

memberJoinToken
memberJoinToken string

Member Join Token

companyName
companyName string

Name of the company

languages
languages array of string

Team languages

TeamDeleteResponse

Team Delete Response

Name Path Type Description
deleteStatus
deleteStatus string

Status of delete operation

Course

Name Path Type Description
_id
_id string

The course ID

name
name string

The name of the course

description
description string

The course description

status
status string

The status of the course

supported_languages
supported_languages array of string

List of languages/frameworks available for the course

deadline
deadline date-time

The date the course ends

created_by
created_by string

The ResourceId of the author of the course

CourseDeveloperProgressEntry

This entry represents a developer course progress

Name Path Type Description
user_id
user_id string

User resource ID

status
status string

Course status

accuracy
accuracy integer

The percentage of correct attempts

confidence
confidence integer

The ratio of hits used to available hints

minutes_spent
minutes_spent integer

The total time in mimnutes that the user spent on the course

first_completed_date
first_completed_date date-time

The date the first course language was completed

first_enrolled_date
first_enrolled_date date-time

The date the first course language was enrolled in

progress
progress integer

The progress of the course

languages
languages array of CourseDeveloperProgressLanguageEntry

List of languages for the course

invites
invites array of CourseDeveloperProgressInviteEntry

List of invites and reminders

CourseDeveloperProgressInviteEntry

This entry represents a developer course progress invites and reminders.

This entry represents a developer course progress invites and reminders.

Developer Course Progress Entry for invites and reminders.

CourseDeveloperProgressLanguageEntry

This entry represents a developer course progress for a single language

Name Path Type Description
language
language string

The programming language

status
status string

The status for the course language

accuracy
accuracy integer

The percentage of correct attempts for the language

confidence
confidence integer

The ratio of hits used to available hints for the language

minutes_spent
minutes_spent integer

The total time in mimnutes that the user spent on the course for the language

progress
progress integer

The progress of the course for the language

videos_watched
videos_watched integer

The amount of videos user have watched for the language