Skip to main content
This is a Backend SDK method, not an HTTP endpoint. Run it on your server — typically every 30 seconds.

Signature

client.getWebhookEvents(options?: GetWebhookEventsOptions): Promise<GetWebhookEventsResult>

Parameters

limit
number
default:"50"
Maximum number of events to return per call. Server cap is 100.
since
number
Unix timestamp in milliseconds. Only returns events stored after this time. Useful for paginating across a specific time window.

Return value

events
array
Array of WebhookEvent objects. See Webhook Event Schema for the full field list.
pendingCount
number
Total events still in the queue after this batch. If greater than 0, call again to drain the rest.

const { events, pendingCount } = await client.getWebhookEvents({ limit: 50 });

console.log(`Got ${events.length} events, ${pendingCount} still pending`);

for (const event of events) {
  await saveToYourDatabase(event);
}

if (events.length) {
  await client.acknowledgeWebhookEvents(events.map(e => e.eventId));
}
{
  "events": [
    {
      "eventId": "evt_01J9XYZABC",
      "event": "assessment.completed",
      "assessmentId": "asmt_xyz789",
      "candidateId": "cand_abc123",
      "candidateName": "Priya Sharma",
      "candidateEmail": "priya@example.com",
      "assessmentName": "Full Stack Developer Assessment",
      "jobTitle": "Senior Software Engineer",
      "score": 78,
      "totalMarks": 100,
      "passMarks": 60,
      "passed": true,
      "status": "completed",
      "submittedAt": "2026-06-09T10:30:00.000Z",
      "durationMinutes": 45,
      "reportUrl": "https://platform.smartai.app/reports/evt_01J9XYZABC",
      "proctoring": {
        "score": 88,
        "violationCount": 2
      },
      "storedAt": "2026-06-09T10:31:00.000Z"
    }
  ],
  "pendingCount": 3
}

RequirementInterval
Near-real-time results10 seconds
Standard (recommended)30 seconds
Low-traffic / batch processing5 minutes
Do not poll more frequently than every 5 seconds — the platform rate-limits aggressive polling.