Payloads
Every webhook HI Platform sends has the same envelope wrapping an event-specific payload. This page documents the envelope, score scale, and the JSON shape of each event.
Envelope
The body of every webhook delivery has this shape.
{
"id": "0fbe5d2c-7c9d-4f9a-9e0b-2c3d4a5b6c7d",
"type": "assessment.completed",
"apiVersion": "2026-05-14",
"occurredAt": "2026-05-14T10:30:45.123Z",
"data": { "...": "..." }
}
| Field | Type | Notes |
|---|---|---|
id |
UUID string |
Delivery identifier. Also delivered as X-Webhook-Delivery-Id. Use it as your dedup key —
deliveries can repeat under retry.
|
type |
string |
Event type in dot-notation (e.g. assessment.completed). Mirrors the
X-Webhook-Event header. See Events for the catalog.
|
apiVersion |
ISO-date string |
Current wire-contract version. Bumped only on breaking changes (removed or renamed fields, type or
semantic changes); new optional fields ship under the current version, so pin your parsing to ignore
unknown keys. Current: 2026-05-14.
|
occurredAt |
ISO-8601 string (UTC) | When the event happened in HI Platform. |
data |
object | Event-specific payload (see below). |
Score scale
Assessment scores are sent on a 0–10 scale with 1 decimal place — the same scale as the
report a recruiter sees. Job-filter match scores are integers in [0, 100].
assessment.completed
One assessment was completed on a participation. The payload carries the participant, the assessment type, the score, and (for LOGIC) integrity information.
{
"id": "0fbe5d2c-7c9d-4f9a-9e0b-2c3d4a5b6c7d",
"type": "assessment.completed",
"apiVersion": "2026-05-14",
"occurredAt": "2026-05-14T10:30:45.123Z",
"data": {
"project": {
"id": "9f8e7d6c-5b4a-3210-fedc-ba9876543210",
"name": "Senior Engineer — Backend",
"url": "https://app.hiassessments.com/projects/9f8e7d6c-5b4a-3210-fedc-ba9876543210"
},
"participation": {
"id": "12345678-9abc-def0-1234-56789abcdef0",
"url": "https://app.hiassessments.com/projects/9f8e7d6c-5b4a-3210-fedc-ba9876543210/participants/12345678-9abc-def0-1234-56789abcdef0",
"participant": {
"email": "jane.doe@example.com",
"firstName": "Jane",
"lastName": "Doe"
}
},
"assessmentType": "LOGIC",
"score": {
"scoreType": "LOGIC",
"gma": 8.8,
"itemsAnswered": 18,
"correctAnswers": 15,
"incorrectAnswers": 3,
"totalTimeSeconds": 720,
"averageTimePerItemSeconds": 40
},
"integrity": { "tier": "NO_ISSUES", "cameraStatus": "ENABLED" },
"occurredAt": "2026-05-14T10:30:42.987Z"
}
}
| Field | Type | Notes |
|---|---|---|
project.id |
UUID string | The project that owns this participation. |
project.name |
string | The project's display name. |
project.url |
URL string | Deep link to the project in the customer portal. |
participation.id |
UUID string | The participant's participation. |
participation.url |
URL string | Deep link to the participation's results in the customer portal. |
participation.participant.email |
string | Participant's email — typically the join key against your candidate records. |
participation.participant.firstName |
string | Participant's first name. |
participation.participant.lastName |
string | Participant's last name. |
assessmentType |
enum string | LOGIC, PERSONALITY, or HI. |
score |
object |
Polymorphic — see Score variants below. The scoreType field
always matches assessmentType.
|
integrity |
object · always present |
Object for LOGIC assessments with proctoring data, null for
PERSONALITY and HI.
|
occurredAt |
ISO-8601 string (UTC) | Same as the envelope's occurredAt. |
participation.completed
The participant completed every assessment on a participation. The payload bundles all assessment results and, when the project has a job filter configured, the participant's match score against it.
{
"id": "7a2b1c4d-5e6f-7890-abcd-ef1234567890",
"type": "participation.completed",
"apiVersion": "2026-05-14",
"occurredAt": "2026-05-14T11:05:00.000Z",
"data": {
"project": {
"id": "9f8e7d6c-5b4a-3210-fedc-ba9876543210",
"name": "Senior Engineer — Backend",
"url": "https://app.hiassessments.com/projects/9f8e7d6c-5b4a-3210-fedc-ba9876543210"
},
"participation": {
"id": "12345678-9abc-def0-1234-56789abcdef0",
"url": "https://app.hiassessments.com/projects/9f8e7d6c-5b4a-3210-fedc-ba9876543210/participants/12345678-9abc-def0-1234-56789abcdef0",
"participant": {
"email": "jane.doe@example.com",
"firstName": "Jane",
"lastName": "Doe"
}
},
"assessments": [
{
"assessmentType": "LOGIC",
"score": {
"scoreType": "LOGIC",
"gma": 8.8,
"itemsAnswered": 18,
"correctAnswers": 15,
"incorrectAnswers": 3,
"totalTimeSeconds": 720,
"averageTimePerItemSeconds": 40
},
"integrity": { "tier": "NO_ISSUES", "cameraStatus": "ENABLED" }
},
{
"assessmentType": "PERSONALITY",
"score": { "scoreType": "PERSONALITY", "...": "..." },
"integrity": null
},
{
"assessmentType": "HI",
"score": { "scoreType": "HI", "riskLevel": "MEDIUM", "...": "..." },
"integrity": null
}
],
"jobFilterMatch": {
"id": "0a1b2c3d-4e5f-6789-abcd-ef0123456789",
"name": "Senior Engineer — Backend",
"type": "COMPETENCY_BASED",
"matchScore": 82,
"assessmentBreakdown": [
{ "assessmentType": "LOGIC", "matchScore": 88 },
{ "assessmentType": "PERSONALITY", "matchScore": 74 },
{ "assessmentType": "HI", "matchScore": 81 }
],
"competencyBreakdown": [
{ "id": "c1d2e3f4-5678-90ab-cdef-1234567890ab", "name": "Problem solving", "matchScore": 90 },
{ "id": "d2e3f4a5-6789-01bc-def0-234567890abc", "name": "Collaboration", "matchScore": 75 }
]
},
"occurredAt": "2026-05-14T11:04:58.123Z"
}
}
Job filter match
When a project is configured with a job filter, HI Platform attaches the participant's match score to the
participation.completed event.
| Field | Type | Notes |
|---|---|---|
id |
UUID string | The configured filter. |
name |
string | Human-readable name. |
type |
enum string | SCALE_BASED or COMPETENCY_BASED. |
matchScore |
integer (0–100) | Overall aggregate match. |
assessmentBreakdown |
array |
One entry per assessment that contributed a score, with assessmentType and
matchScore (integer 0–100). Assessments with no contribution are omitted from the array.
|
competencyBreakdown |
array |
Empty for SCALE_BASED. Populated for COMPETENCY_BASED: each entry has
id, name, and matchScore (integer 0–100; omitted when a required
underlying assessment is incomplete).
|
Score variants
The score field's shape depends on the assessment type. Branch on scoreType (or the
parent assessmentType, which always matches).
LOGIC
{
"scoreType": "LOGIC",
"gma": 8.8,
"itemsAnswered": 18,
"correctAnswers": 15,
"incorrectAnswers": 3,
"totalTimeSeconds": 720,
"averageTimePerItemSeconds": 40
}
| Field | Type | Description |
|---|---|---|
gma |
number (0–10) | General Mental Ability score on the 1-decimal scale. |
itemsAnswered |
integer | Number of items the participant attempted. |
correctAnswers |
integer | Correct responses. |
incorrectAnswers |
integer | Incorrect responses. |
totalTimeSeconds |
integer | Total session duration in seconds. |
averageTimePerItemSeconds |
number | Average per-item duration in seconds. |
PERSONALITY
{
"scoreType": "PERSONALITY",
"openness": {
"overall": 6.5,
"subfactors": [
{ "code": "OP1", "name": "Creativity", "score": 7.1 },
{ "code": "OP2", "name": "Curiosity", "score": 6.8 },
{ "code": "OP3", "name": "Change Orientation", "score": 6.0 },
{ "code": "OP4", "name": "Imagination", "score": 6.3 }
]
},
"conscientiousness": { "overall": 7.2, "subfactors": [/* CO1..CO4 */] },
"extraversion": { "overall": 5.8, "subfactors": [/* EX1..EX4 */] },
"agreeableness": { "overall": 7.4, "subfactors": [/* AG1..AG4 */] },
"emotionalStability":{ "overall": 6.1, "subfactors": [/* ES1..ES4 */] }
}
Big Five factors. Each factor has an overall aggregate plus four subfactors. See
Subfactor codes below for the full map.
HI
{
"scoreType": "HI",
"riskLevel": "MEDIUM",
"intellectualHumility": {
"subfactors": [
{ "code": "IH1", "name": "Reconsideration", "score": 6.4 },
{ "code": "IH2", "name": "Perspective-seeking", "score": 7.1 },
{ "code": "IH3", "name": "Self-awareness", "score": 6.9 }
]
},
"resilience": { "subfactors": [/* RE1..RE3 */] },
"stressBehaviors": { "subfactors": [/* SB1..SB10 */] }
}
| Field | Type | Notes |
|---|---|---|
riskLevel |
enum string |
LOW · MEDIUM · HIGH. Derived from the count of elevated
stress-behavior subfactors. LOW = 0–2 elevated, MEDIUM = 3–4,
HIGH = 5+. This is the canonical summary of the HI result.
|
intellectualHumility |
object | 3 subfactors (IH1–IH3). |
resilience |
object | 3 subfactors (RE1–RE3). |
stressBehaviors |
object | 10 subfactors (SB1–SB10). |
HI factors expose subfactors only — the product UI never surfaces a factor-level aggregate, so the webhook
contract doesn't either. Use riskLevel as the summary.
Subfactor codes
Codes are stable identifiers; names are the English labels HI Platform uses in its reports. Join on
code; the name is supplied for display.
Personality (OCEAN)
| Factor | Code | Name |
|---|---|---|
| Openness to Experience | OP1 |
Creativity |
OP2 |
Curiosity | |
OP3 |
Change Orientation | |
OP4 |
Imagination | |
| Conscientiousness | CO1 |
Dutifulness |
CO2 |
Persistence | |
CO3 |
Goal Orientation | |
CO4 |
Structure | |
| Extraversion | EX1 |
Sociability |
EX2 |
Assertiveness | |
EX3 |
Energy | |
EX4 |
Enthusiasm | |
| Agreeableness | AG1 |
Trust |
AG2 |
Cooperation | |
AG3 |
Helpfulness | |
AG4 |
Empathy | |
| Emotional Stability | ES1 |
Emotional Resilience |
ES2 |
Impulse Control | |
ES3 |
Optimism | |
ES4 |
Stress Tolerance |
HI
| Factor | Code | Name |
|---|---|---|
| Humility (Intellectual Humility) | IH1 |
Reconsideration |
IH2 |
Perspective-seeking | |
IH3 |
Self-awareness | |
| Resilience | RE1 |
Adaptability |
RE2 |
Emotional Regulation | |
RE3 |
Recovery Capacity | |
| Stress Behaviors | SB1 |
Detached |
SB2 |
Dominant | |
SB3 |
Expressive | |
SB4 |
Cautious | |
SB5 |
Charismatic | |
SB6 |
Emotion-Driven | |
SB7 |
Resistant | |
SB8 |
Perfectionistic | |
SB9 |
Guarded | |
SB10 |
Visionary |
Integrity info
Always present on assessment payloads (the integrity key never disappears). The value is an
object for LOGIC assessments and null for everything else.
| Field | Type | Values |
|---|---|---|
tier |
enum string |
NO_ISSUES, MINOR_ISSUES, MODERATE_ISSUES,
MAJOR_ISSUES
|
cameraStatus |
enum string | ENABLED, PARTIALLY_ENABLED, DISABLED |