You can reset a particular test using following API endpoint:
https://api.hackerearth.com/partner/hackerearth/events/reset/
The client authentication is done using your unique client_id and client_secret.
You can refer to your Dashboard settings, for client_id and client_secret under API details.
Type: String
Description: client_id is a 67 character random key that serves as an identification for a particular client and must be provided when communicating with the API as a parameter to the API endpoint.
Example: d8a20ae8e475209er4b1faa72ede88a174423cc2029c.api.hackerearth.com
Type: String
Description: client_secret is a 40 character random key that serves as an identification for a particular client and must be provided when communicating with the API as a parameter to the API endpoint.
Example: 2b0ff29f4f8751487540604cdab5611e6135f41c
Candidate report is accessible only for published test.
client_id, client_secret, test_id and email are the required parameters for making request to this API endpoint.
All the requests to the API must be made using POST request method.
client_id and client_secret are explained above.
Type: Integer
Description: test_id is a unique integer for your test. Refer to this article for a better understanding. In this article, Recruiter API ID is the test_id.
Example: 584
Type: List
Description: emails is a list/array which contains emails for which tests are to be reset.
Example: ["foo@bar.com", "bob@alice.com", "hacker@hackerearth.com"]
Type: Boolean value (True/False)
Description: If the reset_for_all is true, test will get reset for all the candidates. If it is false, test will get reset for whatever emails provided in the emails parameter.
Type: Boolean value (True/False)
Description: If this field is not provided, by default send_email will be False and candidates will not receive reset emails. If this value is True, candidates will receive test reset email.
Sample request using python
#!/usr/bin/env python
import json
import requests
CLIENT_ID = "d8a20ae8e475209e0eb1faa72ede88a174423cc2029c.api.hackerearth.com"
CLIENT_SECRET = "2b0ff29f4f8751487450604cdab5611e6135f41c"
TEST_ID = 53
EMAIL = "hacker@hackerearth.com"
payload = {
'client_id': CLIENT_ID,
'client_secret': CLIENT_SECRET,
'test_id': TEST_ID,
'emails': [EMAIL, ],
'reset_for_all': False,
'send_email': True
}
r = requests.post("https://api.hackerearth.com/partner/hackerearth/events/reset/", data=json.dumps(payload))
print r.json()
Using cURL
curl --data '{"client_id":"d8a20ae8e475209e0eb1faa72ede88a174423cc2029c.api.hackerearth.com","client_secret":"2b0ff29f4f8751487450604cdab5611e6135f41c","test_id":20, "emails":["hacker@hackerearth.com"], "reset_for_all": false, "send_email": false}' https://api.hackerearth.com/partner/hackerearth/events/reset/
Response returned will be in JSON format.
Sample response
{
"emessage": [],
"mcode": "SUCCESS",
"valid_emails": ["hacker@hackerearth.com"],
"invalid_emails": [],
"log_message": "Test result for 1 candidate(s)."
"ecode": [],
"message": "Request successful"
}
Type : String
Description: Message code abbreviated as mcode.
Type: String
Description: A message for user regarding the success of request.
message and mcode are related to each other according to the following table:
mcode | message |
---|---|
SUCCESS | Request successful |
FAILED | Request failed |
Type: List
Description: Error codes abbreviated as ecode.
Type: List
Description: A message explaining the error occurred during request processing.
emessage and ecode are related to each other according to the following table:
ecode | emessage |
---|---|
AUTHFAILED | Authentication Failed |
ARGMISSING | Request argument missing |
BADDATA | |
MUSTBEINT | Test ID must be integer |
INVALIDEMAIL | Invalid email(s) exist. |
TESTNOTFOUND | Test not found |
TESTNOTPUBLISHED | Test not published |
LIMITEXCEEDED | Client exceeded its request limit. Please contact support@hackerearth.com. |
RATELIMITEXCEEDED | The rate at which the API requests are made has reached. Please try again after one minute. |
ACCESSERROR | You are not authorized to access this feature. Please contact support@hackerearth.com. |
Type: List
Description: An array of invalid emails
Example:
"invalid_emails": [
"itsnotanemail",
"another@@wrongemail",
"wrong@again"
]
Type: List
Description: An array of valid emails
Example:
"valid_emails": [
"validemail@mail.com",
]
If the data provided is invalid, the JSON response returned will look like:
{
"message": "Request failed",
"ecode": [
"BADDATA"
],
"emessage": [
""
],
"mcode": "FAILED"
}
If you have provided wrong client_id or client_secret, the JSON response returned will look like:
{
"message": "Request failed",
"ecode": [
"AUTHFAILED"
],
"emessage": [
"Authentication Failed"
],
"mcode": "FAILED"
}
If mandatory POST arguments are not provided, the JSON response returned will look like:
{
"message": "Request failed",
"ecode": [
"ARGMISSING"
],
"emessage": [
"Request argument missing: 'test_id'"
],
"mcode": "FAILED"
}
If the type of test_id is not integer, then the JSON response returned will look like:
{
"message": "Request failed",
"ecode": [
"MUSTBEINT"
],
"emessage": [
"Test ID must be integer"
],
"mcode": "FAILED"
}
If wrong test_id is provided or the test has already been deleted, then the JSON response returned will look like:
{
"message": "Request failed",
"ecode": [
"TESTNOTFOUND"
],
"emessage": [
"Test not found"
],
"mcode": "FAILED"
}
If test is not published:
{
"message": "Request failed",
"ecode": [
"TESTNOTPUBLISHED"
],
"emessage": [
"Test not published"
],
"mcode": "FAILED"
}
If user is not authorized to access the test, the JSON response returned will look like:
{
"message": "Request failed",
"ecode": [
"ACCESSERROR"
],
"emessage": [
"You are not authorized to access this feature. Please contact support@hackerearth.com."
],
"mcode": "FAILED"
}
If the limit of API requests (15000 requests) is reached, then the JSON response that is returned is as follows:
{
"message": "Request failed",
"ecode": [
"LIMITEXCEEDED"
],
"emessage": [
"The limit of the API requests has been reached. Contact support@hackerearth.com."
],
"mcode": "FAILED"
}
If the rate (60 per min or 10000 per day) at which API requests are made by a specific user is reached, then the JSON response that is returned is as follows:
{
"message": "Request failed",
"ecode": [
"RATELIMITEXCEEDED"
],
"emessage": [
"The rate at which the API requests are made has reached. Please try again after some time."
],
"mcode": "FAILED"
}
If invalid email id provided, then the JSON response returned will be like:
{
"message": "Request failed",
"ecode": [
"INVALIDEMAIL"
],
"emessage": [
"Invalid email(s) exist"
],
"mcode": "FAILED"
}
If any other issue occurred do reach us out at api@hackerearth.com