On this page
- Authorization
- Generating an API Key
- Authorization Header
- Parameter Casing
- Query Params
- "includes" Param
- "where" Param
- Where Operators
- Filterable Fields
- RESOURCES
- Assessment Challenge Items
- Assessment Cohorts
- Assessment Invitations
- Assessment Result Reviews
- Assessment Results
- Assessment Templates
- Assessments
- Challenges
- Label History
- Notes
- Quiz Questions
- Solution Reviews
- Solutions
- Team Candidates
- TeamMemberPrivileges
- Team Members
- TeamNotification
- WebhookEvent
- Webhook Examples
- Webhook Subscriptions
REST API
If your subscription includes it, you can enable API-level control over your candidates, assessments, and more through the Qualified API. Once it's enabled, your account will have a unique access key associated with it.
Premium Feature
API Access is only available on our custom plans.
Authorization
Authorization is done by passing in an API key to the Authorization
header. If your account is on a plan that allows API access then you
will be able to find your key by going to Team Settings > Integrations within the Qualified app.
Generating an API Key
On the API Access page you'll be able to generate a new API key if you don't have one already or in case you believe your current API key could have been compromised. Once you generate a new key, the old key is no longer valid. Keep it a secret!
API Key Safety
Make sure to keep your API key safe. Do not expose it through client-side applications.
Authorization Header
All resource endpoints should be requested using the authorization
header. In the example
requests shown below for each resource, you can see where this value would be set. You should replace
:api_key
with your actual API key.
Parameter Casing
Both camel and underscore casing is supported when sending data to the sever.
For Example:
# Example request with underscore casing
curl --request POST \
--url https://www.qualified.io/api/v1/assessments/5da42a8ea54d75e0663421c2/challenge_items/ \
--header 'authorization: 1MnbNTTL1O' \
--header 'Content-Type: application/json' \
--data '{"data":{"challenge_id":"5fa42a8ea54d75e066342d39"}}'
and
# Example request with camel casing
curl --request POST \
--url https://www.qualified.io/api/v1/assessments/5da42a8ea54d75e0663421c2/challenge_items/ \
--header 'authorization: 1MnbNTTL1O' \
--header 'Content-Type: application/json' \
--data '{"data":{"challengeId":"5fa42a8ea54d75e066342d39"}}'
are equivalent to each other.
Request Examples
The request examples given in the RESOURCES section will use underscore casing for consistency. Keep in mind that you can use either casing format.
Query Params
"includes" Param
There is a special parameter called "includes", available on most model requests. This parameter will fetch additional relations related to each model
and include them within the model's JSON response. For example if you are returning an assessment result and want to include the related solutions
,
you can include them within a single API call.
The following example shows how to include challenge data on a solution.
curl --require POST \
--url https://www.qualified.io/api/v1/solutions/5ca42f3ea54d75e0653421d2?includes=challenge \
--header 'authorization: 1MnbNTTL1O' \
--header 'Content-Type: application/json' \
Multiple Params
If you wish to include multiple relations, you will need to use multiple instances of the includes
param, except you will also need to name it includes[]
.
For example:
curl --require POST \
--url https://www.qualified.io/api/v1/solutions/5ca42f3ea54d75e0653421d2?includes[]=challenge&includes[]=assessment_result \
--header 'authorization: 1MnbNTTL1O' \
--header 'Content-Type: application/json' \
"where" Param
A where
param with an encoded JSON value can be passed in to certain List
endpoints. This param allows you to filter list data by specific fields. Not all fields on the object are typically available for use with filters, in some cases only a few fields have been whitelisted.
The following example shows how to filter challenges to only show those that are published.
curl --require POST \
--url https://www.qualified.io/api/v1/challenges/5ea42a8ea54d75e0653421d2?where=%7B%22state%22%3A%20%22published%22%7D \
--header 'authorization: 1MnbNTTL1O' \
--header 'Content-Type: application/json' \
Notice that the where
query parameter has an encoded {"state": "published"}
value.
Where Operators
The JSON that is sent to the where param can be more than just search for equality. The following operators are supported:
"=="
,"!="
,">="
,"<="
,">"
, and"<"
"contains"
: Partial text matches"in"
: If one or more values are within an array or match a field"nin"
: If zero values are within an array or field
Example
Select records which state are either opened or started
{ "state": { "in": ["opened", "started"] } }
Performance Considerations
Please keep your queries simple and short, ideally limited to no more than two filters at once. Not all fields are indexed and you may not achieve good performance with certain combinations.
Filterable Fields
Only some fields can be used as filters on certain "List" endpoints, while some List endpoints don't allow filters at all. Check each endpoint's parameter list to see what fields are filterable.
RESOURCES
Assessment Challenge Items
Endpoints for viewing and configuring which challenges which are associated to each assessment.
Create
Associates a challenge to an assessment by creating a AssessmentChallengeItem record. If the challenge already exists for the assessment, a 409 will be returned. If a global challenge is passed, a copy of it will be created for the given team and that copy will be used instead.
URL Parameters:
JSON Body Parameters:
Update
Allows you to modify the position and disabled languages of the AssessmentChallengeItem record. When changing the position, all other items in the list will be adjusted to account for the item's new position. If you wish to replace the challenge, you should first delete the AssessmentChallengeItem that you wish to replace, then create a new one.
URL Parameters:
JSON Body Parameters:
Delete
Removes the AssessmentChallengeItem item from the assessment, causing the challenge to be disassociated.
URL Parameters:
Expected Response Status:
204Assessment Cohorts
Endpoints for managing and creating assessment cohorts. Assessment cohorts are groups of candidates who get invited in bulk to a same assessment at one time.
List
Returns a paged list of all assessment cohorts for the team.
URL Parameters:
Retrieve
Retrieves a single assessment cohort by ID.
URL Parameters:
Invite Candidates
Create an assessment cohort and invite all candidates included.
JSON Body Parameters:
The date and time in which the candidate will no longer have access to the assessment. Useful if you want to set a hard stop date in which no more candidate activity is allowed. When using with retakes, this value can be used to set the retake stop window. The value must be at least one hour into the future.
Set to true if you wish to prevent the candidate from starting the assessment until it is manually unlocked. This allows you to give access but still retain control of exactly when the candidate can start. If true, access will be locked even if within the access window defined by access_starts_at
and access_ends_at
.
The date and time that the candidate can start the assessment. Useful if you want to invite one or more candidates and ensure that they all have a the same start time. When using with expires_at, this value should be sooner than expires_at
. When using with retakes, this value can be used to set the retake start window.
Assessments can be configured with default expiration and reminder values. If this is true, then default will be applied if not specifically set.
The ID of the assessment you wish to send the invitation for.
An array of team members ID strings that should be assigned to the candidate.
An array of candidate emails to send invitations to.
Customizes the message that is emailed to the candidate. Only relevant if send_email_to_candidate is true.
Set to number of minutes you wish to enforce as a time limit. If not set, will use the time limit set on the assessment. This value is only relevant if the candidate has not yet been invited, or if retry_action
is set.
The date in which the invitation can no longer be accepted. Once the candidate starts the assessment, this value is no longer relevant.
First name of candidate, can only be used when single email is passed to candidates array
An array of strings indicating which labels should be applied to the invited candidates.
Last name of candidate, can only be used when single email is passed to candidates array
The date in which a reminder email should be sent to the candidate. Only sent if the candidate has not started the assessment by the date.
DEPRECATED: True if retry_action
should be set to "reopen". Use retry_action
property instead.
True if any challenge based timers should be reset. Timers will start over again from 0 when the candidate revisits each solution.
The type of action that should be performed if the candidate has already submitted and you would like them to take further action. A null or omitted value indicates no retry action will be performed.
Set to false if you do not wish to send an invitation email. This can be useful for when you simply want to use the invitation_url returned by this request, and send that URL on your own. If false is not explicitly passed, then the email will be sent by default.
Set to true if you wish to send a copy of the invitation email to the inviting user's email address. This only has an affect on new invitations, if the invitation was already previously sent then this value will be ignored.
Set to true if you wish to skip resending the email if the candidate is already invited. This can be useful if you are not sure if the invite has been sent yet and only want to send the email if one wasn't already sent. This value is ignored if send_email_to_candidate is explicitly set to false.
True if the first and last name should not be collected from new candidates. Otherwise new candidates will be asked to enter these details before starting the assessment.
False if you wish to prevent active time from being tracked. This is only relevant if retry_action
is "reopen". You can use this value when you want to allow a candidate to reopen their assessment result for the purpose of review.
Update
Updates a single assessment cohort by ID.
URL Parameters:
JSON Body Parameters:
Delete
Deletes the assessment cohort retrieved by id.
URL Parameters:
Expected Response Status:
204Assessment Invitations
Endpoints for managing and creating invitations. Invitations are how candidates get explicitly introduced into the system. For private assessments, this is the only way to gain access to take the assessment.
List
Returns a paged list of all active invitations for the team.
URL Parameters:
Invite Candidates
The way to create a candidate within the system is to invite them to an assessment.
JSON Body Parameters:
The date and time in which the candidate will no longer have access to the assessment. Useful if you want to set a hard stop date in which no more candidate activity is allowed. When using with retakes, this value can be used to set the retake stop window. The value must be at least one hour into the future.
Set to true if you wish to prevent the candidate from starting the assessment until it is manually unlocked. This allows you to give access but still retain control of exactly when the candidate can start. If true, access will be locked even if within the access window defined by access_starts_at
and access_ends_at
.
The date and time that the candidate can start the assessment. Useful if you want to invite one or more candidates and ensure that they all have a the same start time. When using with expires_at, this value should be sooner than expires_at
. When using with retakes, this value can be used to set the retake start window.
Used for teams to track their own IDs alongside candidates.
Assessments can be configured with default expiration and reminder values. If this is true, then default will be applied if not specifically set.
The ID of the assessment you wish to send the invitation for.
An array of team members ID strings that should be assigned to the candidate.
An array of candidate emails to send invitations to.
Customizes the message that is emailed to the candidate. Only relevant if send_email_to_candidate is true.
Set to number of minutes you wish to enforce as a time limit. If not set, will use the time limit set on the assessment. This value is only relevant if the candidate has not yet been invited, or if retry_action
is set.
The date in which the invitation can no longer be accepted. Once the candidate starts the assessment, this value is no longer relevant.
First name of candidate, can only be used when single email is passed to candidates array
An array of strings indicating which labels should be applied to the invited candidates.
Last name of candidate, can only be used when single email is passed to candidates array
The date in which a reminder email should be sent to the candidate. Only sent if the candidate has not started the assessment by the date.
DEPRECATED: True if retry_action
should be set to "reopen". Use retry_action
property instead.
True if any challenge based timers should be reset. Timers will start over again from 0 when the candidate revisits each solution.
The type of action that should be performed if the candidate has already submitted and you would like them to take further action. A null or omitted value indicates no retry action will be performed.
Set to false if you do not wish to send an invitation email. This can be useful for when you simply want to use the invitation_url returned by this request, and send that URL on your own. If false is not explicitly passed, then the email will be sent by default.
Set to true if you wish to send a copy of the invitation email to the inviting user's email address. This only has an affect on new invitations, if the invitation was already previously sent then this value will be ignored.
Set to true if you wish to skip resending the email if the candidate is already invited. This can be useful if you are not sure if the invite has been sent yet and only want to send the email if one wasn't already sent. This value is ignored if send_email_to_candidate is explicitly set to false.
True if the first and last name should not be collected from new candidates. Otherwise new candidates will be asked to enter these details before starting the assessment.
False if you wish to prevent active time from being tracked. This is only relevant if retry_action
is "reopen". You can use this value when you want to allow a candidate to reopen their assessment result for the purpose of review.
Invite Team Members
Allows you to invite a team member to a specific assessment. This will cause team members to receive an email. This API is useful for when you want to have members of your team test the assessment, before sending it out to candidates. You will not be charged a usage for having your own team members take the assessment.
JSON Body Parameters:
Cancel
Cancels the invitation so that a candidate can no longer accept it and gain access to the assessment. If the candidate already started the assessment, their result will be terminated. An "Invitation Cancelled" label will be automatically applied to the candidate.
URL Parameters:
Expected Response Status:
204Assessment Result Reviews
Assessment Result Reviews are the overall review opinion left by team members. These reviews are used to provide feedback on the quality of submissions. Individual solution reviews are then associated to each assessment result review. There is one review per reviewer/assessment result.
List
Returns a paged list of all reviews for the team.
URL Parameters:
Retrieve
Retrieves a single assessment result review by ID.
URL Parameters:
Create
Creates an assessment result review. There can only be one review per assessment result & reviewer.
JSON Body Parameters:
Feedback given by the reviewer. Markdown is supported.
Subjective rating. 1 - 5
, for a 3 point system use 1,3 and 5 as your values.
Update
Update the feedback or rating given by a reviewer.
URL Parameters:
JSON Body Parameters:
Feedback given by the reviewer. Markdown is supported.
Subjective rating. 1 - 5
, for a 3 point system use 1,3 and 5 as your values.
Delete
Deletes an assessment result review. Deletes any associated solution reviews as well.
URL Parameters:
Expected Response Status:
204Assessment Results
Each time a candidate takes an assessment, their work is stored within the assessment result.
List
Returns a paged list of assessment results for the team.
URL Parameters:
Retrieve
Retrieves an assessment result by ID. Note that this endpoint returns a large amount of data that is typically consumed by Qualified application itself. Some fields may change. It is recommended to use the "Exhibit" endpoint where possible.
URL Parameters:
Exhibit
Provides a more consumer friendly version of assessment result information. This is the recommended endpoint if you wish to consume assessment result information within your own application. The data is streamlined and contains relevant information from other key related data models.
URL Parameters:
Share
Returns a set of sharable URLs which do not require login, **only available if feature is enabled on your subscription**.
URL Parameters:
Unlock Access
Unlocks an access_locked assessment result so a candidate can begin their assessment.
URL Parameters:
Terminate
Closes without submitting the assessment result. This prevents the candidate from continuing, and also doesn't generate a score, call webhooks, or trigger automated workflows. This can be useful for orchestrating your own expiration functionality where you do not want to submit any pre-existing progress for scoring.
URL Parameters:
JSON Body Parameters:
Schedule Retry
Schedules a reopen or retake for a submitted assessment result so that the candidate can make changes. This endpoint is only valid on assessment results which are current. If a retake has happened since this assessment result was submitted, then it cannot be reopened. This endpoint used to be called "Unsubmit" and is backwards compatible.
URL Parameters:
JSON Body Parameters:
Cancel Retry
An assessment result can be scheduled to be reopened or retaken, which happens once the candidate lands on the assessment page. Calling this method will cancel a previously scheduled retry. To schedule a retry, use the invitations invite_candidates endpoint.
URL Parameters:
Reset
Reopens an assessment result, and updates the challenges to the latest published version of the assessment.
URL Parameters:
JSON Body Parameters:
Destroy
Enables completely destroying an assessment result that has not been started. NOTE: AssessmentResult state MUST be "invited" or "opened" to be destroyed.
URL Parameters:
Expected Response Status:
204Assessment Templates
Assessment templates are pre-built assessments which you can use as-is or as a starting point to build your own.
List
Returns a paged list of assessment templates.
Import
Imports the assessment template as a new assessment on your team.
URL Parameters:
Assessments
An Assessment contains one or more challenges that are given to a candidate to assess them on their ability. Typically an AssessmentInvitation is used to invite a TeamCandidate to take it, which will also create an AssessmentResult - which is the record used to track the candidate's assessment progress.
List
Returns a paged list of all assessments for your team.
URL Parameters:
Retrieve
Returns assessment for both authenticated and unauthenticated users. Only admins and team members can see unpublished assessments.
URL Parameters:
Create
Creates a new assessment in a draft state. If you wish to create an assessment within a published state, you should first create the assessment, use the Assessment Challenge Items API to add challenges, then call the Assessment publish endpoint.
JSON Body Parameters:
An array of label strings to assign to the assessment. Any value can be used, it does not need to be previously defined.
Internal value useful for explaining to team members why what this assessment is focused on.
Used to display a short summary to candidates about the assessment.
What this assessment will be titled as.
Update
Updates an existing assessment. This API does not provide access to manipulating the challenge items. To modify the list of challenge items, use the Assessment Challenge Items resource.
URL Parameters:
JSON Body Parameters:
An array of label strings to assign to the assessment. Any value can be used, it does not need to be previously defined.
Internal value useful for explaining to team members why what this assessment is focused on.
Used to display a short summary to candidates about the assessment.
What this assessment will be titled as.
Publish
Publishes a draft assessment. There must be at least one challenge item associated, and all challenges must already be published.
URL Parameters:
Un-publish
Moves an assessment back to the draft state, preventing new invitations from being able to be sent for this assessment. Existing invitations will remain active.
URL Parameters:
Archive
Archives the assessment. Any active invitations will be cancelled, and any started assessment results will be closed.
URL Parameters:
Unarchive
Unarchives the assessment
URL Parameters:
Export
Makes a copy of an assessment on the team provided. The user must have access to both teams to export the assessment.
URL Parameters:
JSON Body Parameters:
Unlock All
Unlocks any access_locked assessment results associated with this assessment. Note the results are unlocked asynchronously.
URL Parameters:
Challenges
General endpoints for working with various types of challenges. The $type parameter will often be warranted as it will allow you to specify the type of challenge that should be handled.
List
Returns all Qualified and team challenges. You can limit results by type or collection to refine the results.
URL Parameters:
Retrieve
Retrieves a challenge of any $type by ID.
URL Parameters:
Create Classic Code Challenge
Create a Classic Code Challenge (simply called CodeChallenge within the API). You should specify "CodeChallenge" as the $type.
JSON Body Parameters:
A value from 1 - 4
indicating how difficult the challenge is. Lower is easier.
True if all tests should be verified on publish. Default is true.
Time, in minutes, that indicates how long candidates should expect to spend on the challenge.
The markdown compatible instructions to give to the candidate.
An array of language objects that define settings on a per language basis.
An internal summary used to clarify to your team what the challenge is for.
True if sample test cases should be shown to candidates.
True if sample test cases should be readonly for candidates.
A short description of the challenge, shown to the candidate before they start it.
The title of the challenge to refer to it by. This title will not be shown to candidates.
An array of strings indicating the topics this challenge focuses on. Useful for defining a simple skill or competency structure.
Create Project Code Challenge
Create a Project Code Challenge (called AdvancedCodeChallenge within the API). You should specify "AdvancedCodeChallenge" as the $type. Note that this is an advanced API. Please contact us if you plan on using it so that we can discuss its usage further.
JSON Body Parameters:
True if the candidate should be able to run tests. Default is true
.
A value from 1 - 4
indicating how difficult the challenge is. Lower is easier.
True if the candidate should be allowed to use their own IDE, and connect to the code execution engine using Qualified's attach tool.
True if all tests should be verified on publish. Default is true.
Time, in minutes, that indicates how long candidates should expect to spend on the challenge.
True if the candidate is not allowed to add, rename or delete files.
An array of objects indicating the files that should be included within the challenge.
The markdown compatible instructions to give to the candidate.
The maximum number of times a candidate can submit the challenge before being locked from making any more changes. Null indicates unlimited attempts (default).
An internal summary used to clarify to your team what the challenge is for.
An array of objects representing the reference files for the challenge, which provide a fully working solution to be tested against. A reference files will be used instead of any non-reference file if the paths are the same. See files
for schema.
Determines runtime settings for executing the tests.
True if the candidate should be shown the results of their submission, allowing them to see which tests they failed and to make corrections.
A short description of the challenge, shown to the candidate before they start it.
The title of the challenge to refer to it by. This title will not be shown to candidates.
An array of strings indicating the topics this challenge focuses on. Useful for defining a simple skill or competency structure.
Create Q&A Challenge
Create a Q&A Challenge (called QuizChallenge within the API). You should specify "QuizChallenge" as the $type.
JSON Body Parameters:
A value from 1 - 4
indicating how difficult the challenge is. Lower is easier.
Time, in minutes, that indicates how long candidates should expect to spend on the challenge.
The markdown compatible instructions to give to the candidate.
An internal summary used to clarify to your team what the challenge is for.
The number of seconds the candidate has to complete the challenge. Only relevant if time_limit_type
is set to a per_question type.
An array of question objects. See Quiz Questions resource for more details on schema.
A short description of the challenge, shown to the candidate before they start it.
Determines if and how the challenge should be timed.
The title of the challenge to refer to it by. This title will not be shown to candidates.
An array of strings indicating the topics this challenge focuses on. Useful for defining a simple skill or competency structure.
Update
Updates an existing challenge. If a challenge is published, it will remained published with the new updates. _You must specify the $type parameter so that the API knows how to process the specific type of challenge update._
URL Parameters:
JSON Body Parameters:
True if the candidate should be able to run tests. Default is true
.
A value from 1 - 4
indicating how difficult the challenge is. Lower is easier.
True if the candidate should be allowed to use their own IDE, and connect to the code execution engine using Qualified's attach tool.
True if all tests should be verified on publish. Default is true.
Time, in minutes, that indicates how long candidates should expect to spend on the challenge.
True if the candidate is not allowed to add, rename or delete files.
An array of objects indicating the files that should be included within the challenge.
The markdown compatible instructions to give to the candidate.
An array of language objects that define settings on a per language basis.
The maximum number of times a candidate can submit the challenge before being locked from making any more changes. Null indicates unlimited attempts (default).
An internal summary used to clarify to your team what the challenge is for.
The number of seconds the candidate has to complete the challenge. Only relevant if time_limit_type
is set to a per_question type.
An array of question objects. See Quiz Questions resource for more details on schema.
An array of objects representing the reference files for the challenge, which provide a fully working solution to be tested against. A reference files will be used instead of any non-reference file if the paths are the same. See files
for schema.
Determines runtime settings for executing the tests.
True if sample test cases should be shown to candidates.
True if sample test cases should be readonly for candidates.
True if the candidate should be shown the results of their submission, allowing them to see which tests they failed and to make corrections.
A short description of the challenge, shown to the candidate before they start it.
Determines if and how the challenge should be timed.
The title of the challenge to refer to it by. This title will not be shown to candidates.
An array of strings indicating the topics this challenge focuses on. Useful for defining a simple skill or competency structure.
Delete
Deletes a challenge. Some challenges may not be deletable if they are actively being used on an assessment.
URL Parameters:
Expected Response Status:
204Un-Publish
Converts a published challenge back to a draft state. This operation is not available if the challenge is associated to a published assessment.
URL Parameters:
Publish
Publishes a challenge, making it available to be used within assessments. USE EXTREME CAUTION! The Qualified UI typically validates code before publishing. This endpoint does not do any validation, so if you publish a challenge directly through the API, you may be publishing a challenge which is not passable by candidates.
URL Parameters:
Archive
Archives a challenge, making it unavailable to be used on assessments. This operation is not available if the challenge is associated to a published assessment.
URL Parameters:
Un-archive
Un-archives a challenge, converted it back to its previous state.
URL Parameters:
Import
Imports a qualified library challenge into the team library. Can also be used to copy team challenges to a new version.
URL Parameters:
Export
Makes a copy of a challenge on the team provided. The user must have access to both teams to export the challenge.
URL Parameters:
JSON Body Parameters:
Label History
Each time a label is added or removed, it is recorded.
List
Returns a paged list of recent history items.
URL Parameters:
Notes
Notes can be attached to candidates in order to track miscellaneous information that you want to keep attached. These notes are shown on the candidate profile.
List
Returns a paged list of notes. Utilize the notable ID query param to only return notes for a specific resource.
URL Parameters:
Retrieve
Retrieves a specific note by ID.
URL Parameters:
Create
Creates a new note for the given resource.
JSON Body Parameters:
The text content of the note.
Update
Update the body of an existing note.
URL Parameters:
JSON Body Parameters:
The text content of the note.
Delete
Deletes a note from the system.
URL Parameters:
Expected Response Status:
204Quiz Questions
One or more QuizQuestions are associated to a QuizChallenge (aka "Q&A Challenge"). These questions define the questions that a candidate will be given.
List
Returns a list of questions for a particular quiz challenge. You can also pull these down by retrieving the QuizChallenge itself.
URL Parameters:
Retrieve
Retrieves an existing quiz question by ID. Useful if you need a specific question and do not want to load the parent QuizChallenge (which would have this information nested within it).
URL Parameters:
Create
Creates a quiz question for a QuizChallenge. $type must be provided to specify the type of question being created. $type cannot be changed once the record is created.
JSON Body Parameters:
The model type of the question.
True if fractional scoring should not be performed.
The ID of the challenge to add the question to.
An array of objects defining what choices should be available for the question.
Provide a default answer text if you want the candidate to modify something, such as performing a manually-scored refactoring or other text transformation.
An array of objects used to calculate score by matching answer text.
The maximum number of characters that an answer can have.
The total number of choices a candidate can select.
The maximum sum that can be scored. Useful when using multiple weighted choices and it is possible to weight higher than the total that you may wish to score.
The minimum number of characters that an answer needs to have.
The 1 based position of the challenge within the list. Will be auto-set to the end of the list if omitted.
The question prompt. Markdown is supported.
The weight to assign to this question. The default is 1
.
True if weighted scoring should be used. Otherwise all choices will count as an equal weight, regardless of what their individual weights are set as.
Update
Updates an existing question on a QuizChallenge.
URL Parameters:
JSON Body Parameters:
The model type of the question.
True if fractional scoring should not be performed.
The ID of the challenge to add the question to.
An array of objects defining what choices should be available for the question.
Provide a default answer text if you want the candidate to modify something, such as performing a manually-scored refactoring or other text transformation.
An array of objects used to calculate score by matching answer text.
The maximum number of characters that an answer can have.
The total number of choices a candidate can select.
The maximum sum that can be scored. Useful when using multiple weighted choices and it is possible to weight higher than the total that you may wish to score.
The minimum number of characters that an answer needs to have.
The 1 based position of the challenge within the list. Will be auto-set to the end of the list if omitted.
The question prompt. Markdown is supported.
The weight to assign to this question. The default is 1
.
True if weighted scoring should be used. Otherwise all choices will count as an equal weight, regardless of what their individual weights are set as.
Delete
Deletes the specified quiz question from the associated QuizChallenge. The operation is not reversible, the question data will be lost.
URL Parameters:
Expected Response Status:
204Solution Reviews
Solution reviews are individual review data given by each reviewer, for a given solution. Each solution review will be associated to a parent assessment result review. This API currently supports subjective ratings and feedback only, contact us if you wish to use objective ratings via a rubric.
List
Returns a paged list of solution reviews.
URL Parameters:
Retrieve
Retrieves a specific solution review.
URL Parameters:
Create
Creates a new solution review record. There can be only one record per reviewed_by_id/solution_id pairing. This record must be associated to an existing assessment result review.
JSON Body Parameters:
The ID of the assessment result review this.
Feedback given by the reviewer. Markdown is supported.
Subjective rating. 1 - 5
, for a 3 point system use 1,3 and 5 as your values.
The ID of the team member who reviewed the candidate.
The ID of the solution being reviewed.
Update
Updates an existing solution review.
URL Parameters:
JSON Body Parameters:
Feedback given by the reviewer. Markdown is supported.
Subjective rating. 1 - 5
, for a 3 point system use 1,3 and 5 as your values.
Delete
Deletes an existing solution review.
URL Parameters:
Expected Response Status:
204Solutions
Solutions are the result of a candidate taking a challenge. Available endpoints are relevant for all solution sub-types.
List
Returns a paged listed of solutions.
URL Parameters:
Retrieve
Retrieves a solution by ID. Fields returned depend on the type of solution.
URL Parameters:
Get Similar
Returns similar solutions to that of the ID given. Only relevant for CodeSolution and AdvancedCodeSolution solution types. Similarity feature must be enabled on your subscription.
URL Parameters:
Team Candidates
Team Candidates are the users whom take an assessment. While they have their own user account, the TeamCandidate record is always data specific to your team.
List
Returns a paged list of team candidates.
URL Parameters:
Retrieve
Retrieves a single team candidate by ID.
URL Parameters:
Update
Updates basic info for a team candidate.
URL Parameters:
JSON Body Parameters:
Bulk Action
Takes an action on a set of candidates at once. In addition to performing an action (such as archiving), it also allows certain fields to be updated.
URL Parameters:
JSON Body Parameters:
Approve
Approves a team candidate.
URL Parameters:
Reject
Marks the candidate as rejected, a final decision state.
URL Parameters:
Archive
Archives a candidate, moving them out of the inbox
URL Parameters:
Unarchive
Restores candidate to pre-archived state.
URL Parameters:
Assign
Assigns team members to the candidate.
URL Parameters:
JSON Body Parameters:
Forget
Marks a candidate as forgotten, removing all PII data for GDPR purposes.
URL Parameters:
TeamMemberPrivileges
Update
Updates privileges on a team member.
URL Parameters:
Team Members
Team members are the team's users within the system.
List
Returns all team members for the team.
URL Parameters:
Retrieve
Returns a single team member account.
URL Parameters:
TeamNotification
List
Returns a paged list of TeamNotifications.
URL Parameters:
Retrieve
Retrieves an instance of a TeamNotification.
URL Parameters:
Retrieve
Retrieves the latest instance of a team's TeamNotification.
URL Parameters:
Update
Updates an existing instance of a TeamNotification.
URL Parameters:
Delete
Deletes an existing instance of a TeamNotification.
URL Parameters:
Expected Response Status:
204WebhookEvent
List
Returns a paged list of WebhookEvents.
URL Parameters:
Retrieve
Retrieves an instance of a WebhookEvent.
URL Parameters:
Webhook Examples
Resources for simulating and firing webhooks for a given resource and event. **Note** that the data returned is in snake case, as opposed to camel case. This is because webhook data does not support camel casing, unlike the data normally returned by the API.
Simulate Assessment Result Started Response
Return an example of what is sent from a webhook subscription after an assessment result is started.
URL Parameters:
Simulate Assessment Result Submitted Response
Return an example of what is sent from a webhook subscription after an assessment result is submitted.
URL Parameters:
Simulate Solution Updated Response
Return an example of what is sent from a webhook subscription after solution is updated.
URL Parameters:
Simulate Team Candidate State Changed Response
Return an example of what is sent from a webhook subscription after a team candidate's state is changed.
URL Parameters:
Trigger Solution Updated Hook
Triggers a web hook to be sent to the url provided, allowing you to test what its like for the system to send hooks
URL Parameters:
Webhook Subscriptions
Endpoints for managing your web subscriptions. The Qualified UI currently only supports a single subscription, but more can be managed programmatically via this API.
List
Returns all webhook subscriptions for the team.
Retrieve
Retrieves a specific webhook subscription.
URL Parameters:
Create
Creates a new webhook subscription. You can manage multiple subscriptions via the API.
JSON Body Parameters:
An object containing webhook event names as keys and true/false as values indicating that they are enabled or not.
URL that should be called whenever one of the subscribed webhook events is triggered.
Update
Updates an existing webhook subscription.
URL Parameters:
JSON Body Parameters:
An object containing webhook event names as keys and true/false as values indicating that they are enabled or not.
URL that should be called whenever one of the subscribed webhook events is triggered.
Delete
Deletes a webhook subscription using its ID.
URL Parameters:
Expected Response Status:
204Delete By Url
Deletes a webhook subscription by matching the webhook URL to the one provided.