Query Parameter | Description |
ak | This is your Public-API-Key, which Mettl uses to identify your account. |
ts | This is the current UNIX or Epoch Timestamp (the number of seconds between 1970-01-01 00:00:00 and current UTC Time). Any current generated Timestamp will be valid for 24 hours only. |
asgn | This is a unique Signature which has to be generated for each API request . The Signature is generated by creating a String-to-Sign and hashing it with your Private-API-Key using the HMAC-SHA256 (for version v2 and v3) or HMAC-SHA1 (for v1) hashing algorithm with Base-64 and URL encoding. Read more about the above Signature Generation Process in API Authentication and Signature Generation. |
sc | This is a JSON string containing the details of the schedule/ test link to be edited. The format for the JSON is given below |
Property | Sub Property | Sub Property | Description |
name | Name of the schedule/ test link to be created. This value is a string and has to be unique for each schedule in your assessment. | ||
sourceApp | Name of your application. This value is a string. | ||
access | Schedule access settings, shown as the Private access only checkbox in your Test Link Settings in dashboard. This value is a nested JSON. | ||
↳ | type | Schedule access type, can be either public access or private access only. This string is always mandatory within access JSON and only accepts "OpenForAll" or "ByInvitation". When "ByInvitation" is chosen, details of candidates are required to be configured in the candidates property below. | |
↳ | sendEmail | Determines whether a start test mail will be sent to the candidates when their details are added to "ByInvitation" schedule. This value is a boolean, false by default and only works when access type is "ByInvitation". If you are trying to use this API to send start test emails from a Mercer | Mettl Id, always remember to set sendEmail as true in each API call when adding candidates. | |
↳ | isCandidateCrfPrefilled | Determines whether the candidate registration fields, except for email, already provided when adding candidates will be skipped before starting the test. This value is a boolean, false by default and only works when access type is "ByInvitation". | |
↳ | candidates | Candidates to be added or removed who have access to "ByInvitation" schedule. This value is a nested JSON. | |
↳ | add | Details of candidates to be added "ByInvitation" schedule. This value is a list of nested JSON(s) with the following nested properties. ↳ email Candidate's email id. This string is mandatory in each candidates add JSON. ↳ name Candidate's name. This string is mandatory in each candidates add JSON. ↳ *exact name of other Candidate Registration Fields This property represents all other candidate registration fields and the name of the property is the exact name of the registration field. This string is optional. eg. [{"name": "Name", "email": "name@email.com", "Date of birth": "Sep 16 1998"},{"name": "Name2", "email": "name2@email.com", "Date of birth": "Jan 1 1996"}] | |
↳ | remove | Emails Ids of candidates to be removed from "ByInvitation" schedule. This value is a list of string(s) and accepts only emails id which are already added to the schedule. eg. ["name@email.com","name2@email.com"] | |
scheduleType | Schedule access time , can be either Anytime access or Fixed access. This values is a string and only accepts "AlwaysOn" or "Fixed". When "AlwaysOn" is chosen, the test link is accessible at any time. When "Fixed" is chosen, the test link is accessible at only at specific times and settings for the exact access time are required to be configured in the scheduleWindow JSON below. | ||
scheduleWindow | Fixed access time settings. This value is a nested JSON. | ||
↳ | fixedAccessOption | Determines whether the test link will be accessible at any time of day or only during certain hours or slots. This value is a string and only accepts "ExactTime" or "SlotWise" with the default value being "ExactTime". With "ExactTime", the test is accessible during any time of day between the start and end, time and date. With "SlotWise", the test is accessible during specific time of day between the start and end date. | |
↳ | startsOnDate | Start date for access period. This string is mandatory in scheduleWindow JSON in the given format. eg. "Wed, 20 Oct 2021", "Fri, 11 Feb 2022" | |
↳ | startsOnTime | Start time for access period. This string is mandatory in scheduleWindow JSON in the given format. eg. "09:00:00", "12:00:00" | |
↳ | endsOnDate | End date for access period. This string is mandatory in scheduleWindow JSON in the given format. eg. "Thu, 21 Oct 2021", "Sat, 12 Feb 2022" | |
↳ | endsOnTime | End time for access period. This string is mandatory in scheduleWindow JSON in the given format. eg. "15:00:00", "18:00:00" | |
↳ | timeZone | Time zone represented as UTC offset defined in tz database. This string is mandatory when locationTimeZone is not used in the scheduleWindow JSON in the given format. eg. "UTC+05:30", "UTC-08:00" | |
↳ | locationTimeZone | Time zone location in the format defined in tz database. This string is mandatory when timeZone is not used in the scheduleWindow JSON in the given format. eg. "Asia/Kolkata", "America/Los_Angeles" | |
webProctoring | Browsing tolerance settings. This value is a JSON and disabled by default. | ||
↳ | enabled | Determines whether Browsing tolerance is enabled. This value is a boolean and false by default. | |
↳ | count | Number of times a test taker is allowed to navigate away from the test window, before the test ends. This value is an integer and should be more than or equal to 0. | |
↳ | showRemainingCounts | Determines whether remaining counts of Browsing tolerance are shown. This value is a boolean and false by default. | |
visualProctoring | Advanced Visual Proctoring settings. This value is a nested JSON and disabled by default. | ||
↳ | mode | Determines whether Advanced Visual Proctoring is enabled when "PHOTO" is chosen. This value is a string and only accepts "PHOTO" or "OFF" with the default value being "OFF". | |
↳ | options | Additional settings when Advanced Visual Proctoring is enabled. This value is a nested JSON and disabled by default. | |
↳ | candidateScreenCapture | Determines whether time-interval based screen-grabs of candidates test screen are taken. This value is a boolean and false by default. | |
↳ | candidateAuthorization | Determines whether a manual live authorization process is enabled for starting the test . This values is a boolean is optional and false by default. | |
secureBrowser | Mettl Secure Browser setting. This value is a nested JSON and disabled by default. | ||
↳ | enabled | Determines whether Mettl Secure Browser is enabled. This value is a boolean and false by default. | |
protected | Determines whether OTP sent on email Id is required before starting the test. This string is optional and only accepts "OtpOnEmail" to enable, "NotEnabled" to disable with the default value being "NotEnabled". | ||
testStartNotificationUrl | URL to configure start test webhook notifications. This value is a string and only accepts a valid URL | ||
testFinishNotificationUrl | URL to configure finish test webhook notifications. This value is a string and only accepts a valid URL | ||
testGradedNotificationUrl | URL to configure test results webhook notifications. This value is a string and only accepts a valid URL | ||
testResumeEnabledForExpiredTestURL | URL to configure expired test resume webhook notifications. This value is a string and only accepts a valid URL | ||
testNotificationBasicAuthHeader | Basic Authentication header which is returned in the above webhook notifications. You can input a value in the format base64encoded(username:password) in order to receive additional individual headers for username and password as well. This value is a string with the default behavior being no authentication sent in webhook notifications. | ||
testGradeNotification | Settings for sending test result email notifications. This value is a nested JSON and disabled by default. | ||
↳ | enabled | Determines whether test result email notifications are enabled. This value is a boolean and false by default. | |
recipients | Email ids of the recipients for test result email notifications. This value is a list of string(s) and accepts only valid email ids in the given format, eg. [" admin@email.com ", " admin2@email.com "] | ||
ipAccessRestriction | IP address restriction settings. This value is a JSON and disabled by default. | ||
↳ | enabled | Determines whether IP address restriction is enabled. This value is a boolean and false by default. | |
↳ | type | Configures whether IP address restriction will be applicable on a single or a range of IP addresses. This value is a string and only accepts either "SINGLE" or "RANGE" When "SINGLE" is selected, the restricted IP address is set using the ip property below. When "RANGE" is used, the range of restricted IP address is set using the ranges property. | |
↳ | ip | Single IP address in IPv4 format. This value is a string and accepts the given format. eg. "0.0.0.0", "255.255.255.255" | |
↳ | ranges | Range of IP addresses in IPv4 format. This value is a list of JSON(s) and accepts the given format. eg. [{"start":"128.128.128.128","end":"128.128.128.130"}, {"start":"64.64.64.64","end":"64.64.64.67"}] | |
↳ | start | Starting IP address in the range of addresses. This value is a string | |
↳ | end | Ending IP address in the range of addresses. This value is a string |
Overall Status | Detailed Status | Description |
Yet to Start | Mapped | Test-takers have been added to a test-link via candidate banks or manual entry, but an email hasn’t been sent. |
Yet to Start | Invited | Test-taker has been invited for the test via email. |
Yet to Start | Registered | Test-taker has registered by clicking on proceed/submit button on the test-taker portal. |
Not Started | Access Expired | 1-Test-taker didn't start the test and access time elapsed. 2- Test-taker has registered by saving registration fields on test-taker portal but didn’t start the test and access time elapsed. 3- In case of deadline-based assessments, this status will be displayed when submission date is elapsed. |
In-progress | In-progress | Test –taker has started the test |
In-progress | Awaiting Resume Permission | Test-taker got disconnected and is awaiting resume permission from admin (if Supervised resume is enabled). |
Completed | Test-taker completed | Test-taker clicked on the Finish button to submit the test. |
Completed | Time Over | The test was auto-submitted as the test-taker ran out of time. |
Test Stopped | Mic Mute Limit exceeded | The test was stopped because of exceeding mic mute count. |
Test Stopped | Browsing Tolerance Limit Exceeded | The test was stopped because of exceeding Browsing Tolerance. |
Test Stopped | Proctor Stopped | Proctor stopped the test. |
Test Stopped | Suspicious Software Detected | The test was stopped because of suspicious software. |
Test Stopped | Multiple Screen Detected | The test was stopped because of multiple screens detected. |
Test Stopped | Prohibited Apps Running | The test was stopped because of prohibited apps running. |
Test Stopped | Screen Capture/Recording Detected | The test was stopped because of screen capture/recording. |
Test Stopped | Screen Sharing/Remote Access Detected | The test was stopped because of screen share/remote access. |
Blocked | Authorizer Blocked | The authorizer blocked the test-taker from starting the test. |
Disconnected | Disconnected from Server | The test-taker got disconnected because of power failure/bad internet and couldn't resume within 30 minutes. |
Disconnected | Test Window Closed | Test-taker closed the window and navigated away from the screen. Test-taker didn't resume the test in 30 mins. |
Disconnected | Awaiting Test-taker Resume | The test-taker got disconnected and admin resumed the test (normal resume). |
finish_mode (in webhook response) | completionMode (in webhook response) | Test Finish Mode (in candidate reports) | Description |
TimeExpired | AutoCompleted | Auto Submit | Test Time finished before candidate could attempt all questions. |
Blocked | NA | Blocked | Candidate blocked at the authorization stage (For Proctored Test with Authorization On). |
BrowsingToleranceExceeded | BrowsingToleranceExceeded | Browsing Tolerance Exceeded | When browsing tolerance is set and test taker navigates away from the test window more than the permissible number or times (browsing tolerance limit). |
TestExpired | Expired | Expired | If candidate gets disconnect (Loss of internet connection, etc) or his/her system shuts down abruptly and he/she is unable to resume the test. |
NormalSubmission | Completed | Normal | Finish Test button Clicked. |
ParentFinish | ParentFinished | Normal | The background parent window is closed. |
ProctoredFinish | ProctoredFinish | Proctored Finish | Image Proctored Test ended by Proctor. |
NA | ResumeEnabled | Resume Enabled | Candidate allowed to resume tests from same point where test got over, only can be done if initial status was Expired. |
SuspiciousSoftwareFinish | SuspiciousSoftwareFinish | Suspicious Software Finish | Suspicious Software detected Eg TeamViewer, SplashTop etc also found running and Mettl automatically closes test. |
CandidateClosed | CandidateClosed | Test Window Closed | Test Window Closed without clicking on Finish Test. |