Skip to main content
This page documents each event, how to trigger it, and the payload shape you should expect at your listener.

Event Structure

All webhooks follow the same envelope:

Common fields

Hyperbrowser signs the raw JSON payload plus the X-Webhook-Timestamp header. See the overview for signature validation details.

Session Events

Events in this category are emitted by browser sessions launched through the Sessions API. Webhook enabling or disabling in the dashboard will only apply to new sessions created after the change.

session.downloads.updated

Sent each time the Downloads folder is updated in a session where saveDownloads was enabled.
  • Triggered by: Downloads folder is updated in the browser session.
  • Prerequisites: saveDownloads: true during session creation.
You will receive a session.downloads.updated event each time the Downloads folder is updated in the browser session. Check out the Sessions Downloads docs for more information on how to retrieve the downloads folder.

session.tab.opened

Sent whenever a new browser tab is opened during a session.
  • Triggered by: A new page target is created (tab or popup).
  • Prerequisites: None.

session.captcha.detected

Sent when a captcha is detected during a session.
  • Triggered by: Captcha detection in the browser (recaptcha/turnstile, etc.).
  • Prerequisites: Captcha solving enabled for the session (e.g. solveCaptchas: true).

session.captcha.solved

Sent when a captcha is solved during a session.
  • Triggered by: Captcha solving completing successfully.
  • Prerequisites: Captcha solving enabled for the session (e.g. solveCaptchas: true).

session.closed

Sent whenever a session closes.
  • Triggered by: Session lifecycle ending.
Pair the session.closed event with the Sessions API to pull final details of the session as soon as it stops.

session.video_recording.completed

Sent when a session’s video recording has been successfully finalized and is ready for playback or download.
  • Triggered by: Video recording finalization completing successfully.
  • Prerequisites: Video recording enabled for the session.

session.video_recording.failed

Sent when a session’s video recording failed to finalize.
  • Triggered by: Video recording finalization encountering an error.
  • Prerequisites: Video recording enabled for the session.

Event Filtering

From the dashboard you can choose exactly which events to deliver. Only the selected types will be enqueued.