{"object":"webhook_event_catalog","apiVersion":"v1","delivery":{"signatureHeader":"Cast-Signature","maxAttempts":7,"timeoutSeconds":10,"retryScheduleSeconds":[30,300,1800,7200,21600,43200],"totalRetrySeconds":74130},"events":[{"type":"message.delivered","family":"message","summary":"A message reached the recipient\u0027s device.","notes":"Sent for SMS, WhatsApp and RCS.","since":"2026-05","subscription":"column","defaultOn":true,"fields":[{"name":"messageId","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The provider\u0027s id for the message."},{"name":"smsLogId","type":"string","nullable":false,"required":true,"onlyFor":["whatsapp","rcs"],"description":"Cast\u0027s id for the message."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The recipient."},{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"sms, whatsapp or rcs."},{"name":"templateName","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The template sent."},{"name":"templateLanguage","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The template language."},{"name":"sentAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When Cast accepted the send."},{"name":"deliveredAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it was delivered."},{"name":"readAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it was read."},{"name":"failedAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it failed."},{"name":"failureCode","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The provider\u0027s error code."},{"name":"failureReason","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The provider\u0027s error text."},{"name":"status","type":"string","nullable":false,"required":true,"onlyFor":["rcs"],"description":"delivered, read or failed."},{"name":"occurredAt","type":"datetime","nullable":false,"required":true,"onlyFor":["rcs"],"description":"When it happened."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":["sms"],"description":"The campaign, when the message was part of one."},{"name":"message_id","type":"string","nullable":false,"required":true,"onlyFor":["sms"],"description":"Use messageId.","deprecated":{"announcedOn":"2026-11-02","sunsetOn":"2027-05-01","replacement":"messageId"}},{"name":"campaign_id","type":"string","nullable":false,"required":true,"onlyFor":["sms"],"description":"Use campaignId.","deprecated":{"announcedOn":"2026-11-02","sunsetOn":"2027-05-01","replacement":"campaignId"}}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"message.delivered","created":1777633205,"apiVersion":"v1","data":{"messageId":"wamid.HBgLOTYxNzAxMjM0NTY3","smsLogId":"12345","to":"96170123456","channel":"whatsapp","templateName":"order_shipped","templateLanguage":"en_US","sentAt":"2026-05-01T10:59:58Z","deliveredAt":"2026-05-01T11:00:05Z","readAt":null,"failedAt":null,"failureCode":null,"failureReason":null}}},{"type":"message.read","family":"message","summary":"The recipient opened a message.","notes":"Sent for WhatsApp, when the recipient has read receipts on, and for RCS.","since":"2026-05","subscription":"column","defaultOn":true,"fields":[{"name":"messageId","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The provider\u0027s id for the message."},{"name":"smsLogId","type":"string","nullable":false,"required":true,"onlyFor":["whatsapp","rcs"],"description":"Cast\u0027s id for the message."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The recipient."},{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"sms, whatsapp or rcs."},{"name":"templateName","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The template sent."},{"name":"templateLanguage","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The template language."},{"name":"sentAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When Cast accepted the send."},{"name":"deliveredAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it was delivered."},{"name":"readAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it was read."},{"name":"failedAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it failed."},{"name":"failureCode","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The provider\u0027s error code."},{"name":"failureReason","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The provider\u0027s error text."},{"name":"status","type":"string","nullable":false,"required":true,"onlyFor":["rcs"],"description":"delivered, read or failed."},{"name":"occurredAt","type":"datetime","nullable":false,"required":true,"onlyFor":["rcs"],"description":"When it happened."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":["sms"],"description":"The campaign, when the message was part of one."},{"name":"message_id","type":"string","nullable":false,"required":true,"onlyFor":["sms"],"description":"Use messageId.","deprecated":{"announcedOn":"2026-11-02","sunsetOn":"2027-05-01","replacement":"messageId"}},{"name":"campaign_id","type":"string","nullable":false,"required":true,"onlyFor":["sms"],"description":"Use campaignId.","deprecated":{"announcedOn":"2026-11-02","sunsetOn":"2027-05-01","replacement":"campaignId"}}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"message.read","created":1777633205,"apiVersion":"v1","data":{"messageId":"wamid.HBgLOTYxNzAxMjM0NTY3","smsLogId":"12345","to":"96170123456","channel":"whatsapp","templateName":"order_shipped","templateLanguage":"en_US","sentAt":"2026-05-01T10:59:58Z","deliveredAt":"2026-05-01T11:00:05Z","readAt":null,"failedAt":null,"failureCode":null,"failureReason":null}}},{"type":"message.failed","family":"message","summary":"A message could not be delivered.","notes":"Sent for SMS, WhatsApp and RCS. WhatsApp carries failureCode and failureReason; SMS carries reason and code.","since":"2026-05","subscription":"column","defaultOn":true,"fields":[{"name":"messageId","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The provider\u0027s id for the message."},{"name":"smsLogId","type":"string","nullable":false,"required":true,"onlyFor":["whatsapp","rcs"],"description":"Cast\u0027s id for the message."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The recipient."},{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"sms, whatsapp or rcs."},{"name":"templateName","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The template sent."},{"name":"templateLanguage","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The template language."},{"name":"sentAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When Cast accepted the send."},{"name":"deliveredAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it was delivered."},{"name":"readAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it was read."},{"name":"failedAt","type":"datetime","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"When it failed."},{"name":"failureCode","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The provider\u0027s error code."},{"name":"failureReason","type":"string","nullable":true,"required":true,"onlyFor":["whatsapp"],"description":"The provider\u0027s error text."},{"name":"status","type":"string","nullable":false,"required":true,"onlyFor":["rcs"],"description":"delivered, read or failed."},{"name":"occurredAt","type":"datetime","nullable":false,"required":true,"onlyFor":["rcs"],"description":"When it happened."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":["sms"],"description":"The campaign, when the message was part of one."},{"name":"message_id","type":"string","nullable":false,"required":true,"onlyFor":["sms"],"description":"Use messageId.","deprecated":{"announcedOn":"2026-11-02","sunsetOn":"2027-05-01","replacement":"messageId"}},{"name":"campaign_id","type":"string","nullable":false,"required":true,"onlyFor":["sms"],"description":"Use campaignId.","deprecated":{"announcedOn":"2026-11-02","sunsetOn":"2027-05-01","replacement":"campaignId"}},{"name":"reason","type":"string","nullable":false,"required":true,"onlyFor":["sms"],"description":"A normalised reason from a closed list, the same one as failure.reason on GET /v1/messages."},{"name":"code","type":"string","nullable":true,"required":true,"onlyFor":["sms"],"description":"The carrier\u0027s own error code, when it sent one."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"message.failed","created":1777633205,"apiVersion":"v1","data":{"messageId":"wamid.HBgLOTYxNzAxMjM0NTY3","smsLogId":"12345","to":"96170123456","channel":"whatsapp","templateName":"order_shipped","templateLanguage":"en_US","sentAt":"2026-05-01T10:59:58Z","deliveredAt":"2026-05-01T11:00:05Z","readAt":null,"failedAt":null,"failureCode":null,"failureReason":null}}},{"type":"message.inbound","family":"message","summary":"A customer sent a message to your WhatsApp number.","notes":"WhatsApp only.","since":"2026-05","subscription":"column","defaultOn":false,"fields":[{"name":"messageId","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The provider\u0027s id for the message."},{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Always whatsapp."},{"name":"from","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The customer\u0027s number."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Your WhatsApp phone number id."},{"name":"type","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The message type: text, image, audio and so on."},{"name":"body","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The text, when the message has text."},{"name":"isOptOut","type":"boolean","nullable":false,"required":true,"onlyFor":[],"description":"True when the message is an opt-out keyword."},{"name":"isHelpRequest","type":"boolean","nullable":false,"required":true,"onlyFor":[],"description":"True when the message is a help keyword."},{"name":"receivedAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When Cast received it."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"message.inbound","created":1777633205,"apiVersion":"v1","data":{"messageId":"wamid.HBgLOTYxNzAxMjM0NTY3","channel":"whatsapp","from":"96170123456","to":"102938475610293","type":"text","body":"Hello, I need help with my order","isOptOut":false,"isHelpRequest":false,"receivedAt":"2026-05-01T11:00:05Z"}}},{"type":"conversation.status_changed","family":"conversation","summary":"A conversation in the inbox was opened, set to pending, resolved or marked as spam.","notes":"A bulk action sends one event per conversation for its first 1,000 changes.","since":"2026-06","subscription":"column","defaultOn":false,"fields":[{"name":"customerPhone","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversation key: the phone for WhatsApp, channel:id for other channels."},{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversation\u0027s channel."},{"name":"status","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"The status number."},{"name":"statusName","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"open, pending, resolved or spam."},{"name":"isPinned","type":"boolean","nullable":false,"required":true,"onlyFor":[],"description":"True when the conversation is pinned."},{"name":"changedByAgentID","type":"integer","nullable":true,"required":true,"onlyFor":[],"description":"The agent who changed it."},{"name":"reason","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"agent, pin_changed, inbound_message or bulk."},{"name":"changedAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When it changed."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"conversation.status_changed","created":1777633205,"apiVersion":"v1","data":{"customerPhone":"96170123456","channel":"whatsapp","status":2,"statusName":"resolved","isPinned":false,"changedByAgentID":17,"reason":"agent","changedAt":"2026-05-01T11:00:05Z"}}},{"type":"conversation.assigned","family":"conversation","summary":"A conversation in the inbox was assigned to an agent or unassigned.","notes":"A bulk action sends one event per conversation for its first 1,000 changes.","since":"2026-06","subscription":"column","defaultOn":false,"fields":[{"name":"customerPhone","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversation key: the phone for WhatsApp, channel:id for other channels."},{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversation\u0027s channel."},{"name":"action","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"assigned or unassigned."},{"name":"agentID","type":"integer","nullable":true,"required":true,"onlyFor":[],"description":"The agent, null when unassigned."},{"name":"agentName","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The agent\u0027s name."},{"name":"byUserID","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The user who made the change."},{"name":"source","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"agent, routing, rebalance or bulk."},{"name":"changedAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When it changed."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"conversation.assigned","created":1777633205,"apiVersion":"v1","data":{"customerPhone":"96170123456","channel":"whatsapp","action":"assigned","agentID":17,"agentName":"Lina","byUserID":"c0a80164-0000-4000-8000-000000000001","source":"agent","changedAt":"2026-05-01T11:00:05Z"}}},{"type":"note.added","family":"conversation","summary":"An agent added an internal note to a conversation.","notes":"","since":"2026-06","subscription":"column","defaultOn":false,"fields":[{"name":"noteID","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"The note\u0027s id."},{"name":"customerPhone","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversation key: the phone for WhatsApp, channel:id for other channels."},{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversation\u0027s channel."},{"name":"agentID","type":"integer","nullable":true,"required":true,"onlyFor":[],"description":"The agent who wrote it."},{"name":"body","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The note\u0027s text."},{"name":"createdAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When it was written."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"note.added","created":1777633205,"apiVersion":"v1","data":{"noteID":981,"customerPhone":"96170123456","channel":"whatsapp","agentID":17,"body":"Called about an invoice.","createdAt":"2026-05-01T11:00:05Z"}}},{"type":"bulk.completed","family":"conversation","summary":"An inbox bulk action finished, was cancelled or stopped.","notes":"Sent once per run to every endpoint subscribed to a conversation status or assignment event. A run past 1,000 changes sends no more per-conversation events; read perConversationEvents here and fetch anything else you need from the API.","since":"2026-06","subscription":"derived","defaultOn":false,"fields":[{"name":"jobId","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The bulk run."},{"name":"action","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"What the run did."},{"name":"status","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"How it ended."},{"name":"total","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"Conversations in scope."},{"name":"done","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"Conversations processed."},{"name":"updated","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"Conversations changed."},{"name":"skipped","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"Conversations skipped."},{"name":"failed","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"Conversations that failed."},{"name":"failReason","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"Why the run stopped, when it did."},{"name":"perConversationEvents","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"How many per-conversation events the run sent."},{"name":"perConversationLimit","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"The most a run sends."},{"name":"finishedAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When it finished."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"bulk.completed","created":1777633205,"apiVersion":"v1","data":{"jobId":"7a1f4c1e-2b1d-4c1a-9e0b-3c1d2e4f5a6b","action":"set_status","status":"completed","total":1500,"done":1500,"updated":1480,"skipped":20,"failed":0,"failReason":null,"perConversationEvents":1000,"perConversationLimit":1000,"finishedAt":"2026-05-01T11:00:05Z"}}},{"type":"email.opened","family":"email","summary":"A tracked email was opened.","notes":"Sent on every open, not only the first. Treat it as an estimate: mail clients and privacy proxies can load images without a person opening the email.","since":"2026-11","subscription":"table","defaultOn":false,"fields":[{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Always email."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The recipient\u0027s address."},{"name":"smsLogId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"Cast\u0027s id for the message. Null when the provider\u0027s report names only the address."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The campaign, when the message was part of one."},{"name":"occurredAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When Cast received the event."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"email.opened","created":1777633205,"apiVersion":"v1","data":{"channel":"email","to":"lina@example.com","smsLogId":"12345","campaignId":"3f2b8c1e-6a0d-4b57-9a11-5f0c2e7d1a44","occurredAt":"2026-05-01T11:00:05Z"}}},{"type":"email.clicked","family":"email","summary":"A link in a tracked email was clicked.","notes":"Sent on every click. Security scanners can follow links before a person does.","since":"2026-11","subscription":"table","defaultOn":false,"fields":[{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Always email."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The recipient\u0027s address."},{"name":"smsLogId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"Cast\u0027s id for the message. Null when the provider\u0027s report names only the address."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The campaign, when the message was part of one."},{"name":"occurredAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When Cast received the event."},{"name":"url","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The link\u0027s real destination."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"email.clicked","created":1777633205,"apiVersion":"v1","data":{"channel":"email","to":"lina@example.com","smsLogId":"12345","campaignId":"3f2b8c1e-6a0d-4b57-9a11-5f0c2e7d1a44","occurredAt":"2026-05-01T11:00:05Z","url":"https://example.com/offer"}}},{"type":"email.bounced","family":"email","summary":"An email could not be delivered and the address is now suppressed.","notes":"Sent for permanent bounces only, to the account that sent the message. A temporary bounce does not suppress the address and sends no event. An address that has been erased sends nothing. If the report cannot be tied to one message and more than one account has mailed the address, the address is suppressed and no event is sent.","since":"2026-11","subscription":"table","defaultOn":false,"fields":[{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Always email."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The recipient\u0027s address."},{"name":"smsLogId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"Cast\u0027s id for the message. Null when the provider\u0027s report names only the address."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The campaign, when the message was part of one."},{"name":"occurredAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When Cast received the event."},{"name":"reason","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"What the provider reported."},{"name":"bounceType","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"Always hard today."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"email.bounced","created":1777633205,"apiVersion":"v1","data":{"channel":"email","to":"lina@example.com","smsLogId":"12345","campaignId":"3f2b8c1e-6a0d-4b57-9a11-5f0c2e7d1a44","occurredAt":"2026-05-01T11:00:05Z","reason":"SES Permanent","bounceType":"hard"}}},{"type":"email.complained","family":"email","summary":"A recipient marked an email as spam and the address is now suppressed.","notes":"Sent to the account that sent the message. An address that has been erased sends nothing. If the report cannot be tied to one message and more than one account has mailed the address, the address is suppressed and no event is sent.","since":"2026-11","subscription":"table","defaultOn":false,"fields":[{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Always email."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The recipient\u0027s address."},{"name":"smsLogId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"Cast\u0027s id for the message. Null when the provider\u0027s report names only the address."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The campaign, when the message was part of one."},{"name":"occurredAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When Cast received the event."},{"name":"reason","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"What the provider reported."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"email.complained","created":1777633205,"apiVersion":"v1","data":{"channel":"email","to":"lina@example.com","smsLogId":"12345","campaignId":"3f2b8c1e-6a0d-4b57-9a11-5f0c2e7d1a44","occurredAt":"2026-05-01T11:00:05Z","reason":"SES Complaint"}}},{"type":"email.unsubscribed","family":"email","summary":"A recipient unsubscribed from your email.","notes":"Sent when the link is followed or your email provider reports it. A second visit to the link sends it again. Nothing is sent for an address that has been erased.","since":"2026-11","subscription":"table","defaultOn":false,"fields":[{"name":"channel","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Always email."},{"name":"to","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The recipient\u0027s address."},{"name":"smsLogId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"Cast\u0027s id for the message. Null when the provider\u0027s report names only the address."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The campaign, when the message was part of one."},{"name":"occurredAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When Cast received the event."},{"name":"reason","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"How they unsubscribed."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"email.unsubscribed","created":1777633205,"apiVersion":"v1","data":{"channel":"email","to":"lina@example.com","smsLogId":"12345","campaignId":"3f2b8c1e-6a0d-4b57-9a11-5f0c2e7d1a44","occurredAt":"2026-05-01T11:00:05Z","reason":"one-click"}}},{"type":"conversion.recorded","family":"conversion","summary":"A conversion was credited to a tracked click.","notes":"Sent to the account that owns the offer, for an approved conversion. A rejected one, a duplicate and a tracking pixel event send nothing.","since":"2026-11","subscription":"table","defaultOn":false,"fields":[{"name":"conversionId","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"Cast\u0027s id for the conversion."},{"name":"offerId","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"The offer it belongs to."},{"name":"clickId","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The tracked click it is credited to."},{"name":"eventType","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversion event, for example sale, lead, cta_click, form_submit or dcb."},{"name":"status","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversion status."},{"name":"payout","type":"number","nullable":true,"required":true,"onlyFor":[],"description":"The payout."},{"name":"currency","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Three-letter currency code."},{"name":"convertedAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When the conversion happened."},{"name":"source","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"dcb for a carrier billing subscription; postback for everything else: an advertiser\u0027s call, and the cta_click and form_submit events from a landing page."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The campaign behind the click."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"conversion.recorded","created":1777633205,"apiVersion":"v1","data":{"conversionId":8123,"offerId":42,"clickId":"9d6b1f3a-2c44-4e0a-8f51-1b2c3d4e5f60","eventType":"sale","status":"approved","payout":12.5,"currency":"USD","convertedAt":"2026-05-01T11:00:05Z","source":"postback","campaignId":"3f2b8c1e-6a0d-4b57-9a11-5f0c2e7d1a44"}}},{"type":"conversion.reversed","family":"conversion","summary":"A conversion was reversed, for example after a refund.","notes":"Sent to the account that owns the offer. A second reversal of the same conversion sends nothing.","since":"2026-11","subscription":"table","defaultOn":false,"fields":[{"name":"conversionId","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"Cast\u0027s id for the conversion."},{"name":"offerId","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"The offer it belongs to."},{"name":"clickId","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The tracked click it is credited to."},{"name":"eventType","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversion event, for example sale, lead, cta_click, form_submit or dcb."},{"name":"status","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"The conversion status."},{"name":"payout","type":"number","nullable":true,"required":true,"onlyFor":[],"description":"The payout."},{"name":"currency","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Three-letter currency code."},{"name":"convertedAt","type":"datetime","nullable":false,"required":true,"onlyFor":[],"description":"When the conversion happened."},{"name":"source","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"dcb for a carrier billing subscription; postback for everything else: an advertiser\u0027s call, and the cta_click and form_submit events from a landing page."},{"name":"campaignId","type":"string","nullable":true,"required":true,"onlyFor":[],"description":"The campaign behind the click."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"conversion.reversed","created":1777633205,"apiVersion":"v1","data":{"conversionId":8123,"offerId":42,"clickId":"9d6b1f3a-2c44-4e0a-8f51-1b2c3d4e5f60","eventType":"sale","status":"reversed","payout":12.5,"currency":"USD","convertedAt":"2026-05-01T11:00:05Z","source":"postback","campaignId":"3f2b8c1e-6a0d-4b57-9a11-5f0c2e7d1a44"}}},{"type":"segment.alert","family":"segment","summary":"A segment crossed an alert rule, or came back.","notes":"Sent when a rule first fires, again after 24 hours if it is still firing, and once when it recovers. Only for rules that ask for the webhook.","since":"2026-11","subscription":"table","defaultOn":false,"fields":[{"name":"segmentId","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"The segment."},{"name":"segmentName","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"Its name."},{"name":"rule","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"size_below, size_above or change_pct."},{"name":"threshold","type":"number","nullable":false,"required":true,"onlyFor":[],"description":"The rule\u0027s limit."},{"name":"size","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"The segment\u0027s size now."},{"name":"state","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"firing, or recovered when it came back inside the limit."},{"name":"windowHours","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"The rule\u0027s window."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"segment.alert","created":1777633205,"apiVersion":"v1","data":{"segmentId":42,"segmentName":"VIP customers","rule":"size_below","threshold":1000,"size":900,"state":"firing","windowHours":24}}},{"type":"audit.batch","family":"audit","summary":"New entries from your account\u0027s audit log, up to 100 per request.","notes":"Turned on with the audit log stream option on an endpoint, not with the event list.","since":"2026-10","subscription":"stream","defaultOn":false,"fields":[{"name":"prev_last_id","type":"integer","nullable":true,"required":true,"onlyFor":[],"description":"The last audit id of the batch before this one."},{"name":"first_id","type":"integer","nullable":true,"required":true,"onlyFor":[],"description":"The first audit id in this batch."},{"name":"last_id","type":"integer","nullable":true,"required":true,"onlyFor":[],"description":"The last audit id in this batch."},{"name":"count","type":"integer","nullable":false,"required":true,"onlyFor":[],"description":"How many entries."},{"name":"events","type":"object","nullable":false,"required":true,"onlyFor":[],"description":"The audit entries."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"audit.batch","created":1777633205,"apiVersion":"v1","data":{"prev_last_id":113597,"first_id":113602,"last_id":113602,"count":1,"events":[]}}},{"type":"test","family":"system","summary":"Sent when you press Send test on an endpoint.","notes":"","since":"2026-05","subscription":"none","defaultOn":false,"fields":[{"name":"message","type":"string","nullable":false,"required":true,"onlyFor":[],"description":"A fixed sentence."},{"name":"test","type":"boolean","nullable":false,"required":true,"onlyFor":[],"description":"Always true."}],"sample":{"id":"evt_a1b2c3d4e5f60718293a4b5c6d7e8f90","type":"test","created":1777633205,"apiVersion":"v1","data":{"message":"This is a Cast webhook test event. Your integration is working.","test":true}}}]}