Assessments Webhooks


This page lists and describes all the events that webhooks can currently send with respect to the assessments workflow.

We will add more webhook events in the future, so make sure you check this page whenever you want to add functionality that depends on the assessment workflow events that can take place in your account.

Webhooks events

1) Candidate starts the test

This webhook event gets triggered when a candidate starts the test.

webhook_event_type: The value of webhook_event_type field would be CANDIDATE_TEST_STARTED

webhook_payload: This would be a JSON, containing test_id, email and start_datetime fields.

Sample webhook_payload

{
    "test_id": 1035542,
    "email": "alice@bob.com",
    "start_datetime": "2019-08-05T10:11:46-05:51"
}

test_id

Type: Integer

Description: This would be the unique identifier of the assessment.

email

Type: String

Description: This would be the email ID of the candidate who started the assessment.

start_datetime

Type: String

Description: This would be the timestamp at which the candidate started the assessment. It would be in ISO8601 date-time format.

2) Candidate ends the test

This webhook event gets triggered when a candidate ends the test.

webhook_event_type: The value of webhook_event_type field would be CANDIDATE_TEST_FINISHED

webhook_payload: This would be a JSON, containing test_id, email and finish_datetime fields.

Sample webhook_payload

{
    "test_id": 1035542,
    "email": "alice@bob.com",
    "finish_datetime": "2019-08-05T10:11:46-05:51"
}

test_id

Type: Integer

Description: This would be the unique identifier of the assessment.

email

Type: String

Description: This would be the email ID of the candidate who ended the assessment.

finish_datetime

Type: String

Description: This would be the timestamp at which the candidate ends the assessment. It would be in ISO8601 date-time format.

3) Candidate report updated

This webhook event gets triggered whenever a candidate's assessment report gets generated or updated.

webhook_event_type: The value of webhook_event_type field would be CANDIDATE_REPORT_UPDATED

webhook_payload: This would be a JSON, containing test_id, email, name, start_datetime, finish_datetime, time_taken, score, percentage, status, questions_attempted, problem_type_scores, full_report_url, candidate_assessment_report_url, anon_report_url, phone_number, institute, graduation_year, candidate_id and custom_details fields.

Sample webhook_payload

{
    "test_id": 1035542,
    "email": "example@gmail.com",
    "name": "exampleuser65",
    "start_datetime": "2019-08-05T10:11:46-05:51",
    "finish_datetime": "2019-08-05T10:12:10-05:51",
    "time_taken": "0:23:48",
    "score": 53.0,
    "percentage": 39,
    "status": "active",
    "questions_attempted": 3,
    "problem_type_scores": {
        "Programming": 51.0,
        "Multiple Choice Questions": 2.0
    },
    "section_scores": {
        "Programming": {
            "PSection1": 20.0,
            "PSection2": 31.0
        },
        "Multiple Choice Questions": {
            "MSection1": 2.0
        }
    },
    "full_report_url": "https://www.hackerearth.com/recruiter/test-draft-7-136/candidates-report/c8001a2587a74c7cb80c552a92b009b9/5f2445dd4b1c7d08ef3c0307dc4ce90b/",
    "candidate_assessment_report_url": "https://www.hackerearth.com/recruiter/test-draft-7-136/candidate-performance-report/c8001a2587a74c7cb80c552a92b009b9/66240bea5fc24e5baff57a6f9c44350f/",
    "anon_report_url": "https://www.hackerearth.com/recruiter/test-draft-7-136/candidates-report/<hash1>/hash<2>/",
    "phone_number": null,
    "institute": "IIT Delhi",
    "graduation_year": "2023",
    "candidate_id": "dedewd",
    "custom_details": {
        "Stream/Branch": "CSE",
        "Degree": "B.Tech/B.E.",
        "Resume": "https://he-s3.s3.amazonaws.com/hackathon/am-ex-challenge/misc/a0a11516cb-kforJobFinal.pdf",
        "CGPA": "6.5",
        "College": "Other College",
        "Graduation Year": "Other"
    }
}

test_id

Type: Integer

Description: This would be the unique identifier of the assessment.

email, name

Type: String

Description: These would be the email ID and full name of the candidate whose assessment report got updated.

start_datetime, finish_datetime

Type: String

Description: These would be the timestamps at which candidate started and finished the assessment. These would be in ISO8601 date-time format.

time_taken

Type: String

Description: This would be the time duration taken by the candidate to finish the assessment.

score, percentage

Type: Integer

Description: These would be the total score and percentage obtained by the candidate in the assessment.

status

Type: String

Description: This would depict the current status of the candidate at HackerEarth. This field can have any of these four values: online, active, offered and archive. Their meanings have been explained below.

  • online: Candidate is currently taking the test.
  • active: Candidate has finished the test and is in Review pending state.
  • offered: Candidate has been shortlisted.
  • archive: Candidate has been archived.

questions_attempted

Type: Integer

Description: This would be the total number of questions attempted by the candidate in the assessment.

problem_type_scores

Type: Dictionary (JSON)

Description: This would be the mapping of question type section and candidate's total score in that section.

full_report_url

Type: String

Description: This would be the URL of candidate's full assessment report.

candidate_assessment_report_url

Type: String

Description: This would be the URL of candidate's performance report which could be shared with the candidate as it does not contain any information about the correct solutions.

anon_report_url

Type: String

Description: This would be the Anonymous report URL and this field would be present in the payload only if your company has subscribed to the anonymous reports feature.

phone_number, institute, graduation_year, candidate_id

Type: String

Description: These are the personal details of the candidate and these will be set in the payload if these fields were marked in Candidate Settings under Test Settings section and candidate has filled these details, otherwise, the value of these fields will be null.

custom_details

Type: Dictionary (JSON)

Description: This would be the mapping of Custom details fields and their values filled by the candidate.

4) Assessment Config updated

This webhook event gets triggered whenever an assessment's configuration gets updated.

webhook_event_type: The value of webhook_event_type field would be TEST_CONFIG_UPDATED

webhook_payload: This would be a JSON, containing id, title, slug, duration, creation_datetime, start_datetime, end_datetime and cutoff_score fields.

Sample webhook_payload

{
    "id": 850266,
    "title": "Algorithms",
    "slug": "algorithms-test-212",
    "duration": 5400.0,
    "creation_datetime": "2019-08-19T07:47:00-05:51",
    "start_datetime": "2019-08-19T07:47:00-05:51",
    "end_datetime": "2019-08-21T23:25:02+05:30",
    "cutoff_score": 200
}

id

Type: Integer

Description: This would be the unique identifier of the assessment.

title, slug

Type: String

Description: These would be the title and unique slug of the assessment.

duration

Type: Integer

Description: This would be the duration (in seconds) of the assessment.

creation_datetime, start_datetime, end_datetime

Type: String

Description: These would be the timestamps at which the assessment was created, is scheduled to start and is scheduled to end respectively. These would be in ISO8601 date-time format.

cutoff_score

Type: Integer

Description: This would be the Cut off score of the assessment.


In case of any queries do reach us out at api@hackerearth.com

Notifications
View All Notifications

?