v2.4 CURRENT PROTOCOLJSON

Event Types

Every webhook request carries the same envelope: the event id, its type, when it occurred, the team id and an event-specific payload object. Event types take the form <source>.<action> and are grouped by product family. Your endpoint receives only the events it selected in its configuration.

Shared Envelope

FieldTypeDescription
idStringUnique event id (evt_...); the same as the X-Incapon-Event-Id header.
event_typeStringThe event type, for example page.changed.
created_atStringWhen the event occurred, ISO 8601 UTC.
team_idStringThe team the event belongs to (team_...).
testBooleantrue for a test dispatch.
payloadObjectEvent-specific data; see the examples below.

Event List

EventFamilyWhen it is sent
page.changedDetectorWhen a monitored page's DOM hash or visual diff crosses the threshold.
price.changedDetectorWhen a value tracked with a CSS selector (price, stock) changes.
monitor.failedDetectorWhen a check fails 3 times in a row (timeout, 4xx/5xx).
document.processedPDF EditörWhen OCR of an uploaded document completes.
document.redactedPDF EditörWhen redaction rules have been applied and the output is ready.
signature.comparedSignature APIWhen a comparison completes or fails.
transcription.completedAltyazıWhen the transcription, and any translation, job finishes.
credits.lowCreditsWhen the balance drops below the threshold set for the team.
credits.topped_upCreditsWhen a manual or automatic top-up reaches the balance.

Example Payloads

{
  "id": "evt_live_89124a9c_f901",
  "event_type": "price.changed",
  "created_at": "2026-10-29T08:02:11Z",
  "team_id": "team_4Qm1",
  "test": false,
  "payload": {
    "monitor_id": "mon_42",
    "url": "https://shop.example.com/product/123",
    "selector": ".product-price",
    "previous_value": "$49.00",
    "current_value": "$43.00",
    "checked_at": "2026-10-29T08:02:09Z"
  }
}
New fields may be added to the envelope or the payload object at any time; ignore fields you do not recognise. Removing a field or changing its meaning only happens with a new API version.

Next Steps & Guides

Was this guide helpful?

Your feedback helps us improve our documentation.