You can extend time for a particular test using the following API endpoint:
https://api.hackerearth.com/partner/hackerearth/events/extend-time/
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
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: 5841
Type: List
Description: emails is a list/array which contains emails for which test is extended.
Example: ["foo@bar.com", "bob@alice.com", "hacker@hackerearth.com"]
Type: Boolean value (True/False)
Description: If this field is not provided, by default send_email will be false and candidates will not receive event extend emails. If this value is True candidates will receive event extend emails.
Type: Boolean value (True/False)
Description: If this value is true, test is extended for all the candidates. If this value is false, test is extended for the emails which are provided in the emails parameter
Type: Integer (Time in minutes)
Description: Test gets extended for the candidates by specified number of minutes.
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, ],
'send_email': True
'extend_for_all': False,
'extension_time': 20,
}
r = requests.post("https://api.hackerearth.com/partner/hackerearth/events/extend-time/", data=json.dumps(payload))
print r.json()
Using cURL
curl --data '{"client_id":"d8a20ae8e475209e0eb1faa72ede88a174423cc2029c.api.hackerearth.com","client_secret":"2b0ff29f4f8751487450604cdab5611e6135f41c","test_id":20, "emaisl":["hacker@hackerearth.com"], "reset_for_all": false, "send_email": false}' https://api.hackerearth.com/partner/hackerearth/events/extend-time/
Response returned will be in JSON format.
Sample response
{
"emessage": [],
"mcode": "SUCCESS",
"valid_emails": ["hacker@hackerearth.com"],
"invalid_emails": [],
"log_message": "Time extended 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 |
CANDIDATENOTFOUND | Candidate not found |
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 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 the candidate with the provided email id was not invited for the test or has not taken the test, then the JSON response returned will be like:
{
"message": "Request failed",
"ecode": [
"CANDIDATENOTFOUND"
],
"emessage": [
"Candidate not found"
],
"mcode": "FAILED"
}
If any other issue occurred do reach us out at api@hackerearth.com