Webhooks
ModelsExpand Collapse
type MessageEventV2 struct{…}Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead of is_from_me boolean
sender_handle: Full handle object for the sender
chat: Nested object with id, is_group, and owner_handle
- Message fields (
id, parts, effect, etc.) are at the top level, not nested in message
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=null
message.received: sent_at set, delivered_at=null, read_at=null
message.delivered: sent_at set, delivered_at set, read_at=null
message.read: sent_at set, delivered_at set, read_at set
Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead ofis_from_mebooleansender_handle: Full handle object for the senderchat: Nested object withid,is_group, andowner_handle- Message fields (
id,parts,effect, etc.) are at the top level, not nested inmessage
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=nullmessage.received: sent_at set, delivered_at=null, read_at=nullmessage.delivered: sent_at set, delivered_at set, read_at=nullmessage.read: sent_at set, delivered_at set, read_at set
Chat MessageEventV2ChatChat information
Chat information
HealthStatus MessageEventV2ChatHealthStatus[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
Status stringCurrent health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Current health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Your phone number’s handle. Always has is_me=true.
Your phone number’s handle. Always has is_me=true.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Direction MessageEventV2DirectionMessage direction - “outbound” if sent by you, “inbound” if received
Message direction - “outbound” if sent by you, “inbound” if received
Parts []MessageEventV2PartUnionMessage parts (text and/or media)
Message parts (text and/or media)
type SchemasTextPartResponse struct{…}A text message part
A text message part
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
DEPRECATED: Use mentions instead. Handle (E.164 phone number or Apple ID email)
of the first mention on this part. A part may carry several mentions; this
field shows only the first in value order, so it cannot be used to determine
whether a given participant was mentioned. null when the part carries no mention.
DEPRECATED: Use mentions[].range instead. Character range [start, end) in
value highlighted as the first mention only. null when the range was
omitted (the whole value is highlighted) or the part carries no mention.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Mentions []SchemasTextPartResponseMentionOptionalEvery mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Every mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Text decorations applied to character ranges in the value
Text decorations applied to character ranges in the value
Character range [start, end) in the value string where the decoration applies.
start is inclusive, end is exclusive.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Animation TextDecorationAnimationOptionalAnimated text effect to apply. Mutually exclusive with style.
Animated text effect to apply. Mutually exclusive with style.
type MessageEventV2PartIMessageApp struct{…}An iMessage app card part.
An iMessage app card part.
SenderHandle ChatHandleThe handle that sent this message
The handle that sent this message
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
When the sending device was first seen for this sender (the message time for a newly seen device). Absent for SMS/RCS and for outbound messages.
DeviceStatus MessageEventV2DeviceStatusOptionalThe device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
The device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
DeprecatedPreferredService MessageEventV2PreferredServiceOptionalPreferred messaging service type. Includes “auto” for default fallback behavior.
Preferred messaging service type. Includes “auto” for default fallback behavior.
Present only when this message was recovered by reconciliation rather than delivered live, and set to the time of that recovery. The field is omitted entirely for normally-delivered messages, which is the overwhelming majority. When present, expect sent_at to be substantially earlier than delivery of this event: the message is genuine but is arriving late and out of real-time order, so treat it as history rather than as a live inbound (for example, suppress auto-replies).
type MessagePayload struct{…}Message content nested within webhook events
Message content nested within webhook events
When the sending device was first seen for this sender (the message time for a newly seen device). Absent for SMS/RCS and for outbound messages.
DeviceStatus MessagePayloadDeviceStatusOptionalThe device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
The device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
Parts []MessagePayloadPartUnionOptionalMessage content parts (text and/or media)
Message content parts (text and/or media)
type SchemasTextPartResponse struct{…}A text message part
A text message part
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
DEPRECATED: Use mentions instead. Handle (E.164 phone number or Apple ID email)
of the first mention on this part. A part may carry several mentions; this
field shows only the first in value order, so it cannot be used to determine
whether a given participant was mentioned. null when the part carries no mention.
DEPRECATED: Use mentions[].range instead. Character range [start, end) in
value highlighted as the first mention only. null when the range was
omitted (the whole value is highlighted) or the part carries no mention.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Mentions []SchemasTextPartResponseMentionOptionalEvery mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Every mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Text decorations applied to character ranges in the value
Text decorations applied to character ranges in the value
Character range [start, end) in the value string where the decoration applies.
start is inclusive, end is exclusive.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Animation TextDecorationAnimationOptionalAnimated text effect to apply. Mutually exclusive with style.
Animated text effect to apply. Mutually exclusive with style.
MessagePayloadPartSchemasIMessageAppPartResponse
Present only when this message was recovered by reconciliation rather than delivered live, and set to the time of that recovery. The field is omitted entirely for normally-delivered messages, which is the overwhelming majority. When present, expect sent_at to be substantially earlier than delivery of this event: the message is genuine but is arriving late and out of real-time order, so treat it as history rather than as a live inbound (for example, suppress auto-replies).
type ReactionEventBase struct{…}
Whether this reaction was from the owner of the phone number (true) or from someone else (false)
ReactionType ReactionTypeType of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question.
Custom emoji reactions have type “custom” with the actual emoji in the custom_emoji field.
Sticker reactions have type “sticker” with sticker attachment details in the sticker field.
Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question. Custom emoji reactions have type “custom” with the actual emoji in the custom_emoji field. Sticker reactions have type “sticker” with sticker attachment details in the sticker field.
The actual emoji when reaction_type is “custom”. Null for standard tapbacks.
DEPRECATED: Use from_handle instead. Phone number or email address of the person who added/removed the reaction.
The person who added/removed the reaction as a full handle object
The person who added/removed the reaction as a full handle object
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Identifier for this reaction. Pass it to
PATCH /v3/messages/{messageId}/reactions/{reactionId} to move a sticker.
Stickers stack, so this is what distinguishes one sticker from another on the
same message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
type SchemasTextPartResponse struct{…}A text message part
A text message part
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
DEPRECATED: Use mentions instead. Handle (E.164 phone number or Apple ID email)
of the first mention on this part. A part may carry several mentions; this
field shows only the first in value order, so it cannot be used to determine
whether a given participant was mentioned. null when the part carries no mention.
DEPRECATED: Use mentions[].range instead. Character range [start, end) in
value highlighted as the first mention only. null when the range was
omitted (the whole value is highlighted) or the part carries no mention.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Mentions []SchemasTextPartResponseMentionOptionalEvery mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Every mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Text decorations applied to character ranges in the value
Text decorations applied to character ranges in the value
Character range [start, end) in the value string where the decoration applies.
start is inclusive, end is exclusive.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Animation TextDecorationAnimationOptionalAnimated text effect to apply. Mutually exclusive with style.
Animated text effect to apply. Mutually exclusive with style.
type MessageSentWebhookEvent struct{…}Complete webhook payload for message.sent events (2026-02-03 format)
Complete webhook payload for message.sent events (2026-02-03 format)
Data MessageEventV2Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead of is_from_me boolean
sender_handle: Full handle object for the sender
chat: Nested object with id, is_group, and owner_handle
- Message fields (
id, parts, effect, etc.) are at the top level, not nested in message
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=null
message.received: sent_at set, delivered_at=null, read_at=null
message.delivered: sent_at set, delivered_at set, read_at=null
message.read: sent_at set, delivered_at set, read_at set
Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead ofis_from_mebooleansender_handle: Full handle object for the senderchat: Nested object withid,is_group, andowner_handle- Message fields (
id,parts,effect, etc.) are at the top level, not nested inmessage
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=nullmessage.received: sent_at set, delivered_at=null, read_at=nullmessage.delivered: sent_at set, delivered_at set, read_at=nullmessage.read: sent_at set, delivered_at set, read_at set
Chat MessageEventV2ChatChat information
Chat information
HealthStatus MessageEventV2ChatHealthStatus[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
Status stringCurrent health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Current health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Your phone number’s handle. Always has is_me=true.
Your phone number’s handle. Always has is_me=true.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Direction MessageEventV2DirectionMessage direction - “outbound” if sent by you, “inbound” if received
Message direction - “outbound” if sent by you, “inbound” if received
Parts []MessageEventV2PartUnionMessage parts (text and/or media)
Message parts (text and/or media)
type SchemasTextPartResponse struct{…}A text message part
A text message part
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
DEPRECATED: Use mentions instead. Handle (E.164 phone number or Apple ID email)
of the first mention on this part. A part may carry several mentions; this
field shows only the first in value order, so it cannot be used to determine
whether a given participant was mentioned. null when the part carries no mention.
DEPRECATED: Use mentions[].range instead. Character range [start, end) in
value highlighted as the first mention only. null when the range was
omitted (the whole value is highlighted) or the part carries no mention.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Mentions []SchemasTextPartResponseMentionOptionalEvery mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Every mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Text decorations applied to character ranges in the value
Text decorations applied to character ranges in the value
Character range [start, end) in the value string where the decoration applies.
start is inclusive, end is exclusive.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Animation TextDecorationAnimationOptionalAnimated text effect to apply. Mutually exclusive with style.
Animated text effect to apply. Mutually exclusive with style.
type MessageEventV2PartIMessageApp struct{…}An iMessage app card part.
An iMessage app card part.
SenderHandle ChatHandleThe handle that sent this message
The handle that sent this message
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
When the sending device was first seen for this sender (the message time for a newly seen device). Absent for SMS/RCS and for outbound messages.
DeviceStatus MessageEventV2DeviceStatusOptionalThe device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
The device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
DeprecatedPreferredService MessageEventV2PreferredServiceOptionalPreferred messaging service type. Includes “auto” for default fallback behavior.
Preferred messaging service type. Includes “auto” for default fallback behavior.
Present only when this message was recovered by reconciliation rather than delivered live, and set to the time of that recovery. The field is omitted entirely for normally-delivered messages, which is the overwhelming majority. When present, expect sent_at to be substantially earlier than delivery of this event: the message is genuine but is arriving late and out of real-time order, so treat it as history rather than as a live inbound (for example, suppress auto-replies).
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type MessageReceivedWebhookEvent struct{…}Complete webhook payload for message.received events (2026-02-03 format)
Complete webhook payload for message.received events (2026-02-03 format)
Data MessageEventV2Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead of is_from_me boolean
sender_handle: Full handle object for the sender
chat: Nested object with id, is_group, and owner_handle
- Message fields (
id, parts, effect, etc.) are at the top level, not nested in message
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=null
message.received: sent_at set, delivered_at=null, read_at=null
message.delivered: sent_at set, delivered_at set, read_at=null
message.read: sent_at set, delivered_at set, read_at set
Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead ofis_from_mebooleansender_handle: Full handle object for the senderchat: Nested object withid,is_group, andowner_handle- Message fields (
id,parts,effect, etc.) are at the top level, not nested inmessage
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=nullmessage.received: sent_at set, delivered_at=null, read_at=nullmessage.delivered: sent_at set, delivered_at set, read_at=nullmessage.read: sent_at set, delivered_at set, read_at set
Chat MessageEventV2ChatChat information
Chat information
HealthStatus MessageEventV2ChatHealthStatus[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
Status stringCurrent health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Current health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Your phone number’s handle. Always has is_me=true.
Your phone number’s handle. Always has is_me=true.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Direction MessageEventV2DirectionMessage direction - “outbound” if sent by you, “inbound” if received
Message direction - “outbound” if sent by you, “inbound” if received
Parts []MessageEventV2PartUnionMessage parts (text and/or media)
Message parts (text and/or media)
type SchemasTextPartResponse struct{…}A text message part
A text message part
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
DEPRECATED: Use mentions instead. Handle (E.164 phone number or Apple ID email)
of the first mention on this part. A part may carry several mentions; this
field shows only the first in value order, so it cannot be used to determine
whether a given participant was mentioned. null when the part carries no mention.
DEPRECATED: Use mentions[].range instead. Character range [start, end) in
value highlighted as the first mention only. null when the range was
omitted (the whole value is highlighted) or the part carries no mention.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Mentions []SchemasTextPartResponseMentionOptionalEvery mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Every mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Text decorations applied to character ranges in the value
Text decorations applied to character ranges in the value
Character range [start, end) in the value string where the decoration applies.
start is inclusive, end is exclusive.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Animation TextDecorationAnimationOptionalAnimated text effect to apply. Mutually exclusive with style.
Animated text effect to apply. Mutually exclusive with style.
type MessageEventV2PartIMessageApp struct{…}An iMessage app card part.
An iMessage app card part.
SenderHandle ChatHandleThe handle that sent this message
The handle that sent this message
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
When the sending device was first seen for this sender (the message time for a newly seen device). Absent for SMS/RCS and for outbound messages.
DeviceStatus MessageEventV2DeviceStatusOptionalThe device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
The device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
DeprecatedPreferredService MessageEventV2PreferredServiceOptionalPreferred messaging service type. Includes “auto” for default fallback behavior.
Preferred messaging service type. Includes “auto” for default fallback behavior.
Present only when this message was recovered by reconciliation rather than delivered live, and set to the time of that recovery. The field is omitted entirely for normally-delivered messages, which is the overwhelming majority. When present, expect sent_at to be substantially earlier than delivery of this event: the message is genuine but is arriving late and out of real-time order, so treat it as history rather than as a live inbound (for example, suppress auto-replies).
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type MessageReadWebhookEvent struct{…}Complete webhook payload for message.read events (2026-02-03 format)
Complete webhook payload for message.read events (2026-02-03 format)
Data MessageEventV2Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead of is_from_me boolean
sender_handle: Full handle object for the sender
chat: Nested object with id, is_group, and owner_handle
- Message fields (
id, parts, effect, etc.) are at the top level, not nested in message
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=null
message.received: sent_at set, delivered_at=null, read_at=null
message.delivered: sent_at set, delivered_at set, read_at=null
message.read: sent_at set, delivered_at set, read_at set
Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead ofis_from_mebooleansender_handle: Full handle object for the senderchat: Nested object withid,is_group, andowner_handle- Message fields (
id,parts,effect, etc.) are at the top level, not nested inmessage
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=nullmessage.received: sent_at set, delivered_at=null, read_at=nullmessage.delivered: sent_at set, delivered_at set, read_at=nullmessage.read: sent_at set, delivered_at set, read_at set
Chat MessageEventV2ChatChat information
Chat information
HealthStatus MessageEventV2ChatHealthStatus[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
Status stringCurrent health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Current health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Your phone number’s handle. Always has is_me=true.
Your phone number’s handle. Always has is_me=true.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Direction MessageEventV2DirectionMessage direction - “outbound” if sent by you, “inbound” if received
Message direction - “outbound” if sent by you, “inbound” if received
Parts []MessageEventV2PartUnionMessage parts (text and/or media)
Message parts (text and/or media)
type SchemasTextPartResponse struct{…}A text message part
A text message part
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
DEPRECATED: Use mentions instead. Handle (E.164 phone number or Apple ID email)
of the first mention on this part. A part may carry several mentions; this
field shows only the first in value order, so it cannot be used to determine
whether a given participant was mentioned. null when the part carries no mention.
DEPRECATED: Use mentions[].range instead. Character range [start, end) in
value highlighted as the first mention only. null when the range was
omitted (the whole value is highlighted) or the part carries no mention.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Mentions []SchemasTextPartResponseMentionOptionalEvery mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Every mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Text decorations applied to character ranges in the value
Text decorations applied to character ranges in the value
Character range [start, end) in the value string where the decoration applies.
start is inclusive, end is exclusive.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Animation TextDecorationAnimationOptionalAnimated text effect to apply. Mutually exclusive with style.
Animated text effect to apply. Mutually exclusive with style.
type MessageEventV2PartIMessageApp struct{…}An iMessage app card part.
An iMessage app card part.
SenderHandle ChatHandleThe handle that sent this message
The handle that sent this message
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
When the sending device was first seen for this sender (the message time for a newly seen device). Absent for SMS/RCS and for outbound messages.
DeviceStatus MessageEventV2DeviceStatusOptionalThe device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
The device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
DeprecatedPreferredService MessageEventV2PreferredServiceOptionalPreferred messaging service type. Includes “auto” for default fallback behavior.
Preferred messaging service type. Includes “auto” for default fallback behavior.
Present only when this message was recovered by reconciliation rather than delivered live, and set to the time of that recovery. The field is omitted entirely for normally-delivered messages, which is the overwhelming majority. When present, expect sent_at to be substantially earlier than delivery of this event: the message is genuine but is arriving late and out of real-time order, so treat it as history rather than as a live inbound (for example, suppress auto-replies).
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type MessageDeliveredWebhookEvent struct{…}Complete webhook payload for message.delivered events (2026-02-03 format)
Complete webhook payload for message.delivered events (2026-02-03 format)
Data MessageEventV2Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead of is_from_me boolean
sender_handle: Full handle object for the sender
chat: Nested object with id, is_group, and owner_handle
- Message fields (
id, parts, effect, etc.) are at the top level, not nested in message
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=null
message.received: sent_at set, delivered_at=null, read_at=null
message.delivered: sent_at set, delivered_at set, read_at=null
message.read: sent_at set, delivered_at set, read_at set
Unified payload for message webhooks when using webhook_version: "2026-02-03".
This schema is used for message.sent, message.received, message.delivered, and message.read
events when the subscription URL includes ?version=2026-02-03.
Key differences from V1 (2025-01-01):
direction: “inbound” or “outbound” instead ofis_from_mebooleansender_handle: Full handle object for the senderchat: Nested object withid,is_group, andowner_handle- Message fields (
id,parts,effect, etc.) are at the top level, not nested inmessage
Timestamps indicate the message state:
message.sent: sent_at set, delivered_at=null, read_at=nullmessage.received: sent_at set, delivered_at=null, read_at=nullmessage.delivered: sent_at set, delivered_at set, read_at=nullmessage.read: sent_at set, delivered_at set, read_at set
Chat MessageEventV2ChatChat information
Chat information
HealthStatus MessageEventV2ChatHealthStatus[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
Status stringCurrent health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Current health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Your phone number’s handle. Always has is_me=true.
Your phone number’s handle. Always has is_me=true.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Direction MessageEventV2DirectionMessage direction - “outbound” if sent by you, “inbound” if received
Message direction - “outbound” if sent by you, “inbound” if received
Parts []MessageEventV2PartUnionMessage parts (text and/or media)
Message parts (text and/or media)
type SchemasTextPartResponse struct{…}A text message part
A text message part
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
Stickers placed inside the text, in the order they appear in value. null when the
part has none.
Set on messages sent with inline_stickers. An inline sticker received over iMessage
currently arrives as a separate media part.
DEPRECATED: Use mentions instead. Handle (E.164 phone number or Apple ID email)
of the first mention on this part. A part may carry several mentions; this
field shows only the first in value order, so it cannot be used to determine
whether a given participant was mentioned. null when the part carries no mention.
DEPRECATED: Use mentions[].range instead. Character range [start, end) in
value highlighted as the first mention only. null when the range was
omitted (the whole value is highlighted) or the part carries no mention.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Mentions []SchemasTextPartResponseMentionOptionalEvery mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Every mention on this part, in the order they appear in value. null when the
part carries no mention. A part can carry several mentions of different people —
check is_me to tell whether this line was one of them.
Only iMessage carries mentions. On a received message this is populated when the
sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
from an SMS or RCS participant arrives as plain text with mentions null, even in
a group where other participants are on iMessage.
Text decorations applied to character ranges in the value
Text decorations applied to character ranges in the value
Character range [start, end) in the value string where the decoration applies.
start is inclusive, end is exclusive.
Characters are measured as UTF-16 code units. Most characters count as 1; some emoji count as 2.
Animation TextDecorationAnimationOptionalAnimated text effect to apply. Mutually exclusive with style.
Animated text effect to apply. Mutually exclusive with style.
type MessageEventV2PartIMessageApp struct{…}An iMessage app card part.
An iMessage app card part.
SenderHandle ChatHandleThe handle that sent this message
The handle that sent this message
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
When the sending device was first seen for this sender (the message time for a newly seen device). Absent for SMS/RCS and for outbound messages.
DeviceStatus MessageEventV2DeviceStatusOptionalThe device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
The device a sender used, relative to devices we’ve seen from them before. first_contact = their first device (first message we’ve seen from this sender); known = a device we’ve seen before; new = a device we have NOT seen for a sender who already had one (the account/SIM-takeover signal).
DeprecatedPreferredService MessageEventV2PreferredServiceOptionalPreferred messaging service type. Includes “auto” for default fallback behavior.
Preferred messaging service type. Includes “auto” for default fallback behavior.
Present only when this message was recovered by reconciliation rather than delivered live, and set to the time of that recovery. The field is omitted entirely for normally-delivered messages, which is the overwhelming majority. When present, expect sent_at to be substantially earlier than delivery of this event: the message is genuine but is arriving late and out of real-time order, so treat it as history rather than as a live inbound (for example, suppress auto-replies).
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type MessageFailedWebhookEvent struct{…}Complete webhook payload for message.failed events
Complete webhook payload for message.failed events
Data MessageFailedWebhookEventDataError details for message.failed webhook events.
See WebhookErrorCode for the full error code reference.
In rare cases the message can still be delivered after this event fires — a message.delivered webhook for the same message ID may follow.
Error details for message.failed webhook events. See WebhookErrorCode for the full error code reference.
In rare cases the message can still be delivered after this event fires — a message.delivered webhook for the same message ID may follow.
Error codes in webhook failure events. The possible set varies by event: message.failed and poll.failed can carry 3007, 4001, 4002, 4005, 4006, 4007, or 4008; the group update failure events (chat.group_name_update_failed, chat.group_icon_update_failed) carry 3007 or 4001; chat.background_update_failed carries 1005, 2011, 4001, or 5002.
Opaque diagnostic code identifying the specific failure class within code.
Values are not enumerated and may change without notice — log it and include
it in support requests, but do not branch on it.
DeprecatedPreferredService stringOptionalPreferred messaging service type. Includes “auto” for default fallback behavior.
Preferred messaging service type. Includes “auto” for default fallback behavior.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type MessageEditedWebhookEvent struct{…}Complete webhook payload for message.edited events (2026-02-03 format only)
Complete webhook payload for message.edited events (2026-02-03 format only)
Data MessageEditedWebhookEventDataPayload for message.edited events (2026-02-03 format).
Describes which part of a message was edited and when. Only text parts can be edited.
Only available for subscriptions using webhook_version: "2026-02-03".
Payload for message.edited events (2026-02-03 format).
Describes which part of a message was edited and when. Only text parts can be edited.
Only available for subscriptions using webhook_version: "2026-02-03".
Chat MessageEditedWebhookEventDataChatChat context
Chat context
HealthStatus MessageEditedWebhookEventDataChatHealthStatus[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
Status stringCurrent health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Current health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
OwnerHandle ChatHandleThe handle that owns this chat (your phone number)
The handle that owns this chat (your phone number)
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
SenderHandle ChatHandleThe handle that sent (and edited) this message
The handle that sent (and edited) this message
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
True when the edited message is on a zero-day-retention line. Behavior differs by direction: on an outbound edit, part.text is empty — you already saw the real edited text once, synchronously, in the edit API response, and Linq never persists it. On an inbound edit, part.text is still the real text as received; zero-day-retention only means Linq never persists it.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ReactionAddedWebhookEvent struct{…}Complete webhook payload for reaction.added events
Complete webhook payload for reaction.added events
Data ReactionEventBasePayload for reaction.added webhook events
Payload for reaction.added webhook events
Whether this reaction was from the owner of the phone number (true) or from someone else (false)
ReactionType ReactionTypeType of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question.
Custom emoji reactions have type “custom” with the actual emoji in the custom_emoji field.
Sticker reactions have type “sticker” with sticker attachment details in the sticker field.
Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question. Custom emoji reactions have type “custom” with the actual emoji in the custom_emoji field. Sticker reactions have type “sticker” with sticker attachment details in the sticker field.
The actual emoji when reaction_type is “custom”. Null for standard tapbacks.
DEPRECATED: Use from_handle instead. Phone number or email address of the person who added/removed the reaction.
The person who added/removed the reaction as a full handle object
The person who added/removed the reaction as a full handle object
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Identifier for this reaction. Pass it to
PATCH /v3/messages/{messageId}/reactions/{reactionId} to move a sticker.
Stickers stack, so this is what distinguishes one sticker from another on the
same message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ReactionRemovedWebhookEvent struct{…}Complete webhook payload for reaction.removed events
Complete webhook payload for reaction.removed events
Data ReactionEventBasePayload for reaction.removed webhook events
Payload for reaction.removed webhook events
Whether this reaction was from the owner of the phone number (true) or from someone else (false)
ReactionType ReactionTypeType of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question.
Custom emoji reactions have type “custom” with the actual emoji in the custom_emoji field.
Sticker reactions have type “sticker” with sticker attachment details in the sticker field.
Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question. Custom emoji reactions have type “custom” with the actual emoji in the custom_emoji field. Sticker reactions have type “sticker” with sticker attachment details in the sticker field.
The actual emoji when reaction_type is “custom”. Null for standard tapbacks.
DEPRECATED: Use from_handle instead. Phone number or email address of the person who added/removed the reaction.
The person who added/removed the reaction as a full handle object
The person who added/removed the reaction as a full handle object
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Identifier for this reaction. Pass it to
PATCH /v3/messages/{messageId}/reactions/{reactionId} to move a sticker.
Stickers stack, so this is what distinguishes one sticker from another on the
same message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollReceivedWebhookEvent struct{…}Complete webhook payload for poll.received events
Complete webhook payload for poll.received events
Data PollReceivedWebhookEventDataPayload for poll.received — a poll created by someone else and delivered to your line.
Carries the full poll snapshot (options, no voters yet) at receipt time.
Payload for poll.received — a poll created by someone else and delivered to your line. Carries the full poll snapshot (options, no voters yet) at receipt time.
Chat PollReceivedWebhookEventDataChatChat info for poll webhook events.
Chat info for poll webhook events.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Poll PollReceivedWebhookEventDataPoll
Options []PollReceivedWebhookEventDataPollOption
CreatorHandle ChatHandleThe participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
The participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The line that created the poll (is_me=false for an inbound poll).
The line that created the poll (is_me=false for an inbound poll).
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
True when your line has zero-day-retention enabled. Unlike other poll webhooks, option text here is still the real, unstripped text as received — Linq never persists it in the database, but this webhook fires from the live inbound event, not a database read, so this is the one place it’s shown.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollSentWebhookEvent struct{…}Complete webhook payload for poll.sent events
Complete webhook payload for poll.sent events
Data PollSentWebhookEventDataPayload for poll.sent, poll.delivered, and poll.read webhook events. Timestamps indicate
state (null = not yet happened): sent → sent_at; delivered → +delivered_at; read → +read_at.
Payload for poll.sent, poll.delivered, and poll.read webhook events. Timestamps indicate state (null = not yet happened): sent → sent_at; delivered → +delivered_at; read → +read_at.
Chat PollSentWebhookEventDataChatChat info for poll webhook events.
Chat info for poll webhook events.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Poll PollSentWebhookEventDataPoll
Options []PollSentWebhookEventDataPollOption
CreatorHandle ChatHandleThe participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
The participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The handle that sent the poll.
The handle that sent the poll.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
True when this poll was sent on a zero-day-retention line. Every option’s text is empty in that case — Linq never persists poll option text, so there is nothing to include here. The real text was only ever shown once, synchronously, in the API response when the poll was created or added to.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollDeliveredWebhookEvent struct{…}Complete webhook payload for poll.delivered events
Complete webhook payload for poll.delivered events
Data PollDeliveredWebhookEventDataPayload for poll.sent, poll.delivered, and poll.read webhook events. Timestamps indicate
state (null = not yet happened): sent → sent_at; delivered → +delivered_at; read → +read_at.
Payload for poll.sent, poll.delivered, and poll.read webhook events. Timestamps indicate state (null = not yet happened): sent → sent_at; delivered → +delivered_at; read → +read_at.
Chat PollDeliveredWebhookEventDataChatChat info for poll webhook events.
Chat info for poll webhook events.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Poll PollDeliveredWebhookEventDataPoll
Options []PollDeliveredWebhookEventDataPollOption
CreatorHandle ChatHandleThe participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
The participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The handle that sent the poll.
The handle that sent the poll.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
True when this poll was sent on a zero-day-retention line. Every option’s text is empty in that case — Linq never persists poll option text, so there is nothing to include here. The real text was only ever shown once, synchronously, in the API response when the poll was created or added to.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollReadWebhookEvent struct{…}Complete webhook payload for poll.read events
Complete webhook payload for poll.read events
Data PollReadWebhookEventDataPayload for poll.sent, poll.delivered, and poll.read webhook events. Timestamps indicate
state (null = not yet happened): sent → sent_at; delivered → +delivered_at; read → +read_at.
Payload for poll.sent, poll.delivered, and poll.read webhook events. Timestamps indicate state (null = not yet happened): sent → sent_at; delivered → +delivered_at; read → +read_at.
Chat PollReadWebhookEventDataChatChat info for poll webhook events.
Chat info for poll webhook events.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Poll PollReadWebhookEventDataPoll
Options []PollReadWebhookEventDataPollOption
CreatorHandle ChatHandleThe participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
The participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The handle that sent the poll.
The handle that sent the poll.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
True when this poll was sent on a zero-day-retention line. Every option’s text is empty in that case — Linq never persists poll option text, so there is nothing to include here. The real text was only ever shown once, synchronously, in the API response when the poll was created or added to.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollUpdatedWebhookEvent struct{…}Complete webhook payload for poll.updated events
Complete webhook payload for poll.updated events
Data PollUpdatedWebhookEventDataPayload for poll.updated (option(s) added — add-only).
Payload for poll.updated (option(s) added — add-only).
AddedOptions []PollUpdatedWebhookEventDataAddedOptionOnly the options this update added — never the ones the poll already had. Fetch the poll to read its full option set.
Only the options this update added — never the ones the poll already had. Fetch the poll to read its full option set.
CreatorHandle ChatHandleThe participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
The participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Chat PollUpdatedWebhookEventDataChatChat info for poll webhook events.
Chat info for poll webhook events.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
SenderHandle ChatHandleYour line — the one that received or sent this update. Always present. On an inbound
update this is NOT who added the option: use added_options[].creator_handle for
that, which will be the remote participant.
Your line — the one that received or sent this update. Always present. On an inbound
update this is NOT who added the option: use added_options[].creator_handle for
that, which will be the remote participant.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
True when zero-day-retention applies to this update. Behavior differs by direction: on an inbound update, added_options[].text is the real text a participant just added; on an outbound update, it is empty — you already saw the real text once, synchronously, in the API response when you made the add, and this webhook is built from a database read, which never stored it.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollFailedWebhookEvent struct{…}Complete webhook payload for poll.failed events
Complete webhook payload for poll.failed events
Data PollFailedWebhookEventDataPayload for poll.failed — an outbound poll (or poll action) that failed to send. Carries the
poll snapshot at failure time plus the error and when it failed.
Payload for poll.failed — an outbound poll (or poll action) that failed to send. Carries the poll snapshot at failure time plus the error and when it failed.
Chat PollFailedWebhookEventDataChatChat info for poll webhook events.
Chat info for poll webhook events.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Error PollFailedWebhookEventDataError
Error codes in webhook failure events. The possible set varies by event: message.failed and poll.failed can carry 3007, 4001, 4002, 4005, 4006, 4007, or 4008; the group update failure events (chat.group_name_update_failed, chat.group_icon_update_failed) carry 3007 or 4001; chat.background_update_failed carries 1005, 2011, 4001, or 5002.
Poll PollFailedWebhookEventDataPoll
Options []PollFailedWebhookEventDataPollOption
CreatorHandle ChatHandleThe participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
The participant who added this option (poll creator for the initial options; whoever
added later ones). On a poll.updated this differs from the event’s sender_handle
whenever a remote participant added the option. Null when unknown.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Null on failure (the send never landed).
Null on failure (the send never landed).
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollVoteAddedWebhookEvent struct{…}Complete webhook payload for poll.vote.added events
Complete webhook payload for poll.vote.added events
Data PollVoteAddedWebhookEventDataPayload for poll.vote.added and poll.vote.removed (one option toggled).
Payload for poll.vote.added and poll.vote.removed (one option toggled).
Chat PollVoteAddedWebhookEventDataChatChat info for poll webhook events.
Chat info for poll webhook events.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
SenderHandle ChatHandleThe voter — always present.
The voter — always present.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
True when this poll is on a zero-day-retention line. Votes are unaffected by zero-day-retention — a vote choice is always persisted and delivered regardless — this flag is informational only, telling you why this poll’s other webhooks (poll.sent, poll.updated, etc.) may carry empty option text.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollVoteRemovedWebhookEvent struct{…}Complete webhook payload for poll.vote.removed events
Complete webhook payload for poll.vote.removed events
Data PollVoteRemovedWebhookEventDataPayload for poll.vote.added and poll.vote.removed (one option toggled).
Payload for poll.vote.added and poll.vote.removed (one option toggled).
Chat PollVoteRemovedWebhookEventDataChatChat info for poll webhook events.
Chat info for poll webhook events.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
SenderHandle ChatHandleThe voter — always present.
The voter — always present.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
True when this poll is on a zero-day-retention line. Votes are unaffected by zero-day-retention — a vote choice is always persisted and delivered regardless — this flag is informational only, telling you why this poll’s other webhooks (poll.sent, poll.updated, etc.) may carry empty option text.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PollReactionAddedWebhookEvent struct{…}Complete webhook payload for poll.reaction.added events
Complete webhook payload for poll.reaction.added events
Data ReactionEventBasePayload for poll.reaction.added — a reaction on a poll message. Same shape as
reaction.added; message_id is the poll-definition message’s ID. Poll reactions are
stickers, which iMessage cannot remove, so there is no removal counterpart.
Payload for poll.reaction.added — a reaction on a poll message. Same shape as
reaction.added; message_id is the poll-definition message’s ID. Poll reactions are
stickers, which iMessage cannot remove, so there is no removal counterpart.
Whether this reaction was from the owner of the phone number (true) or from someone else (false)
ReactionType ReactionTypeType of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question.
Custom emoji reactions have type “custom” with the actual emoji in the custom_emoji field.
Sticker reactions have type “sticker” with sticker attachment details in the sticker field.
Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question. Custom emoji reactions have type “custom” with the actual emoji in the custom_emoji field. Sticker reactions have type “sticker” with sticker attachment details in the sticker field.
The actual emoji when reaction_type is “custom”. Null for standard tapbacks.
DEPRECATED: Use from_handle instead. Phone number or email address of the person who added/removed the reaction.
The person who added/removed the reaction as a full handle object
The person who added/removed the reaction as a full handle object
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Identifier for this reaction. Pass it to
PATCH /v3/messages/{messageId}/reactions/{reactionId} to move a sticker.
Stickers stack, so this is what distinguishes one sticker from another on the
same message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ParticipantAddedWebhookEvent struct{…}Complete webhook payload for participant.added events
Complete webhook payload for participant.added events
Data ParticipantAddedWebhookEventDataPayload for participant.added webhook events
Payload for participant.added webhook events
DEPRECATED: Use participant instead. Handle (phone number or email address) of the added participant.
The added participant as a full handle object
The added participant as a full handle object
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ParticipantRemovedWebhookEvent struct{…}Complete webhook payload for participant.removed events
Complete webhook payload for participant.removed events
Data ParticipantRemovedWebhookEventDataPayload for participant.removed webhook events
Payload for participant.removed webhook events
DEPRECATED: Use participant instead. Handle (phone number or email address) of the removed participant.
The removed participant as a full handle object
The removed participant as a full handle object
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatCreatedWebhookEvent struct{…}Complete webhook payload for chat.created events
Complete webhook payload for chat.created events
Data ChatCreatedWebhookEventDataPayload for chat.created webhook events. Matches GET /v3/chats/{chatId} response.
Payload for chat.created webhook events. Matches GET /v3/chats/{chatId} response.
Display name for the chat. Defaults to a comma-separated list of recipient handles. Can be updated for group chats.
Handles []ChatHandleList of chat participants with full handle details. Always contains at least two handles (your phone number and the other participant).
List of chat participants with full handle details. Always contains at least two handles (your phone number and the other participant).
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
HealthStatus ChatCreatedWebhookEventDataHealthStatus[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
[BETA] Current health for a chat. Always present — chats start at HEALTHY and may shift based on engagement and delivery signals on the conversation. Many AT_RISK or CRITICAL chats on a single line increase the risk of line flagging.
Switch on status to surface chat and line health in your UI — the enum is the long-term contract. Each status carries a doc_url that deep-links to the relevant section of the Chat Health guide. To gate a send, act on the response rather than the status: a 403 is the authoritative answer.
See the Chat Health guide for what each status means and how to react.
Status stringCurrent health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
Current health bucket for the chat. See the Chat Health guide for what each value means and how to react. doc_url deep-links to the relevant section.
OPTED_OUT — the recipient sent STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, or QUIT.
The keyword must be the whole trimmed message, never part of a longer one: STOP counts, please stop
does not. Most keywords must match exactly, including case. OPT OUT is the exception — it matches in any
casing, with or without the space or a hyphen, so opt out, Opt-Out and optout all count. It clears as
soon as they reply again: any later message from them that is not itself an opt-out keyword opts them back
in immediately — a reply in any conversation with you counts, the same way the block does.
OPTED_OUT marks only the conversation the keyword arrived in. The block below is wider than the mark, so
a conversation still reading HEALTHY can be blocked as well — gate on the 403, not on the status.
Group threads are never marked and are never blocked.
Linq enforces this: while a recipient is opted out, every send to them is rejected with 403 (error code
2024) before the message is queued, across every chat and every line on your account. Nothing is
delivered, including a final courtesy message — to send one, set override_optout: true on that single
request.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatGroupNameUpdatedWebhookEvent struct{…}Complete webhook payload for chat.group_name_updated events
Complete webhook payload for chat.group_name_updated events
Data ChatGroupNameUpdatedWebhookEventDataPayload for chat.group_name_updated webhook events
Payload for chat.group_name_updated webhook events
The handle who made the change.
The handle who made the change.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatGroupIconUpdatedWebhookEvent struct{…}Complete webhook payload for chat.group_icon_updated events
Complete webhook payload for chat.group_icon_updated events
Data ChatGroupIconUpdatedWebhookEventDataPayload for chat.group_icon_updated webhook events
Payload for chat.group_icon_updated webhook events
The handle who made the change.
The handle who made the change.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatGroupNameUpdateFailedWebhookEvent struct{…}Complete webhook payload for chat.group_name_update_failed events
Complete webhook payload for chat.group_name_update_failed events
Data ChatGroupNameUpdateFailedWebhookEventDataError details for chat.group_name_update_failed webhook events.
See WebhookErrorCode for the full error code reference.
Error details for chat.group_name_update_failed webhook events. See WebhookErrorCode for the full error code reference.
Error codes in webhook failure events. The possible set varies by event: message.failed and poll.failed can carry 3007, 4001, 4002, 4005, 4006, 4007, or 4008; the group update failure events (chat.group_name_update_failed, chat.group_icon_update_failed) carry 3007 or 4001; chat.background_update_failed carries 1005, 2011, 4001, or 5002.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatGroupIconUpdateFailedWebhookEvent struct{…}Complete webhook payload for chat.group_icon_update_failed events
Complete webhook payload for chat.group_icon_update_failed events
Data ChatGroupIconUpdateFailedWebhookEventDataError details for chat.group_icon_update_failed webhook events.
See WebhookErrorCode for the full error code reference.
Error details for chat.group_icon_update_failed webhook events. See WebhookErrorCode for the full error code reference.
Error codes in webhook failure events. The possible set varies by event: message.failed and poll.failed can carry 3007, 4001, 4002, 4005, 4006, 4007, or 4008; the group update failure events (chat.group_name_update_failed, chat.group_icon_update_failed) carry 3007 or 4001; chat.background_update_failed carries 1005, 2011, 4001, or 5002.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatTypingIndicatorStartedWebhookEvent struct{…}Complete webhook payload for chat.typing_indicator.started events
Complete webhook payload for chat.typing_indicator.started events
Data ChatTypingIndicatorStartedWebhookEventDataPayload for chat.typing_indicator.started webhook events
Payload for chat.typing_indicator.started webhook events
Who is typing.
Who is typing.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatTypingIndicatorStoppedWebhookEvent struct{…}Complete webhook payload for chat.typing_indicator.stopped events
Complete webhook payload for chat.typing_indicator.stopped events
Data ChatTypingIndicatorStoppedWebhookEventDataPayload for chat.typing_indicator.stopped webhook events
Payload for chat.typing_indicator.stopped webhook events
Who stopped typing.
Who stopped typing.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatBackgroundUpdatedWebhookEvent struct{…}Complete webhook payload for chat.background_updated events
Complete webhook payload for chat.background_updated events
Data ChatBackgroundUpdatedWebhookEventDataPayload for chat.background_updated webhook events.
Payload for chat.background_updated webhook events.
Chat ChatBackgroundUpdatedWebhookEventDataChatChat information
Chat information
Your phone number’s handle. Always has is_me=true.
Your phone number’s handle. Always has is_me=true.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Who changed it. is_me is true when your own number set it.
Who changed it. is_me is true when your own number set it.
Service ServiceTypeMessaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and Apple can downgrade an individual message.
LineType ChatHandleLineTypeOptionalThe kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Background ChatBackgroundUpdatedWebhookEventDataBackgroundOptionalA chat transcript background. Fields are populated per type.
A chat transcript background. Fields are populated per type.
Type stringThe background family.
The background family.
Photo: a hosted URL for the background image, whether you set it or a
participant did. Apple stores the image, not the URL it came from, so the
image is re-hosted and this is our URL rather than the one you supplied.
null only if the image could not be hosted.
Style stringOptionalDynamic: the animated style.
Dynamic: the animated style.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ChatBackgroundUpdateFailedWebhookEvent struct{…}Complete webhook payload for chat.background_update_failed events
Complete webhook payload for chat.background_update_failed events
Data ChatBackgroundUpdateFailedWebhookEventDataError details for chat.background_update_failed webhook events.
See WebhookErrorCode for the full error code reference.
Error details for chat.background_update_failed webhook events. See WebhookErrorCode for the full error code reference.
Error codes in webhook failure events. The possible set varies by event: message.failed and poll.failed can carry 3007, 4001, 4002, 4005, 4006, 4007, or 4008; the group update failure events (chat.group_name_update_failed, chat.group_icon_update_failed) carry 3007 or 4001; chat.background_update_failed carries 1005, 2011, 4001, or 5002.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type ContactCardReceivedWebhookEvent struct{…}Complete webhook payload for contact_card.received events
Complete webhook payload for contact_card.received events
Data ContactCardReceivedWebhookEventDataPayload for contact_card.received webhook events.
A contact belongs to a line, not to an individual chat. You receive one event per person who
shares their contact, regardless of how many chats they have in common with your line.
The event fires again whenever the shared contact’s name or media changes.
Payload for contact_card.received webhook events.
A contact belongs to a line, not to an individual chat. You receive one event per person who shares their contact, regardless of how many chats they have in common with your line.
The event fires again whenever the shared contact’s name or media changes.
URL of the contact’s media, served from cdn.linqapp.com. null when the
contact shared no media, and also when media was shared but could not be
retrieved — this field does not distinguish the two.
Download the media and store it yourself. The URL may be signed and expire, in as little as 45 minutes, and altering its query string invalidates it immediately.
EventType WebhookEventTypeValid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
Valid webhook event types that can be subscribed to.
Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03".
Subscribing to this event on a v2025 subscription will not produce any deliveries.
type PhoneNumberStatusUpdatedWebhookEvent struct{…}Complete webhook payload for phone_number.status_updated events
Complete webhook payload for phone_number.status_updated events
Data PhoneNumberStatusUpdatedWebhookEventDataPayload for phone_number.status_updated webhook events
Payload for phone_number.status_updated webhook events
NewReputation stringThe new line reputation
The new line reputation
PreviousReputation stringThe previous line reputation
The previous line reputation
EventType PhoneNumberStatusUpdatedWebhookEventEventTypeThe type of event
The type of event
type PhoneNumberAssignedWebhookEvent struct{…}Complete webhook payload for phone_number.assigned events
Complete webhook payload for phone_number.assigned events
Data PhoneNumberAssignedWebhookEventDataPayload for phone_number.assigned and phone_number.released webhook events
Payload for phone_number.assigned and phone_number.released webhook events
EventType PhoneNumberAssignedWebhookEventEventTypeThe type of event
The type of event
type PhoneNumberReleasedWebhookEvent struct{…}Complete webhook payload for phone_number.released events
Complete webhook payload for phone_number.released events
Data PhoneNumberReleasedWebhookEventDataPayload for phone_number.assigned and phone_number.released webhook events
Payload for phone_number.assigned and phone_number.released webhook events
EventType PhoneNumberReleasedWebhookEventEventTypeThe type of event
The type of event
type PhoneNumberLineTypeUpdatedWebhookEvent struct{…}Complete webhook payload for phone_number.line_type_updated events
Complete webhook payload for phone_number.line_type_updated events
Data PhoneNumberLineTypeUpdatedWebhookEventDataPayload for phone_number.line_type_updated webhook events
Payload for phone_number.line_type_updated webhook events
EventType PhoneNumberLineTypeUpdatedWebhookEventEventTypeThe type of event
The type of event
type ConnectionCreatedWebhookEvent struct{…}
Data ConnectionCreatedWebhookEventDataThe payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
The payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
What was charged at checkout, in the currency’s minor
units. In subscription mode this is the first invoice’s
total — all items after any discounts are applied.
Status string
Discount ConnectionCreatedWebhookEventDataDiscountOptionalSubscription mode — the discount Stripe applied, read back
from the coupon. Absent when none was applied.
Subscription mode — the discount Stripe applied, read back from the coupon. Absent when none was applied.
Interval stringOptionalSubscription mode — how often the subscription renews.
Subscription mode — how often the subscription renews.
Natural ConnectionCreatedWebhookEventDataNaturalOptionalNatural-rail join keys, present when rail: natural.
Natural-rail join keys, present when rail: natural.
Stripe ConnectionCreatedWebhookEventDataStripeOptionalIds of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
Ids of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
EventType ConnectionCreatedWebhookEventEventType
type ConnectionRevokedWebhookEvent struct{…}
Data ConnectionRevokedWebhookEventDataThe payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
The payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
What was charged at checkout, in the currency’s minor
units. In subscription mode this is the first invoice’s
total — all items after any discounts are applied.
Status string
Discount ConnectionRevokedWebhookEventDataDiscountOptionalSubscription mode — the discount Stripe applied, read back
from the coupon. Absent when none was applied.
Subscription mode — the discount Stripe applied, read back from the coupon. Absent when none was applied.
Interval stringOptionalSubscription mode — how often the subscription renews.
Subscription mode — how often the subscription renews.
Natural ConnectionRevokedWebhookEventDataNaturalOptionalNatural-rail join keys, present when rail: natural.
Natural-rail join keys, present when rail: natural.
Stripe ConnectionRevokedWebhookEventDataStripeOptionalIds of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
Ids of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
EventType ConnectionRevokedWebhookEventEventType
type LocationSharingStartedWebhookEvent struct{…}
Data LocationSharingStartedWebhookEventData
When location sharing started. Always present: falls back to when the share was first observed if the device reported no start time.
The chat this share was first sent to. Location sharing is per-contact rather than per-chat, so the location may also be visible in other chats with the same handle; this identifies where the share originated and does not change if the contact later shares into another chat. Null when the originating chat could not be determined.
EventType LocationSharingStartedWebhookEventEventType
type LocationSharingStoppedWebhookEvent struct{…}
Data LocationSharingStoppedWebhookEventData
When the sharing session started, matching began_at on its started event. Always present.
The chat the ended share was first sent to, matching the chat_id on its started event. Sharing always stops for the contact as a whole, never for a single chat, so this is the session’s origin rather than the chat it stopped in. Null when the originating chat could not be determined.
EventType LocationSharingStoppedWebhookEventEventType
type PaymentAuthorizedWebhookEvent struct{…}
Data PaymentAuthorizedWebhookEventDataThe payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
The payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
What was charged at checkout, in the currency’s minor
units. In subscription mode this is the first invoice’s
total — all items after any discounts are applied.
Status string
Discount PaymentAuthorizedWebhookEventDataDiscountOptionalSubscription mode — the discount Stripe applied, read back
from the coupon. Absent when none was applied.
Subscription mode — the discount Stripe applied, read back from the coupon. Absent when none was applied.
Interval stringOptionalSubscription mode — how often the subscription renews.
Subscription mode — how often the subscription renews.
Natural PaymentAuthorizedWebhookEventDataNaturalOptionalNatural-rail join keys, present when rail: natural.
Natural-rail join keys, present when rail: natural.
Stripe PaymentAuthorizedWebhookEventDataStripeOptionalIds of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
Ids of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
EventType PaymentAuthorizedWebhookEventEventType
type PaymentCanceledWebhookEvent struct{…}
Data PaymentCanceledWebhookEventDataThe payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
The payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
What was charged at checkout, in the currency’s minor
units. In subscription mode this is the first invoice’s
total — all items after any discounts are applied.
Status string
Discount PaymentCanceledWebhookEventDataDiscountOptionalSubscription mode — the discount Stripe applied, read back
from the coupon. Absent when none was applied.
Subscription mode — the discount Stripe applied, read back from the coupon. Absent when none was applied.
Interval stringOptionalSubscription mode — how often the subscription renews.
Subscription mode — how often the subscription renews.
Natural PaymentCanceledWebhookEventDataNaturalOptionalNatural-rail join keys, present when rail: natural.
Natural-rail join keys, present when rail: natural.
Stripe PaymentCanceledWebhookEventDataStripeOptionalIds of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
Ids of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
EventType PaymentCanceledWebhookEventEventType
type PaymentDeclinedWebhookEvent struct{…}
Data PaymentDeclinedWebhookEventDataThe payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
The payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
What was charged at checkout, in the currency’s minor
units. In subscription mode this is the first invoice’s
total — all items after any discounts are applied.
Status string
Discount PaymentDeclinedWebhookEventDataDiscountOptionalSubscription mode — the discount Stripe applied, read back
from the coupon. Absent when none was applied.
Subscription mode — the discount Stripe applied, read back from the coupon. Absent when none was applied.
Interval stringOptionalSubscription mode — how often the subscription renews.
Subscription mode — how often the subscription renews.
Natural PaymentDeclinedWebhookEventDataNaturalOptionalNatural-rail join keys, present when rail: natural.
Natural-rail join keys, present when rail: natural.
Stripe PaymentDeclinedWebhookEventDataStripeOptionalIds of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
Ids of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
EventType PaymentDeclinedWebhookEventEventType
type PaymentExpiredWebhookEvent struct{…}
Data PaymentExpiredWebhookEventDataThe payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
The payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
What was charged at checkout, in the currency’s minor
units. In subscription mode this is the first invoice’s
total — all items after any discounts are applied.
Status string
Discount PaymentExpiredWebhookEventDataDiscountOptionalSubscription mode — the discount Stripe applied, read back
from the coupon. Absent when none was applied.
Subscription mode — the discount Stripe applied, read back from the coupon. Absent when none was applied.
Natural PaymentExpiredWebhookEventDataNaturalOptionalNatural-rail join keys, present when rail: natural.
Natural-rail join keys, present when rail: natural.
Stripe PaymentExpiredWebhookEventDataStripeOptionalIds of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
Ids of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
EventType PaymentExpiredWebhookEventEventType
type PaymentSucceededWebhookEvent struct{…}
Data PaymentSucceededWebhookEventDataThe payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
The payment request, as returned by
GET /v3/payment_requests/{paymentRequestId}.
What was charged at checkout, in the currency’s minor
units. In subscription mode this is the first invoice’s
total — all items after any discounts are applied.
Status string
Discount PaymentSucceededWebhookEventDataDiscountOptionalSubscription mode — the discount Stripe applied, read back
from the coupon. Absent when none was applied.
Subscription mode — the discount Stripe applied, read back from the coupon. Absent when none was applied.
Interval stringOptionalSubscription mode — how often the subscription renews.
Subscription mode — how often the subscription renews.
Natural PaymentSucceededWebhookEventDataNaturalOptionalNatural-rail join keys, present when rail: natural.
Natural-rail join keys, present when rail: natural.
Stripe PaymentSucceededWebhookEventDataStripeOptionalIds of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
Ids of the Stripe objects on your connected account — join
keys into your own Stripe Dashboard/API. Manage a
subscription’s post-checkout lifecycle with subscription_id.
EventType PaymentSucceededWebhookEventEventType
type ZeroDayRetentionUpdatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data ZeroDayRetentionUpdatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor ZeroDayRetentionUpdatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change ZeroDayRetentionUpdatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName ZeroDayRetentionUpdatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL ZeroDayRetentionUpdatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard ZeroDayRetentionUpdatedWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment ZeroDayRetentionUpdatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember ZeroDayRetentionUpdatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType ZeroDayRetentionUpdatedWebhookEventEventType
type PhoneNumberForwardingUpdatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data PhoneNumberForwardingUpdatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor PhoneNumberForwardingUpdatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change PhoneNumberForwardingUpdatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName PhoneNumberForwardingUpdatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL PhoneNumberForwardingUpdatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard PhoneNumberForwardingUpdatedWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment PhoneNumberForwardingUpdatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember PhoneNumberForwardingUpdatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType PhoneNumberForwardingUpdatedWebhookEventEventType
type EnvironmentLineMovedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data EnvironmentLineMovedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor EnvironmentLineMovedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change EnvironmentLineMovedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName EnvironmentLineMovedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL EnvironmentLineMovedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment EnvironmentLineMovedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember EnvironmentLineMovedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType EnvironmentLineMovedWebhookEventEventType
type ContactCardCreatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data ContactCardCreatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor ContactCardCreatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change ContactCardCreatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName ContactCardCreatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL ContactCardCreatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment ContactCardCreatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember ContactCardCreatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType ContactCardCreatedWebhookEventEventType
type ContactCardUpdatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data ContactCardUpdatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor ContactCardUpdatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change ContactCardUpdatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName ContactCardUpdatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL ContactCardUpdatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment ContactCardUpdatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember ContactCardUpdatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType ContactCardUpdatedWebhookEventEventType
type ContactCardDeletedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data ContactCardDeletedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor ContactCardDeletedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change ContactCardDeletedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName ContactCardDeletedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL ContactCardDeletedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment ContactCardDeletedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember ContactCardDeletedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType ContactCardDeletedWebhookEventEventType
type APITokenCreatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data APITokenCreatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor APITokenCreatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change APITokenCreatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName APITokenCreatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL APITokenCreatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment APITokenCreatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember APITokenCreatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType APITokenCreatedWebhookEventEventType
type APITokenRenamedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data APITokenRenamedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor APITokenRenamedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change APITokenRenamedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName APITokenRenamedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL APITokenRenamedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment APITokenRenamedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember APITokenRenamedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType APITokenRenamedWebhookEventEventType
type APITokenExpiryScheduledWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data APITokenExpiryScheduledWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor APITokenExpiryScheduledWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change APITokenExpiryScheduledWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName APITokenExpiryScheduledWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL APITokenExpiryScheduledWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard APITokenExpiryScheduledWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment APITokenExpiryScheduledWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember APITokenExpiryScheduledWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType APITokenExpiryScheduledWebhookEventEventType
type APITokenExpiredWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data APITokenExpiredWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor APITokenExpiredWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change APITokenExpiredWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName APITokenExpiredWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL APITokenExpiredWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment APITokenExpiredWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember APITokenExpiredWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType APITokenExpiredWebhookEventEventType
type APITokenActivatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data APITokenActivatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor APITokenActivatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change APITokenActivatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName APITokenActivatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL APITokenActivatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment APITokenActivatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember APITokenActivatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType APITokenActivatedWebhookEventEventType
type APITokenDeletedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data APITokenDeletedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor APITokenDeletedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change APITokenDeletedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName APITokenDeletedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL APITokenDeletedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment APITokenDeletedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember APITokenDeletedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType APITokenDeletedWebhookEventEventType
type EnvironmentCreatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data EnvironmentCreatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor EnvironmentCreatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change EnvironmentCreatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName EnvironmentCreatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL EnvironmentCreatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment EnvironmentCreatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember EnvironmentCreatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType EnvironmentCreatedWebhookEventEventType
type EnvironmentRenamedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data EnvironmentRenamedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor EnvironmentRenamedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change EnvironmentRenamedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName EnvironmentRenamedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL EnvironmentRenamedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment EnvironmentRenamedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember EnvironmentRenamedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType EnvironmentRenamedWebhookEventEventType
type EnvironmentDeletedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data EnvironmentDeletedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor EnvironmentDeletedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change EnvironmentDeletedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName EnvironmentDeletedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL EnvironmentDeletedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment EnvironmentDeletedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember EnvironmentDeletedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType EnvironmentDeletedWebhookEventEventType
type WebhookSubscriptionCreatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionCreatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionCreatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change WebhookSubscriptionCreatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionCreatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionCreatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionCreatedWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionCreatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionCreatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionCreatedWebhookEventEventType
type WebhookSubscriptionDeletedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionDeletedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionDeletedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change WebhookSubscriptionDeletedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionDeletedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionDeletedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionDeletedWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionDeletedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionDeletedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionDeletedWebhookEventEventType
type WebhookSubscriptionTargetURLChangedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionTargetURLChangedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionTargetURLChangedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
APIToken WebhookSubscriptionTargetURLChangedWebhookEventDataAPITokenOptionalThe API token that changed.
The API token that changed.
Change WebhookSubscriptionTargetURLChangedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionTargetURLChangedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionTargetURLChangedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionTargetURLChangedWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionTargetURLChangedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionTargetURLChangedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionTargetURLChangedWebhookEventEventType
type WebhookSubscriptionEnabledWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionEnabledWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionEnabledWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change WebhookSubscriptionEnabledWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionEnabledWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionEnabledWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionEnabledWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionEnabledWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionEnabledWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionEnabledWebhookEventEventType
type WebhookSubscriptionDisabledWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionDisabledWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionDisabledWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change WebhookSubscriptionDisabledWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionDisabledWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionDisabledWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionDisabledWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionDisabledWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionDisabledWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionDisabledWebhookEventEventType
type WebhookSubscriptionEventsUpdatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionEventsUpdatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionEventsUpdatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
APIToken WebhookSubscriptionEventsUpdatedWebhookEventDataAPITokenOptionalThe API token that changed.
The API token that changed.
Change WebhookSubscriptionEventsUpdatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionEventsUpdatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionEventsUpdatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionEventsUpdatedWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionEventsUpdatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionEventsUpdatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionEventsUpdatedWebhookEventEventType
type WebhookSubscriptionPhoneNumbersUpdatedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
APIToken WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataAPITokenOptionalThe API token that changed.
The API token that changed.
Change WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionPhoneNumbersUpdatedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionPhoneNumbersUpdatedWebhookEventEventType
type WebhookSubscriptionRoutingHeadersSetWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionRoutingHeadersSetWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionRoutingHeadersSetWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
APIToken WebhookSubscriptionRoutingHeadersSetWebhookEventDataAPITokenOptionalThe API token that changed.
The API token that changed.
Change WebhookSubscriptionRoutingHeadersSetWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionRoutingHeadersSetWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionRoutingHeadersSetWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionRoutingHeadersSetWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionRoutingHeadersSetWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionRoutingHeadersSetWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionRoutingHeadersSetWebhookEventEventType
type WebhookSubscriptionRoutingHeadersClearedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data WebhookSubscriptionRoutingHeadersClearedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor WebhookSubscriptionRoutingHeadersClearedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
APIToken WebhookSubscriptionRoutingHeadersClearedWebhookEventDataAPITokenOptionalThe API token that changed.
The API token that changed.
Change WebhookSubscriptionRoutingHeadersClearedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName WebhookSubscriptionRoutingHeadersClearedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL WebhookSubscriptionRoutingHeadersClearedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ContactCard WebhookSubscriptionRoutingHeadersClearedWebhookEventDataContactCardOptionalThe contact card that changed.
The contact card that changed.
Environment WebhookSubscriptionRoutingHeadersClearedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember WebhookSubscriptionRoutingHeadersClearedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType WebhookSubscriptionRoutingHeadersClearedWebhookEventEventType
type TeamMemberAddedWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data TeamMemberAddedWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor TeamMemberAddedWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change TeamMemberAddedWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName TeamMemberAddedWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL TeamMemberAddedWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment TeamMemberAddedWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember TeamMemberAddedWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType TeamMemberAddedWebhookEventEventType
type TeamMemberSignedInWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data TeamMemberSignedInWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor TeamMemberSignedInWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change TeamMemberSignedInWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName TeamMemberSignedInWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL TeamMemberSignedInWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment TeamMemberSignedInWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember TeamMemberSignedInWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.
EventType TeamMemberSignedInWebhookEventEventType
type TeamMemberSignedOutWebhookEvent struct{…}Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Webhook payload for account events. One event type per kind of account change. event_id is the same on every retry and on every subscription the event is delivered to; use it to deduplicate. created_at is when the webhook was created and data.occurred_at when the change happened. Events are not guaranteed to arrive in order. Delivery is best-effort: if a delivery still fails after retries, the change remains on your Activity page. Changes to webhook subscriptions are account events too, so a subscription to webhook_subscription.* events receives an event about the subscription that was just created or edited.
Data TeamMemberSignedOutWebhookEventDataA change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
A change on your account, the same change shown on your Activity page. Every event carries summary, occurred_at, actor and origin. The object fields (api_token, webhook_subscription, environment, contact_card, phone_number, team_member) identify what changed; on update events change describes the transition. Created and deleted events carry only the object that was created or deleted. Fields are absent when they don’t apply; null appears only inside change.
Actor TeamMemberSignedOutWebhookEventDataActorWho made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Who made the change. team_member carries the member’s id, name and email; other types carry no identity. system is a change made by Linq, matching “System” on your Activity page. unknown means the actor could not be identified.
Type string
Origin stringWhere the change was made.
Where the change was made.
Human-readable label, identical to the Activity page. For display only; the wording may change without a new webhook version.
Change TeamMemberSignedOutWebhookEventDataChangeOptionalThe transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
The transition an update event describes: from is the value before and to the value after. Present only on update events (*.updated, *.renamed, *_changed, api_token.expiry_scheduled, environment.line_moved, webhook_subscription.routing_headers_*); created, deleted, enabled, disabled, expired and activated events never carry it. null means none: to: null means cleared and from: null means first set. The value type depends on the event and is given in each event’s description. contact_card.updated uses first_name, last_name and image_url instead of from and to, each present only when that field changed.
FirstName TeamMemberSignedOutWebhookEventDataChangeFirstNameOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
ImageURL TeamMemberSignedOutWebhookEventDataChangeImageURLOptionalA single field’s change, on contact_card.updated. Present only for the field that changed.
A single field’s change, on contact_card.updated. Present only for the field that changed.
Environment TeamMemberSignedOutWebhookEventDataEnvironmentOptionalAn environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
An environment, identified by name. Production is {"name": "Production", "type": "environment"}; a named environment you created (e.g. “Staging”) looks the same shape, just with its own name.
Method stringOptionalHow the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
How the team member signed in. code is a one-time code sent by email or text. Only on team_member.signed_in.
TeamMember TeamMemberSignedOutWebhookEventDataTeamMemberOptionalThe team member the event is about.
The team member the event is about.
Role stringOptionalRole the member joined with. Only on team_member.added.
Role the member joined with. Only on team_member.added.